Центр документации
Карта сайта

Создай визитку сам!


Самоучитель по интеграции дизайна и настройке Amiro.CMS на примере демонстрационной версии пакета Визитка »


Список - форматтеры

Форматтер – это метод, преобразовывающий данные из модели к виду, требуемому для отображения.

Для того чтобы назначить полю списка форматтер, при формировании списка отображаемых полей, необходимо вызвать метод formatColumn.

Пример: 

$this->formatColumn('nickname', array($this, 'fmtTruncate'));

Первый параметр – название поля модели, второй – callback, третьим параметром может идти массив параметров форматтера, но, в данном примере, используются параметры по умолчанию.

В данный момент существует несколько стандартных callback-методов, описанных в API, они начинаются с префикса fmt.

МетодОписание

fmtTruncate

Усечение строки до заданной длины.

Возможные параметры:

  • length - длина строки;
  • doSaveWords - не разрывать слова при обрезании строки;
  • doStripTags - вырезать HTML тэги;
  • doHTMLEncode - кодирование всех спец. символов в их HTML представления;
  • tail - символы, которые необходимо добавить в конец обрезанной строки.
fmtHTMLEncodeкодирование всех спец. символов в их HTML представления.
fmtStripTagsвырезать HTML тэги.
fmtLocaleCaptionЗаменить значение поля на соответствующую языковую переменную.
fmtDateTime

Форматировать mysql дату в локализованный формат.

Возможные аргументы:

  •  format - формат преобразования.
fmtHumanDateTimeРасширенный вариант форматтера fmtDateTime.
При выводе даты использует понятия "Сегодня", "Вчера".
fmtColIcon

Представить значение поля в виде иконки.

Возможные аргументы:

  • name - используется при построении css класса элемента col-icon-{name};
  • caption - подсказка к иконке;
  • has_inactive - иконка может иметь активное и неактивное состояние;
  • caption_inactive - подсказка к неактивной иконке.

Существует возможность добавления собственных форматтеров, с использованием метода AMI_ModListView::formatColumn.
Рекомендуется для собственных форматтеров также использовать префикс fmt. 

Пример добавления стандартных и пользовательского форматтеров

class AmiClean_AmiSample_ListViewAdm extends Hyper_AmiClean_ListViewAdm{
    public function __construct(){
 
        parent::__construct();
 
        $this
            ->addColumnType('id', 'hidden')
            ->addColumn('nickname')
            ->addColumn('birth')
            ->addColumnType('age', 'int');
 
        $this->formatColumn(
            'nickname',
            array($this, 'fmtTruncate'),
            array(
                'length' => 50
            )
        );
 
        $this->formatColumn(
            'birth',
            array($this, 'fmtDateTime'),
            array(
                'format' => AMI_Lib_Date::FMT_DATE
            )
        );
 
        $this->formatColumn(
            'birth',
            array($this, 'fmtCustom')
        );
    }
 
    protected function fmtCustom($value, array $aArgs){
        return '~ ' . $value . ' ~';
    }
}

Объяснение кода

Усечение значений поля nickname до максимальной длины в 50 символов.

$this->formatColumn(
    'nickname',
     array($this, 'fmtTruncate'),
     array(
        'length' => 50
     )
);

Вывести значения поля birth в виде локализованной даты.

$this->formatColumn(
    'birth',
    array($this, 'fmtDateTime'),
    array(
        'format' => AMI_Lib_Date::FMT_DATE
    )
);

Добавление пользовательского форматтера для поля birth, который обрамит даты символами "~".

public function __construct(){
    // ...
 
    $this->formatColumn(
        'birth',
        array($this, 'fmtCustom')
    );
}
 
protected function fmtCustom($value, array $aArgs){
    return '~ ' . $value . ' ~';
}
Установка и настройка Руководство пользователя Интеграция дизайна Разработчикам (API)
 2000 – 2021 © Amiro.CMS Все права защищены.