Jak ustawić logo motywu?


16

Jak ustawić logo w niestandardowym motywie w Drupal 8?

Widzę, że Drupal szuka pliku logo.svg. Mam plik PNG logo.png, którego użyłem w Drupal 7 i chciałbym go ponownie użyć. Nie mogę ustawić logo jako ustawienia motywu, tak jak w Drupal 7.

Czy istnieje sposób w interfejsie użytkownika lub niestandardowym kodzie w motywie, aby ustawić logo?


Patrząc na kod Drupala 8, widzę, że nadal ma ustawienie niestandardowego logo, jeśli domyślne nie zostało włączone.
kiamlaluno

Tak, jeśli wyłączysz opcję „Użyj domyślnego logo dostarczonego przez motyw”, możesz wybrać logo. Zastanawiałem się, czy pozwolić Drupalowi wybrać moje logo.png jako domyślne logo
batigolix,

Odpowiedzi:


15

Po Drupal 8.6.x

W swoim THEME.info.ymldodaj linię jak logo: logo.png. Musisz wyczyścić pamięć podręczną, aby Drupal mógł wykryć tę zmianę.

Przed Drupalem 8.6.x

Domyślny plik logo stał się teraz logo.svgw Drupal 8. Aby jednak użyć logo.pnglub czegoś innego, musisz dodać niestandardową definicję ustawień w swoim motywie. Aby to zrobić, dodaj następujące wiersze do config/install/THEME.settings.ymlpliku w folderze motywu (zamień THEMEna nazwę komputera motywu).

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

Po wykonaniu tej czynności musisz ponownie zainstalować motyw, jeśli jest już zainstalowany. Plik prosi Drupala o zainstalowanie podanych ustawień po zainstalowaniu motywu. Dlatego podczas instalowania motywu pathparametr logo jest zapisywany w bazie danych, a domyślne logo jest wyłączane przez use_defaultparametr.


1
Mam nadzieję, że wykonałeś instrukcje, jak wspomniano. Nie zapomnij również ponownie zainstalować motywu lub zaimportować konfiguracji drush cim -y --partial --source=path/to/theme/config/install. Użyłem tego kilka razy i działa.
Jigarius

Możesz także ponownie zaimportować konfigurację, używając następującego kodu (np. Z haka aktualizacji). UWAGA spowoduje to wyczyszczenie każdej konfiguracji dodanej od czasu zainstalowania motywu:\Drupal::service('config.installer')->installDefaultConfig('theme', 'theme_name');
leon.nk

Próbowałem ustawić motyw na Bartik, a następnie z powrotem na mój motyw i ustawienia nie zostały zaktualizowane. Nie mam dostępu do wiersza poleceń dla drush. Jak ponownie zainstalować motyw?
Jeff

6

W przypadku zwykłych motywów możesz po prostu przejść do strony wyglądu, przejść do karty ustawień i odznaczyć Use the logo supplied by the theme. Wyświetlony formularz przesyłania pozwala zamiast tego przesłać inny obraz.

kroki

Jeśli faktycznie tworzysz motyw i chcesz podać domyślny obraz, zapoznaj się z jedną z pozostałych odpowiedzi.


5

W pliku MYTHEME.theme motywu dodaj następujący kod.

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

  }
}

Umieść plik logo w katalogu MYTHEME. Zamień MYTHEME na nazwę komputera swojego motywu.



4

W Drupal 8 domyślnym logo musi być plik SVG. Nadal możesz używać pliku PNG z niestandardowym logo lub jeśli motyw ma dodatkowe ustawienia niestandardowe, aby zapewnić obsługę domyślnych logo innych niż SVG.

Zgłoszono to w Domyślnym typem logo dla motywów jest SVG , rekord zmian dla Drupal 8.0.0-beta5.

Jak podano w komentarzu, możesz również użyć następujących elementów w pliku ustawień motywu.

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

To automatycznie użyłoby niestandardowego logo bez ustawiania go z interfejsu użytkownika.


3

W pliku /your-drupal-folder/themes/THEME.theme dodaj:

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

W Drupal 8.6 można to ustawić w pliku .info.yml w następujący sposób:

logo: 'images/MY_THEME_LOGO.png'

ścieżka motywu jest automatycznie dodawana do ścieżki src


0

Nie sądzę, że musisz zmienić kod. W niektórych przypadkach Global settingsmoże powstrzymywać Cię przed zabraniem odpowiedniego logo motywu. Dlatego upewnij się, że LOGO IMAGEwśród Ustawienia globalne i Twój motyw logo powinien być taki sam w Drupal 8 (niektórych przypadkach).


0

Prostą opcją jest umieszczenie logo w niestandardowym bloku.

/ admin / structure / block / block-content

jest to elastyczne i szczególnie przydatne, jeśli chcesz, aby logo wyświetlało się inaczej w innych sekcjach witryny

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.