2010-04-16 54 views
1

我正在開發一個網站,需要在菜單中鏈接一些重複:Controllling Drupal的主動/主動-TRAIL重複的菜單項

A部分
- 介紹
- 褒獎

B部分
- 介紹
- 褒獎

推薦
- A部分
- B部分

所以 '部分A>褒獎' 和 '褒獎>部分A' 點到同一節點。但無論人們使用哪個菜單鏈接,我都希望該人員參與到A部分。

問題是D6不喜歡重複的菜單項,並且它分配活動路徑類和主動路徑類而不可預知。

所以我的想法是爲Testimonials菜單中的每個項目創建一個佔位符節點,然後將URL設置爲「testimonials/redirect/section-a」之類的內容,然後使用mod_rewrite重定向到「section- A /推薦」。

使用此解決方案,我將不會在菜單中出現重複路徑。我只是希望這不會損害我的搜索引擎優化。

有誰知道更好的解決方案?

回答

3

我也有這個問題。當多個菜單項鍊接到相同的內容時,Drupal將使用菜單ID最低的項作爲規範 - 無論您單擊哪個菜單鏈接,都會獲得最低菜單ID的活動軌跡。

我知道修復它的最好方法是我不喜歡將非標準菜單項指向節點,該節點將重定向到您想要的節點(您可以使用php輸入過濾器drupal_goto或類似的東西)

不幸的是,path_redirect模塊不會解決這個問題,因爲它創建的重定向路徑不能用作菜單項。

我不確定爲什麼在d6中沒有更多的人使用這個用例 - 我的經驗很常見,希望頂級菜單項指向第一個孩子,並且想要將活動路徑設置爲第一個孩子。

nodesymlinks模塊解決了反向用例 - 它允許您設置多個菜單項,每個菜單項都有自己的路徑,指向同一個節點。所以,根據您在菜單中單擊的鏈接,您會得到不同的活動路徑。該模塊對於「規範菜單項」模塊來說是一個很好的模型。

2

我們在我們的項目中遇到了同樣的問題,我們在每個重複的菜單項中設置了一個「#n」,並且設置了正確的工作路徑。例如:

Section A 
-- Introduction -> node/1#1 
-- Testimonials 

Section B 
-- Introduction -> node/1#2 
-- Testimonials 

Testimonials 
-- Introduction -> node/1#n 
-- Section B 

是不是最漂亮的解決方案,但絕對是一個更快的:)我們發現的唯一不方便的是,如果用戶點擊第一個在「A部分 - 引言」和「B區之後 - - 介紹「頁面不會被重新加載。

希望這有助於

1

Multiple Node Menu可能做的伎倆:

此模塊修改了標準的節點編輯表單 的「菜單設置」,讓管理多個菜單鏈接到一個節點。 Drupal標準 的行爲是隻關心陽極的單個菜單鏈接,所有其他 菜單鏈接必須通過菜單管理添加。