Як встановити логотип теми?


16

Як я можу встановити логотип у моїй спеціальній темі в Drupal 8?

Я бачу, що Drupal шукає файл logo.svg. У мене є файл PNG logo.png, який я використовував у Drupal 7, і я хотів би його повторно використовувати. Я не можу встановити логотип як тематичний параметр, як у Drupal 7.

Чи є спосіб через логотип або користувальницький код встановити логотип?


Переглядаючи код Drupal 8, я можу побачити, що він все ще має налаштування для користувацького логотипу, якщо типовий для нього не було ввімкнено.
kiamlaluno

Так, якщо ви вимкнете "Використовувати логотип за замовчуванням, що надається темою", ви можете вибрати логотип. Я думав дозволити Друпалу вибрати мій logo.png як логотип за замовчуванням
batigolix

Відповіді:


15

Після Drupal 8.6.x

У вашому THEME.info.ymlдодати рядок logo: logo.png. Вам потрібно очистити кеш для Drupal, щоб виявити цю зміну.

Перед Drupal 8.6.x

Файл логотипу за замовчуванням тепер став logo.svgу Drupal 8. Однак, щоб використовувати logo.pngабо щось інше, вам потрібно додати визначення власної настройки у вашу тему. Для цього додайте наступні рядки для config/install/THEME.settings.ymlфайлу у папці тем (замініть THEMEна ім’я машини вашої теми).

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

Після цього ви повинні перевстановити свою тему, якщо вона вже встановлена. Файл просить Drupal встановити задані налаштування під час встановлення теми. Отже, при встановленні теми pathпараметр логотипу зберігається в базі даних, а логотип за замовчуванням відключається use_defaultпараметром.


1
Сподіваюсь, ви виконали інструкції, як було сказано. Крім того, не забудьте знову встановити тему або імпортувати конфігурацію на кшталт drush cim -y --partial --source=path/to/theme/config/install. Я використовував це кілька разів, і це працює.
Jigarius

Ви також можете повторно імпортувати конфігурацію, використовуючи наступний код (наприклад, з гачка оновлення). ПРИМІТКА. Це \Drupal::service('config.installer')->installDefaultConfig('theme', 'theme_name');
видалить

Я спробував встановити тему на Bartik, а потім повернутися до своєї теми та налаштувань не оновлювався. У мене немає доступу до командного рядка для друку. Як перевстановити тему?
Джефф

6

Для звичайних тем ви можете просто перейти на сторінку появи, перейти на вкладку налаштувань і зняти позначку Use the logo supplied by the theme. Форма для завантаження, яка з’являється, дозволяє замість цього завантажити інше зображення.

кроки

Якщо ви насправді будуєте тему і хочете надати зображення за замовчуванням, зверніться до однієї з інших відповідей.


5

У файлі MYTHEME.theme вашої теми додайте наступний код.

/**
 * 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;

  }
}

Помістіть файл логотипу в каталог MYTHEME. Замініть MYTHEME на назву машини вашої теми.


5

Станом на Drupal 8.6 ваш допис або спеціальна тема (скажімо, це називається mythemename) легко визначають логотип за замовчуванням у своєму mythemename.info.ymlфайлі:

logo: images/acme-logo-stacked.png

Дивіться https://www.drupal.org/docs/8/theming-drupal-8/defining-a-theme-with-an-infoyml-file#logo

Зауважте, що для використання use_defaultналаштування логотипу повинно бути правдою.


Це зараз, дивіться ThemeInitialization
berliner

4

У Drupal 8 логотипом за замовчуванням повинен бути файл SVG. Ви все ще можете використовувати файл PNG зі спеціальним логотипом або якщо тема має додаткові спеціальні налаштування, щоб надати підтримку логотипам, що не містять SVG, за замовчуванням.

Про це повідомляється у типі логотипу для тем за темою SVG , запис змін для Drupal 8.0.0-beta5.

Як повідомляється в коментарі, ви також можете використовувати наступне у файлі налаштувань теми.

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

Це автоматично використовувати спеціальний логотип, не встановлюючи його з інтерфейсу користувача.


3

У /your-drupal-folder/themes/THEME.theme додайте це:

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

У Drupal 8.6 це можна встановити у вашому файлі .info.yml наступним чином:

logo: 'images/MY_THEME_LOGO.png'

шлях теми автоматично додається до шляху src


0

Я не думаю, що вам потрібно змінювати код. В деяких випадках,Global settings може заважати вам брати відповідний логотип теми. Таким чином, переконайтеся , що LOGO IMAGEв глобальних налаштуваннях і ваша тема логотип повинен бути таким же в Drupal 8 (деякі випадки).


0

Простий варіант - розмістити логотип у користувацькому блоці.

/ admin / структура / блок / блок-контент

це гнучко і особливо корисно, якщо ви хочете, щоб логотип відображався так, як це відрізняється в інших розділах сайту

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.