내보기에서 Zend_Nagivation
인스턴스를 렌더링 할 때 기본적으로 앵커 태그의 ID는 뷰 도우미 접두사와 대시, 페이지 ID 순으로 할당됩니다. 페이지 1의 앵커 이드Zend_View_Helper_Navigation_XXX에서 사용하는 ID 접두사를 설정하는 방법
예 (동일한 Zend_Nagivation
인스턴스를 사용하여 모든)
Zend_View_Helper_Navigation_Menu
= "메뉴 1"Zend_View_Helper_Navigation_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;
}
}
}
탐색 기능은 어떻게 구성되어 있습니까? ini 에서요? 수업? – Iznogood
'Zend_Navigation' 인스턴스는 현재 4 개, 데이터베이스에서 2 개, XML 파일에서 2 개가 있습니다. 이 문제는 데이터 원본에 관계없이 모든 개체에 대해 발생합니다. – Sonny
당신은 당신의 도우미를 "MyMenu"대신 "Menu"라고 부를 수 있습니다.이 경우 플러그인 로더가 ZF 하나 대신 당신을로드합니다 – Phil