2010-08-02 115 views
2

到目前爲止,我總是硬編碼某個頁面應該使用的頁面模板,無論是基於URL還是基於它的類型。通過管理區域選擇模板?

如果有一種方法可以選擇使用哪個tpl文件,那麼在節點編輯表單中就可以了。這將允許用戶隨意在不同的頁面佈局之間輕彈。

有沒有人知道解決這個問題的一個好方法,還是一個平坦的解決方案呢?

回答

1

我結束了添加模板文件(這個VID爲2在我的情況),一個新的詞彙,然後捲到這一點在我的template.php頁面預處理:

function phptemplate_preprocess_page(&$vars) {            

    if (count($vars[node]->taxonomy)>0) 
    foreach ($vars[node]->taxonomy as $term) 
     $template = $term->vid == 2 ? $term->name : NULL; 

    if ($template) $vars['template_files'][] = "template-".preg_replace("/[^a-zA-Z0-9s]/", "", strtolower($template)); 

} 

現在,如果我在名爲A Green Page!的分類術語中有一個節點,它將查找template-agreenpage.tpl.php作爲模板文件。

2

ThemeKey將允許您根據路徑或其他條件加載主題。您可以使用其他方法,如利用template.php的preprocesser函數,並將其與hook_form_alter掛鉤,並提出切換文件的方法。

+0

是的,我想我會添加一個CCK字段填充可能的模板,然後使用預處理器功能來選擇基於該字段的主題模板。 – jsims281 2010-08-03 11:33:55

+1

一個簡單的方法是使用以下術語設置分類詞彙表:主題A,主題B,主題C等。配置ThemeKey以根據分類術語進行切換。你完成了! – 2010-08-03 21:11:58

+0

謝謝你們兩位,用我的榮幸接受這些贊成票。 – jsims281 2010-08-06 12:36:48