/** * Load profile by name * @param string $file * @return boolean */ public function load($name) { /* Load profile under profiles root dir */ /* Load from profiles directory of assets namespace */ $profileFile = Zo2Factory::getPath('assets://profiles/' . $name . '.json'); /* If asked file is not exists than load default */ if ($profileFile == false) { $profileFile = Zo2Factory::getPath('assets://profiles/' . self::DEFAULT_PROFILE_NAME . '.json'); } /* Profile file is existed */ if ($profileFile) { Zo2Factory::addLog('Loading profile', $profileFile); /* Load profile data by use json file */ $this->loadFile($profileFile); // Layout $layout = $this->get('layout'); if (is_string($layout)) { $layout = json_decode($layout); $this->set('layout', $layout); } // Menu config $menu_config = $this->get('menu_config'); if (is_string($menu_config)) { $menu_config = json_decode($menu_config); $this->set('menu_config', $menu_config); } // Theme $theme = $this->get('theme'); if (is_string($theme)) { $theme = json_decode($theme); $this->set('theme', $theme); } $this->_profileFile = $profileFile; return $this->isValid(); } return false; }
/** * Do build asset file * @param type $assets * @param type $position * @param type $type */ private function _buildAssets($assets, $position, $type) { if (count($assets) > 0) { foreach ($assets as $inputName) { /* Zo2 assets */ if ($position == CORE) { $inputFile = Zo2Factory::getPath('zo2://assets/zo2/development/' . $type . '/' . $inputName, 'path'); } elseif ($position == TEMPLATE) { /* Template assets */ $inputFile = Zo2Factory::getPath('templates://assets/zo2/development/' . $type . '/' . $inputName, 'path'); } if ($inputFile) { if ($type == 'less') { $this->_compileLess($inputFile); } elseif ($type == 'js') { $this->_compileJs($inputFile); } } } } }
<?php $presetPath = Zo2Factory::getPath('templates://assets/presets.json'); if (file_exists($presetPath)) { $presets_defined = json_decode(file_get_contents($presetPath)); } $backgroundsDir = Zo2Factory::getPath('templates://assets/zo2/images/background-patterns'); $presetDir = Zo2Factory::getPath('templates://assets/zo2/css/'); $profile = Zo2Factory::getProfile(); $theme = new JObject($profile->get('theme')); ?> <div class="style-switcher switcher-left" id="style-switcher"> <h4>Style Switcher<span class="style-switcher-icon glyphicon glyphicon-cog"></span></h4> <input type="hidden" id="ss_position" value="hide" > <div class="switch-container"> <h5>Layout options</h5> <ul class="options layout-select"> <li class="boxed-layout" id="boxed-layout"><a class="boxed" href="#"><img src="<?php echo JUri::root(); ?> plugins/system/zo2/framework/assets/zo2/images/page-bordered.png" alt="Boxed Layout"></a></li> <li class="fullwidth-layout" id="fullwidth-layout"><a class="fullwidth" href="#"><img src="<?php echo JUri::root(); ?> plugins/system/zo2/framework/assets/zo2/images/page-fullwidth.png" alt="Full Width Layout"></a></li> </ul> <h5>Primary Color</h5> <ul class="options color-select"> <?php if (is_array($presets_defined)) {
?> > <?php echo Zo2Html::field('image', array('label' => JText::_('ZO2_ADMIN_GENERAL_LABEL_BACKGROUND_IMAGE'), 'description' => JText::_('ZO2_ADMIN_GENERAL_DESC_BACKGROUND_IMAGE'), 'class_wrap' => 'zo2-background-image', 'class' => 'zo2-background-image'), array('id' => 'zo2_background_image', 'name' => 'zo2_background_image', 'value' => $preset_data['bg_image'])); ?> <hr /> <div class="zo2_themes_label"> <?php echo JText::_('ZO2_TEMPLATE_THEME_PATTERN_BACKGROUND'); ?> </div> <div class="zo2_themes_for"> <ul class="options background-select"> <?php $zPath = Zo2Path::getInstance(); $backgroundsDir = Zo2Factory::getPath("templates://assets/zo2/images/background-patterns"); $bgPatterns = glob($backgroundsDir . '/*.*'); if (count($bgPatterns) > 0) { foreach ($bgPatterns as $pattern) { if (is_array(getimagesize($pattern))) { $selected = ''; $pattern_src = $zPath->toUrl($pattern); $pattern_path = str_replace(JPATH_ROOT . DIRECTORY_SEPARATOR, '', $pattern); if (isset($preset_data['bg_pattern']) && $pattern_path == $preset_data['bg_pattern']) { $selected = 'selected'; } echo '<li class="' . $selected . '"><img rel="' . $pattern_path . '" src="' . $pattern_src . '" /></li>'; } } } ?>
/** * Get array of exists profiles * @return \Zo2Profile */ public function getProfiles() { $templateProfiles = $this->_getProfiles(Zo2Factory::getPath('templates://assets/profiles/' . $this->template->id)); $defaultProfiles = $this->_getProfiles(Zo2Factory::getPath('templates://assets/profiles')); $profiles = array_merge($defaultProfiles, $templateProfiles); return array_unique($profiles); }