====== Работа с VT ====== ===== Проверки ===== В стандартных 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 – дополнительный поиск по полю tagId с типом поиска SEARCHTYPE_NOT_EQUALS, который необходимо добавить в MFD. ==== Задание ==== Реализовать проверки для следующих объектов: - Новости - Ссылка – проверка на то, что ссылка существует; проверка на уникальность. - Email – проверка CheckMXHost. - Категории - Системное имя – проверка на уникальность. - Комментарии - IP ===== Стили ===== В шаблонах существуют несколько стандартных стилей, с помощью которых можно «причесать» внешний вид. ==== Index.tmpl.php – шаблоны списка ==== Для изменения внешнего вида ячеек таблицы можно использовать предопределенные классы **header** или **left**: {{:eaze:panda:panda_list_class.png?|}} ==== Index.tmpl.php – объединение ячеек ==== Для объединения ячеек таблицы нужно изменить значение colspans в массиве $grid. "сolspans" => array( 0 => 2 ) {$object.categoryId} {{:eaze:panda:panda_list_colspan.png?|}} ==== Index.tmpl.php – булевые значения ==== В Panda есть готовый способ отображения логических значений в таблице: isPostModerated ) ?> Используйте этот шаблон для изменения внешнего вида поля «Пост модерация» в списке комментариев. {{:eaze:panda:panda_list_bool.png?|}} ==== Задание ==== Реализуйте стили так же, как они изображены на картинке. ===== Проверка пользовательского ввода в VT ===== Для тех данных, которые вводит пользователь на сайте и они отображаются в VT, нужно применять фильтрацию. Например, в списке комментариев. {form:$object.author} {form:$object.email} {form:$object.comment} ''{form:$var}'' вызывает функцию ''HtmlHelper::RenderToForm( $var )'', которая в свою очередь вызывает'' htmlspecialchars'' (см. Template.php и HtmlHelper.php). Для вывода массива можно использовать такой вид - ''{form:$array[key]}''. ==== Задание ==== Добавить form: в комментариях (author, email, comment). ====== ====== Следующий этап - [[eaze:panda:создание_fe|Создание FE]].