it-swarm-es.com

¿Cómo obtener la ruta del logotipo en Drupal 7?

Tengo un logotipo personalizado y he intentado obtener su camino de esta manera theme_get_setting('logo_path'), pero no hay ningún resultado esperado.

Estoy usando el código en un bloque personalizado, en la entrada PHP.

7
Ek Kosmos

Parece que logo_path Solo se establece si anula el logotipo predeterminado del tema a través de la configuración del tema. Para obtener el logotipo predeterminado, use theme_get_setting('logo').

7
user7
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 llamada a drupal_theme_initialize () no es estrictamente necesaria, y no hace nada si la variable global $theme Ya está inicializada.
El código está eliminando la URL base porque el valor informado desde theme_get_setting('logo') es una ruta absoluta; si no necesita una ruta relativa para acceder al archivo, entonces la parte entre // [1] puede eliminarse.

Cuando el logotipo se ha deshabilitado en la configuración del tema, theme_get_setting('logo') no devuelve nada.

4
kiamlaluno