Создание собственного рендерера для ячейки Grid в дизайнере интерфейсов

Создать свой редерер очень просто, рассмотрим два варианта:

  • рендерер ячейки на основе ключа словаря (выводим значение) (Dvelum 0.9 и выше);
  • собственный рендерер.

Чтобы добавить свой рендерер в дизайнер интерфейсов, достаточно объявить его класс.

Создадим папку для рендеров проекта www/system/library/Ext/Component/Renderer/Myproject

Создадим файл www/system/library/Ext/Component/Renderer/Myproject/Status.php

(для примера используем словарь task, который описывает статусы фоновой задачи)


<?php
class Ext_Component_Renderer_Myproject_Status extends Ext_Component_Abstract_Renderer_Dictionary{
 /* 
  * Имя словаря 
  */
 protected $_name = 'task';
}

Рендерер словарного значения готов.

Создадим собственный рендерер:

<?php
class Ext_Component_Renderer_Myproject_Custom extends Ext_Component_Renderer{
   public function __toString() {
      return 'function(value, metaData, record, rowIndex, colIndex, store){
          return "Custom renderer " + value;
      }';
   }
}

Так же возможно вернуть имя функции:


<?php
class Ext_Component_Renderer_Myproject_Custom extends Ext_Component_Renderer{
  public function __toString(){
    return 'app.creatorRenderer';
  }
}