以編程方式更改活動Drupal 7主題的正確方法是什麼?我在Drupal 6中使用$custom_theme
但它不是在Drupal 7.工作以編程方式更改活動Drupal 7主題
7
A
回答
8
您可以使用hook_custom_theme()
:
function mymodule_custom_theme() {
if ($some_condition_is_true) {
return 'my_theme';
}
}
如果需要立足選擇的路徑,然後去最好的辦法是重寫特定菜單路由器項目的theme callback
。 See here for an example。
1
儘管我不確定當您想要更改主題時需要什麼條件,但是如果您想根據url,節點類型,分類術語,視圖頁等來更改主題,那麼您可以使用Context模塊,它會爲你做這件事,你甚至不需要編寫一行代碼。檢查了這一點:http://drupal.org/project/context
這是一個非常有用的模塊,並與幾乎所有著名的模塊,如面板,歐米茄主題,三角洲不錯整合等
0
Drupal的變量theme_default
是你必須設置切換主題之一使用variable_set函數。
variable_set('theme_default', 'your_theme_name');
如果您已經安裝了自定義模塊,則可以通過hook_update_N更改默認主題。此外,請確保您在hook_install中調用代碼以在安裝期間運行它,以防您想與其他人共享您的模塊並想要在安裝期間更改活動主題。
/**
* Implements hook_update_N().
*/
function mymodule_update_7000() {
$theme_list = array(
'bootstrap',
'mytheme',
'shiny',
);
theme_enable($theme_list);
$theme_default = 'mytheme';
// The below code would change the default active theme to 'mytheme'
variable_set('theme_default', $theme_default);
$admin_theme = 'shiny';
variable_set('admin_theme', $admin_theme);
}
0
雖然variable_set()
將爲hook_install()
或hook_update_N()
工作,你不應該在一個模塊內使用它。調用variable_set()
會清空cache_bootstrap表,這在繁忙網站上會嚴重影響性能。如果你不需要Context的全部功能,我會推薦ThemeKey module。但是,上下文很容易導出用於版本控制,而據我所知,無法導出ThemeKey規則。
相關問題
- 1. 以編程方式更改活動Drupal主題的正確方法是什麼?
- 2. 以編程方式更改活動的主題
- 3. 以編程方式更改awesomewm主題
- 4. 以編程方式更改緩存設置在drupal 7
- 5. MonoDroid更改活動標籤或標題以編程方式
- 6. Drupal 7更改模塊主題
- 7. 以編程方式獲取應用於活動的主題值
- 8. 以編程方式更改UIButton標題
- 9. 活動更改圖標以編程方式
- 10. Drupal 7動態主題
- 11. 以編程方式更改VS2012顏色主題
- 12. 如何以編程方式更改當前的Windows主題?
- 13. 以編程方式更改Gnome終端主題
- 14. 以編程方式更改Windows Mobile 6.1主題
- 15. onCreate()後以編程方式更改主題
- 16. 以編程方式更改Aino Galleria主題
- 17. 如何以編程方式更改Windows桌面主題
- 18. 以編程方式通過react-bootstrap更改活動選項卡
- 19. Drupal:如何以編程方式設置主題語言?
- 20. Drupal 7 - 上傳圖片編程方式
- 21. Drupal 6:以編程方式更改用戶值
- 22. 如何在Drupal 7中以編程方式激活和設置塊的條件?
- 23. Drupal 7的「活躍的論壇主題」修改塊/圖
- 24. 以編程方式更改標籤方向,編程方式
- 25. 以編程方式更改Windows Phone 7應用程序啓動頁面
- 26. 以編程方式更改膚色
- 27. 以編程方式膨脹AppCompat主題
- 28. 動態更改活動主題
- 29. 用Drupal 7修改主題表格
- 30. 以編程方式更改Windows 7上的標準瀏覽器