Example #1
0
 /**
  * Loads the requested $helper if it is not already. Returns a boolean
  * to indicate success.
  * @param string $name
  * @param mixed $plugin string with dot at the end or null
  * @return boolean
  * @access protected
  */
 protected function _loadHelper($name, $plugin = null)
 {
     if ($this->_isHelperLoaded($name)) {
         return true;
     }
     $this->View->loaded = am($this->View->loaded, $this->View->_loadHelpers($this->View->loaded, array($plugin . $name)));
     return $this->_isHelperLoaded($name);
 }
Example #2
0
 public function &_loadHelpers(&$loaded, $helpers, $parent = null)
 {
     $loaded = parent::_loadHelpers($loaded, $helpers, $parent);
     if (isset($loaded['ExtendedHtml'])) {
         $loaded['Html'] = $loaded['ExtendedHtml'];
         unset($loaded['ExtendedHtml']);
     }
     if (isset($loaded['ExtendedForm'])) {
         $loaded['Form'] = $loaded['ExtendedForm'];
         unset($loaded['ExtendedForm']);
     }
     return $loaded;
 }
Example #3
0
 /**
  * 
  * 
  * @access public
  */
 function &_loadHelpers(&$loaded, $helpers, $parent = null)
 {
     $layout_scheme = $this->getVar('layout_scheme');
     if (empty($layout_scheme)) {
         trigger_error('TypeView::_loadHelpers() - `layout_scheme` was not send to view by controller.');
         return parent::_loadHelpers($loaded, $helpers, $parent);
     }
     $c_layout_scheme = Inflector::camelize($layout_scheme);
     $helpers_list = $helpers;
     foreach ($helpers_list as $helper => $params) {
         if (is_string($helper) && strpos($helper, '*') !== false) {
             $real_helper = str_replace('*', $c_layout_scheme, $helper);
             $helpers[$real_helper] = $params;
             //reformula o vetor colocando com o nome verdadeiro e os parametros
             unset($helpers[$helper]);
             //desseta a chave que tem o asterisco
             $helper = $real_helper;
         } else {
             unset($helpers[$helper]);
             $helpers[$helper] = $params;
         }
         $res = array_search($helper, $helpers);
         // tira a string simples se ela existir
         if ($res != false) {
             unset($helpers[$res]);
         }
     }
     $loaded_helpers =& parent::_loadHelpers($loaded, $helpers, $parent);
     foreach ($helpers as $helper_name => $helper) {
         if (isset($helper['name'])) {
             if (strpos($helper_name, '.') !== false) {
                 list($plugin, $helper_name) = explode('.', $helper_name);
                 //tirando o nome do plugin, para poder acessar o helper carregado
             }
             if (isset($loaded_helpers[$helper_name])) {
                 $loaded_helpers[$helper['name']] =& $loaded_helpers[$helper_name];
                 if (isset($loaded[$parent])) {
                     $loaded[$parent]->{$helper['name']} =& $loaded_helpers[$helper_name];
                 }
             }
         }
     }
     return $loaded_helpers;
 }
Example #4
0
 /**
  * testElementCacheHelperNoCache method
  *
  * @access public
  * @return void
  */
 function testElementCacheHelperNoCache()
 {
     $Controller = new ViewPostsController();
     $View = new View($Controller);
     $empty = array();
     $helpers = $View->_loadHelpers($empty, array('cache'));
     $View->loaded = $helpers;
     $result = $View->element('test_element', array('ram' => 'val', 'test' => array('foo', 'bar')));
     $this->assertEqual($result, 'this is the test element');
 }
Example #5
0
File: Mi.php Project: razzman/mi
 /**
  * loadHelpers method
  *
  * For any MiHelper (except miCache) make it available in the views as $helper
  * Reference: http://bin.cakephp.org/saved/40115 Thankye ADmad
  *
  * @param mixed $loaded
  * @param mixed $helpers
  * @param mixed $parent null
  * @return void
  * @access protected
  */
 public function &_loadHelpers(&$loaded, $helpers, $parent = null)
 {
     if (!$parent) {
         if (in_array('Paginator', $helpers)) {
             $helpers[] = 'Mi.MiPaginator';
         }
     }
     $loaded = parent::_loadHelpers($loaded, $helpers, $parent);
     if (!$parent) {
         foreach (array_keys($loaded) as $helper) {
             if ($helper === 'Mi.MiCache') {
                 continue;
             }
             if (preg_match('/^Mi([A-Z].*)/', $helper, $match)) {
                 $loaded[$match[1]] = $loaded[$helper];
                 unset($loaded[$helper]);
             }
         }
     }
     return $loaded;
 }