Jump to content

Маршрутизация контента

Расширение маршрутизации контента для Элемента Контента

Многие фнукции Invision Community обрабатываются централизованно и автоматически, например, предупреждения и разрешения модератора. Для поддержки этого, вам необходимо зарегистрировать ваши типы элементов контента с помощью ядра, что с делается с помощью простого расширения Content Router (далее Маршрутизация Контента). Дополнительные сведения о расширениях смотрите в соответствующем документе.

Как реализовать расширение ContentRouter

Первым шагом к реализации вашего маршрутизатора контента является создание расширения ContentRouter в Центре разработчика вашего приложения. Имя класса должно иметь отношение к цели вашей модели, к примеру Темы. Откройте созданный файл и добавьте такой код (изменив значения, если это необходимо):

namespace IPS\yourApp\extensions\core\ContentRouter;

class _YourClass 
{
    public $classes = array( 'IPS\yourApp\YourContentItemClass' );
}

Далее добавьте следующее свойство в вашу модель ноды (но не в модель элемента контента):

static $modPerm = 'string';

Значение используется как ключ для хранения нод, с которыми модератор имеет разрешение работать. Это может быть что угодно. Создайте языковую строку в вашем файле lang.php с этим же ключом - это будет текстовое представление того, как называются ваши ноды (например, 'Категории'). Наконец, добавьте языковую строку в файл lang.php для каждого из действий модерации, используя этот формат:

can_<action>_<title>

где <title> это ключ, определяемый статическим свойством $title из вашей модели элемента контента. Действия, которые вам нужно определить, будут зависеть от того, какие функции элементов контента вы поддерживаете в своей модели, но могут включать:

  • pin и unpin (если поддерживается закрепление).
  • feature и unfeature (если поддерживается возможность делать контент популярным).
  • hide, unhide и view_hidden (если поддерживается скрытие и одобрение).
  • lock, unlock и reply_to_locked (если поддерживается закрытие).
  • edit.
  • move.
  • delete.

Примечание: если ваш элемент контента поддерживает комментирование, повторите этот последний шаг для действий, которые могут быть выполнены у комментариев (edit, delete, hide, unhide и view_hidden), где <title> будет ключом, определённым статическим свойством $title из вашей модели комментария контента.

В качестве примера предположим, что $title нашей модели элемента контент является 'myapp_entry'. В таком случае языковые строки будут с такими ключами:

'can_edit_myapp_entry' => "Можно редактировать записи?",
'can_move_myapp_entry' => "Можно перемещать записи?",
'can_delete_myapp_entry' => "Можно удалять записи?"

...и так далее.

Поведение, которое изменяется после реализации расширения ContentRouter

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



Messenger

    ×
    ×
    • Create New...

    Important Information

    By using our site you agree to our Privacy Policy