Файл: system/controllers/admin/actions/widgets_load.php
Строк: 15
<?php
class actionAdminWidgetsLoad extends cmsAction {
public function run() {
if (!$this->request->isAjax()) {
cmsCore::error404();
}
$page_id = $this->request->get('page_id', 0);
$template = $this->request->get('template', '');
$tpls = cmsCore::getTemplates();
if (!$template || !in_array($template, $tpls)) {
$template = cmsConfig::get('template');
}
$page_ids = [0];
if ($page_id) {
$page_ids[] = $page_id;
$page = $this->model_widgets->getPage($page_id);
if ($page) {
// имитируем uri
if ($page['url_mask']) {
$page['url_mask'] = explode("n", $page['url_mask']);
$uri = str_replace(array(
'%','*','{slug}'
), array(
'000','ab/c_','abc-0'
), trim($page['url_mask'][0]));
$matched_pages = $this->cms_core->detectMatchedWidgetPages($this->cms_core->getWidgetsPages(), $uri);
if($matched_pages){
foreach (array_keys($matched_pages) as $pid) {
$page_ids[] = $pid;
}
$page_ids = array_unique($page_ids);
}
}
}
}
$scheme = $this->model_widgets->getWidgetBindingsScheme($page_id, $page_ids, $template);
$this->cms_template->renderJSON(array(
'is_exists' => ($scheme !== false),
'scheme' => $scheme
));
}
}