HooLIGUN Posted July 22, 2018 Share Posted July 22, 2018 (edited) Имеется код отправки уведомлений пользователям.Взят из видеосистемы (отправка уведомления про добавлении комментария). Более наглядного не нашелПрошу помощь в оптимизации и удалении лишнего, сам уже пробовал, толком не вышло, с этими шаблонами и сприфами $_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 July 22, 2018 by HooLIGUN Link to comment Share on other sites More sharing options...
newbie Posted July 24, 2018 Share Posted July 24, 2018 Каждое уведомление привязано к ключу, который проверяется. Link to comment Share on other sites More sharing options...
HooLIGUN Posted July 24, 2018 Author Share Posted July 24, 2018 К какому?Этот код работает на отдельной странице.Я хочу его просто оптимизировать Link to comment Share on other sites More sharing options...
newbie Posted July 26, 2018 Share Posted July 26, 2018 К какому?Для каждого уведомления создается ключfollowed_topics, friend_status_update, warning и т.д. Этот код работает на отдельной странице.То есть Вы хотите использовать уведомление от видеосистемы. В таком случае юзер будет получать email и внутрисистемное уведомление, если установил галки. Link to comment Share on other sites More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now