Jump to content
  1. Модель комментариев

    Цепочка наследования
    Ваша модель комментариев расширяет несколько классов. А именно:
    \IPS\Content\Comment - Предоставляет возможности комментариев. Рассмотрим эти функции в данном разделе. \IPS\Content - Предоставляет небольшое количество функций, которые являются общими для моделей контента и моделей комментариев, таких как получение автора и работа с $databaseColumnMap. \IPS\Patterns\ActiveRecord - Обеспечивает функциональность загрузки элементов из базы данных, работы с их свойствами, сохранения и удаления. Дополнительную информацию об этом класс смотрите в документе Active Records. Основной скелет
    namespace IPS\yourApp; class _Comment extends \IPS\Content\Comment { /** * @brief [ActiveRecord] Multiton Store */ protected static $multitons; /** * @brief Default Values */ protected static $defaultValues = NULL; /** * @brief [Content\Comment] Item Class */ public static $itemClass = 'IPS\yourApp\YourClass'; /** * @brief [ActiveRecord] Database Table */ public static $databaseTable = 'yourapp_comments'; /** * @brief [ActiveRecord] Database Prefix */ public static $databasePrefix = 'comment_'; /** * @brief Title */ public static $title = ‘thing_comments’; /** * @brief Database Column Map */ public static $databaseColumnMap = array( 'item' => 'fid', 'author' => 'mid', 'author_name' => 'author', 'content' => 'text', 'date' => 'date', 'ip_address' => 'ip_address' ); } Указание свойств вашего класса
    Модели комментариев требуют нескольких статических свойств для настройки их поведения, большинство из которых идентичны модели элемента контента. Многие из них относятся к классу Active Records.
    public static $application = 'string';
    Обязательное. Ключ приложения, к которому принадлежит комментарий.
    public static $module = 'string';
    Обязательное. Ключ модуля, к которому принадлежит комментарий.
    public static $multitons = array();
    public static $defaultValues = NULL;
    Обязательное. Унаследовано от \IPS\Patterns\ActiveRecord.
    Эти два свойтсва требуемы классом \IPS\Patterns\ActiveRecord. Они не нуждаются в переопределени; они просто должны быть определены.
    public static $databaseTable = 'string';
    Обязательное. Унаследовано от \IPS\Patterns\ActiveRecord.
    Имя таблицы базы данных, в которой хранятся эти комментарии.
    public static $databasePrefix = 'string';
    Необязательное. Унаследовано от \IPS\Patterns\ActiveRecord. 
    Указывает префикс поля, используемый этой таблицей.
    public static $databaseColumnMap = array();
    Обязательное. Возможности, предоставляемые расширяемыми классами вашей модели, будут проверять этот массив, чтобы узнать, какие столбцы какую информацию хранят в вашей базе данных. Требуются следующие элементы:
    item Обязательный. Должен содержать название столбца, который хранит ID элемента контента, к которому принадлежит этот комментарий. author Обязательный. Должен содержать название столбца, который хранит номер ID пользователя, опубликовавшего контент. content Обязательный. Должен содержать название столбца, который хранит фактический текст комментария. date Обязательный. Должен содержать название столбца, который хранит unix-время даты публикации комментария. ip_address Обязательный. Должен содержать название столбца, который хранит IP-адрес автора комментария. author_name Необязательный. Может содержать название столбца, который хранит имя пользователя, опубликовавшего комментарий. first Необязательный. Может содержать название столбца, который хранит логическое значение, указывающее, является ли этот комментарий первым у элемента. public static $commentTemplate = 'string';
    Необязательный. Задает шаблон, который будет использоваться для отображения комментария (смотрите метод html() ниже). Например:
    array( array( 'global', 'core', 'front' ), 'commentContainer' ); public static $formTemplate = 'string';
    Необязательный. Задает шаблон, который будет использоваться для отображения формы комментария. Например:
    array( array( 'forms', 'core', 'front' ), 'commentTemplate' ); public static $formLangPrefix = 'string';
    Необязательный. Указывает префикс для добавления к языковым строкам, используемым моделью, что позволяет создавать собственные языковые строки для вашей цели.
    Доступные методы в модели комментариев
    В дополнение к тем, которые предоставляются классом \IPS\Patterns\ActiveRecord (которые работают точно так же, как и для моделей элементов контента), доступно несколько дополнительных методов.
    \IPS\Http\Url url( string $action )
    Возвращает URL-адрес комментария, автоматически вычисляет правильный номер страницы, в том числе и якорь в нужном месте страницы. Этот метод уже определен для вас.
    $action (string, необязательный) если параметр будет передан, добавится параметр 'do=value' в URL-адрес.
    \IPS\Content\Item item()
    Возвращает элемент контента, которому принадлежит этот комментарий.
    IPS\Member author()
    Возвращает объект \IPS\Member для пользователя, разместившего элемент контента. Например:
    $comment = YourClass::load( 1 ); $user = $comment->author(); echo $comment->name; string truncated( [ boolean $oneLine ] )
    Возвращает содержимое в формате, подходящем для использования с виджетом data-ipsTruncate.
    $oneLine (boolean, необязательный, по умолчанию FALSE) - По умолчанию абзацы превращаются в разрыв строки. Если этот параметр имеет значение TRUE, параграфы заменяются пробелами вместо разрывов строк, что делает усеченный контент подходящим для однострочного отображения.
    boolean canEdit( [ \IPS\Member $member ] )
    Возвращает логическое значение, указывающее, может ли передаваемый пользователь редактировать элемент контента.
    $member (\IPS\Member, необязательный) - Если предоставлено, при выполнении проверки используются разрешения пользователя. По умолчанию используется текущий авторизованный пользователь. boolean canDelete( [ \IPS\Member $member ] )
    Возвращает логическое значение, указывающее, может ли передаваемый пользователь удалить элемент контента.
    $member (\IPS\Member, необязательный) - Если предоставлено, при выполнении проверки используются разрешения пользователя. По умолчанию используется текущий авторизованный пользователь. boolean static modPermission( string $type [, \IPS\Member $member [, \IPS\Node\Model $container ] ] )
    Возвращает логическое значение, указывающее, имеет ли передаваемый пользователь разрешение на выполнение действия, указанного в параметре $type в указанном контейнере $container (если указан).
    $type (string, обязательный) - Тип проверяемого разрешения. Допустимые значения: edit. delete. move. hide (если включено скрытие/одобрение). unhide (если включено скрытие/одобрение). view_hidden (если включено скрытие/одобрение) $member (\IPS\Member, необязательный) - Если предоставлено, использует разрешения этого пользователя при выполнении проверки. По умолчанию используется текущий авторизованный пользователь. $container (\IPS\Node\Model, необязательный) - Если предоставлено, проверяет разрешение именно в этом контейнере. void modAction( string $type [, \IPS\Member $member [, string $reason ] ] )
    Выполняет указанное действие модерации. Выбрасывает исключение OutOfRangeException, если пользователь не имеет разрешения на выполнение этого действия.
    $type (строка, обязательный) - Тип выполняемого действия модерации. Обратитесь к списку в предыдущем методе для допустимых значений. $member (\IPS\Member, необязательный) - Если предоставлено, использует разрешения этого пользователя при выполнении проверки. По умолчанию используется текущий авторизованный пользователь. $reason (строка, необязательный) - Используется только для действий скрыть/показать; определяет причину, по которой предпринимается действие. boolean isFirst()
    Возвращает true или false, что указывает, является ли это первым комментарием элемента контента.
    boolean isIgnored( [ \IPS\Member $member ] )
    Указывает, игнорирует ли пользователь автора комментария.
    $member (\IPS\Member, optional) - если указано, используются предпочтения данного пользователя при проверки на статус игнорирования. По умолчанию используется текущий авторизованный пользователь. string dateLine()
    Возвращает строку, которая может использоваться в шаблонах, чтобы показывать, когда был добавлен комментарий, например. "Добавлено 2 часа назад".
    string html()
    Возвращает HTML-код для отображения комментария, обёрнутый в шаблон комментария.

Messenger

    ×
    ×
    • Create New...

    Important Information

    By using our site you agree to our Privacy Policy