web-dev-qa-db-fra.com

Comment puis-je obtenir un chemin absolu vers un thème?

Existe-t-il une fonction Drupal qui retourne le chemin absolu du thème? Ou existe-t-il une manière canonique/pratique de base de le faire en renvoyant correctement le chemin du thème?

Ce que j'ai trouvé jusqu'à présent est le suivant:

<?php
// @file template.php
$template_path = DRUPAL_ROOT . drupal_get_path('theme', 'foo');

Je cherche à exiger_une fois le chemin du modèle dans un fichier template.php comme ceci:

<?php
$template_path = DRUPAL_ROOT . drupal_get_path('theme', 'coo');
// ...
// Check file exists etc
require_once $template_path;
6
chrisjlee

La fonction base_path() retournerait le bain de base de l'installation Drupal

Renvoie le chemin de l'URL de base de l'installation Drupal. Au minimum, ce sera toujours par défaut à /.

et path_to_theme() retournera le chemin d'accès au thème actuel.

Renvoie le chemin d'accès à l'élément thématique actuel.

Il peut pointer vers le thème actif ou le module gérant une implémentation thématique. Par exemple, lorsqu'elle est invoquée dans le cadre d'un appel de thème, cela dépend de l'endroit où la fonction de thème est gérée. S'il est implémenté à partir d'un module, il pointera vers le module. S'il est implémenté à partir du thème actif, il pointera vers le thème actif. Lorsqu'il est appelé en dehors de la portée d'un appel à thème, il pointe toujours vers le thème actif.

18
Mohammed Shameem

La réponse de Mohammed Shameem est correcte, mais si vous cherchez vraiment la bonne façon (la Drupal) pour rendre un modèle personnalisé, n'utilisez pas include() ou require_once(). Utilisez plutôt le système de thème Drupal. Changer la sortie de quelque chose qui a déjà un modèle est facile, voir Redéfinition de la sortie thématique pour savoir comment pour remplacer un modèle. S'il n'y a pas encore de modèle, vous devrez vous renseigner sur hook_theme , enregistrer vos propres modèles et rendre des tableaux.

2
marcvangend

Vous pouvez essayer ce module: wrapper de flux système

Il fournit des wrappers (exemples du site du module):

  • module: //file/icons/text-plain.png

  • thème: //bartik/screenshot.png

  • thème: //default/screenshot.png

  • profil: //minimal/minimal.info

  • profile: //current/standard.info (profile: // current se développe en profil actif pour le site)

  • library: //ckeditor/images/spacer.gif (ne fonctionne que si le module Bibliothèques est activé)

0
Paul Nike