我需要创建一个< br />在使用Zend_navigation生成的菜单项的显示标签中标记,但似乎无法找到这样做的方法。
我的导航项在XML配置中定义为:
<registermachine>
<label>Register your Slitter Rewinder</label>
<controller>service</controller>
<action>register</action>
<route>default</route>
</registermachine>
我想在“你的”和“分切器”之间的输出HTML中强制使用一个标签,这样它就会显示在两行上,如下所示:
注册你的 分切复卷机
然而,我似乎无法做到这一点。显然在XML中解析使用
,并使用html实体意味着标签显示为:
注册您的&lt; br /&gt; Slitter Rewinder
有没有人有过可以提供建议的经验?
提前致谢!
答案 0 :(得分:1)
内置没有这样的选项你必须使用部分
$partial = array('menu.phtml', 'default');
$this->navigation()->menu()->setPartial($partial);
echo $this->navigation()->menu()->render();
http://framework.zend.com/manual/en/zend.view.helpers.html#zend.view.helpers.initial.navigation.menu
您也可以尝试使用<label><![CDATA[Menu label<br/>Second line]]></label>
答案 1 :(得分:0)
我找到了一个(hacky)解决方案:
我更新了我的navigation.xml,以便在需要{br}
标记的地方使用<br/>
令牌,然后修改基本Zend/View/Helper/Navigation/Menu.php
文件,如下所示:
在htmlify
函数内,已更改
$this->view->escape($label)
到
str_replace("{br}", "<br/>", $label)
我可以(也可能会)在某些时候用自己的方式覆盖Zend Library Menu View Helper,但至少现在已经覆盖了它。
答案 2 :(得分:0)
有一个用于转换html标签的escapeLabels布尔值,默认情况下为true。
您可以像这样设置导航
$this->navigation()
->menu()
->escapeLabels(false)
->...
http://framework.zend.com/apidoc/2.0/classes/Zend.View.Helper.Navigation.Menu.html#escapeLabels