Example #1
0
File: view.php Project: venka10/RUS
 /**
  * Loads helpers, with their dependencies.
  *
  * @param array $loaded List of helpers that are already loaded.
  * @param array $helpers List of helpers to load.
  * @return array
  * @access protected
  */
 function &_loadHelpers(&$loaded, $helpers)
 {
     static $tags;
     $helpers[] = 'Session';
     if (empty($tags)) {
         $helperTags = new Helper();
         $tags = $helperTags->loadConfig();
     }
     foreach ($helpers as $helper) {
         $parts = preg_split('/\\/|\\./', $helper);
         if (count($parts) === 1) {
             $plugin = $this->plugin;
         } else {
             $plugin = Inflector::underscore($parts['0']);
             $helper = $parts[count($parts) - 1];
         }
         $helperCn = $helper . 'Helper';
         if (in_array($helper, array_keys($loaded)) !== true) {
             if (!class_exists($helperCn)) {
                 if (is_null($plugin) || !loadPluginHelper($plugin, $helper)) {
                     if (!loadHelper($helper)) {
                         $this->cakeError('missingHelperFile', array(array('helper' => $helper, 'file' => Inflector::underscore($helper) . '.php', 'base' => $this->base)));
                         exit;
                     }
                 }
                 if (!class_exists($helperCn)) {
                     $this->cakeError('missingHelperClass', array(array('helper' => $helper, 'file' => Inflector::underscore($helper) . '.php', 'base' => $this->base)));
                     exit;
                 }
             }
             $camelBackedHelper = Inflector::variable($helper);
             ${$camelBackedHelper} =& new $helperCn();
             ${$camelBackedHelper}->view =& $this;
             ${$camelBackedHelper}->tags = $tags;
             $vars = array('base', 'webroot', 'here', 'params', 'action', 'data', 'themeWeb', 'plugin');
             $c = count($vars);
             for ($j = 0; $j < $c; $j++) {
                 ${$camelBackedHelper}->{$vars[$j]} = $this->{$vars[$j]};
             }
             if (!empty($this->validationErrors)) {
                 ${$camelBackedHelper}->validationErrors = $this->validationErrors;
             }
             $loaded[$helper] =& ${$camelBackedHelper};
             if (isset(${$camelBackedHelper}->helpers) && is_array(${$camelBackedHelper}->helpers)) {
                 $loaded =& $this->_loadHelpers($loaded, ${$camelBackedHelper}->helpers);
             }
         }
     }
     return $loaded;
 }
Example #2
0
 /**
  * Load dependencies for given element (controller/component/helper)
  *
  * @param string $element Element to load dependency for
  * @access private
  */
 function __loadDependencies($element)
 {
     switch (low($element)) {
         case 'behavior':
             loadModel(null);
             loadBehavior(null);
             break;
         case 'controller':
             loadController(null);
             break;
         case 'component':
             loadComponent(null);
             break;
         case 'helper':
             uses('view' . DS . 'helper');
             loadHelper(null);
             break;
         case 'model':
             loadModel(null);
             break;
     }
 }
Example #3
0
/**
 * Loads a plugin's helper
 *
 * @param string $plugin Name of plugin
 * @param string $helper Name of helper to load
 * @return boolean Success
 * @deprecated
 */
function loadPluginHelper($plugin, $helper)
{
    loadHelper(null);
    if (!class_exists($helper . 'Helper')) {
        $helper = Inflector::underscore($helper);
        $file = APP . 'plugins' . DS . $plugin . DS . 'views' . DS . 'helpers' . DS . $helper . '.php';
        if (file_exists($file)) {
            require $file;
            return true;
        } else {
            return false;
        }
    }
    return true;
}