【发布时间】:2014-05-08 14:48:06
【问题描述】:
我的 Zend 项目中目前有一个导航菜单。我现在想做的是给它添加一个手风琴,有点像http://jsfiddle.net/Yb23C/2/。但我似乎无法将它添加到当前的 Zend Navigation 设置中。
我的 Bootstrap.php 中有这个:
$userconfig = new Zend_Config_Xml(APPLICATION_PATH . '/configs/navigation.xml', 'menuLoggedUser');
$usercontainer = new Zend_Navigation($userconfig);
Zend_Registry::set('user',$usercontainer);
在 layout.phtml 我有这个:
$menu = $this->navigation()->menu(Zend_Registry::get('user'));
$menuNoUl = explode("\n",$menu);
array_pop($menuNoUl);
array_shift($menuNoUl);
echo join(" ",$menuNoUl);
出现在<ul> 标签内。
我修改了我的 navigation.xml 以在文件集组中添加 <pages> 标记以开始测试:
<menuLoggedUser>
<home>
<label>Home</label>
<uri>/test/index</uri>
</home>
<filesets>
<label>Filesets</label>
<uri>javascript:void(0)</uri>
<pages>
<owner>
<label>Owner</label>
<uri>/test/filesets/owner</uri>
</owner>
<info>
<label>Info</label>
<uri>/test/filesets/info</uri>
</info>
<quota>
<label>Quota</label>
<uri>/test/filesets/quota</uri>
</quota>
</pages>
</filesets>
<group>
<label>Group</label>
<uri>/test/groups/group</uri>
</group>
<user>
<label>User Info</label>
<uri>/test/user/usermanagement</uri>
</user>
<logout>
<label>Logout</label>
<uri>/test/index/logout</uri>
</logout>
</menuLoggedUser>
目前这给了我这个:
我希望这些项目符号出现在手风琴内,因此当用户单击“文件集”时,菜单会展开以显示这些项目符号,再次单击时会隐藏它们。
我尝试在$menu = $this->navigation()->menu(Zend_Registry::get('user')) 之后添加->setMaxDepth(0) 和->setMinDepth(1),但它没有给出我想要的结果。我找不到任何关于如何使用 Zend Navigation 完成它的信息,而且我确信我也不能成为第一个。感谢任何可以提供帮助的人!
编辑
为导航生成的 HTML 代码,之前:
<!-- NAVIGATION_BEGIN -->
<div id="proj-navigation">
<h2 class="proj-access">Start of left navigation</h2>
<ul id="proj-primary-links">
<li id="proj-overview"><a href="">W3</a></li>
<li> <a href="/index">Home</a> </li>
<li> <a href="/filesets/fileset">Filesets</a> </li>
<li> <a href="/index/logout">Logout</a> </li>
</ul>
</div>
<!-- NAVIGATION_END -->
为导航生成的 HTML 代码,当前更改:
<!-- NAVIGATION_BEGIN -->
<div id="proj-navigation">
<h2 class="proj-access">Start of left navigation</h2>
<ul id="proj-primary-links">
<li id="proj-overview"><a href="">W3</a></li>
<li> <a href="/index.php/index">Home</a> </li>
<li> <a href="javascript:void(0)">Filesets</a>
<ul>
<li> <a href="/index.php/filesets/owner">Owner</a> </li>
<li> <a href="/index.php/filesets/info">Info</a> </li>
<li> <a href="/index.php/filesets/quota">Quota</a> </li>
</ul>
</li>
<li> <a href="/index/logout">Logout</a> </li>
</ul>
</div>
<!-- NAVIGATION_END -->
编辑 2
如果我可以让嵌套的<ul> 拥有一个类或 ID,我相信我就可以让我的手风琴导航工作,但无论我尝试什么,它似乎都没有工作。
【问题讨论】:
-
您好,您可以为您的菜单提供生成的 html 代码吗?看起来你只需要一点 javascript 来隐藏/显示列表的一部分。
-
感谢您的宝贵时间,我编辑了我的问题以包含生成的 Html 代码,同时我想看看自己是否可以仅使用 Javascript 获得我想要的,或者我是否需要 Zend 来帮助标签。
标签: php jquery zend-framework