0

だから私はそのようなクラスを書いた:

class Users_Navigation_Page_Notification extends Zend_Navigation_Page_Mvc{

    public function setLabel($label){
        if(substr($label, 0 , 1) == ':'){
            $label = 'Notification';
        }

        return parent::setLabel($label);
    }
}

そして、次のようなことを試してみると:

$label = 'Notification' . '<span>test</span>';

エコーアウト Notificationtest

それはすべきではありません。

HTML要素をレンダリングするにはどうすればよいですか?

4

2 に答える 2

1

ナビゲーションをレンダリングするとき、デフォルトで を使用する各ナビゲーション ページのラベルをエスケープするためにビュー ヘルパーがハードコーディングされますhtmlspecialchars。タグが HTML エンティティに置き換えられるため、これにより実質的に HTML が無効になります。

ナビゲーションを出力する前に、少しごまかしてエスケープ メカニズムを変更することができます。

$view->setEscape('trim'); // will allow html and remove escaping
echo $view->navigation()->menu(); // output navigation
$view->setEscape('htmlspecialchars'); // restore escaping mechanism

上記のコードでは、ビュー スクリプト内にいる場合に$view変更できます。$this

于 2012-10-04T16:53:38.343 に答える