2009-10-02 65 views
1

我已經使用了menu_breadcrumb模塊作爲用於產生基於當前的URL路徑上的麪包屑的模塊的基礎。它在常規節點上效果很好,但在由Views模塊呈現的任何頁面上,麪包屑無法獲取頁面的標題。模塊對drupal_get_title()的調用返回一個空值。爲什麼drupal_get_title()在視圖頁面上返回空?

我也不會如此感到意外,除了我還有一個Drupal站點,做完全一樣的東西,而且它工作正常。唯一的區別是,這個網站是基於Acquia Drupal發行版的,而且它的其他網站在一段時間內沒有更新過,所以Drupal核心版和Views版都有舊版本。

我讀一些有關模塊的權重,並試圖我的麪包屑模塊​​上設置重量爲真正的高值,但這並沒有幫助。

感謝您的任何想法!

+0

是否認爲有其標題屬性設置? – ceejayoz

+0

是的,並且視圖頁面使用相同的模板正確顯示標題,並調用$ title以適用於所有其他節點。 – gravelpot

回答

1

這聽起來像一個執行順序的問題。查看menu_breadcrumb模塊,它在hook_init上執行操作,而視圖模塊在views_plugin_display_page的執行方法中調用drupal_set_title,後者發生在稍後階段。在這種情況下,操作模塊重量不起作用,因爲權重僅確定每個鉤子的調用/執行順序,但它們不會影響整個模塊的執行順序。 (換句話說,一個「重」模塊hook_init將獲得更輕的模塊hook_init後調用,但仍如之前較輕模塊的hook_nodeapi。)

我有點驚訝,這適用於其他網站作爲你說 - 這可能是該drupal_set_title呼叫的意見在後來的版本得到了感動,但我懷疑,我記得正好面臨大約一年前這個問題。也許menu_breadcrumb模塊改變了?

然而,我通過麪包屑操縱移動從hook_initsomemodule_preprocess_page(),在那裏調節$variables['breadcrumb'],而不是直接調用drupal_set_breadcrumb「解決」這個當時的情況。這並不是最佳選擇,因爲它禁用了頁面主題前可能發生的任何其他麪包屑操作,但如果您知道您總是想要麪包屑,這可能是一個優勢。作爲替代方案,可以實現麪包屑操縱模塊中的一個視圖掛鉤,例如, hook_views_pre_render並檢查標題是否已經在那裏設置。

+0

Henrik,事實證明,它不*在其他網站上以這種方式工作。我實際上在麪包屑塊的末端打印出頁面標題! : - \ 抱歉狙擊狩獵... – gravelpot

相關問題