0

我试图了解如何为每个模块生成具有不同内容的侧边栏代码。

这是我的 layout.phtml(模块/应用程序/视图/布局)

....
<div class="main-container">
    <aside>
      <?php echo $this->sidebar; ?> 
    </aside>
    <section>
    <?php echo $this->content; ?>
    </section>
</div>
....

根据我很少的经验,我可以猜到 $this->content 是所选模块的输出,那么如何为每个模块创建一个 $this->sidebar?

4

1 回答 1

1

你没有。好吧,这有点刻薄,所以让我给你一些解释。

Zend Framework 2ViewHelpers强烈鼓励使用。创建 ViewHelper 非常简单。ViewHelper 的任务应该很简单!这意味着,每当您创建 ViewHelper 时,它都应该有一个非常简单的任务,例如“显示当前登录用户的用户名”。

在您的情况下,您需要一个“侧边栏”。虽然这本身就是一个非常有效的问题,但您应该重新考虑一下:什么是边栏?侧边栏是小部件的集合。小部件是 ViewHelper!因此,您的侧边栏将是 ViewHelpers 的集合!

方法 1 - 建议

创建许多专用的 ViewHelper,然后在 layout.phtml 中显示这样的侧边栏

<div id="sidebar">
    <h2>My Account</h2>
    <div class="widget_content">
        <?php echo $this->userMiniProfile();?>
    </div>
    <h2>My Calendar</h2>
    <div class="widget_content">
        <?php echo $this->userCalendar();?>
    </div>
    <h2>My Foo</h2>
    <div class="widget_content">
        <?php echo $this->bar();?>
    </div>
</div>

方法 2 - 仅当您有动态侧边栏时才需要

创建一个名为 ViewHelpersidebar并像这样显示它:

<div id="sidebar">
    <?php echo $this->sidebar();?>
</div>

使用此设置,您的 viewHelper 将具有一些依赖项,用于检查当前登录的用户,从数据库加载侧边栏,然后根据服务结果呈现不同的小部件。

基础知识

要创建一个简单的 ViewHelper,请参阅由 Evan Coury 赞助的此链接由 Michael Gallego 赞助的更深入的介绍

于 2013-11-04T15:49:55.257 回答