ビューでインスタンスをレンダリングするとZend_Nagivation
、デフォルトでアンカー タグにビュー ヘルパーのプレフィックス、ダッシュ、ページの ID が割り当てられた ID が割り当てられます。
ページ 1 のアンカー ID の例 (すべて同じZend_Nagivation
インスタンスを使用):
Zend_View_Helper_Navigation_Menu
= "メニュー1"Zend_View_Helper_Navigation_Breadcrumbs
= "ブレッドクラム-1"My_View_Helper_Navigation_MyMenu
= "マイメニュー-1"
これはほとんどの場合に最適ですが、そのプレフィックスを手動で設定したいのですが、その方法が見つかりません。
解決
プレフィックスを指定するには、次のコードを追加し、setIdPrefix()
レンダリング時に呼び出します。
class My_View_Helper_Navigation_MyMenu extends Zend_View_Helper_Navigation_Menu
{
protected $_idPrefix = null;
/**
* Set the id prefix to use for _normalizeId()
*
* @param string $prefix
* @return My_View_Helper_Navigation_MyMenu
*/
public function setIdPrefix($prefix)
{
if (is_string($prefix)) {
$this->_idPrefix = $prefix;
}
return $this;
}
/**
* Use the id prefix specified or proxy to the parent
*
* @param string $value
* @return string
*/
protected function _normalizeId($value)
{
if (is_null($this->_idPrefix)) {
return parent::_normalizeId($value);
} else {
return $this->_idPrefix . '-' . $value;
}
}
}