使用zend框架创建动态侧边栏的最佳实践

时间:2009-01-07 16:33:23

标签: php zend-framework

使用zend框架创建动态侧边栏或其他非内容布局位置的最佳做法是什么。这时我创建了控制器,我称之为WidgetsController。在这个控制器中,我用侧边栏的“侧边栏”响应段定义了一些动作,在IndexController中我用$ this-> view-> action()调用它们。功能,但我不认为这是创建动态侧边栏的最佳做法。 谢谢你的回答。

4 个答案:

答案 0 :(得分:8)

您的问题没有提供很多细节。通常,我会说通过视图的渲染/部分方法将侧边栏加载为视图模板。所以从一个观点来看:

//$data is dynamic data you want to pass to the sidebar
echo $this -> partial('/path/to/sidebar.phtml',array('menuitems' => $data));

然后侧边栏可以处理动态数据:

//sidebar.phtml
<div id="sidebar">

    <?php foreach($this -> menuitems as $item) : ?>
    <a href="<?php echo $item['url']; ?>"><?php echo $item['title']; ?></a>
    <?php endforeach; ?>

</div>

如果您需要额外的功能,可以创建专用的view helper来处理它。

答案 1 :(得分:0)

答案 2 :(得分:-2)

是的,伙计们,我的赌注是Code Igniter的回答是正确的方法。 实际上,它有助于了解CI如何简单地进行比较并进行比较。 它在ZF中基本相同,只是不是“命名视图”ZF有“Partials”。

ZF只是有更强加的纪律,比如布局+视图+局部,以及更多的内部机制来实现这一点,这实际上确实使它的运行速度提高了一半, 而代码点火器似乎已将整个设备夷为平面“命名视图”。

(我还没有决定ZF是否过度煮熟,或者是否一些CI牛排必须在中间生吃。)

如果你使用$ navigation-&gt; setPartial(blah blah)那么引导数组(技术上这种数据构成了MVC事物的“模型”部分)并且可供部分使用。

所以你有它,想法似乎是不要将模型的显示方面拉入控制器,将模型显示的东西推出到视图处理机器。

我正准备自己动手,我确实在Zend手册的视图助手部分搜索了部分内容,以找到这个,即使示例有点薄。

祝你好运 基思

答案 3 :(得分:-4)

我们想要更多细节,即侧边栏中显示的内容类型,您如何展示它们(即使用<ul><div>或其他内容),是检索到的内容来自数据库等

在同样使用Model, View, Controller格式的CodeIgniter中,我们创建了一个名为“sidebar.php”的视图,在Header视图中,我们包含了对此侧边栏视图的调用,即:

<html>
<head>.......</head>
<div id="header">....</div>
<?php $this->load->view('sidebar');?>

侧边栏视图包含显示菜单项的逻辑。通常它是一个静态菜单,但如果它是动态的并且必须从数据库中提取,我会这样做:

<ul>
   <?php
   $items=$this->some_model->getMenuItems();
   foreach ($items as $item):
   ?>
     <li><a href="<?=$item['url'];?>"><?=$item['text'];?></li>
   <?php endforeach;?>
</ul>