Tema logosunu nasıl ayarlarım?


16

Logoyu Drupal 8'deki özel temamda nasıl ayarlayabilirim?

Drupal'ın logo.svg dosyasını aradığını görebiliyorum. Drupal 7'de kullandığım bir PNG logo.png dosyası var ve yeniden kullanmak istiyorum. Logoyu Drupal 7'deki gibi tema ayarı olarak ayarlayamıyorum.

Logoyu ayarlamak için temada kullanıcı arayüzü veya özel kod aracılığıyla bir yol var mı?


Drupal 8 koduna baktığımda, varsayılan olan etkin değilse hala özel bir logo için ayar olduğunu görebiliyorum.
kiamlaluno

Evet, gerçekten de "Tema tarafından sağlanan varsayılan logoyu kullan" seçeneğini devre dışı bırakırsanız, bir logo seçebilirsiniz.
Drupal'ın

Yanıtlar:


15

Drupal 8.6.x Sonrası

Sizin THEME.info.ymlgibi bir satır ekleyin logo: logo.png. Bu değişikliği algılamak için Drupal'ın önbelleğini temizlemeniz gerekir.

Drupal 8.6.x öncesi

Varsayılan logo dosyası şimdi logo.svgDrupal 8'de olmuştur . Ancak, kullanmak logo.pngveya başka bir şey için temanıza özel ayar tanımı eklemeniz gerekir. Bunu yapmak için config/install/THEME.settings.yml, tema klasörünüze aşağıdaki satırları ekleyin ( THEMEtemanızın makine adıyla değiştirin).

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

Bunu yaptıktan sonra, önceden yüklenmişse temanızı yeniden yüklemeniz gerekir. Dosya, Drupal'dan tema yüklendiğinde verilen ayarları yüklemesini ister. Bu nedenle, temayı yüklediğinizde logo pathparametresi veritabanına kaydedilir ve use_defaultparametre tarafından varsayılan logo devre dışı bırakılır .


1
Talimatları belirttiğiniz gibi yürüttüğünüzü umuyoruz. Ayrıca, temayı yeniden yüklemeyi veya yapılandırmayı içe aktarmayı da unutmayın drush cim -y --partial --source=path/to/theme/config/install. Bunu birkaç kez kullandım ve işe yarıyor.
Jigarius

Aşağıdaki kodu kullanarak yapılandırmayı yeniden içe aktarabilirsiniz (örn. Güncelleme kancasından). NOT, bu tema yüklendikten sonra eklenen tüm yapılandırmaları \Drupal::service('config.installer')->installDefaultConfig('theme', 'theme_name');
silecektir

Temayı Bartik'e ayarlamayı denedim ve sonra temama geri döndüm ve ayarlar güncellendi. Acele etmek için komut satırına erişimim yok. Temayı nasıl yeniden yüklerim?
Jeff

6

Düzenli temalar için görünüm sayfasına gidebilir, ayarlar sekmesine gidebilir ve seçimi kaldırabilirsiniz Use the logo supplied by the theme. Görüntülenen yükleme formu bunun yerine başka bir resim yüklenmesine izin verir.

adımlar

Temayı gerçekten oluşturuyorsanız ve varsayılan bir resim sağlamak istiyorsanız, lütfen diğer yanıtlardan birine bakın.


5

Temanızın MYTHEME.theme dosyasına aşağıdaki kodu ekleyin.

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

  }
}

Logo dosyasını MYTHEME dizinine yerleştirin. MYTHEME yerine temanızın makine adını yazın.



4

Drupal 8'de varsayılan logonun bir SVG dosyası olması gerekir. Yine de özel logolu bir PNG dosyası kullanabilirsiniz veya temanın SVG dışı varsayılan logolara destek vermek için ekstra özel ayarları varsa .

Bu ne bildirilen olan SVG olduğunu temalar için varsayılan logo tipi , Drupal 8.0.0-beta5 için bir değişiklik kaydı.

Yorumda bildirildiği gibi, tema ayarları dosyasında aşağıdakileri de kullanabilirsiniz.

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

Bu, özel bir logoyu kullanıcı arayüzünden ayarlamadan otomatik olarak kullanır.


3

Gelen /your-drupal-folder/themes/THEME.theme dosyaya bu ekleyin:

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'da bu .info.yml dosyanızda aşağıdaki gibi ayarlanabilir:

logo: 'images/MY_THEME_LOGO.png'

tema yolu src yoluna otomatik olarak eklenir


0

Kodu değiştirmen gerektiğini sanmıyorum. Bazı durumlarda, Global settingsilgili tema logosunu almanızı durduruyor olabilirsiniz. Bu nedenle, emin olun LOGO IMAGEait Genel Ayarlar ve Temanızın logosu Drupal 8 (Bazı durumlarda) aynı olmalıdır.


0

Basit bir seçenek, logoyu özel bir bloğa yerleştirmektir.

/ Yönetici / yapı / blok / blok içeriği

bu logonun sitenin diğer bölümlerinde farklı görünmesini istiyorsanız esnek ve özellikle yararlıdır

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.