Решения в , связанные с публикацией , не влияют на навигацию, поскольку Zend_Navigation_Page_Mvc использует Zend_Controller_Action_Helper_Url, а не Zend_View_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;
}
}
Затем в файле XML, который я использую для настройки Zend_Navigation, я создаю параметр _fragment:
<page>
<id>pageId</id>
<label>Page Label</label>
<module>foo</module>
<params>
<_fragment>bar</_fragment>
</params>
<route>default</route>
</page>