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

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


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


Компонента отображения произвольных данных (панель управления)

Для реализации компоненты необходимо создать следующие классы:

Класс контроллера компоненты, наследник Hyper_AmiClean_ComponentAdm:

class AmiClean_AmiSample_CustomAdm extends Hyper_AmiClean_ComponentAdm{
}

Класс отображения, наследник Hyper_AmiClean_ComponentViewAdm:

class AmiClean_AmiClean_CustomViewAdm extends Hyper_AmiClean_ComponentViewAdm{
}

Если компонента не работает с моделью, нужно установить соответствующее свойство контроллера компоненты:

protected $useModel = FALSE;

Контроллер компоненты должен возвращать тип компоненты 'custom' при обращении к методу getType():

public function getType(){
    return 'custom';
}

Результат работы компоненты возвращается методом get отображения:

public function get(){
    // . . .
    return $string;
}

Компонента должна иметь собственный шаблон и локализации:

"_local/_admin/templates/modules/{$modId}_{$componentType}.tpl" 
"_local/_admin/templates/lang/modules/{$modId}_{$componentType}.lng"

в данном примере:

"_local/_admin/templates/modules/inst_sample_module_custom.tpl"
"_local/_admin/templates/lang/modules/inst_sample_module_custom.lng"

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

public function get(){
    // . . .
    $string = $this->parse($setName, $aScope);
    return $string;
}

Где $setName - имя сета, $aScope - пространство переменных шаблонизатора.

Добавление компоненты происходит в конструкторе контроллера модуля:

class AmiClean_AmiSample_Adm extends Hyper_AmiClean_Adm{
 
    public function __construct(AMI_Request $oRequest, AMI_Response $oResponse){
        parent::__construct($oRequest, $oResponse);
        $this->addComponents(array('custom'));
    }
}

Компонента может иметь собственные обработчики действий. Обработчики добавляются в контроллере компоненты:

public function init(){
    AMI_Event::addHandler('dispatch_mod_action_myaction', array($this, AMI::actionToHandler('myaction')), $this->getModId());
    return parent::init();
}
 
public function dispatchMyaction($name, array $aEvent, $handlerModId, $srcModId){
    $this->displayView();
    // . . .
    return $aEvent;
}

При использовании генератора решений можно задать, будет ли созданное решение иметь интерфейс управления и отображаться в панели администратора

Установка и настройка Руководство пользователя Интеграция дизайна Разработчикам (API)
 2000 – 2021 © Amiro.CMS Все права защищены.