Jump to content

Опросы в элементах контента

Реализуя опросы в вашем приложении, пользователи смогут создать опрос при создании нового элемента контента. Процесс выполняется автоматически; новая вкладка будет отображаться в форме создания элемента, которая позволит управлять опросом.

Как реализовать опросы

Во-первых, ваша модель элемента контента должна реализовать интерфейс опроса, например:

implements \IPS\Content\Polls

Затем добавьте ключ в ваше свойство $databaseColumnMap со значением, являющимся названием столбца базы данных, хранящего ID опроса для данного элемента (обратите внимание, вы можете иметь только один опрос для одного элемента контента).

Наконец, отобразите опрос в шаблоне просмотра элемента контента. Например:

{$item->getPoll()|raw}

Выполнение дополнительных действий после голосования

При желании, ваша модель может быть оповещена, когда пользователь голосует в опросе. Для добавления поддержки этого, вы должны реализовать SPL Observer:

implements \SplObserver

В вашей модели добавьте метод обновления, который будет вызван, когда опрос получает голоса:

void update( \IPS\Poll $poll )

  • $poll (\IPS\Poll) - Опрос, на который проголосовали.

Наконец, при отображении вашего элемента контента присоедините элемент к опросу. Например:

if ( $poll = $item->getPoll() )
{
	$poll->attach( $item );
}

Дополнительные доступные методы модели

boolean static canCreatePoll( [ \IPS\Member $member [, \IPS\Node\Model $container ] ] )

Указывает, может ли пользователь создать опрос.

  • $member (\IPS\Member, необязательный) - Пользователь, разрешения которого должны быть проверены. По умолчанию будет использоваться текущий авторизованный пользователь.
  • $container (\IPS\Node\Model, необязательный) - Проверяет, могут ли быть созданы опросы в этом контейнере.

\IPS\Poll getPoll()

Возвращает опрос для этого элемента (или NULL, если опроса у элемента нет).




Messenger

    ×
    ×
    • Create New...

    Important Information

    By using our site you agree to our Privacy Policy