Файл: system/controllers/admin/actions/index.php
Строк: 32
<?php
class actionAdminIndex extends cmsAction {
public function run(){
//
// формируем виджеты главной админки
//
$result_dashboard_blocks = [];
if(empty($this->options['dashboard_enabled'])){
$this->setOption('dashboard_enabled', []);
}
if(empty($this->options['dashboard_order'])){
$this->setOption('dashboard_order', []);
}
$dashboard_blocks = cmsEventsManager::hookAll('admin_dashboard_block', $this->options, array());
// по умолчанию порядок заведомо большой
$order_id = 1000;
foreach ($dashboard_blocks as $cname => $dashboard_block) {
// в одном хуке можно создавать несколько виджетов админки
// для этого хук должен вернуть массив виджетов
if(isset($dashboard_block['title'])){
$dashboard_block = [$dashboard_block];
}
foreach ($dashboard_block as $key => $sub_dashboard_block) {
if(!isset($sub_dashboard_block['name'])){
$sub_dashboard_block['name'] = $cname.'_'.$key;
}
if(isset($this->options['dashboard_order'][$sub_dashboard_block['name']])){
$order_id = $this->options['dashboard_order'][$sub_dashboard_block['name']];
}
$result_dashboard_blocks[$order_id] = $sub_dashboard_block;
if(!isset($this->options['dashboard_order'][$sub_dashboard_block['name']])){
$order_id += 1;
}
}
}
ksort($result_dashboard_blocks);
return $this->cms_template->render('index', array(
'dashboard_blocks' => $result_dashboard_blocks
));
}
}