我正在尝试在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但这意味着我需要使用冗余代码来显示登录框/登录为。
答案 0 :(得分:0)
您是否只是担心侧栏内容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是一个单身人士。
答案 1 :(得分:0)
看起来你需要一个小部件:
要显示或不显示某些内容,请查找Zend_Acl
和Zend_Navigation
的整合
它就像:$container->setAcl($acl)