В своей первой статье я создал простой плагин для LimeSurvey.
Теперь мы хотим добавить некоторый текст на последнюю страницу, когда пользователь выполнит опрос.
LimeSurvey предлагает событие afterSurveyComplete
.
Все, что нам нужно сделать, — это подписаться на это событие и реализовать метод обработчика события:
public function init()
{
$this->subscribe('afterSurveyComplete');
}
Минимальная реализация выглядит следующим образом.
public function afterSurveyComplete()
{
$event = $this->getEvent();
$event->getContent($this)->addContent('Hello World');
}
Для дальнейшей обработки событие предоставляет 2 параметра surveyId
и responseId
.
public function afterSurveyComplete()
{
$event = $this->getEvent();
$surveyId = $event->get('surveyId');
$responseId = $event->get('responseId');
$response = $this->pluginManager->getAPI()->getResponse($surveyId, $responseId);
$myContent = var_export($response, true);
$event->getContent($this)->addContent($myContent);
}
Вот и все.
Пока!