Jump to content

Dynamic Sidebar Content w/ Zend Framework


shlumph

Recommended Posts

Hi,

 

I'm a complete newb trying to learn the zend framework. I set up a 'master page' with zend_layout, and the "content" section is working fine with my controllers/views. However, I want my sidebar to be dynamic as well, and I can't figure out how. My directory structure looks like this:

 

+application

  +default

      +controllers

        -IndexController.php

      +layouts

        -layout.phtml

      +models

      +views

        +scripts

            +index

            -sidebar.phtml

 

My simplified layout.phtml file looks like this:

<html>
<body>
<div id="content">
     <?php echo $this->layout()->content; ?>
</div>
<div id="navigation">
</div>
     <?php echo $this->layout()->sidebar; ?>
</body>
</html>

 

 

This is an example of one of my controllers:

<?php
class IndexController extends Zend_Controller_Action 
{

public function init(){
	$response = $this->getResponse();
                $response->insert('sidebar', $this->view->render('sidebar.phtml'));
}

        //other functions below

 

 

My sidebar.phtml file looks something like this:

<div class="navigation">
<h1>Recent Posts</h1>
<ul>
	<?php echo $this->iWantToBeDynamic; ?>
</ul>
</div>
<div class="navigation">
<h1>Categories</h1>
<ul>
	<?php echo $this->iWantToBeDynamic; ?>
</ul>
</div>

 

Is it possible to add a controller to my sidebar.phtml file? If so, how, if not, what is the best possible way to make this sidebar dynamic?

 

Ok, I made a "classes" folder in my application directory, and made a "Sidebar" class, that accesses a model.

 

Then I created an instance of that Sidebar class in my sidebar.phtml view.

 

That's the best I could come up with, seems to work fine. Zend is overwhelming me.

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.