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


Новая документация

Настройка платежных систем
Настройка способа оплаты КупиВкредит
Настройка способа оплаты Acquiro
Настройка способа оплаты AvisoSMS

Обновленная документация 

Разработчикам (API)
Руководство пользователя

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 – 2011 © Amiro.CMS Все права защищены.