コード例 #1
0
ファイル: CroogoThemeTest.php プロジェクト: saydulk/croogo
 /**
  * testGetDataMixedManifest
  */
 public function testGetDataMixedManifest()
 {
     $data = $this->CroogoTheme->getData('MixedManifest');
     $keys = array_keys($data);
     sort($keys);
     $expected = array('name', 'regions', 'screenshot', 'settings', 'type', 'vendor');
     $this->assertEquals($expected, $keys);
     $this->assertEquals('MixedManifest', $data['name']);
     $this->assertEquals('croogo/mixed-manifest-theme', $data['vendor']);
 }
コード例 #2
0
 /**
  * beforeFilter
  *
  * @return void
  * @access public
  */
 public function beforeFilter()
 {
     parent::beforeFilter();
     $this->layout = 'install';
     $croogoTheme = new CroogoTheme();
     $data = $croogoTheme->getData($this->theme);
     $settings = $data['settings'];
     $this->set('themeSettings', $settings);
     $this->_generateAssets();
 }
コード例 #3
0
 /**
  * Constructor
  */
 public function __construct(View $View, $settings = array())
 {
     if (isset($View->viewVars['themeSettings'])) {
         $themeSettings = $View->viewVars['themeSettings'];
         $settings = Hash::merge(array('iconDefaults' => $themeSettings['iconDefaults'], 'icons' => $themeSettings['icons']), $settings);
     } else {
         $croogoTheme = new CroogoTheme();
         $themeData = $croogoTheme->getData();
         $themeSettings = $themeData['settings'];
         $settings = Hash::merge($themeSettings, $settings);
     }
     parent::__construct($View, $settings);
 }
コード例 #4
0
ファイル: CroogoFormHelper.php プロジェクト: saydulk/croogo
 /**
  * Constructor
  */
 public function __construct(View $View, $settings = array())
 {
     $themeConfig = CroogoTheme::config($View->theme);
     $themeSettings = $themeConfig['settings'];
     $settings = Hash::merge($themeSettings, $settings);
     parent::__construct($View, $settings);
 }
コード例 #5
0
ファイル: CroogoHelperTest.php プロジェクト: saydulk/croogo
 /**
  * setUp
  */
 public function setUp()
 {
     parent::setUp();
     $this->ComponentCollection = new ComponentCollection();
     $request = new CakeRequest('nodes/index');
     $request->params = array('controller' => 'nodes', 'action' => 'index', 'named' => array());
     $view = new View(new TheCroogoTestController($request, new CakeResponse()));
     $croogoTheme = new CroogoTheme();
     $data = $croogoTheme->getData();
     $settings = $data['settings'];
     $view->set('themeSettings', $settings);
     $this->Croogo = new CroogoHelper($view);
     $aclHelper = Configure::read('Site.acl_plugin') . 'Helper';
     $this->Croogo->Acl = $this->getMock($aclHelper, array('linkIsAllowedByRoleId'), array($view));
     $this->Croogo->Acl->expects($this->any())->method('linkIsAllowedByRoleId')->will($this->returnValue(true));
     $this->menus = CroogoNav::items();
     CroogoNav::clear();
 }
コード例 #6
0
    /**
     * Constructor
     */
    public function __construct(View $View, $settings = array())
    {
        if (isset($View->viewVars['themeSettings'])) {
            $themeSettings = $View->viewVars['themeSettings'];
            $settings = Hash::merge(array('iconDefaults' => $themeSettings['iconDefaults'], 'icons' => $themeSettings['icons']), $settings);
        } else {
            $croogoTheme = new CroogoTheme();
            $themeData = $croogoTheme->getData();
            $themeSettings = $themeData['settings'];
            $settings = Hash::merge($themeSettings, $settings);
        }
        parent::__construct($View, $settings);
        $themeCss = $themeSettings['css'];
        $boxIconClass = trim($settings['iconDefaults']['classDefault'] . ' ' . $settings['iconDefaults']['classPrefix'] . 'list');
        $this->_tags['beginbox'] = "<div class='{$themeCss['row']}'>\n\t\t\t\t<div class='{$themeCss['columnFull']}'>\n\t\t\t\t\t<div class='box'>\n\t\t\t\t\t\t<div class='box-title'>\n\t\t\t\t\t\t\t<i class='{$boxIconClass}'></i>\n\t\t\t\t\t\t\t%s\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<div class='box-content %s'>";
        $this->_tags['endbox'] = '</div>
					</div>
				</div>
			</div>';
        $this->_tags['icon'] = '<i class="%s"%s></i>';
    }
コード例 #7
0
ファイル: ThemeHelper.php プロジェクト: saydulk/croogo
 public function __construct(View $View, $settings = array())
 {
     $themeConfig = CroogoTheme::config($View->theme);
     $this->_themeSettings = $themeConfig['settings'];
     $this->_iconMap = $this->_themeSettings['icons'];
     $prefix = $View->request->param('prefix');
     if (isset($this->_themeSettings['prefixes'][$prefix]['helpers']['Html']['icons'])) {
         $this->_iconMap = Hash::merge($this->_iconMap, $this->_themeSettings['prefixes'][$prefix]['helpers']['Html']['icons']);
     }
     parent::__construct($View);
     $this->__setupDeprecatedViewVars();
 }
