Câu trả lời:
Có một mô-đun contrib ThemeKey rằng
cho phép bạn xác định các quy tắc chuyển đổi chủ đề đơn giản hoặc phức tạp, cho phép tự động chọn chủ đề tùy thuộc vào đường dẫn hiện tại, thuật ngữ phân loại, ngôn ngữ, loại nút và nhiều thuộc tính khác. Nó cũng có thể dễ dàng được mở rộng để hỗ trợ các thuộc tính bổ sung được hiển thị bởi các mô-đun khác. Kết hợp với tính kế thừa chủ đề của Drupal và Thuộc tính ThemeKey, bạn có thể dễ dàng đạt được các tính năng như:
các kênh được tạo kiểu riêng lẻ một màn hình trang chủ / "giật gân" một chủ đề di động theo chủ đề Giáng sinh được chọn theo ngày / thời gian cho các thiết bị di động được phát hiện tự động khác nhau cho các chủ đề trình duyệt "giới hạn" hoặc "cũ", chủ đề người dùng hoặc vai trò cụ thể cho biết môi trường của bạn (sản xuất, dàn dựng, thử nghiệm, hộp cát, tầm nhìn) kiểm tra thiết kế lại của bạn một cách an toàn trên máy chủ trực tiếp
Kiểm tra câu hỏi cũng liên quan ở đây .
Bạn cũng có thể làm điều này bằng cách tạo một mô-đun tùy chỉnh.
Phương pháp 1
Sử dụng điều này nếu bạn muốn tạo chủ đề cho một trang hiện có, dựa trên đường dẫn nội bộ của Drupal (còn gọi là nguồn đường dẫn). Ví dụ này sử dụng hook_custom_theme .
<?php
function MYMODULE_custom_theme() {
// match node/1
if (arg(0) == 'node' && arg(1) == '1') {
return variable_get('admin_theme');
}
}
Cách 2
Sử dụng điều này nếu bạn muốn tạo chủ đề cho một trang hiện có, dựa trên đường dẫn URL (còn gọi là bí danh đường dẫn). Ví dụ này cũng sử dụng hook_custom_theme .
<?php
function MYMODULE_custom_theme() {
// get arguments
$arg = explode('/', substr(request_uri(), strlen(base_path())));
// match {wildcard}/path
// Using strpos as $arg[1] may end up having stuff like so ?order=title&sort=asc
if (isset($arg[1]) && strpos($arg[1], 'path') !== false && !isset($arg[2])) {
return variable_get('admin_theme');
}
}
Phương pháp 3
Sử dụng điều này nếu bạn muốn chủ đề và tạo một trang. Ví dụ này sử dụng hook_menu . Để tìm hiểu thêm, hãy xem một bài viết tuyệt vời khác về hook_menu .
<?php
function MYMODULE_menu() {
$items = array();
// match some/path
$output['some/path'] = array(
'title' => t('Page Title'),
'page callback' => 'MYMODULE_page',
'theme callback' => 'variable_get',
'theme arguments' => array('admin_theme'),
)
}
function MYMODULE_page() {
return 'Hello world.';
}
Nếu bạn là nhà phát triển mô-đun, bạn có thể sử dụng hook_admin_paths để xác định đường dẫn nào sẽ được hiển thị với chủ đề quản trị.
Chỉ cần cung cấp cho trang một đường dẫn bắt đầu với quản trị viên: 'admin / mypage'
Chức năng này hiện nằm trong lõi D7.
Có một mô-đun hiển thị "hook_admin_paths" một cách hiệu quả cho UI: https://drupal.org/project/admin_theme