Question

L'API Drupal a drupal_get_path ($ type, $ name) qui donnera le chemin d'un thème ou d'un module particulier. Et si je veux le chemin du thème actuel?

Était-ce utile?

La solution

Utilisez la path_to_theme .

Autres conseils

cela devrait fonctionner ( doc ):

global $theme;
$path = drupal_get_path('theme', $theme);

// there's also a $theme_path global

global $theme_path;

Dans D6, path_to_theme () peut ne pas se comporter de la manière que vous attendez, selon votre utilisation. Si vous l'utilisez en dehors de fonctions de préprocessus de thème, il vous donnera probablement ce que vous voulez, mais s'il est appelé dans le contexte de la fonction de raccord thématisation / pré-traitement d'un module ... il sera pointé sur le chemin du module a déclaré le thème.

Ex. Si j'ai un thème " my_theme " et mon module " mon_module " qui redéfinit les thèmes du forum à l’aide des crochets de pré-traitement, en appelant path_to_theme () dans mon module: par ex. my_module_preprocess_forums () ... renverra "forums", et non "mon_thème". comme on pouvait s'y attendre.

Très fruité si vous me le demandez.

Dans Drupal 7, pour obtenir le chemin du thème actuel, nous pouvons utiliser: fonction path_to_theme () .

Dans Drupal 8

global $base_url;
$theme = \Drupal::theme()->getActiveTheme();
$image_url = $base_url.'/'. $theme->getPath() .'/images/image.jpg';

Dans Drupal 5, vous pouvez simplement utiliser: path_to_theme ()

Cela vous donnera un chemin complet de la racine de Drupal au répertoire du thème spécifique. Sachez que cela n'inclut pas de barre oblique finale.

Dans Drupal 6, cela se comporte un peu différemment. Si vous l'appelez à partir de vos pages, il appellera tout ce qui est actuellement en cours de thématisation ... qu'il s'agisse de votre thème, d'un module, etc. Voici la citation de clé des documents de l'API:

  

Il peut pointer sur le thème actif ou   le module traitant un thème   la mise en oeuvre. Par exemple, quand   invoqué dans le cadre d'une thématisation   appelez cela dépendra de l'endroit où le   la fonction de thématisation est gérée. Si   mis en œuvre à partir d'un module, il   pointez sur le module. Si implémenté   à partir du thème actif, il indiquera   au thème actif. Quand appelé   en dehors d'un appel thématisé,   il indiquera toujours l'actif   thème.

Source: http://api.drupal.org/api/function/path_path_to_theme

Pour D8, le dossier du thème est disponible dans les fonctions de prétraitement:

function hook_preprocess_page(&$variables) {
  $variables['some_logo_file'] = "/{$variables['theme']['path']}/images/logo.png";
}

page.html.twig:

<img src="{{ logo_src }}">
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top