/**
  * 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);
 }