Назначение метода getDatasetConfiguration в модуле системы

Материал из Umicms
Перейти к:навигация, поиск

Основная информация по методу getDatasetConfiguration, который должен присутствовать в файле \classes\modules\название_модуля\__admin.php, описана на данной странице: api.umi-cms.ru

Обратите внимание, раздел "Модификация шаблона" актуален только для версий системы 2.7.4 и ниже. Для версий 2.8 и выше необходимо ознакомиться со статьей Пример административного шаблона для объектов или просмотреть шаблоны стандартных модулей системы.

При отображении данных в виде списка, отрабатывается шаблон ui-smc-table в файле \styles\skins\mac\interface\ui\controls.xsl, в этот шаблон, в случае необходимости, передается параметр control-params. Если данный параметр равен udata_lists, то для модуля cache, будет сделан следующий запрос:

http://ваш_домен/admin/cache/dataset_config.xml?param=udata_lists

dataset_config – метод класса baseModuleAdmin, файл classes/modules/baseModuleAdmin.php. В этом методе вызывается метод getDatasetConfiguration для текущего модуля, в метод передается GET-параметр param, в данном случае это udata_lists.

Рассмотрим еще один пример метода getDatasetConfiguration:

public function getDatasetConfiguration($param = '') {
  switch($param) {
    case 'udata_lists':
    $loadMethod = 'udata_lists';
    $typeId = umiObjectTypesCollection::getInstance()->getBaseType('cache', 'udata_lists');
    break;
    case 'upage_lists' :
    $loadMethod = 'upage_lists';
    $typeId = umiObjectTypesCollection::getInstance()->getBaseType('cache', 'upage_lists');
    break;
  }
  
  $result = array(
    'methods' => array(
    array('title'=>getLabel('smc-load'), 'forload'=>true, 'module'=>'cache', '#__name'=>$loadMethod),
    array('title'=>getLabel('smc-delete'), 'module'=>'cache', '#__name'=>'del', 'aliases' => 'tree_delete_element,delete,del'),
    array('title'=>getLabel('smc-activity'), 'module'=>'cache', '#__name'=>'activity', 'aliases' => 'tree_set_activity,activity')),
    'types' => array(array('common' => 'true', 'id' => $typeId)),
    'stoplist' => array(),
    'default' => ''
  );
  
  return $result;
}

$loadMethod – метод который будет вызван для получения xml-данных, к примеру:

http://ваш_домен/admin/cache/udata_lists.xml?domain_id[]=1&lang_id[]=1

Важно отметить, что как для метода удаления объектов, так и смены активности, необходимо наличие 'aliases'.

$typeId – базовый тип данных в модуле "Шаблоны данных", для указанных пар модуль::метод:

$typeId = umiObjectTypesCollection::getInstance()->getBaseType('cache', 'udata_lists');

В некоторых модулях, метод для получения данных из базы данных всего один, поэтому он может быть жестко прописан на месте переменной $loadMethod, как это сделано для модуля "Новости". Также, вместо переменной $typeId можно прописать название иерархического метода, который вы должны были указать в настройках модуля "Шаблоны данных", в модуле Новости указан: 'item'