/** * Initialization of skin * */ protected function _initSkin() { $this->sViewSkin = $this->GetConfigSkin(); // Load skin's config $aConfig = array(); Config::ResetLevel(Config::LEVEL_SKIN); $aSkinConfigPaths['sSkinConfigCommonPath'] = Config::Get('path.smarty.template') . '/settings/config/'; $aSkinConfigPaths['sSkinConfigAppPath'] = Config::Get('path.dir.app') . F::File_LocalPath($aSkinConfigPaths['sSkinConfigCommonPath'], Config::Get('path.dir.common')); // Может загружаться основной конфиг скина, так и внешние секции конфига, // которые задаются ключом 'config_load' // (обычно это 'classes', 'assets', 'jevix', 'widgets', 'menu') $aConfigNames = array('config') + F::Str2Array(Config::Get('config_load')); // Config section that are loaded for the current skin $aSkinConfigNames = array(); // ** Old skin version compatibility $oSkin = E::ModuleSkin()->GetSkin($this->sViewSkin); if (!$oSkin || !$oSkin->GetCompatible() || $oSkin->SkinCompatible('1.1', '<')) { // 'head.default' may be used in skin config C::Set('head.default', C::Get('assets.default')); } // Load configs from paths foreach ($aConfigNames as $sConfigName) { foreach ($aSkinConfigPaths as $sPath) { $sFile = $sPath . $sConfigName . '.php'; if (F::File_Exists($sFile)) { $aSubConfig = F::IncludeFile($sFile, false, true); if ($sConfigName != 'config' && !isset($aSubConfig[$sConfigName])) { $aSubConfig = array($sConfigName => $aSubConfig); } elseif ($sConfigName == 'config' && isset($aSubConfig['head'])) { // ** Old skin version compatibility $aSubConfig['assets'] = $aSubConfig['head']; unset($aSubConfig['head']); } // загружаем конфиг, что позволяет сразу использовать значения // в остальных конфигах скина (assets и кастомном config.php) через Config::Get() Config::Load($aSubConfig, false, null, null, $sFile); if ($sConfigName != 'config' && !isset($aSkinConfigNames[$sConfigName])) { $aSkinConfigNames[$sConfigName] = $sFile; } } } } if (!$oSkin || !$oSkin->GetCompatible() || $oSkin->SkinCompatible('1.1', '<')) { // 'head.default' may be used in skin config C::Set('head.default', false); } Config::ResetLevel(Config::LEVEL_SKIN_CUSTOM); $aStorageConfig = Config::ReadStorageConfig(null, true); // Reload sections changed by user if ($aSkinConfigNames) { foreach (array_keys($aSkinConfigNames) as $sConfigName) { if (isset($aStorageConfig[$sConfigName])) { if (empty($aConfig)) { $aConfig[$sConfigName] = $aStorageConfig[$sConfigName]; } else { $aConfig = F::Array_MergeCombo($aConfig, array($sConfigName => $aStorageConfig[$sConfigName])); } } } } // Checks skin's config from users settings $sUserConfigKey = 'skin.' . $this->sViewSkin . '.config'; $aUserConfig = Config::Get($sUserConfigKey); if ($aUserConfig) { if (!$aConfig) { $aConfig = $aUserConfig; } else { $aConfig = F::Array_MergeCombo($aConfig, $aUserConfig); } } if ($aConfig) { Config::Load($aConfig, false, null, null, $sUserConfigKey); } // Check skin theme and set one in config if it was changed if ($this->GetConfigTheme() != Config::Get('view.theme')) { Config::Set('view.theme', $this->GetConfigTheme()); } // Load lang files for skin E::ModuleLang()->LoadLangFileTemplate(E::ModuleLang()->GetLang()); // Load template variables from config if (($aVars = Config::Get('view.assign')) && is_array($aVars)) { $this->Assign($aVars); } }
$config['view']['show_rating'] = false; /** * Вид меню типов контента на странице создания * топика возможны варианты: * - simple: элементы меню располагаются в строку; * - collapsed: элементы располагаются в строку, но "лишние" при этом сворачиваются в выпадающее меню; * - select: элементы выводятся в виде выпадающего списка. */ $config['view']['content_type_menu'] = 'simple'; /* * Настройка логотипа, который будет показываться в "шапке" сайта * * Если указан $config['view']['header']['logo']['file'], то в качестве логотипа берется файл с указанным именем * из папки /common/templates/skin/experience/assets/images/ * * Если указан $config['view']['header']['logo']['url'], то в качестве лого подставляется изображение по указанному URL * * Если ни один из этих параметров не указан (закомментирован), то графический логотип не выводится * * Если указан $config['view']['header']['logo']['name'], то на месте лого выводится заданный текст * (если задан графический логотип, то текстовый будет выводиться после него). Можно указать любой текст в кавычках, * например, так: * $config['view']['header']['logo']['name'] = 'Это мой сайт'; */ $config['view']['header']['logo']['file'] = 'logo.png'; //$config['view']['header']['logo']['url'] = 'http://site.com/logo.png'; $config['view']['header']['logo']['name'] = Config::Get('view.name'); $config['module']['user']['profile_photo_size'] = '240x'; C::Set('module.uploader.images.profile_avatar.size', array('great' => '224x224crop', 'huge' => '150x150crop', 'large' => '128x128crop', 'big' => '85x85crop', 'medium' => '48x48crop', 'small' => '32x32crop', 'mini' => '24x24crop', 'micro' => '16x16crop')); $config['module']['uploader']['images']['profile_photo']['size'] = array('default' => '240x240crop'); return $config;
/** * Подменю пользователя + experience */ $config['data']['toolbar_userbar'] = array('init' => array('fill' => array('list' => array('*'))), 'description' => '{{menu_toolbar_userbar_description}}', 'class' => 'dropdown-menu dropdown-user-menu animated fadeIn', 'list' => array('user' => array('text' => '<span><i class="fa fa-user"></i></span><span>{{user_menu_profile}}</span>', 'link' => E::User()->getProfileUrl(), 'options' => array('class' => 'fixed-item')), 'favourites' => array('text' => '<span><i class="fa fa-star"></i></span><span>{{user_menu_profile_favourites}}</span>', 'link' => E::User()->getProfileUrl() . 'favourites/topics/', 'options' => array('class' => 'fixed-item')), 'talk' => array('text' => array('<span><i class="fa fa-envelope"></i></span><span>{{user_privat_messages}}</span>', ' <span class="new-messages">', 'new_talk_string' => array(), '</span>'), 'link' => Router::GetPath('talk'), 'options' => array('link_id' => 'new_messages', 'class' => 'fixed-item')), 'settings' => array('text' => '<span><i class="fa fa-cog"></i></span><span>{{user_settings}}</span>', 'link' => '___path.root.url___/settings/', 'options' => array('class' => 'fixed-item')), 'toolbar_userbar_item' => '', 'logout' => array('text' => '<span><i class="fa fa-sign-out"></i></span><span>{{exit}}</span>', 'link' => Router::GetPath('login') . 'exit/?security_key=' . E::Security_GetSecurityKey(), 'options' => array('class' => 'fixed-item')))); /** * Подменю пользователя + experience */ $config['data']['userbar'] = array('class' => 'dropdown-menu dropdown-user-menu animated fadeIn', 'list' => array('pre' => array('text' => FALSE, 'link' => FALSE, 'options' => array('class' => 'user_activity_items'), 'submenu' => 'userinfo'), 'user' => array('text' => '<i class="fa fa-user"></i> {{user_menu_profile}}', 'link' => E::User()->getProfileUrl()), 'create' => array('text' => '<i class="fa fa-pencil"></i> {{block_create}}', 'link' => '#', 'options' => array('data' => array('toggle' => 'modal', 'target' => '#modal-write'))), 'talk' => array('text' => array('<i class="fa fa-envelope-o"></i> {{user_privat_messages}}', ' <span class="new-messages">', 'new_talk_string' => array(), '</span>'), 'link' => Router::GetPath('talk'), 'options' => array('link_id' => 'new_messages')), 'wall' => array('text' => '<i class="fa fa-bars"></i> {{user_menu_profile_wall}}', 'link' => E::User()->getProfileUrl() . 'wall/'), 'publication' => array('text' => '<i class="fa fa-file-o"></i> {{user_menu_publication}}', 'link' => E::User()->getProfileUrl() . 'created/topics/'), 'favourites' => array('text' => '<i class="fa fa-star-o"></i> {{user_menu_profile_favourites}}', 'link' => E::User()->getProfileUrl() . 'favourites/topics/'), 'settings' => array('text' => '<i class="fa fa-cogs"></i> {{user_settings}}', 'link' => '___path.root.url___/settings/'), 'userbar_item' => '', 'logout' => array('text' => '<i class="fa fa-sign-out"></i> {{exit}}', 'link' => Router::GetPath('login') . 'exit/?security_key=' . E::Security_GetSecurityKey()))); } if (E::IsUser()) { $config['data']['userinfo'] = array('init' => array('fill' => array('list' => array('*'))), 'description' => 'Индикаторы пользователя', 'list' => array('user_rating' => array('text' => array('user_rating' => array('<i class="fa fa-bar-chart-o"></i>', 'negative')), 'link' => E::User()->getProfileUrl(), 'options' => array('class' => 'menu-item-user-rating')), 'user_comments' => array('text' => array('count_track' => array('<i class="fa fa-bullhorn"></i>')), 'link' => Router::GetPath('feed') . 'track/', 'options' => array('class' => 'menu-item-user-comments')), 'user_mails' => array('text' => array('new_talk_string' => array('<i class="fa fa-envelope-o"></i>')), 'link' => Router::GetPath('talk'), 'options' => array('class' => 'menu-item-user-talks')))); } /** * Меню топиков */ C::Set('menu.data.topics.discussed.text', array('{{blog_menu_all_discussed}}', ' <i class="caret"></i>')); $config['data']['topics'] = array('class' => 'menu-topics', 'list' => array('good' => array('active' => array('topic_kind' => array('good')), 'options' => array('class' => 'menu-topics-good')), 'new' => array('text' => array('{{blog_menu_all_new}}', 'new_topics_count' => array('red')), 'options' => array('class' => 'menu-topics-new', 'link_title' => '{{blog_menu_top_period_24h}}')), 'newall' => array('options' => array('class' => 'menu-topics-all', 'link_title' => '{{blog_menu_top_period_24h}}')), 'feed' => array('options' => array('class' => 'menu-topics-feed role-guest-hide')), 'discussed' => array('text' => array('{{blog_menu_all_discussed}}', ' <i class="caret"></i>'), 'submenu' => 'discussed', 'options' => array('class' => 'dropdown menu-topics-discussed', 'link_data' => array('toggle' => 'dropdown'))))); if (C::Get('rating.enabled')) { $config['data']['topics']['list']['top'] = array('text' => array('{{blog_menu_all_top}}', ' <i class="caret"></i>'), 'submenu' => 'top', 'options' => array('class' => 'dropdown menu-topics-top', 'link_data' => array('toggle' => 'dropdown'))); } /** * Подменю обсуждаемых */ $config['data']['discussed'] = array('class' => 'dropdown-menu dropdown-content-menu animated fadeIn'); if (C::Get('rating.enabled')) { /** * Подменю топовых */ $config['data']['top'] = array('init' => array('fill' => array('list' => array('*'))), 'class' => 'dropdown-menu dropdown-content-menu animated fadeIn', 'list' => array('24h' => array('text' => '{{blog_menu_top_period_24h}}', 'link' => '___path.root.url___/index/top/?period=1', 'active' => array('compare_get_param' => array('period', 1))), '7d' => array('text' => '{{blog_menu_top_period_7d}}', 'link' => '___path.root.url___/index/top/?period=7', 'active' => array('compare_get_param' => array('period', 7))), '30d' => array('text' => '{{blog_menu_top_period_30d}}', 'link' => '___path.root.url___/index/top/?period=30', 'active' => array('compare_get_param' => array('period', 30))), 'all' => array('text' => '{{blog_menu_top_period_all}}', 'link' => '___path.root.url___/index/top/?period=all', 'active' => array('compare_get_param' => array('period', 'all'))))); } $config['data']['image_insert'] = array('list' => array('insert_from_pc' => false, 'insert_from_link' => false));
public function renderInitStart() { if (C::Get('plugin.sandbox.widget_stream_split')) { // В шаблоне виджета идет обращение к тестовке через массив, поэтому такой хак E::ModuleLang()->AddMessage('widget_stream_comments_sandbox', E::ModuleLang()->Get('plugin.sandbox.widget_stream_comments_sandbox')); E::ModuleLang()->AddMessage('widget_stream_topics_sandbox', E::ModuleLang()->Get('plugin.sandbox.widget_stream_topics_sandbox')); $aStreamWidgetItems = C::Get('widgets.stream.params.items'); $aStreamWidgetItems['comments_sandbox'] = array('text' => 'widget_stream_comments_sandbox', 'type' => 'comment_sandbox'); $aStreamWidgetItems['topics_sandbox'] = array('text' => 'widget_stream_topics_sandbox', 'type' => 'topic_sandbox'); C::Set('widgets.stream.params.items', $aStreamWidgetItems); } }
/** * @return null|string */ protected function RssPersonalBlog() { $sUserLogin = $this->GetParam(0); $aParams = $this->GetParams(); array_shift($aParams); if ($iMaxItems = intval(C::Get('module.topic.max_rss_count'))) { C::Set('module.topic.per_page', $iMaxItems); } $oUser = E::ModuleUser()->GetUserByLogin($sUserLogin); if ($oUser && ($oBlog = E::ModuleBlog()->GetPersonalBlogByUserId($oUser->getId()))) { E::ModuleHook()->AddHandler('action_after', array($this, 'ShowRssBlog')); return R::Action('blog', $oBlog->getId(), $aParams); } else { $this->_displayEmptyRss(); } return null; }
/** * Загрузка дерева изображений пользователя */ protected function EventImageManagerLoadTree() { // Менеджер изображений может запускаться в том числе и из админки // Если передано название скина админки, то используем его, если же // нет, то ту тему, которая установлена для сайта if (($sAdminTheme = F::GetRequest('admin')) && E::IsAdmin()) { C::Set('view.skin', $sAdminTheme); } $sPath = ($iUserId = (int) F::GetRequest('profile', FALSE)) ? 'actions/profile/created_photos/' : 'modals/insert_img/'; if ($iUserId && E::ModuleUser()->GetUserById($iUserId)) { C::Set('menu.data.profile_images.uid', $iUserId); } else { $iUserId = false; } if ($iUserId) { $aVars = array('iUserId' => $iUserId); $sCategories = E::ModuleViewer()->GetLocalViewer()->Fetch("{$sPath}inject.categories.tpl", $aVars); } else { $sCategories = E::ModuleViewer()->GetLocalViewer()->Fetch("{$sPath}inject.categories.tpl"); } E::ModuleViewer()->AssignAjax('categories', $sCategories); return FALSE; }
<?php $config['smarty']['dir']['templates'] = array('themes' => '___path.skins.dir___/___view.skin___/themes/', 'tpls' => '___path.skins.dir___/___view.skin___/tpls/'); /* Theme */ //$config['view']['theme'] = 'default'; $config['view']['theme'] = 'light'; //$config['view']['theme'] = 'green'; //$config['view']['theme'] = 'red'; /* Top bar fixed or static */ //$config['view']['header']['top'] = 'static'; // static or fixed $config['view']['header']['top'] = 'fixed'; // static or fixed // Использовать или нет плавающую шапку редактора $config['view']['float_editor'] = true; /* Banner under top bar - turn on/off */ $config['view']['header']['banner'] = true; // Relative path from skin dir OR absolute path on disk OR URL $config['view']['header']['logo'] = Config::Get('path.skin.url') . 'themes/___view.theme___/img/favicon.png'; $config['view']['header']['name'] = 'START<span>KIT</span>'; $config['head']['default']['js'] = Config::Get('head.default.js'); $config['head']['default']['js'][] = '___path.skin.dir___/assets/js/template.js'; /* Bootstrap */ $config['head']['default']['js']['___path.frontend.dir___/bootstrap-3/js/bootstrap.min.js'] = array('name' => 'bootstrap'); $config['head']['default']['css'] = array('___path.frontend.dir___/bootstrap-3/css/bootstrap.min.css', '___path.skin.dir___/assets/css/base.css', '___path.frontend.dir___/libs/vendor/markitup/skins/default/style.css', '___path.frontend.dir___/libs/vendor/markitup/sets/default/style.css', '___path.frontend.dir___/libs/vendor/jcrop/jquery.Jcrop.css', '___path.frontend.dir___/libs/vendor/prettify/prettify.css', '___path.frontend.dir___/libs/vendor/nprogress/nprogress.css', '___path.frontend.dir___/libs/vendor/syslabel/syslabel.css', '___path.frontend.dir___/libs/vendor/prettyphoto/css/prettyphoto.css', '___path.skin.dir___/assets/css/smoothness/jquery-ui.css', '___path.skin.dir___/assets/css/responsive.css', '___path.skin.dir___/assets/css/default.css', '___path.skin.dir___/themes/___view.theme___/style.css', '___path.skin.dir___/assets/icons/css/fontello.css', '___path.skin.dir___/assets/css/tinymce.css' => array('name' => 'template-tinymce.css', 'prepare' => true, 'merge' => false)); C::Set('module.uploader.images.profile_avatar.size', array('large' => 100, 'big' => 64, 'medium' => 48, 'small' => 36, 'mini' => 24)); return $config; // EOF
*/ $config['view']['fix_menu'] = true; // Использовать или нет плавающую шапку редактора $config['view']['float_editor'] = true; /** * Показывать рейтинг топика всем * - false (рейтинг видят только прогосовавшие - первый вариант); * - true(рейтинг видят все - второй вариант) */ $config['view']['show_rating'] = false; /* * Настройка логотипа, который будет показываться в "шапке" сайта * * Если указан $config['view']['header']['logo']['file'], то в качестве логотипа берется файл с указанным именем * из папки /common/templates/skin/experience/assets/images/ * * Если указан $config['view']['header']['logo']['url'], то в качестве лого подставляется изображение по указанному URL * * Если ни один из этих параметров не указан (закомментирован), то графический логотип не выводится * * Если указан $config['view']['header']['logo']['name'], то на месте лого выводится заданный текст * (если задан графический логотип, то текстовый будет выводиться после него). Можно указать любой текст в кавычках, * например, так: * $config['view']['header']['logo']['name'] = 'Это мой сайт'; */ $config['view']['header']['logo']['file'] = 'logo.png'; //$config['view']['header']['logo']['url'] = 'http://site.com/logo.png'; $config['view']['header']['logo']['name'] = Config::Get('view.name'); $config['module']['user']['profile_photo_size'] = '222x'; C::Set('module.uploader.images.profile_avatar.size', array('large' => '100x100crop', 'big' => '64x64crop', 'medium' => '50x50crop', 'small' => '24x24crop', 'mini' => '16x16crop')); return $config;