2010-06-03 21 views
2

我是一個Drupal新手...的Drupal 6:Drupal的Themer給同一候選人名字不同類型的內容類型

我有不同類型的像新聞,活動等內容,其內容是不同的。新聞詳細信息頁面包含標題內容文本日期。但活動詳細信息頁面包含標題日期內容文本位置說話者等。所以我需要這些不同類型的不同佈局頁面。所以,我啓用了Drupal Themer來獲得候選名稱。事件頁面,它給了我頁面node.tpl.php,它的新聞頁面給出了相同的還有:(我怎麼能分開這些網頁嗎?我希望某事像頁面事件node.tpl,但沒有...:/ Drupal的Themer也給唯一候選名稱,活動頁面像頁面節點18.tpl.php,但它並不意味着什麼,因爲我無法爲這個節點名的所有事件總體佈局:(。

欣賞幫助這麼多!非常感謝!

回答

3

按照monkeyninja(+1)的建議使用不同的node.tpl.php文件將是「正常」的方式,您可以通過自己添加基於節點類型的頁面模板建議來添加所需的功能,在preprocess_page function在一個自定義模塊/主題內:

function yourModuleOrTheme_preprocess_page(&$variables) { 
    // If this is a node page, add a page template suggestion based on node type 
    if (isset($variables['node'])) { 
    // Build the suggestion name ('.tpl.php' suffix will be added by the theming system) 
    $suggestion = 'page-type-' . $variables['node']->type; 
    // Add to end of suggestion array, thus keeping the fallback to other suggestions, 
    // if this specific version is not implemented by the theme 
    $variables['template_files'][] = $suggestion; 
    } 
} 

有了這個,你應該可以添加eg 'page-type-event.tpl.php'文件,應該用於所有事件節點頁面。

(注:補充說,功能得到它被系統識別後,您將需要trigger a rebuild of the theme registry

+0

哇!感謝您的回覆!它對我的解決方案看起來不錯...所以我將這個函數添加到themes/mysite/template.php,以及如何使用它來定義頁面類型event.tpl.php到事件頁面? ps,感謝您的鏈接http://drupal.org/node/223430我正在閱讀所有內容。 – 2010-06-03 10:56:40

+0

你是主人!忘了清除緩存,現在它工作得非常棒!現在我有page-type-event.tpl.php!謝啦!我是認真的!!我很樂意爲你買一杯啤酒或任何東西...... :) – 2010-06-03 11:01:33

+0

很高興能有所幫助 - 一個警告的話,儘管如此:將頁面模板過度疊加可能會成爲相當的維護負擔,因爲你最終會多個地方你需要保持同步的基本東西,應該是相同的整個網站。因此,您可能仍然希望探索替代解決方案,如建議的上下文模塊或基於節點類型的切換塊可見性等... – 2010-06-03 11:09:59

2

我不熟悉使用Drupal Themer,但略有不同的方法將與節點模板工作樣式的內容和使用類似好的NT Context module(以及可能Panels module)更改的頁面(例如,塊)上的任何附加信息的佈局。

爲主題不同的內容類型使用節點模板,基於表格節點content_type.tpl.php node.tpl.php剛創建模板。所以你需要一個名爲node-events.tpl.php的事件節點的模板。

然後,您可以使用時被顯示的事件的頁面內容類型,然後選擇與您想顯示哪些地區/塊是反應語境模塊定義的上下文。

+0

感謝答覆... node.tpl.php只包含內容的一部分,但對於這個事件詳細信息頁面我需要指定側邊欄,頁腳等。這就是爲什麼我一直在尋找一個page-node.tpl.php解決方案。所以我現在要回顧一下Context Module,謝謝! – 2010-06-03 10:07:44

+0

語境模塊是非常值得去用交手,因爲它提供了更好的控制模塊上的一個網站,並引入了「部分」的Drupal站點比較常見的想法。 – drmonkeyninja 2010-06-03 10:24:18

+0

ps,感謝提到上下文模塊。我打算將它用於下一個項目。非常感謝! :) – 2010-06-03 11:18:13