0

Zend_navigation を使用して生成されたメニュー項目の表示ラベルに <br/> タグを作成する必要がありますが、その方法が見つからないようです。

私のナビゲーション項目は、XML 構成で次のように定義されています。

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


以下のように 2 行で表示されるように、出力 HTML の「your」と「slitter」の間にタグを強制したいと考えています。

スリッター巻き取り機を登録する

しかし、私はそれを行うことができないようです。明らかに
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

私は(ハッキーな)解決策を見つけました:

タグが必要な場合は{br}常にトークンを使用するように navigation.xml を更新し、ベースファイルを次のように修正しました。<br/>Zend/View/Helper/Navigation/Menu.php

関数内htmlify、変更

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

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

Zend Library Menu View Helper を自分のバージョンで上書きすることもできます (おそらくそうするでしょう) が、少なくとも今のところはこれでカバーできます。

于 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 に答える