Wie erhalte ich den Logo-Pfad in Drupal 7?


7

Ich habe ein benutzerdefiniertes Logo und habe versucht, seinen Weg auf diese Weise zu finden theme_get_setting('logo_path'), aber kein erwartetes Ergebnis.

Ich verwende den Code in einem benutzerdefinierten Block in Eingabe-PHP.


3
Wo verwenden Sie diesen Code? Haben Sie versucht theme_get_setting('logo_path', 'THEME_NAME'), THEME_NAME durch den Namen Ihres Themas zu ersetzen?
Marcvangend

Antworten:


7

logo_pathscheint nur eingestellt zu sein, wenn Sie das Standardlogo des Themas über seine Designeinstellungen überschreiben. Verwenden Sie, um das Standardlogo zu erhalten theme_get_setting('logo').


Aber warum ist das Ergebnis theme_get_setting('logo')eine leere Zeichenfolge? Ich habe mein benutzerdefiniertes Logo in/admin/appearance/setting
Ek Kosmos

Warum , wenn Logo deactivate von Thema ist TOGGLE DISPLAY - Enable or disable the display of certain page elements.das theme_get_setting('logo')keine Ergebnisse. Warum ?
Ek Kosmos

1
Danke, genau das habe ich gesucht! Verwenden Sie <a href="<?php echo theme_get_setting('logo');?>">in einem PHP-Codeblock, um das Logo in Ihrem eigenen Block anzuzeigen.
Coomie

4
global $base_url;
drupal_theme_initialize();

if (!$logo = theme_get_setting('logo_path')) {
    $logo = theme_get_setting('logo');
}

if (!empty($logo)) {
  // [1]
  // Remove the base URL from the result returned by theme_get_setting('logo').
  // If you don't need the relative path, you can remove this code.
  if (strpos($logo, $base_url) === 0) {
    $logo = drupal_substr($logo, drupal_strlen($base_url));
  }
  // [1]
  // …
}

Der Aufruf von drupal_theme_initialize () ist nicht unbedingt erforderlich und führt zu nichts, wenn die globale Variable $themebereits initialisiert ist.
Der Code entfernt die Basis-URL, da der gemeldete Wert theme_get_setting('logo')ein absoluter Pfad ist. Wenn Sie keinen relativen Pfad für den Zugriff auf die Datei benötigen, kann der dazwischen liegende Teil // [1]entfernt werden.

Wenn das Logo in den Designeinstellungen deaktiviert wurde, theme_get_setting('logo')wird nichts zurückgegeben.


Ich ersetzen den Code in [1]mit $logo = file_create_url($logo);, um den vollständigen URL - Pfad des Logos (mit http: //) zu erhalten.
Matt Fletcher
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.