Опубликовано: 22 июля 20187 г Имеется код отправки уведомлений пользователям.Взят из видеосистемы (отправка уведомления про добавлении комментария). Более наглядного не нашелПрошу помощь в оптимизации и удалении лишнего, сам уже пробовал, толком не вышло, с этими шаблонами и сприфами $_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 будут указаны в коде выше Хочется сделать без всяких шаблонизаторов и языковых ключей Изменено 22 июля 20187 г пользователем HooLIGUN
Опубликовано: 24 июля 20187 г Автор К какому?Этот код работает на отдельной странице.Я хочу его просто оптимизировать
Опубликовано: 26 июля 20187 г К какому?Для каждого уведомления создается ключfollowed_topics, friend_status_update, warning и т.д. Этот код работает на отдельной странице.То есть Вы хотите использовать уведомление от видеосистемы. В таком случае юзер будет получать email и внутрисистемное уведомление, если установил галки.
Имеется код отправки уведомлений пользователям.
Взят из видеосистемы (отправка уведомления про добавлении комментария). Более наглядного не нашел
Прошу помощь в оптимизации и удалении лишнего, сам уже пробовал, толком не вышло, с этими шаблонами и сприфами
$_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. Стиль мини сообщения (который выводится в меню)
URL и TOPIC NAME будут указаны в коде выше
4. Стиль полного уведомления (который при открытии уведомления)
URL и TOPIC NAME будут указаны в коде выше
Хочется сделать без всяких шаблонизаторов и языковых ключей
Изменено пользователем HooLIGUN