Zend_Navigation_Page_MvcはZend_View_Helper_UrlではなくZend_Controller_Action_Helper_Urlを使用するため、リンク先の投稿のソリューションはナビゲーションに影響しません。Zend_Controller_Action_Helper_Url :: url()をオーバーライドしてから、ヘルパーをヘルパーブローカーに追加して、 Zend_Navigationに影響を与える必要があります。
私の実装では、名前の競合を防ぐために「_fragment」オプション/パラメータを使用しています。
require_once('Zend/Controller/Action/Helper/Url.php');
class My_Controller_Action_Helper_Url extends Zend_Controller_Action_Helper_Url
{
public function url(array $urlOptions = array(), $name = null, $reset = false, $encode = true)
{
$fragment = '';
if(isset($urlOptions['_fragment'])) {
$fragment = '#' . $urlOptions['_fragment'];
unset($urlOptions['_fragment']);
}
return parent::url($urlOptions, $name, $reset, $encode) . $fragment;
}
}
次に、Zend_Navigationの構成に使用するXMLファイルで、_fragmentパラメーターを作成します。
<page>
<id>pageId</id>
<label>Page Label</label>
<module>foo</module>
<params>
<_fragment>bar</_fragment>
</params>
<route>default</route>
</page>