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.
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')
.
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.