Перейти к контенту
  • записи
    33
  • комментариев
    10
  • просмотров
    170 305

IP.Board 3.1: Уведомления


News Bot

4 525 просмотров

Хорошо известен факт, что одним из способов поддержания интереса у пользователя к сайту является отправка пользователю периодических уведомлений и напоминаний. Например, если пользователь оставляет сообщение в теме, он может забыть об этом через 1-2 дня. Если по электронной почте сообщать ему о том, что кто-то еще ответил в теме, то это напомнит ему о том, чтобы зайти на сайт и посмотреть обновления.

 

В IP.Board серьезная система уведомлений, однако мы заметили, что большая часть кода, реализующая эту возможность, разделена и продублирована по нескольким файлам. Способы управления уведомлениями также несовместимы, что приводит к путанице и проблемам для новых пользователей, пытающихся определить, как управлять параметрами уведомлений. Если вы модератор, вы управляете параметрами уведомлений в центре сбора оповещений. Вы можете получить уведомление по почте только по отслеживаемым темам. Вы можете выбрать, получать уведомления о новых сообщениях по почте или в личном сообщении. Следующие примеры показывают, что систему уведомлений можно сделать проще.

 

В IP.Board 3.1 внесены улучшения уведомлений, как в программной части, так и в пользовательском интерфейсе.

 

Внутрисистемное уведомление

 

При пересмотре системы уведомлений в IP.Board 3.1, мы решили добавить внутрисистемные уведомления. Главным образом, это уведомления внутри форума, без использования личных сообщений или электронной почты. Существует множество вещей, о которых пользователь может хотеть быть уведомлен, без электронной почты или личных сообщений (особенно если есть ограничения для пользователей на количество хранимых личных сообщений).

 

Визуально, когда первый раз приходит уведомление оно

выглядит аналогично всплывающему окну, при получении личного сообщения. На самом деле, личные сообщения больше не выводятся во всплывающих окнах, которые теперь используются для внутрисистемных уведомлений. Это сделано для логичности, а также для уменьшения кода и улучшения его повторного использования.

 

Была добавлена кнопка «Прочитано», теперь вы можете закрыть или просмотреть уведомление во всплывающем окне, а также отметить его прочтенным, не покидая страницу.

 

CropperCapture45.png

 

Для удобства просмотра уведомлений, в блоке информации о пользователе, вверху страницы, добавлен элемент, позволяющий просмотреть список последних уведомлений.

 

CropperCapture46.png

 

Администраторы могут контролировать, сколько уведомлений может хранить отдельный пользователь. Если пользователь может хранить 50 уведомлений, а получает 51, то само старое уведомление автоматически удаляется/очищается. Пользователь увидит уведомления во всплывающем окне форума, при нажатии на ссылку. В панели управления есть область, где пользователь может пролистать, просмотреть или удалить уведомления. Кроме того, новый хук форума показывает, когда у пользователя есть непрочитанные уведомления (и автоматически пропадает при отсутствии не прочтенных уведомлений).

 

CropperCapture48.png

 

Улучшенное управление уведомлениями

 

Чтобы упростить управление уведомлениями администраторами, была добавлена новая область в панели управления. Каждое нуждающееся в уведомлении событие будет внесено в список и администратор сможет контролировать, какой способ использовать по умолчанию для каждого уведомления, какие способы не могут использоваться вообще, а также запретить пользователям изменять выбор администратора. Например, администратор может по умолчанию сделать способом внутрисистемных уведомлений личные сообщения (отражающиеся во всплывающем окне). Администратор также может запретить пользователям выбирать получение уведомлений по почте, когда в профиле оставлены комментарии, чтобы уменьшить количество отправляемых с сервера писем. Администратор может принудить всех пользователей (с соответствующим разрешением) получать уведомления по почте, когда поступает жалоба на публикацию. Все эти вещи первоначально невозможные, могут быть установлены на одной странице в панели управления администратора в IP.Board 3.1.

 

CropperCapture47.png

 

Более простые настройки конфигурации пользователя

 

В добавление к странице с панелью управления пользователя для просмотра системных уведомлений, существует новая страница уведомлений, где объединены все настройки. Новые опции конфигурации доступны для управления параметрами ваших уведомлений. Каждый пользователь может выбрать почту или личные сообщения для системных уведомлений (сочетание двух метолов, или никакой из них). Методы, которые недоступны для использования не будут показаны вовсе, в то время как методы, запрещенные для изменения, будут выведены, но возможность изменения будет недоступна (таким образом, пользователь будет знать, каким образом он будет уведомлен). Несколько картинок помогут разобраться в этом:

 

CropperCapture49.png

 

Администратор создает конфигурацию в панели управления

 

CropperCapture50.png

 

Пользователь увидит следующие параметры уведомлений

 

CropperCapture51.png

 

Как вы видите из 2 последних картинок, мы добавили возможность получать уведомление, если кто-то цитирует ваше сообщение.

 

Проще для разработчиков

 

В IP.Board 3.0 обладал достаточно абстрагированным кодом, чтобы сделать отправку ЛС или письма проще для разработчиков. И хотя это является правдой, но код для отправки уведомлений через ЛС или почту все же дублируется во многих местах. А так как основным нашим принципом является избегание дублирования кода. Мы нашли элегантное решение задачи отправки внутрисистемных уведомлений (без добавления дополнительно логики в программный код).

 

Мы создали новый класс уведомлений, которым разработчики могут пользоваться для добавления функций уведомления в свои разработки. Это существенно должно уменьшить затраты на внедрение функций уведомлений в новые приложения.

 

Разработчикам, прежде всего, необходимо создать файл плагина для приложения, чтобы определять события, требующие уведомления. Образец файла плагина может выглядеть так:

 

<?php

/**
* Notification types
*/
$_NOTIFY        = array(
                                       array( 'key' => 'report_center', 'default' => array( 'email' ), 'disabled' => array() ),
                                       );

 

 

Вы определяете выбранные и отключенные опции по умолчанию. Например, вы не желаете, чтобы уведомление о личном сообщении приходило через личное сообщение. Это позволяет разработчикам определять по умолчанию подход к уведомлениям в приложениях.

 

Чтобы отправить уведомление, используется следующий код

//-----------------------------------------
// Notifications library
//-----------------------------------------

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

$notifyLibrary->setMember( $user );
$notifyLibrary->setFrom( $this->memberData );
$notifyLibrary->setNotificationKey( 'report_center' );
$notifyLibrary->setNotificationText( 'This is the text to show to the user' );
$notifyLibrary->setNotificationTitle( 'This is the title of the notification' );

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

 

 

Наиболее распространенная реализация это использовать email библиотеку для первоначального создания письма, а затем добавить тему и сообщение. Как вы можете видеть, использовать класс уведомления довольно просто. Внутри класса заложены механизмы проверки того, что разрешено/запрещено администратором, что выбрал пользователь в своих настройках, и класс сам создает все необходимые уведомления, основываясь на данных проверках. Используя это метод, вам не нужно беспокоиться ни о настройках администратора, ни о настройках пользователя. Обо всем уже позаботились!

 

В заключение

 

Благодаря новым возможностям уведомлений, мы надеемся, что сможем расширить и еще больше упростить их в будущей версии IP.Board. Как вы увидели, мы уже добавили одну область, где пользователь может получать уведомления об изменениях, и у нас есть еще другие идеи. С помощью улучшенного кода и упрощенного управления конфигурацией, реализация этих изменений станет еще проще.

 

Оригинал статьи: http://community.invisionpower.com/blog/1174/entry-3911-ipboard-31-notifications/

0 комментариев


Рекомендуемые комментарии

Комментариев для отображения не найдено.

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

Важная информация

Находясь на нашем сайте, вы соглашаетесь на использование файлов cookie, а также с нашим положением о конфиденциальности Политика конфиденциальности и пользовательским соглашением Условия использования.