-- vadim gavrilov <[email protected]> wrote
(on Sunday, 15 March 2009, 02:21 PM +0200):
> Yes i do, this is the full init function of the BaseEndController
> 
>     public function init()
>     {
>         # Must be called
>         parent::init();

The original you pasted did not -- this is the verbatim init() method
from BaseEndController per your original post:

    public function init()
    {
        # Set Up view properties
        $this->view->breadcrumbs = array();

        # Create the base breadcrumb
        $this->view->breadcrumbs[] = $this->BB( $this->lang->_('GL1'), 
array('index', 'index', 'admin'));
    }

So, either you've changed things since then, or you pasted the wrong
thing originally.


>         # Define public url
>         $this->view->public_url = Zend_Registry::get('config')->general->
> webhost . $this->getRequest()->getBaseUrl() . '/' . $this->this_module . '/';
> 
>         # Add CSS & Js files required
>         $this->view->headLink()->appendStylesheet( $this->view->public_url .
> 'css/all.css')->appendStylesheet( $this->view->public_url . 'css/ie.css', 
> 'text
> /css', 'lt IE 7');
>         $this->view->headScript()->appendFile( $this->view->public_url . 'js/
> tabs.js', 'text/javascript')->appendFile( $this->view->public_url . 'js/
> navigation.js', 'text/javascript')->appendFile( $this->view->public_url . 'js/
> pngfix.js', 'text/javascript', array('conditional' => 'IE 6', 'defer' =>
> null));
> 
>         # Clear old sessions
>         $this->ClearOldSessions();
>        
>          # Did we change the language?
>         $cookie_language = $this->GetCookie('end_language');
>         if( $cookie_language )
>         {
>             $this->default_language = $cookie_language;
>         }
>        
>         # Over ride using manual language switch
>         if( $this->_getParam('setlang') ) # Do we change it now?
>         {
>             if(array_key_exists($this->_getParam('setlang'), $this->
> _supported_languages)) # Language is available?
>             {
>                 $this->default_language = $this->_getParam('setlang');
>                 $this->SetCookie('end_language', $this->default_language); #
> Save cookie
>             }
>         }
>        
>         # Do we need to add the rtl css file?
>         if( $this->default_language == 'he' )
>         {
>             $this->view->headLink()->appendStylesheet( $this->view->public_url
> . 'css/rtl.css');
>         }
>                
>         # Load Language & Cache It
>         $this->LoadLanguage();
>        
>         # Set Title
>         $this->view->headTitle( $this->lang->_('GL0') );
> 
>         # Check auth
>         if(!$this->CheckLoggedInUser() && $this->_request->controller !=
> 'login')
>         {
>             $this->Boink('login/index');
>         }
> 
>         # Load Member information
>         $this->LoadMemberInfo();
>        
>         # Create the base breadcrumb
>         $this->BB( $this->lang->_('GL1'), array('index', 'index', 'admin'));
>     }
> 
> On Sun, Mar 15, 2009 at 2:17 PM, Matthew Weier O'Phinney <[email protected]>
> wrote:
> 
>     -- vadim gavrilov <[email protected]> wrote
>     (on Sunday, 15 March 2009, 12:07 PM +0200):
>     > I have the following structure:
> 
>     <cut-n-paste>
> 
>     > but for some reason the $this->breadcrumbs array has only one element
>     which was
>     > added in the BaseEndController class. the element that was added in the
>     > indexcontroller class was not actually added to the array and is not
>     shown when
>     > it prints it.
>     >
>     > Any idea why, Or how to solve it? any other approach for something
>     similar?
> 
>     In your BaseEndController class' init() method, you're not calling
>     parent::init().
> 
>     > class BaseMasterController extends Zend_Controller_Action
>     > {
>     >     public $view;
>     >     public $breadcrumbs = array();
>     >
>     >     public function init()
>     >     {
>     >         # Define module path
>     >         defined('MODULE_PATH')
>     >         or define('MODULE_PATH', Zend_Controller_Front::getInstance()->
>     > getModuleDirectory() . '/');
>     >
>     >         # Define controller path
>     >         defined('CON_PATH')
>     >         or define('CON_PATH', Zend_Controller_Front::getInstance()->
>     > getModuleDirectory() . '/');
>     >
>     >         # Set layout and views directories
>     >         Zend_Layout::startMvc( MODULE_PATH .'/layouts/scripts' );
>     >
>     >         # Init views object
>     >         $this->view = Zend_Layout::getMvcInstance()->getView();
>     >         $this->view->doctype( Zend_Registry::get('config')->layout->
>     doctype );
>     >         $this->view->setScriptPath( MODULE_PATH . 'views/scripts/' );
>     >         $this->viewRenderer = $this->_helper->getHelper('viewRenderer');
>     >         $this->viewRenderer->setView($this->view)->setViewBasePathSpec(
>     > MODULE_PATH . 'views/scripts/' )->setViewScriptPathSpec(':controller
>     > /:action.phtml');
>     >
>     >         # Build Helpers
>     >         $this->view->addHelperPath( MODULE_PATH . 'views/helpers/',
>     'Helper');
>     >
>     >         # setting content type and character set
>     >         $this->view->headMeta()->appendHttpEquiv('X-UA-Compatible','IE=
>     > EmulateIE7')->appendHttpEquiv('Content-Type','text/html; charset=UTF-8')
>     ->
>     > appendHttpEquiv('Content-Language', 'en-US');
>     >
>     >         # setting a separator string for segments:
>     >         $this->view->headTitle()->setSeparator(' :: ');
>     >
>     >         # Load the DB Adapter
>     >         $this->db = Zend_Db::factory(Zend_Registry::get('config')->
>     production->
>     > database);
>     >
>     >         # Clean Globals
>     >         $this->input = new Input;
>     >      }
>     > }
>     >
>     > class BaseEndController extends BaseMasterController
>     > {
>     >     public function init()
>     >     {
>     >         # Set Up view properties
>     >                 $this->view->breadcrumbs = array();
>     >
>     >               # Create the base breadcrumb
>     >                 $this->view->breadcrumbs[] = $this->BB( $this->lang->_
>     ('GL1'),
>     > array('index', 'index', 'admin'));
>     >     }
>     > }
>     >
>     > class Admin_IndexController extends BaseEndController
>     > {
>     >
>     >     public function indexAction()
>     >     {
>     >         $this->view->breadcrumbs[] = "123";
>     >         $this->viewRenderer->render('index');
>     >     }
>     > }
>     >
>     > then in the layout i am doing:
>     >
>     > <?php if( $this->breadcrumbs ): ?>
>     >             <ul class="breadcrumbs">
>     >                 <?php foreach($this->breadcrumbs as $crumb): ?>
>     >                 <li><?php echo $crumb; ?></li>
>     >                 <?php endforeach; ?>
>     >             </ul>
>     >         <?php endif; ?>
>     >
>     > but for some reason the $this->breadcrumbs array has only one element
>     which was
>     > added in the BaseEndController class. the element that was added in the
>     > indexcontroller class was not actually added to the array and is not
>     shown when
>     > it prints it.
>     >
>     > Any idea why, Or how to solve it? any other approach for something
>     similar?
>     >
>     > Thanks.
>     >
>     >
>     > --
>     > Vincent Gabriel.
>     > Lead Developer, Senior Support.
>     > Zend Certified Engineer.
>     >
>     >
>     >
>     >
> 
>     --
>     Matthew Weier O'Phinney
>     Software Architect       | [email protected]
>     Zend Framework           | http://framework.zend.com/
> 
> 
> 
> 
> --
> Vincent Gabriel.
> Lead Developer, Senior Support.
> Zend Certified Engineer.
> 
> 
> 
> 

-- 
Matthew Weier O'Phinney
Software Architect       | [email protected]
Zend Framework           | http://framework.zend.com/

Reply via email to