2011-06-22 72 views
2

我有一個Drupal 6.22網站,像這樣的主要環節(使用尼斯菜單):的Drupal 6:主菜單項目重定向到第一子菜單項

Section 1 
- Foo 
- Bar 
Section 2 
- Page A 
(...) 

我的客戶問這樣的:如果用戶點擊「第1部分「,顯示」Foo「頁面。換句話說,當點擊任何「部分」時,用戶將被重定向到該部分的第一個孩子。

起初,我修改了菜單項「第1條」路徑「SECTION1/foo」的,但在富頁面(我使用的菜單面包屑)的麪包屑顯示:

Home > Section 1 

我要麪包屑顯示此:

Home > Section 1 > Foo 

所以沒有工作,所以我安裝了重定向模塊,定義的「SECTION1 - > SECTION1/foo」的重定向,但我不能創建一個指向菜單項「section1」(它不是別名)。

任何想法?提前致謝。

回答

2

您需要直接編輯菜單陣列。從您正在使用的當前主題打開template.php文件,並添加此功能themename_preprocess_page內(& $瓦爾):

的print_r($瓦爾[ 'primary_links']);出口();

,然後刷新網站上的任何頁面,你會看到打印出來的primary_links陣列。它看起來是這樣的:

Array ( [menu-640 active-trail] => Array ( [attributes] => Array ( [title] => A Page Title ) [href] => node/20 [title] => A Page Link Title ) )

您可以將其設置爲您的首選值改變[HREF。您需要通過foreach($ vars ['primary_links'])循環獲得創意才能讓孩子適當地改變他們的父母,但這不應該太困難。

+0

,因爲我使用的主要環節一個不錯的餐單塊它不工作。 – dusan

+0

你應該仍然能夠改變Nice Menus在你的template.php文件中使用的主題函數來執行此操作。 查找範圍爲在.tpl.php的代碼結束在你的template.php複製一個文件尼斯菜單模塊文件夾,和/或看在nice_menus.module爲hook_theme的實現(),這將指向你到構建菜單項的功能。如果你可以從你自己的自定義模塊或者template.php中改變它們,你可以和Nice Menus(!)一起玩,並且得到你想要的東西。 –

+0

好點,現在我正在使用Nice Menus的主題功能。我會接受你的回答。 – dusan

1

這是在Drupal一個很大的痛苦。我的解決方案是專門爲重定向頁面創建一個節點。 (我實際上創建了一個名爲Redirect的內容類型,所以我可以讓pathauto以不同的方式處理它們......自動創建像/ redirect/page-name之類的別名)在創建節點之後,可以設置從該頁面重定向到真實的頁面。

我還設置了robots.txt來禁止重定向/ *所以,谷歌不會嘗試索引重定向頁面,如果它確實發生了找到他們。