Réponses:
logo_path
semble être défini uniquement si vous remplacez le logo par défaut du thème via ses paramètres de thème. Pour obtenir le logo par défaut, utilisez theme_get_setting('logo')
.
theme_get_setting('logo')
est une chaîne vide? J'ai mis mon logo personnalisé dans/admin/appearance/setting
TOGGLE DISPLAY - Enable or disable the display of certain page elements.
l' theme_get_setting('logo')
a aucun résultat. Pourquoi ?
<a href="<?php echo theme_get_setting('logo');?>">
dans un bloc de code PHP pour afficher le logo dans votre propre bloc.
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]
// …
}
L'appel à drupal_theme_initialize () n'est pas strictement nécessaire, et il ne fait rien si la variable globale $theme
est déjà initialisée.
Le code supprime l'URL de base car la valeur signalée à partir de theme_get_setting('logo')
est un chemin absolu; si vous n'avez pas besoin d'un chemin relatif pour accéder au fichier, la partie entre // [1]
peut être supprimée.
Lorsque le logo a été désactivé dans les paramètres du thème, theme_get_setting('logo')
ne renvoie rien.
[1]
avec $logo = file_create_url($logo);
afin d'obtenir le chemin URL complet du logo (avec http: //).
theme_get_setting('logo_path', 'THEME_NAME')
remplacer THEME_NAME par le nom de votre thème?