Jump to content

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


HooLIGUN
 Share

Recommended Posts

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

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

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

 

$_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 будут указаны в коде выше

 

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

Edited by HooLIGUN
Link to comment
Share on other sites

К какому?

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

followed_topics, friend_status_update, warning и т.д.

 

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

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...