Wie stelle ich das Themenlogo ein?


15

Wie kann ich das Logo in meinem benutzerdefinierten Design in Drupal 8 festlegen?

Ich kann sehen, dass Drupal nach der Datei logo.svg sucht. Ich habe eine PNG logo.png-Datei, die ich in Drupal 7 verwendet habe, und ich möchte sie gerne wiederverwenden. Ich kann das Logo nicht als Designeinstellung wie in Drupal 7 festlegen.

Gibt es einen Weg durch die Benutzeroberfläche oder den benutzerdefinierten Code im Design, um das Logo festzulegen?


Wenn ich mir den Drupal 8-Code anschaue, sehe ich, dass er immer noch die Einstellung für ein benutzerdefiniertes Logo enthält, wenn das Standardlogo nicht aktiviert wurde.
kiamlaluno

Ja, wenn Sie die Option "Standardlogo des Themas verwenden" deaktivieren, können Sie ein Logo auswählen. Ich dachte daran, Drupal mein logo.png als Standardlogo
auswählen zu lassen

Antworten:


14

Nach Drupal 8.6.x

Fügen THEME.info.ymlSie in Ihrer Zeile eine Zeile wie logo: logo.png. Sie müssen den Cache löschen, damit Drupal diese Änderung erkennt.

Vor Drupal 8.6.x

Die Standard-Logodatei ist jetzt logo.svgin Drupal 8 enthalten. Um jedoch logo.pngoder etwas anderes zu verwenden, müssen Sie in Ihrem Design benutzerdefinierte Einstellungsdefinitionen hinzufügen. Fügen Sie dazu die folgenden Zeilen zur config/install/THEME.settings.ymlDatei in Ihrem Themenordner hinzu (ersetzen THEMESie sie durch den Computernamen Ihres Themas).

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

Danach müssen Sie Ihr Theme neu installieren, falls es bereits installiert ist. Die Datei fordert Drupal auf, die angegebenen Einstellungen bei der Installation des Themes zu installieren. Wenn Sie das Design installieren, wird der Logo- pathParameter in der Datenbank gespeichert und das Standard-Logo wird durch den use_defaultParameter deaktiviert .


1
Ich hoffe, Sie haben die Anweisungen wie angegeben ausgeführt. Vergessen Sie auch nicht, das Theme neu zu installieren oder die Konfiguration wie folgt zu importieren drush cim -y --partial --source=path/to/theme/config/install. Ich habe das schon mehrmals benutzt und es funktioniert.
Jigarius

Sie können die Konfiguration auch mit dem folgenden Code erneut importieren (z. B. von einem Update-Hook). HINWEIS: Dies löscht alle seit der Installation des Themes hinzugefügten Konfigurationen:\Drupal::service('config.installer')->installDefaultConfig('theme', 'theme_name');
leon.nk

Ich habe versucht, das Thema auf Bartik und dann wieder auf mein Thema einzustellen, und die Einstellungen wurden nicht aktualisiert. Ich habe keinen Zugang zur Kommandozeile für Drush. Wie installiere ich das Theme neu?
Jeff

6

Bei regulären Designs können Sie einfach zur Erscheinungsbildseite wechseln, die Registerkarte Einstellungen aufrufen und die Auswahl aufheben Use the logo supplied by the theme. Über das angezeigte Upload-Formular können Sie stattdessen ein anderes Bild hochladen.

Schritte

Wenn Sie das Thema tatsächlich erstellen und ein Standardbild bereitstellen möchten, lesen Sie bitte eine der anderen Antworten.


5

Fügen Sie in der MYTHEME.theme-Datei Ihres Designs den folgenden Code hinzu.

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

  }
}

Legen Sie die Logo-Datei in das MYTHEME-Verzeichnis. Ersetzen Sie MYTHEME durch den Computernamen Ihres Themas.



4

In Drupal 8 muss das Standardlogo eine SVG-Datei sein. Sie können weiterhin eine PNG-Datei mit einem benutzerdefinierten Logo verwenden oder wenn das Design zusätzliche benutzerdefinierte Einstellungen enthält , um Nicht-SVG-Standardlogos zu unterstützen.

Dies ist, was in berichtet wird. Der Standard -Logotyp für Themen ist SVG , ein Änderungsdatensatz für Drupal 8.0.0-beta5.

Wie im Kommentar angegeben, können Sie in der Designeinstellungsdatei auch Folgendes verwenden.

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

Dies würde automatisch ein benutzerdefiniertes Logo verwenden, ohne es über die Benutzeroberfläche festzulegen.


3

In /your-drupal-folder/themes/THEME.theme Datei fügen Sie diese:

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 kann dies in Ihrer .info.yml-Datei wie folgt eingestellt werden:

logo: 'images/MY_THEME_LOGO.png'

Der Themenpfad wird automatisch zum Quellpfad hinzugefügt


0

Ich glaube nicht, dass Sie den Code ändern müssen. In einigen Fällen können Sie Global settingsmöglicherweise daran gehindert werden, das jeweilige Themenlogo zu übernehmen. Daher stellen Sie sicher , LOGO IMAGEdie Globalen Einstellungen und Ihr Thema Logo sollte in Drupal 8 (einige Fällen) gleich sein.


0

Eine einfache Möglichkeit besteht darin, das Logo in einem benutzerdefinierten Block zu platzieren.

/ admin / structure / block / block-content

Dies ist flexibel und besonders nützlich, wenn Sie möchten, dass das Logo in anderen Bereichen der Website anders angezeigt wird

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.