【问题标题】:creating a dynamic sidebar with zend framework使用 zend 框架创建动态侧边栏
【发布时间】:2010-11-09 21:04:00
【问题描述】:

我正在尝试在 zend 框架中创建一个动态侧边栏。我用谷歌搜索了一些文章,甚至浏览了 stackoverflow 档案,但我似乎无法得到它,所以请帮我解决这个问题。 这是我的 layout.phtml 文件中的一些代码:

<div id="contentWrapper">
<div id="contentArea">
<?php echo $this->layout()->content;
?>
</div>
<div id="sidebar">
    <div id="user-authentication">
        <?php if (Zend_Auth::getInstance()->hasIdentity()) {
        ?>Logged In as<br />
        <?php
            echo Zend_Auth::getInstance()->getIdentity();
        } else {
        ?>

            <input type="text" name="login" class="loginInput" /><br/>    
            <input type="password" name="password" class="loginInput" /><br/>    

            <input type="submit" name="submit" value="Log In" class="loginButton" />    
<?php } ?>
    </div>
    <div id="sidebar-content">
                            <? echo $this->layout()->sidebar; ?>
    </div>
</div>

</div>

我可以使用这个Best practice creating dynamic sidebar with zend framework,但这意味着我需要有冗余代码来显示登录框/以身份登录。

【问题讨论】:

    标签: php zend-framework


    【解决方案1】:

    您是否只是担心侧边栏内容 div 中 hasIdentity 和 getIdentity 的重复?

    如果是这样,也许你更喜欢这个:

    <?php
        $auth = Zend_Auth::getInstance();
        $user = $auth->hasIdentity() ? $auth->getIdentity : NULL;
    ?>
    <div id="user-authentication">
        <?php if ($user) { ?>
            User stuff.
        <?php } else { ?>
            Public stuff.
        <?php } ?>
    </div>
    <div id="user-authentication">
        <?php if ($user) { ?>
            User stuff.
        <?php } else { ?>
            Public stuff.
        <?php } ?>
    </div>
    

    不过,这只是编码风格的问题。多次检查用户登录状态并没有错。模块化代码必须这样做;这可能就是 Zend_Auth 是单例的原因。

    【讨论】:

    • 我已经设法使用部分。它给。我将登录作为部分登录,将其他侧边栏部分作为部分登录,我喜欢这样一个事实,即它让我可以灵活地加载我想要的任何部分。在我的布局中,我只有 $this->layout()->content。在我的视图文件中,我正在加载部分文件。到目前为止效果很好,而且非常灵活。我会批准你的回答,因为它帮助我思考这个问题(虽然我读过其他一些关于它的文章,但我对此持怀疑态度)
    【解决方案2】:

    看起来你需要一个小部件:

    要显示或不显示某些内容,请寻找 Zend_AclZend_Navigation 的集成。
    很简单:$container-&gt;setAcl($acl)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-10-26
      • 2023-01-29
      • 1970-01-01
      相关资源
      最近更新 更多