2016-08-08 153 views
2

我是新來的dr​​upal和通過文檔閱讀,但希望得到一些東西的解釋。Drupal頁面內容

我有一個頁面 - page-type-home-page.tpl.php。 此頁面的一部分打印渲染($ page ['content']))。我想從頁面中刪除作爲頁面內容的一部分呈現的內容,但不明白它來自哪裏以及在哪裏/如何查看。

謝謝!

+1

請指出它是Drupal 7還是Drupal 6(你把這兩個標籤放在那裏) – mgadrat

+0

一個很好的函數來查看模板中可用的變量是'get_defined_vars()'函數。如果您啓用了devel模塊,則可以在模板中調用'dpm(get_defined_vars);'查看您必須使用的變量 – 2pha

回答

0

假設你正在談論Drupal的7

$page['content']包含字符串,這是一個什麼樣的注入到你的主題內容區域渲染版本。

默認情況下,此區域中的唯一塊是由Drupal核心生成的「主頁面內容」塊。許多東西可以生成這個內容,但它總是通過菜單API。例如,如果您正在查看節點,則使用的URL是:node/12。節點模塊聲明node/%node的菜單條目,該菜單條目包含回調函數,該函數將渲染模塊想要呈現的任何內容。然後,該模塊可以使用不同的策略將其內容從簡單的功能渲染爲複雜的模板化。

關鍵是要改變盒子裏的東西,對不起,$page['content']中的內容是知道渲染的內容並理解它是如何渲染的。

如果它是一個節點,首先要看看是否可以通過內容類型的顯示設置實現目標。 admin/structure/types/manage/page/display:對於所有實體(用戶,評論,分類術語等)都是如此。因爲這是這些實體的模塊在嘗試呈現內容時將放在一起的第一件事。

如果這還不足以實現您的目標,您可以查看呈現路徑的模塊,看看它是否沒有.tpl.php。您可以在主題中重新使用它。您需要將文件複製/粘貼到主題中並對其進行編輯。

如果模塊沒有tpl文件覆蓋,儘量模板建議:here's a list from Drupal.org

例:node--type.tpl.php

如果這一切都不能滿足你的需要,你就必須挖成preprocess functions;這些函數允許您修改傳遞給.tpl.php文件的變量中的內容。這是更先進一點,我建議你閱讀this previous stackoverflow question/answer

0

簡單地說,不要使用打印所有內容的$ page ['content'],而是放置自定義模板代碼,並在需要的地方打印單獨的字段值他們想:

<?php print render($content['your_field_name']); ?> 

https://drupal.stackexchange.com/questions/30063/how-to-print-fields-in-node-tpl-php

如果你想要做的只是簡單的造型,就像排除某些領域像mgadrat解釋您可以使用內容類型的顯示選項,但如果你想使用一些複雜的造型,與完全自定義html這個解決方案更容易。

相關問題