Назначение метода getDatasetConfiguration в модуле системы
Основная информация по методу getDatasetConfiguration, который должен присутствовать в файле \classes\modules\название_модуля\__admin.php, описана на данной странице: api.umi-cms.ru
Обратите внимание, раздел "Модификация шаблона" актуален только для версий системы 2.7.4 и ниже.
При отображении данных в виде списка, отрабатывается шаблон 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, как это сделано для модуля "Новости".