Come imposto il logo del tema?


16

Come posso impostare il logo nel mio tema personalizzato in Drupal 8?

Vedo che Drupal cerca il file logo.svg. Ho un file PNG logo.png che ho usato in Drupal 7 e vorrei riutilizzarlo. Non riesco a impostare il logo come impostazione del tema come in Drupal 7.

C'è un modo attraverso l'interfaccia utente o il codice personalizzato nel tema per impostare il logo?


Guardando il codice Drupal 8, posso vedere che ha ancora le impostazioni per un logo personalizzato, se quello predefinito non è stato abilitato.
kiamlaluno

Sì, in effetti se disabiliti "Usa il logo predefinito fornito dal tema", puoi scegliere un logo. Stavo pensando di lasciare che Drupal scelga il mio logo.png come logo predefinito
batigolix,

Risposte:


15

Dopo Drupal 8.6.x

Nel tuo THEME.info.ymlaggiungi una riga come logo: logo.png. È necessario svuotare la cache affinché Drupal rilevi questa modifica.

Prima di Drupal 8.6.x

Il file del logo predefinito è ora diventato logo.svgin Drupal 8. Tuttavia, per usare logo.pngo qualcos'altro, è necessario aggiungere la definizione delle impostazioni personalizzate nel tema. Per fare ciò, aggiungi le seguenti righe al config/install/THEME.settings.ymlfile nella cartella del tema (sostituisci THEMEcon il nome della macchina del tuo tema).

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

Dopo aver fatto ciò, è necessario reinstallare il tema se già installato. Il file chiede a Drupal di installare le impostazioni fornite quando viene installato il tema. Pertanto, quando si installa il tema, il pathparametro logo viene salvato nel database e il logo predefinito viene disabilitato dal use_defaultparametro.


1
Spero che tu abbia eseguito le istruzioni come indicato. Inoltre, non dimenticare di reinstallare il tema o importare la configurazione come drush cim -y --partial --source=path/to/theme/config/install. L'ho usato diverse volte e funziona.
Jigarius,

Puoi anche reimportare la configurazione usando il seguente codice (ad es. Da un hook di aggiornamento). NOTA questo cancellerà qualsiasi configurazione aggiunta \Drupal::service('config.installer')->installDefaultConfig('theme', 'theme_name');
dall'installazione

Ho provato a impostare il tema su Bartik e poi di nuovo al mio tema e le impostazioni non sono state aggiornate. Non ho accesso alla riga di comando per Drush. Come reinstallare il tema?
Jeff,

6

Per i temi regolari, puoi semplicemente andare alla pagina dell'aspetto, andare alla scheda delle impostazioni e deselezionare Use the logo supplied by the theme. Il modulo di caricamento che appare consente invece di caricare un'altra immagine.

passaggi

Se stai effettivamente creando il tema e desideri fornire un'immagine predefinita, fai riferimento a una delle altre risposte.


5

Nel file MYTHEME.theme del tema, aggiungi il seguente codice.

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

  }
}

Inserisci il file del logo nella directory MYTHEME. Sostituisci MYTHEME con il nome della macchina del tuo tema.



4

In Drupal 8, il logo predefinito deve essere un file SVG. Puoi comunque utilizzare un file PNG con un logo personalizzato o se il tema ha impostazioni personalizzate aggiuntive per supportare i loghi predefiniti non SVG.

Questo è quanto riportato in Il tipo di logo predefinito per i temi è SVG , un record di modifica per Drupal 8.0.0-beta5.

Come riportato nel commento, è inoltre possibile utilizzare quanto segue nel file delle impostazioni del tema.

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

Ciò userebbe automaticamente un logo personalizzato senza impostarlo dall'interfaccia utente.


3

Nel file /your-drupal-folder/themes/THEME.theme aggiungi questo:

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

In Drupal 8.6 questo può essere impostato nel tuo file .info.yml come segue:

logo: 'images/MY_THEME_LOGO.png'

il percorso del tema viene aggiunto automaticamente al percorso src


0

Non penso che tu debba cambiare il codice. In alcuni casi, Global settingspotrebbe impedirti di prendere il rispettivo logo del tema. Quindi, assicurarsi LOGO IMAGEdi Impostazioni globali e il vostro logo tema dovrebbe essere lo stesso in Drupal 8 (alcuni casi).


0

Un'opzione semplice è quella di posizionare il logo in un blocco personalizzato.

/ Admin / struttura / block / block-contenuti

questo è flessibile e particolarmente utile se vuoi che quel logo si presenti in modo diverso in altre sezioni del sito

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.