0

我需要在显示标签中为使用 Zend_navigation 生成的菜单项创建一个 <br/> 标记,但似乎无法找到这样做的方法。

我的导航项在 XML 配置中定义为:

<registermachine>
<label>Register your Slitter Rewinder</label>                   
<controller>service</controller>
<action>register</action>
<route>default</route>
</registermachine>

我想
在“your”和“slitter”之间强制在输出 HTML 中添加一个标签,使其出现在如下两行中:

注册您的分切复卷机

但是,我似乎无法做到这一点。显然
在 XML 中使用会中断解析,并且使用 html 实体意味着标签显示为:

注册您的 <br/>分切复卷机

有没有人有这方面的经验可以提供建议?

提前致谢!

4

3 回答 3

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>

于 2011-06-14T16:52:06.043 回答
0

I found a (hacky) solution:

I updated my navigation.xml to use {br} tokens wherever a <br/> tag is required, and then amended the base Zend/View/Helper/Navigation/Menu.php file as follows:

within htmlify function, changed

$this->view->escape($label)

to

str_replace("{br}", "<br/>", $label)

I could (and probably will) override the Zend Library Menu View Helper with my own at some point, but this at least cover it for now.

于 2011-06-16T08:40:13.953 回答
-1

有一个用于转换 html 标签的 escapeLabels 布尔值,默认情况下为 true。

您可以像这样设置导航

$this->navigation()
    ->menu()
    ->escapeLabels(false)
    ->...

http://framework.zend.com/apidoc/2.0/classes/Zend.View.Helper.Navigation.Menu.html#escapeLabels

于 2013-04-26T09:12:26.600 回答