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?

Batigolix
quelle
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 .

Jigarius
quelle
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.

Neograph734
quelle
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.

Wasim Khan
quelle
5

Ab Drupal 8.6 kann Ihr Beitrage- oder benutzerdefiniertes Thema (sagen wir, es heißt mythemename) das Standardlogo leicht in seiner mythemename.info.ymlDatei definieren:

logo: images/acme-logo-stacked.png

Siehe https://www.drupal.org/docs/8/theming-drupal-8/defining-a-theme-with-an-infoyml-file#logo

Beachten Sie, dass die Logoeinstellung use_defaulttrue sein muss , um verwendet zu werden.

mlncn
quelle
Dies ist jetzt in, siehe ThemeInitialization
berliner
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.

kiamlaluno
quelle
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']);
}
Chetabahana
quelle
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

Judder
quelle
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.

TS Guhan
quelle
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

Matoeil
quelle