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