Come ottenere il percorso del logo in Drupal 7?


7

Ho un logo personalizzato e ho cercato di ottenere il suo percorso in questo modo theme_get_setting('logo_path'), ma nessun risultato previsto.

Sto usando il codice in un blocco personalizzato, nell'input PHP.


3
Dove stai usando questo codice? Hai provato a theme_get_setting('logo_path', 'THEME_NAME')sostituire THEME_NAME con il nome del tuo tema?
marcvangend,

Risposte:


7

logo_pathsembra essere impostato solo se si sovrascrive il logo predefinito del tema tramite le sue impostazioni del tema. Per ottenere il logo predefinito, utilizzare theme_get_setting('logo').


Ma perché il risultato theme_get_setting('logo')è una stringa vuota? Ho impostato il mio logo personalizzato in/admin/appearance/setting
Ek Kosmos

Perchè quando Logo è disattivare dal tema TOGGLE DISPLAY - Enable or disable the display of certain page elements.della theme_get_setting('logo')non ci sono risultati. Perché ?
Ek Kosmos,

1
Grazie, è esattamente quello che stavo cercando! Utilizzare <a href="<?php echo theme_get_setting('logo');?>">in un blocco di codice PHP per mostrare il logo nel proprio blocco.
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]
  // …
}

La chiamata a drupal_theme_initialize () non è strettamente necessaria e non fa nulla se la variabile globale $themeè già inizializzata.
Il codice sta rimuovendo l'URL di base perché il valore segnalato theme_get_setting('logo')è un percorso assoluto; se non è necessario un percorso relativo per accedere al file, è // [1]possibile rimuovere la parte tra .

Quando il logo è stato disabilitato nelle impostazioni del tema, theme_get_setting('logo')non restituisce nulla.


Ho sostituito il codice [1]con $logo = file_create_url($logo);per ottenere il percorso URL completo del logo (con http: //).
Matt Fletcher,
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.