Jump to content
Дизайн и модификация Invision Community IPBSkinsBETA
Search In
  • More options...
Find results that contain...
Find results in...
Sign in to follow this  
HooLIGUN

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

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

Share this post


Link to post

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

Share this post


Link to post

К какому?

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

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

Share this post


Link to post

К какому?

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

followed_topics, friend_status_update, warning и т.д.

 

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

Share this post


Link to post

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
Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...