Yes i do, this is the full init function of the BaseEndController
public function init()
{
# Must be called
parent::init();
# 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.