View file sys/plugins/classes/design.class.php

File size: 2.49Kb
<?php

/**
 * Дизайн. Конфигуратор шаблонизатора.
 */
class design extends native_templating {

    public $theme;

    function __construct() {
        parent::__construct();
        global $dcms, $user_language_pack, $user, $probe_theme;
        static $theme = false;
        if ($theme === false) {
            if (!empty($probe_theme) && themes::exists($probe_theme)) {
                $theme = themes::getConfig($probe_theme);
            } elseif (themes::exists($user->theme)) {
                // пользовательская тема оформления
                $theme = themes::getConfig($user->theme);
            } elseif (themes::exists($dcms->theme)) {
                // системная тема оформления
                $theme = themes::getConfig($dcms->theme);
            } elseif (($themes = themes::getList($dcms->browser_type))) {
                // тема оформления для типа браузера
                $theme = current($themes);
            } else {
                // любая тема оформления
                $theme = current(themes::getList());
                if (!$theme)
                    die('Не найдено ни одной совместимой темы оформления');
            }
        }

        $this->theme = $theme;

        // папка шаблонов
        $this->_dir_template = H . '/sys/themes/' . $theme['dir'] . '/tpl/';

        // системные переменные
        $this->assign('theme', $theme);
        $this->assign('dcms', $dcms);
        $this->assign('copyright', $dcms->copyright, 2);
        $this->assign('lang', $user_language_pack);
        $this->assign('user', $user);
        $this->assign('path', '/sys/themes/' . $theme['dir']);
    }

    /**
     * Максимальная ширина изображения в зависимости от типа браузера и параметров темы
     */
    function img_max_width() {
        global $dcms;
        return min($this->theme['img_width_max'], $dcms->img_max_width);
    }

    /**
     * Ищет путь к указанной иконке.
     * @param string $name Имя иконки
     * @return string Путь к иконке
     */
    function getIconPath($name) {
        if (!$name)
            return null;
        return $this->theme['icons'] . '/' . basename($name, '.png') . '.png';
    }

}

?>