<?php
goweb::loadClass('Zend_View_Helper_Action');
/**
 * Goweb Sitemanager 5 Framework
 *
 * Helper para o carregamento de componentes
 *
 * @version    5.0.0
 * @category   Goweb
 * @package    Goweb_View_Helper_GetCss
 * @author     I&D <dev@goweb.pt>, Pedro Pinto <ppinto@goweb.pt>
 * @copyright  2009 (c) Goweb (http://www.goweb.pt)
 *
 *
 */

class Goweb_View_Helper_Component extends Zend_View_Helper_Action{

    /**
     * Carregamento de componentes
     *
     * @param String $path
     * @return String
     */
    public function Component($path){
        if (strstr($path, '?')) {
            $path = substr($path, 0, strpos($path, '?'));
        }
        $path = explode('/', trim($path, '/'));

        /**
         * O controller vem sempre em primero no URI e a action em segundo:
         */
        $controller = $path[0];
        $action     = isset($path[1]) ? $path[1] : null;

        /**
         * Se nenhum controller foi passado o controller passa a ser IndexController::index()
         */
        if (!strlen($controller)) {
           $controller = 'index';
           $action = 'index';
        }

        /**
         * O paremetros opcionais vem a seguir e sco guardados num array com o formato $chave => $valor
         */
        $params = array();
        for ($i=2; $i<sizeof($path); $i=$i+2) {
            $params[$path[$i]] = isset($path[$i+1]) ? $path[$i+1] : null;
        }
        $params['directRequest'] = false;

        //$controllerName = $this->_formatControllerName($controller);
        //$actionName = $this->_formatActionName($action);
        $return = $this->action($action, $controller, null, $params);
        //goweb::dump($return);
        //exit();
        return $return;
    }
}
