到目前爲止,我總是硬編碼某個頁面應該使用的頁面模板,無論是基於URL還是基於它的類型。通過管理區域選擇模板?
如果有一種方法可以選擇使用哪個tpl文件,那麼在節點編輯表單中就可以了。這將允許用戶隨意在不同的頁面佈局之間輕彈。
有沒有人知道解決這個問題的一個好方法,還是一個平坦的解決方案呢?
到目前爲止,我總是硬編碼某個頁面應該使用的頁面模板,無論是基於URL還是基於它的類型。通過管理區域選擇模板?
如果有一種方法可以選擇使用哪個tpl文件,那麼在節點編輯表單中就可以了。這將允許用戶隨意在不同的頁面佈局之間輕彈。
有沒有人知道解決這個問題的一個好方法,還是一個平坦的解決方案呢?
我結束了添加模板文件(這個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
作爲模板文件。
ThemeKey將允許您根據路徑或其他條件加載主題。您可以使用其他方法,如利用template.php的preprocesser函數,並將其與hook_form_alter掛鉤,並提出切換文件的方法。
我也想要這個功能,所以我做了一個模塊爲節點模板做這件事情。你可以在這裏找到它:http://drupal.org/project/template-picker
是的,我想我會添加一個CCK字段填充可能的模板,然後使用預處理器功能來選擇基於該字段的主題模板。 – jsims281 2010-08-03 11:33:55
一個簡單的方法是使用以下術語設置分類詞彙表:主題A,主題B,主題C等。配置ThemeKey以根據分類術語進行切換。你完成了! – 2010-08-03 21:11:58
謝謝你們兩位,用我的榮幸接受這些贊成票。 – jsims281 2010-08-06 12:36:48