2010-07-03 119 views
4

有一種方法isActive()Zend_Navigation。但是,對於當前路徑中的所有元素 (父母li處於活動狀態,並且所有孩子也是如此,即使當前是父母li),它也會返回true。Zend導航:當前頁

有沒有像isCurrent()這樣的方法來判斷當前菜單項是否是當前頁?

我只是想將自定義類屬性添加到只有一個,ul和li的整個嵌套樹中的當前元素。

+0

你確定你的代碼是正確的? 'isActive()'應該只爲當前頁面返回true,而不是父頁面或者子頁面。 – Tamlyn 2011-01-14 14:03:43

回答

0

您將需要使用您自己的導航視圖腳本,但這非常簡單。然後嘗試:

$this->navigation()->findActive($this->yourNavContainer); 

這將返回一個對象,var轉儲它,你會看到你需要的數據。我認爲這個變量簡單地稱爲'頁面'。在你建立你的菜單,pre/post dispatch之前,然後在你的viewscript中,做一個if語句來檢查這個var對當前循環條目(我猜你的循環在foreach中)。

6

簡單:

$activeElement = $view->navigation()->findOneBy('active', 1); 

,如果你是你的視圖腳本中,你可以使用:

$activeElement = $this->navigation()->findOneBy('active', 1);