Làm cách nào để đặt logo chủ đề?


16

Làm cách nào tôi có thể đặt logo trong chủ đề tùy chỉnh của mình trong Drupal 8?

Tôi có thể thấy rằng Drupal tìm kiếm tệp logo.svg. Tôi có tệp PNG logo.png mà tôi đã sử dụng trong Drupal 7 và tôi muốn sử dụng lại. Tôi không thể đặt logo làm cài đặt chủ đề như trong Drupal 7.

Có cách nào thông qua UI hoặc mã tùy chỉnh trong chủ đề để đặt logo không?


Nhìn vào mã Drupal 8, tôi có thể thấy nó vẫn có cài đặt cho logo tùy chỉnh, nếu mã mặc định chưa được bật.
kiamlaluno

Có, thực sự nếu bạn tắt "Sử dụng logo mặc định được cung cấp bởi chủ đề" thì bạn có thể chọn logo. Tôi đã nghĩ đến việc để Drupal chọn logo của
mình.png

Câu trả lời:


15

Sau Drupal 8.6.x

Trong bạn THEME.info.ymlthêm một dòng nhưlogo: logo.png . Bạn cần xóa bộ nhớ cache cho Drupal để phát hiện sự thay đổi này.

Trước Drupal 8.6.x

Tệp logo mặc định hiện đã trở thành logo.svgDrupal 8. Tuy nhiên, để sử dụng logo.pnghoặc một cái gì đó khác, bạn cần thêm định nghĩa cài đặt tùy chỉnh trong chủ đề của mình. Để thực hiện việc này, hãy thêm các dòng sau vào config/install/THEME.settings.ymltệp trong thư mục chủ đề của bạn (thay thế THEMEbằng tên máy của chủ đề của bạn).

logo:
  path: 'themes/THEME/logo.png'
  use_default: false

Sau khi làm điều này, bạn phải cài đặt lại chủ đề của bạn nếu đã được cài đặt. Tệp yêu cầu Drupal cài đặt các cài đặt đã cho khi chủ đề được cài đặt. Do đó, khi bạn cài đặt chủ đề, paththam số logo sẽ được lưu vào cơ sở dữ liệu và logo mặc định bị vô hiệu hóa bởi use_defaulttham số.


1
Hy vọng bạn thực hiện các hướng dẫn như đã đề cập. Ngoài ra, đừng quên cài đặt lại chủ đề hoặc nhập cấu hình như thế nào drush cim -y --partial --source=path/to/theme/config/install. Tôi đã sử dụng điều này nhiều lần và nó hoạt động.
Jigarius

Bạn cũng có thể nhập lại cấu hình bằng mã sau (ví dụ từ móc cập nhật). LƯU Ý điều này sẽ xóa mọi cấu hình được thêm vào kể từ khi chủ đề được cài đặt:\Drupal::service('config.installer')->installDefaultConfig('theme', 'theme_name');
leon.nk

Tôi đã thử đặt chủ đề thành Bartik và sau đó quay lại chủ đề của mình và các cài đặt chưa được cập nhật. Tôi không có quyền truy cập vào dòng lệnh cho drush. Làm cách nào để cài đặt lại chủ đề?
Jeff

6

Đối với các chủ đề thông thường, bạn chỉ cần vào trang xuất hiện, chuyển đến tab cài đặt và bỏ chọn Use the logo supplied by the theme. Hình thức tải lên xuất hiện cho phép tải lên một hình ảnh khác thay thế.

các bước

Nếu bạn thực sự đang xây dựng chủ đề và muốn cung cấp một hình ảnh mặc định, vui lòng tham khảo một trong những câu trả lời khác.


5

Trong tệp MYTHEME.theme của chủ đề của bạn, hãy thêm đoạn mã sau.

/**
 * Implements hook_preprocess_HOOK() for block templates.
 */

function MYTHEME_preprocess_block(&$variables) {
  switch ($variables['base_plugin_id']) {
    case 'system_branding_block':
      $variables['site_logo'] = '';
      if ($variables['content']['site_logo']['#access'] && $variables['content']['site_logo']['#uri']) {
        $variables['site_logo'] = str_replace('.svg', '.png', $variables['content']['site_logo']['#uri']);
      }
      break;

  }
}

Đặt tệp logo trong thư mục MYTHEME. Thay MYTHEME bằng tên máy của chủ đề của bạn.


5

Kể từ Drupal 8.6, đóng góp hoặc chủ đề tùy chỉnh của bạn (giả sử nó được gọi là huyền thoại) có thể dễ dàng xác định logo mặc định trong mythemename.info.ymltệp của nó :

logo: images/acme-logo-stacked.png

Xem https://www.drupal.org/docs/8/theming-drupal-8/defining-a-theme-with-an-infoyml-file#logo

Lưu ý rằng để được sử dụng, use_defaultcài đặt logo phải đúng.


Đây hiện đang ở, xem ThemeInitialization
Berliner

4

Trong Drupal 8, logo mặc định cần phải là tệp SVG. Bạn vẫn có thể sử dụng tệp PNG có logo tùy chỉnh hoặc nếu chủ đề có thêm cài đặt tùy chỉnh để hỗ trợ cho các logo mặc định không phải là SVG.

Đây là những gì được báo cáo trong Loại logo mặc định cho các chủ đề là SVG , bản ghi thay đổi cho Drupal 8.0.0-beta5.

Như đã báo cáo trong bình luận, bạn cũng có thể sử dụng thông tin sau trong tệp cài đặt chủ đề.

logo:
  path: 'themes/THEME_NAME/logo.png'
  use_default: false

Điều này sẽ tự động sử dụng logo tùy chỉnh mà không cần đặt nó từ UI.


3

Trong tệp /your-drupal-folder/theme/THEME.theme thêm điều này:

function THEME_preprocess_page(&$variables) {
  global $base_url, $base_path;
  $variables['logo'] = $base_url . $base_path . drupal_get_path('theme','THEME') . '/logo.svg';

  ##Uncomment this if you want to use png instead of svg image
  #$variables['logo'] = str_replace('.svg', '.png', $variables['logo']);
}

1

Trong Drupal 8.6, điều này có thể được đặt trong tệp .info.yml của bạn như sau:

logo: 'images/MY_THEME_LOGO.png'

đường dẫn chủ đề được tự động thêm vào đường dẫn src


0

Tôi không nghĩ bạn cần thay đổi mã. Trong một số trường hợp, Global settingscó thể ngăn bạn lấy logo chủ đề tương ứng. Do đó, hãy chắc chắn LOGO IMAGEcủa Global Settingsbiểu tượng chủ đề của bạn nên cùng trong Drupal 8 (Một số trường hợp).


0

Một tùy chọn đơn giản là đặt logo trong một khối tùy chỉnh.

/ quản trị / cấu trúc / khối / khối nội dung

Điều này rất linh hoạt và đặc biệt hữu ích nếu bạn muốn logo đó hiển thị sowehat khác nhau trong các phần khác của trang web

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.