Перейти к публикации
Дизайн и модификация IPS Community IPBSkinsBETA
Поиск в
  • Дополнительно...
Искать результаты, содержащие...
Искать результаты в...
HooLIGUN

Отправка уведомлений сторонним скриптом

Рекомендованные сообщения

07/22/18 14:19 (изменено)

Имеется код отправки уведомлений пользователям.

Взят из видеосистемы (отправка уведомления про добавлении комментария). Более наглядного не нашел

Прошу помощь в оптимизации и удалении лишнего, сам уже пробовал, толком не вышло, с этими шаблонами и сприфами

 

$_toMember	= IPSMember::load( $video['author_id'] );

		    $classToLoad		= IPSLib::loadLibrary( IPS_ROOT_PATH . '/sources/classes/member/notifications.php', 'notifications' );
			$notifyLibrary		= new $classToLoad( $this->registry );

			$_toMember['language'] = $_toMember['language'] == "" ? IPSLib::getDefaultLanguage() : $_toMember['language'];

			IPSText::getTextClass('email')->getTemplate( "new_video_comment", $_toMember['language'], 'public_external', 'videos' );

			IPSText::getTextClass('email')->buildMessage( array(
																'OWNER'	     => $video['author_name'],
                                                                   'VIDEO_NAME' => $video['title'],
																'AUTHOR'     => $this->memberData['members_display_name'],
																'URL'        => $this->registry->output->buildSEOUrl( "app=videos&do=view&id=".$video_id, "public", $video['seo_title'], 'video_view' ),
																) );

			IPSText::getTextClass('email')->subject	= sprintf( 
																IPSText::getTextClass('email')->subject, 
																$this->registry->output->buildSEOUrl( 'showuser='.$this->memberData['member_id'], 'publicNoSession', $this->memberData['members_seo_name'], 'showuser' ), 
																$this->registry->output->buildSEOUrl( "app=videos&do=view&id=".$video_id, "public", $video['seo_title'], 'video_view' ),
															    $video['title']
                                                               );

			$notifyLibrary->setMember( $_toMember );
			$notifyLibrary->setFrom( $this->memberData );
			$notifyLibrary->setNotificationKey( 'new_video_comment' );
			$notifyLibrary->setNotificationUrl( $this->registry->output->buildSEOUrl( "app=videos&do=view&id=".$video_id, "public", $video['seo_title'], 'video_view' ) );
			$notifyLibrary->setNotificationText( IPSText::getTextClass('email')->message );
			$notifyLibrary->setNotificationTitle( IPSText::getTextClass('email')->subject );

			try
			{
				$notifyLibrary->sendNotification();
			}
			catch( Exception $e ){ }      

 

Что нужно:

1. Автор уведомления $this->memberData['member_id']

2. Получатель уведомления ИД юзера ($_toMember)

3. Стиль мини сообщения (который выводится в меню)

AUTHOR создал тему в вашем разделе <a href='URL'>TOPIC NAME</a>

URL и TOPIC NAME будут указаны в коде выше

4. Стиль полного уведомления (который при открытии уведомления)

$_toMember['name'],

AUTHOR создал тему в вашем разделе.

Подробнее <a href='URL'>TOPIC NAME</a>

URL и TOPIC NAME будут указаны в коде выше

 

Хочется сделать без всяких шаблонизаторов и языковых ключей

Изменено пользователем HooLIGUN

Поделиться сообщением


Ссылка на сообщение

Каждое уведомление привязано к ключу, который проверяется.

Поделиться сообщением


Ссылка на сообщение

К какому?

Этот код работает на отдельной странице.

Я хочу его просто оптимизировать

Поделиться сообщением


Ссылка на сообщение

К какому?

Для каждого уведомления создается ключ

followed_topics, friend_status_update, warning и т.д.

 

Этот код работает на отдельной странице.
То есть Вы хотите использовать уведомление от видеосистемы. В таком случае юзер будет получать email и внутрисистемное уведомление, если установил галки.

Поделиться сообщением


Ссылка на сообщение

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас

  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу.

×
×
  • Создать...