コード例 #8
0
ファイル: ExtShell.php プロジェクト: romaing/croogo-rg
 /**
  * Activate a theme
  *
  * @param string $theme Name of theme
  * @return boolean
  */
 protected function _activateTheme($theme = null)
 {
     if ($r = $this->_CroogoTheme->activate($theme)) {
         if (is_null($theme)) {
             $this->out(__('Theme deactivated successfully.'));
         } else {
             $this->out(__('Theme "%s" activated successfully.', $theme));
         }
     } else {
         $this->err(__('Theme "%s" activation failed.', $theme));
     }
     return true;
 }
コード例 #9
0
ファイル: CroogoHtmlHelper.php プロジェクト: saydulk/croogo
    /**
     * Constructor
     */
    public function __construct(View $View, $settings = array())
    {
        $themeConfig = CroogoTheme::config($View->theme);
        $themeSettings = $themeConfig['settings'];
        $settings = Hash::merge($themeSettings, $settings);
        parent::__construct($View, $settings);
        $themeCss = $themeSettings['css'];
        $boxIconClass = trim($settings['iconDefaults']['classDefault'] . ' ' . $settings['iconDefaults']['classPrefix'] . 'list');
        $this->_tags['beginbox'] = "<div class='{$themeCss['row']}'>\n\t\t\t\t<div class='{$themeCss['columnFull']}'>\n\t\t\t\t\t<div class='box'>\n\t\t\t\t\t\t<div class='box-title'>\n\t\t\t\t\t\t\t<i class='{$boxIconClass}'></i>\n\t\t\t\t\t\t\t%s\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<div class='box-content %s'>";
        $this->_tags['endbox'] = '</div>
					</div>
				</div>
			</div>';
        $this->_tags['icon'] = '<i class="%s"%s></i>';
    }
コード例 #10
0
 /**
  * Setup themes
  *
  * @return void
  */
 protected function _setupTheme()
 {
     $prefix = isset($this->request->params['prefix']) ? $this->request->params['prefix'] : '';
     if ($prefix === 'admin') {
         $theme = Configure::read('Site.admin_theme');
         if ($theme) {
             App::build(array('View/Helper' => array(App::themePath($theme) . 'Helper' . DS)));
         }
         $this->layout = 'admin';
     } else {
         $theme = Configure::read('Site.theme');
     }
     $this->theme = $theme;
     $croogoTheme = new CroogoTheme();
     $data = $croogoTheme->getData($theme);
     $settings = $data['settings'];
     if (empty($settings['prefixes']['admin']['helpers']['Croogo.Croogo'])) {
         $this->helpers[] = 'Croogo.Croogo';
     }
     if (isset($settings['prefixes'][$prefix])) {
         foreach ($settings['prefixes'][$prefix]['helpers'] as $helper => $settings) {
             $this->helpers[$helper] = $settings;
         }
     }
 }
コード例 #11
0
ファイル: ExtShell.php プロジェクト: dlpc/CakeWX
 /**
  * List themes
  */
 public function themes($theme = null)
 {
     $CroogoTheme = new CroogoTheme();
     $all = $this->params['all'];
     $current = Configure::read('Site.theme');
     $themes = $theme == null ? $CroogoTheme->getThemes() : array($theme);
     $this->out("Themes:", 2);
     $default = empty($current) || $current == 'default';
     $this->out(__d('croogo', '%-20s%-50s%s', __d('croogo', 'Theme'), __d('croogo', 'Author'), __d('croogo', 'Status')));
     $this->out(str_repeat('-', 80));
     foreach ($themes as $theme) {
         $active = $theme == $current || $default && $theme == 'default';
         $status = $active ? '<success>active</success>' : '<info>inactive</info>';
         if (!$active && !$all) {
             continue;
         }
         $data = $CroogoTheme->getThemeData($theme);
         $author = isset($data['author']) ? $data['author'] : '';
         $this->out(__d('croogo', '%-20s%-50s%s', $theme, $author, $status));
     }
 }
コード例 #12
0
ファイル: CroogoTheme.php プロジェクト: saydulk/croogo
 /**
  * Helper method to retrieve given $theme settings
  *
  * @param string $theme Theme name
  * @return array Theme configuration data
  */
 public static function config($theme = null)
 {
     static $croogoTheme = null;
     static $themeData = array();
     if ($croogoTheme === null) {
         $croogoTheme = new CroogoTheme();
     }
     if (empty($themeData[$theme])) {
         $data = $croogoTheme->getData($theme);
         $request = Router::getRequest();
         if ($request) {
             $prefix = $request->param('prefix');
             if (isset($data['settings']['prefixes'][$prefix]['css'])) {
                 $data['settings']['css'] = Hash::merge($data['settings']['prefixes'][$prefix]['css'], $data['settings']['css']);
             }
         }
         $themeData[$theme] = $data;
     }
     return $themeData[$theme];
 }
コード例 #13
0
ファイル: CroogoThemeTest.php プロジェクト: Demired/CakeWX
 /**
  * testGetThemes
  */
 public function testGetThemes()
 {
     $themes = $this->CroogoTheme->getThemes();
     $this->assertTrue(array_key_exists('Mytheme', $themes));
 }