如何让Zend在每个页面上呈现动态页脚?

时间:2010-04-06 12:02:53

标签: php zend-framework

在我正在构建的应用程序中,我希望有一个很好的页脚,其中包含数据库(标签)和联系表单中的数据。所有部分都是脚本化的,但现在我想把它们放在一起。 页脚的元素对于每个加载的页面都是相同的,只有内容不同。

如何在不必在每个控制器上放置太多代码的情况下执行此操作?

3 个答案:

答案 0 :(得分:1)

使用view helpers。为每个动态信息(如标记)创建帮助程序。然后你可以直接在视图上输出它。这可以避免控制器中不必要的代码。

以下是标签的示例。创建一个包含以下内容的Tags.php文件:

class Zend_View_Helper_Tags extends Zend_View_Helper_Abstract {

    public function tags() {
        // build an array with all the tags and return it
    }
}

现在在你的footer.phtml上你可以使用它:

<?php $allTags = $this->tags();
foreach ($allTags as $tag) { ?>
    <a href="<?php echo $tag['url']; ?>"><?php echo $tag['name']; ?></a>
<?php } ?>

您可以使用partialLoop()来获得更清晰的视图。

答案 1 :(得分:0)

将内容分配给视图变量,只要它有所不同,然后根据该视图变量打印页脚内容。

答案 2 :(得分:0)

实现此目的的最佳方法实际上是使用Zend_Layout组件来实现两步视图模式。这意味着你正常渲染你的常规视图,但是你有Zend_Layout获取该输出并将其放在一个整体模板中。整个模板将是您放置页脚的位置。 Zend_Layout Quick Start