Добавление новых (кастомных) полей для модуля Комментарии
Материал из Umicms
В файле classes/modules/comments/class.php копируем метод post в ~classes/modules/comments/__custom.php, переименовываем метод, допустим в postnew. В той же папке копируем файл permissions.php и переименовываем в permissions.custom.php, содержимое файла permissions.custom.php должно быть таким:
<?php $permissions = Array('insert' => Array('postnew')); ?>
В модуле "Шаблоны данных", для типа "Комментарий" создаем новые поля. Пусть это будет строковое поле с идентификатором newfield и чекбокс: chek. В шаблоне для макроса comments insert() в блоках comments_block_add_user и comments_block_add_guest добавляем новые поля, допустим с табличной версткой:
<tr> <td> Новое поле:<br /> <input type="text" name="newfield" size="50" style="width: 350px;" class="textinputs" /> </td> </tr <tr> <td> Чекбокс: <input type="checkbox" name="chek" class="textinputs" /> </td> </tr>
Также меняем: <form method="post" action="% action %> На: <form method="post" action="%pre_lang%/comments/postnew/%pid%">
В каждом блоке из двух!
В файле ~classes/modules/comments/__custom.php в начале метода postnew прописываем такие строки:
$regedit = regedit::getInstance(); $per_page = (int) $regedit->getVal("//modules/comments/per_page"); $moderated = (int) $regedit->getVal("//modules/comments/moderated");
Во всех случаях кроме "$this->moderated",
меняем: $this-> на: def_module:: this->moderated меняем на $moderated
После блока:
$title = htmlspecialchars(trim(getRequest('title'))); $content = htmlspecialchars(trim(getRequest('comment'))); $nick = htmlspecialchars(getRequest('author_nick')); $email = htmlspecialchars(getRequest('author_email'));
Добавляем новые поля:
$newf = htmlspecialchars(getRequest('newfield')); $chek = htmlspecialchars(getRequest('chek'));
После подобных строк:
$element->setValue("h1", $title); $element->setValue("author_id", $author_id);
Ставим:
$element->setValue("newfield", $newf); $element->setValue("chek", $chek);
Вот собственно и все.
