Cách chính xác để thay đổi chủ đề hoạt động Drupal 7 là gì? Tôi đã từng $custom_theme
trong Drupal 6 nhưng nó không được làm việc trong Drupal 7.thay đổi chủ đề hoạt động Drupal 7 theo chương trình
Trả lời
Bạn có thể sử dụng hook_custom_theme()
:
function mymodule_custom_theme() {
if ($some_condition_is_true) {
return 'my_theme';
}
}
Nếu bạn cần phải căn cứ lựa chọn của bạn trên con đường thì cách tốt nhất để đi là để ghi đè theme callback
cho các mục bộ định tuyến menu cụ thể. See here for an example.
Mặc dù tôi không chắc chắn điều kiện khi bạn muốn thay đổi chủ đề, nhưng nếu bạn muốn thay đổi chủ đề dựa trên url, loại nút, thuật ngữ phân loại, trang xem, v.v ... thì bạn có thể xử lý bằng cách sử dụng ngữ cảnh mô-đun sẽ làm điều này cho bạn và bạn thậm chí không phải viết một dòng mã. Check this out: http://drupal.org/project/context
Đây là một module rất hữu ích và có tích hợp tốt đẹp với module hầu hết các danh nổi tiếng như tấm, chủ đề omega, đồng bằng, vv
Drupal biến theme_default
là một trong những bạn phải thiết lập để chuyển chủ đề sử dụng chức năng variable_set.
variable_set('theme_default', 'your_theme_name');
Bạn có thể thay đổi chủ đề mặc định thông qua hook_update_N nếu bạn đã cài đặt mô-đun tùy chỉnh. Ngoài ra, hãy đảm bảo bạn gọi mã theo số hook_install để chạy mã trong suốt thời gian cài đặt trong trường hợp bạn muốn chia sẻ mô-đun của mình với người khác và muốn thay đổi chủ đề đang hoạt động trong thời gian cài đặt.
/**
* 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);
}
Trong khi variable_set()
sẽ làm việc cho hook_install()
hoặc hook_update_N()
, bạn không nên sử dụng nó trong một mô-đun. Gọi variable_set()
làm trống bảng cache_bootstrap, đây là một hit hiệu suất nghiêm trọng trên các trang web bận.
Tôi muốn giới thiệu ThemeKey module nếu bạn không cần toàn bộ sức mạnh của Ngữ cảnh. Tuy nhiên, ngữ cảnh có thể dễ dàng xuất ra để tạo phiên bản, trong khi theo tôi biết thì không có cách nào để xuất các quy tắc ThemeKey.
- 1. Thay đổi Drupal 7 Được gửi theo định dạng
- 2. Chuyển đổi chủ đề ứng dụng rộng theo chương trình?
- 3. Chủ đề được đặt theo chương trình. Cách tải lại Hoạt động để áp dụng
- 4. Chủ đề bắt đầu cho Drupal 7? Ngay đơ? Zen?
- 5. Thay đổi âm lượng của chương trình trên Win 7
- 6. Thay đổi hình ảnh theo chương trình?
- 7. Làm thế nào để đăng xuất một người dùng theo chương trình trong Drupal 7?
- 8. UITableView: thay đổi kích thước của chế độ xem footer theo chương trình không hoạt động
- 9. Thay đổi chủ đề trong Vaadin 7 qua mã
- 10. Cập nhật bảng {node_counter} theo chương trình trong drupal
- 11. Chuyển đổi mẫu HTML sang Drupal 7
- 12. cửa sổSửa đổi không thay đổi theo chủ đề
- 13. Làm thế nào để thay đổi mật khẩu người dùng Drupal theo lập trình?
- 14. Làm cách nào để thay đổi tiêu đề tab dojo/dijit theo chương trình?
- 15. Làm thế nào tôi có thể thay đổi cách chủ đề Drupal hiển thị trang chủ
- 16. Ẩn Tiêu đề Webform trong drupal 7
- 17. thay đổi miền địa phương theo chương trình
- 18. Drupal 7 views_embed_view và mẫu
- 19. Thay đổi kích thước bố cục theo chương trình (dưới dạng hoạt ảnh)
- 20. Thay đổi bố cục tương đối theo chương trình
- 21. UISegmentedControl thay đổi số phân đoạn theo chương trình
- 22. Xác thực tùy chỉnh AngularJS không kích hoạt khi thay đổi mô hình theo chương trình
- 23. Làm cách nào để thay đổi trình bảo vệ màn hình theo chương trình?
- 24. Tự động thay đổi kích thước chế độ xem phụ được tạo theo chương trình
- 25. Cách cuộn hoạt ảnh theo chương trình
- 26. Dojo Chọn onChange kích hoạt sự kiện khi thay đổi giá trị theo chương trình
- 27. Android: thay đổi chương trình nhãn ứng dụng theo chương trình?
- 28. Drupal 7: Pathauto về phân loại theo cấp bậc mẫu
- 29. Chuyển đổi các đoạn theo chương trình
- 30. Drupal 7 - entityFieldQuery Order