-- 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/