Инструменты пользователя

Инструменты сайта


eaze:panda:работа_с_vt

Это старая версия документа.


Работа с 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 – дополнительный поиск на SEARCHTYPE_NOT_EQUALS в Factory.

Задание

Реализовать проверки для следующих объектов:

  1. Новости
    1. Ссылка – проверка на то, что ссылка существует; проверка на уникальность.
    2. Email – проверка CheckMXHost.
  2. Категории
    1. Системное имя – проверка на уникальность.
  3. Комментарии
    1. IP

Стили

В шаблонах существуют несколько стандартных стилей, с помощью которых можно «причесать» внешний вид.

Index.tmpl.php – шаблоны списка

Для изменения внешнего вида ячеек таблицы можно использовать предопределенные классы header или left:

<td class="(header|left)">

Index.tmpl.php – объединение ячеек

Для объединения ячеек таблицы нужно изменить значение colspans в массиве $grid.

"сolspans"  => array( 0 => 2 )
<td><p class="status (info|good|bad)">{$object.categoryId}</p></td>

Index.tmpl.php – булевые значения

В Eaze Framework есть готовый способ отображения логических значений в таблице:

<td><?= StatusUtility::GetBoolTemplate( $object->isPostModerated ) ?></td>

Используйте этот шаблон для изменения внешнего вида поля «Пост модерация» в списке комментариев.

Задание

Реализуйте стили так же, как они изображены на картинке.

Проверка пользовательского ввода в VT

Для тех данных, которые вводит пользователь на сайте и они отображаются в 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.

eaze/panda/работа_с_vt.1315923062.txt.gz · Последние изменения: 2011/09/13 18:11 — zenden