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

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


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


on_query_add_table

Событие, вызываемое при добавлении таблицы в запрос, создаваемый моделью таблицы. Событие вызывается при получении объекта модели списка или модели элемента.
Например, событие возникает при вызове getList(), если у модели oModel есть зависимые модели:

$oModelList = $this->oModel->getList()->addColumns($aColumns)->load();


Независимо от того, добавляется таблица основной модели или зависимой, событие имеет одинаковые параметры.
Параметры:

Параметр

Описание

Пример

modId

Идентификатор модуля

news

oQuery

Объект запроса

DB_Query

oTable

Объект модели таблицы

News_Table

alias

Алиас таблицы

cat



Пример обработчика события. Фильтрация результатов по языку, если в таблице есть поле «lang»:

public static function handleFilterLangData($name, array $aEvent, $handlerModId, $srcModId){
    if($aEvent['oTable']->hasField('lang')){
        $aEvent['oQuery']->addWhereDef(
            DB_Query::getSnipplet('AND %s.`lang` = %s')
                ->plain($aEvent['alias'])
                ->q(AMI_Registry::get('lang_data'))
        );
    
    return $aEvent;
}
 
// …
  
AMI_Event::addHandler(
    'on_query_add_table',
    array('AMI_GlobalFilters', 'handleFilterLangData'),
    AMI_Event::MOD_ANY
);
Установка и настройка Руководство пользователя Интеграция дизайна Разработчикам (API)
 2000 – 2019 © Amiro.CMS Все права защищены.