Example #1
0
 /**
  * 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);
     }
 }
Example #2
0
$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;
Example #3
0
    /**
     *  Подменю пользователя + 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>', '&nbsp;<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>&nbsp;{{user_menu_profile}}', 'link' => E::User()->getProfileUrl()), 'create' => array('text' => '<i class="fa fa-pencil"></i>&nbsp;{{block_create}}', 'link' => '#', 'options' => array('data' => array('toggle' => 'modal', 'target' => '#modal-write'))), 'talk' => array('text' => array('<i class="fa fa-envelope-o"></i>&nbsp;{{user_privat_messages}}', '&nbsp;<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>&nbsp;{{user_menu_profile_wall}}', 'link' => E::User()->getProfileUrl() . 'wall/'), 'publication' => array('text' => '<i class="fa fa-file-o"></i>&nbsp;{{user_menu_publication}}', 'link' => E::User()->getProfileUrl() . 'created/topics/'), 'favourites' => array('text' => '<i class="fa fa-star-o"></i>&nbsp;{{user_menu_profile_favourites}}', 'link' => E::User()->getProfileUrl() . 'favourites/topics/'), 'settings' => array('text' => '<i class="fa fa-cogs"></i>&nbsp;{{user_settings}}', 'link' => '___path.root.url___/settings/'), 'userbar_item' => '', 'logout' => array('text' => '<i class="fa fa-sign-out"></i>&nbsp;{{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}}', '&nbsp;<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}}', '&nbsp;<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}}', '&nbsp;<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);
     }
 }
Example #5
0
 /**
  * @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;
 }
Example #6
0
 /**
  * Загрузка дерева изображений пользователя
  */
 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;
 }
Example #7
0
<?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
Example #8
0
 */
$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;