当我在视图中渲染Zend_Nagivation
实例时,默认情况下,锚标记的id分配有视图助手的前缀,后跟破折号,然后是页面的id。
第1页的锚点ID的示例(全部使用相同的Zend_Nagivation
实例):
Zend_View_Helper_Navigation_Menu
=“menu-1”Zend_View_Helper_Navigation_Breadcrumbs
=“breadcrumbs-1”My_View_Helper_Navigation_MyMenu
=“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;
}
}
}
答案 0 :(得分:1)
罪魁祸首是Zend_View_Helper_Navigation_HelperAbstract::_normalizeId()
我认为没有其他解决办法,只能创建你需要的每个导航视图助手的自定义版本。