2010-10-13 60 views
0

我有一個自定義結構,用於瀏覽使用hook_menu和Views構建的內容。我希望指向內容的鏈接按節點類型路由到我的結構中適當的目的地。因此,雖然通常點擊節點鏈接會將您帶到node/123,但我想將其發送到foo/123(因爲節點123的類型爲「foo」)。重定向或重寫drupal鏈接

我試過PathAuto,但它不起作用只是讓foo/123別名node/123。使用hook_menufoo/123構建了特定的結構,選項卡等。 PathAuto(據我所知)實際上只是顯示node/123,這只是股票的Drupal節點顯示,而不是我想要顯示的內容。

我開始放在一起hook_nodeapidrupal_goto重定向基於節點類型。 [解決一些無限重定向問題,但我相信我可以弄明白。]但是,我真的想這樣做嗎?網站上的每個鏈接都不會通過HTTP重定向,從而不會有速度問題?

這樣做的最好方法是什麼?

編輯
其實我覺得這個問題是PathAuto是不尊重我的hook_menu,可能不適合這份工作的合適工具。 沒有PathAuto設置,我有一個hook_menu,它定義了一個頁面foo/123其中foo是節點類型。導航到foo/###按預期工作顯示我的自定義版本的節點###。

現在我想node/###重定向到foo/###,或者換一種說法,我想各個環節node/###寫爲foo/###。這對於PathAuto來說似乎是一個明顯的任務,在節點類型Foo下,我的模式是foo/[nid]。除了設置後,我的hook_node不再起作用。這是因爲現在foo/###被路由到node/###,就像我問到的那樣,顯示的是香草drupal節點顯示,而不是我的hook_menu。

回答

1

實際上,PathAuto可以設置爲指定您自定義路徑的種類。它使用令牌模塊,讓您輕鬆地重新配置pathAuto應該如何建立別名...

檢查pathauto(admin/build/path/pathauto)的管理頁面。

編輯

對於你的編輯我會怎麼做,是爲了實現hook_menu_alter,我會修改節點/頁%回調至hook_menu用於呈現富/ 123頁回調。

+0

嗯,我給了PathAuto一個去,但我認爲我的問題比這更復雜。更新了問題。 – ack 2010-10-15 18:11:41