Cách đặt chủ đề mặc định theo chương trình


8

Tôi đang cố gắng xây dựng một hồ sơ cài đặt và tôi muốn bật chủ đề tùy chỉnh của mình và cài đặt theo mặc định sau khi cài đặt.

Thêm vào MYPROFILE.info.yml ...

theme:
  - my_theme

...Không đủ. Điều này chỉ cài đặt nó, nhưng nó không được đặt làm chủ đề mặc định.

Tôi đoán tôi phải làm một cái gì đó khác trong tệp MYPROFILE.install trong

function MYPROFILE_install() {
  // how to set as default my custom theme
}

Cảm ơn bạn

Câu trả lời:


11

Nhìn vào ThemeController::setDefaultTheme(trình xử lý yêu cầu cho / admin / xuất hiện / tuyến mặc định), điều này sẽ thực hiện thủ thuật:

\Drupal::configFactory()
  ->getEditable('system.theme')
  ->set('default', 'machine_name')
  ->save();

Để làm việc này, chủ đề phải được kích hoạt. Vẫn không biết làm thế nào để kích hoạt nó theo chương trình.
dxvargas

3
@hiphip May mắn thay điều đó khá đơn giản:\Drupal::service('theme_installer')->install(['theme_name']);
Clive

-2

Bạn có thể tạo một trang web có chủ đề mặc định chính xác và sao chép các tệp cấu hình liên quan đến chủ đề vào thư mục cấu hình của hồ sơ của bạn (hoặc tất cả các tệp nếu nó có ý nghĩa đối với hồ sơ của bạn).

Xem https://www.drupal.org/node/2210443#config để biết thêm.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.