簡體   English   中英

Drupal:塊不會顯示在特定的內容類型頁面上

[英]Drupal : Block doesn't show up on specific content-type page

對於您看似幼稚但無法解決的問題,我需要您的幫助。

我想激活一個塊 (已經為其他內容類型頁面激活了,並且可以正常工作)以將其顯示在新的content-type上 我只是在admin-> structure-> block-> configure-> visibility參數中選中了該特定內容類型的復選框,就像我對其他內容所做的一樣。 但是,它沒有顯示。

這是塊參數配置的屏幕截圖 (您永遠不會知道^^)。

該塊位於sidebar_second區域中。 所以我用dpm()檢查了是否在兩種內容類型中都設置了該區域。

在這里,我可以看到它實際上是為我的內容類型basic page ,該basic page 顯示得很好

但是在這里我看到我的區域根本不存在 ,因此我的街區也沒有出現。

我創建了一個新的測試塊並將其放置在sidebar_second區域中,以確定問題是特定塊本身還是內容類型頁面...顯然,我猜這是第二種解決方案,因為它既沒有顯示也沒有。

另外,我嘗試我的塊定位sidebar_first區域(對於我的content-type testimonial sidebar_first 已經存在 )。 不幸的是,它也不起作用。 當然,它在content-type basic page上效果很好...

為了確保頁面代碼不會在我的testimonial.module或模板中被覆蓋, 我檢查了兩次實現的鈎子和所有模板文件...我沒有發現任何可能導致該問題的東西。

最終,我用我的問題進行了搜索 ,發現該錯誤報告 (由於無法復制而被關閉): https : //drupal.org/node/1777072,但是我認為這很不幸……

選擇,這肯定是一個我沒有看到的錯誤,而不是世界上10個人遇到的一個非常罕見的錯誤

這就是為什么我需要您的幫助,堆棧溢出的人!

我的第一個建議是, 推薦內容類型可能使用與基本頁面內容類型不同的頁面模板。

您將需要以下行:

<?php echo render($page['sidebar_first']); ?>

在由告別賽使用的頁面模板。

嗯,實際上我根本不相信這是正確的解決方案,但我會發布以防萬一。

我只是想讓您知道我知道了。

確實,我的函數hook_node_view()實現了menu_set_active_item("testimonial")來解決導航細節(強制突出顯示菜單項...)。 但是,它修改了URL中的q變量, Drupal不再知道該頁面實際上是一個節點類型的推薦(並且認為它實際上是一個View)。

因此,我的代碼塊無法顯示,因為它應該顯示在節點類型推薦中(而不是在View上)。

所以,我不得不我的網頁的本色在使用可變menu_get_active_trail()執行之前menu_set_active_item()

最終,我必須在我的hook_block_view()傳遞此變量以顯示塊。

對不起 ,您沒有提供回答我的問題所必需的全部信息, 對不起 我以為自定義代碼不是很可疑,但是我錯了。 我仍然是初級的Drupal開發人員,我不知道menu_set_active_item()方法到底做了什么。 但是,謝謝,祝您周末愉快!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM