Это старая версия документа.
В стандартных Save*Action для VT валидация осуществляется в методе validate()
. Метод возвращает массив ошибок (структуру можно посмотреть через var_dump
). Базовые проверки уже заложены в систему – это проверка на is_null, empty, strlen. Они настраиваются в MFD (по умолчанию создаются из схемы базы данных).
Остальные проверки реализуются отдельно в этом методе. Для проверки почты можно использовать метод MailFactory::CheckMXHost()
:
if ( !empty( $object->email ) && MailFactory::CheckMXHost ( $object -> email ) == false ) { $errors['fields']['email']['format'] = "format"; }
Для проверки на уникальность какого-либо поля можно использовать следующий код:
if( !empty( $object->columnNumber ) ) { if( empty( $this->originalObject->tagId ) ) { $this->originalObject->tagId = -1; } $objects = parent::$factory->Get( array( "columnNumber" => $object->columnNumber, "notTagId" => $this->originalObject->tagId ), array( BaseFactory::WithoutPages => true ) ); if( !empty( $objects ) ) { $errors["fields"]["columnNumber"]["unique"] = "unique"; } }
Где columnNumber – то поле, которое нужно проверить, tagId – primary key, notTagId – дополнительный поиск на SEARCHTYPE_NOT_EQUALS в Factory.
Реализовать проверки для следующих объектов:
В шаблонах существуют несколько стандартных стилей, с помощью которых можно «причесать» внешний вид.
Для изменения внешнего вида ячеек таблицы можно использовать предопределенные классы header или left:
<td class="(header|left)">
Для объединения ячеек таблицы нужно изменить значение colspans в массиве $grid.
"сolspans" => array( 0 => 2 )
<td><p class="status (info|good|bad)">{$object.categoryId}</p></td>
В Panda есть готовый способ отображения логических значений в таблице:
<td><?= StatusUtility::GetBoolTemplate( $object->isPostModerated ) ?></td>
Используйте этот шаблон для изменения внешнего вида поля «Пост модерация» в списке комментариев.
Реализуйте стили так же, как они изображены на картинке.
Для тех данных, которые вводит пользователь на сайте и они отображаются в VT, нужно применять фильтрацию. Например, в списке комментариев.
<td>{form: $object.author}</td> <td>{form:$object.email}</td> <td>{form:$object.comment}</td>
{form:$var}
вызывает функцию HtmlHelper::RenderToForm( $var )
, которая в свою очередь вызывает htmlspecialchars
(см. Template.php и HtmlHelper.php).
Добавить form: в комментариях (author, email, comment).
Следующий этап - Создание FE.