File size: 7.97Kb
<?php
class onKtplEngineStart extends cmsAction {
public function run(){
$core = cmsCore::getInstance();
$template = cmsTemplate::getInstance();
if($core->uri_controller == 'admin') return false;
$link = $this->cms_config->host . $this->cms_config->upload_root;
if($this->options['awesome_on']) $template->addCSS('templates/ktpl/controllers/ktpl/awesome/css/font-awesome.min.css', false);
$template->addCSS("templates/ktpl/controllers/ktpl/styler.css", false);
$template->addCSS("ktpl/set_styles", false);
if($this->options['yw_bg_color'] && $this->options['yw_image']) $template->addHead('<meta name="yandex-tableau-widget" content="logo=' . $link . $this->options['yw_image']['original'] . ', color=' . $this->options['yw_bg_color'] . '" />');
if($this->options['main_head']) $template->addHead($this->options['main_head']);
if($this->options['favicon']) {
$template->addHead('<link rel="icon" href="' . $link . $this->options['favicon']['original'] . '" type="image/png" sizes="16x16" />');
$template->addHead('<link rel="shortcut icon" href="' . $link . $this->options['favicon']['original'] . '" type="image/x-icon" />');
}
if($this->options['favicon_32']) $template->addHead('<link rel="icon" href="' . $link . $this->options['favicon_32']['original'] . '" type="image/png" sizes="32x32" />');
if($this->options['favicon_96']) $template->addHead('<link rel="icon" href="' . $link . $this->options['favicon_96']['original'] . '" type="image/png" sizes="96x96" />');
if($this->options['favicon_192']) $template->addHead('<link rel="icon" href="' . $link . $this->options['favicon_192']['original'] . '" type="image/png" sizes="192x192" />');
if($this->options['win_color']) $template->addHead('<meta name="msapplication-TileColor" content="' . $this->options['win_color'] . '" />');
if($this->options['win_70']) $template->addHead('<meta name="msapplication-square70x70logo" content="' . $link . $this->options['win_70']['original'] . '" />');
if($this->options['win_144']) $template->addHead('<meta name="msapplication-TileImage" content="' . $link . $this->options['win_144']['original'] . '" />');
if($this->options['win_150']) $template->addHead('<meta name="msapplication-square150x150logo" content="' . $link . $this->options['win_150']['original'] . '" />');
if($this->options['win_310x150']) $template->addHead('<meta name="msapplication-wide310x150logo" content="' . $link . $this->options['win_310x150']['original'] . '" />');
if($this->options['win_310']) $template->addHead('<meta name="msapplication-square310x310logo" content="' . $link . $this->options['win_310']['original'] . '" />');
if($this->options['apple_icon_57']) $template->addHead('<link rel="apple-touch-icon" sizes="57x57" href="' . $link . $this->options['apple_icon_57']['original'] . '" />');
if($this->options['apple_icon_60']) $template->addHead('<link rel="apple-touch-icon" sizes="60x60" href="' . $link . $this->options['apple_icon_60']['original'] . '" />');
if($this->options['apple_icon_72']) $template->addHead('<link rel="apple-touch-icon" sizes="72x72" href="' . $link . $this->options['apple_icon_72']['original'] . '" />');
if($this->options['apple_icon_76']) $template->addHead('<link rel="apple-touch-icon" sizes="76x76" href="' . $link . $this->options['apple_icon_76']['original'] . '" />');
if($this->options['apple_icon_114']) $template->addHead('<link rel="apple-touch-icon" sizes="114x114" href="' . $link . $this->options['apple_icon_114']['original'] . '" />');
if($this->options['apple_icon_120']) $template->addHead('<link rel="apple-touch-icon" sizes="120x120" href="' . $link . $this->options['apple_icon_120']['original'] . '" />');
if($this->options['apple_icon_144']) $template->addHead('<link rel="apple-touch-icon" sizes="144x144" href="' . $link . $this->options['apple_icon_144']['original'] . '" />');
if($this->options['apple_icon_152']) $template->addHead('<link rel="apple-touch-icon" sizes="152x152" href="' . $link . $this->options['apple_icon_152']['original'] . '" />');
if($this->options['apple_icon_180']) $template->addHead('<link rel="apple-touch-icon" sizes="180x180" href="' . $link . $this->options['apple_icon_180']['original'] . '" />');
if($this->options['tpl']){
$select = string_parse_list($this->options['tpl']);
foreach ($select as $item) {
if(!isset($item['id'])){
if($core->uri == ''){
if(count(explode('/', $item['value'])) == 2){
$item['value'] = explode('/', $item['value']);
$curr_name = $template->name;
$template->setName($item['value'][0]);
$template->setLayout($item['value'][1]);
$template->setInheritNames(array($curr_name, $item['value'][0]));
} else {
$curr_name = $template->name;
$template->setName($item['value']);
$template->setInheritNames(array($curr_name, $item['value']));
}
}
} else {
if(count(explode('/', $item['id'])) == 2){
$item['id'] = explode('/', $item['id']);
if(string_in_mask_list($core->uri, $item['value'])){
$curr_name = $template->name;
$template->setName($item['id'][0]);
$template->setLayout($item['id'][1]);
$template->setInheritNames(array($curr_name, $item['id'][0]));
}
} elseif(string_in_mask_list($core->uri, $item['value'])){
$curr_name = $template->name;
$template->setName($item['id']);
$template->setInheritNames(array($curr_name, $item['id']));
}
}
}
}
if($this->options['skins']){
$skins = files_tree_to_array('templates/ktpl/skins/');
if($skins) {
foreach($skins as $key=>$skin) {
$skin_arr[$key] = $key;
}
$skins = $skin_arr;
$select = string_parse_list($this->options['skins']);
$core = cmsCore::getInstance();
$template = cmsTemplate::getInstance();
foreach ($select as $item) {
if(isset($item['id'])) {
$value = $item['id'];
$url_mask = $item['value'];
} else {
$value = $item['value'];
$url_mask = false;
}
if(!in_array($value, $skins)) continue;
if(($url_mask && string_in_mask_list($core->uri, $url_mask)) || !$url_mask){
$template->addCSS("templates/ktpl/skins/" . $value . "/styles.css", false);
$template->addJs("templates/ktpl/skins/" . $value . "/script.js", false, false);
}
}
}
}
//Redirect
if($this->options['redirect']){
$all_reg = string_parse_list($this->options['redirect']);
foreach ($all_reg as $reg) {
if(!isset($reg['id'])){
$reg['id'] = $reg['value'];
$reg['value'] = href_to_home();
}
if (string_in_mask_list($_SERVER['REQUEST_URI'], $reg['id'])) {
$regular = '/' . string_mask_to_regular($reg['id']) . '/';
$replace = preg_replace($regular, $reg['value'], $_SERVER['REQUEST_URI']);
$this->redirect($replace, 301);
}
}
}
$user = cmsUser::getInstance();
if(!$user->id) {
$core = cmsCore::getInstance();
if (in_array($core->uri_controller, $this->options['ctypes_guest_pub']) && !empty($this->options['guest_id'])) {
if($core->uri_action == 'add') {
$user->id = $this->options['guest_id'];
$profile = cmsCore::getModel('users')->getUser($user->id);
$user->perms = cmsUser::getPermissions($profile['groups']);
}
if (strstr($core->uri_action, '.html')) {
$user->id = $this->options['guest_id'];
$profile = cmsCore::getModel('users')->getUser($user->id);
$user->perms = cmsUser::getPermissions($profile['groups']);
}
}
}
}
}