Добавление полей для ввода пользователем в модуле FAQ

Материал из Umicms
Версия от 17:30, 9 апреля 2012; Davidov (обсуждение | вклад) (Новая страница: «В системе UMI.CMS для модуля FAQ предусмотрен ввод пользователем вопроса, ника, адреса его элек…»)
(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к:навигация, поиск

В системе UMI.CMS для модуля FAQ предусмотрен ввод пользователем вопроса, ника, адреса его электронной почты и темы. Если требуется ввод дополнительных данных (возраст, профессия и т.д.) добавить поле в тип данных "Вопрос в FAQ" и создать одноимённое поле в форме недостаточно. Для того чтобы заполнить произвольное поле для вопроса в FAQ, нужно создать кастомный метод в файле _custom.php модуля "FAQ". Содержимое метода должно быть примерно следующее:

public function onQuestionPostDopPolja(iUmiEventPoint $event) {
        if($event->getMode() == 'after') {
            $questionId = $event->getParam('element_id');
            $string=getRequest('p');
            $hierarchy = umiHierarchy::getInstance();
            $faq = $hierarchy->getElement($questionId);
            $faq->setValue('pole',$string);
            $faq->commit();
        }
}

где pole - идентификатор поля, которое нужно записать.

Этот метод должен запускаться обработчиком событий, который нужно поместить в файл custom_events.php обработчик должен иметь следующий вид:

<?php
new umiEventListener('faq_post_question', 'faq', 'onQuestionPostDopPolja');
?>