Domanda

L'API Drupal ha drupal_get_path ($ type, $ name) che fornirà il percorso di qualsiasi tema o modulo particolare. Cosa succede se desidero il percorso del tema corrente?

È stato utile?

Soluzione

Utilizza la funzione path_to_theme .

Altri suggerimenti

questo dovrebbe funzionare ( doc ):

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

// there's also a $theme_path global

global $theme_path;

In D6 path_to_theme () potrebbe non comportarsi come ti aspetti a seconda di come lo stai usando. Se lo stai usando al di fuori di qualsiasi funzione di preelaborazione del tema, probabilmente ti darà quello che vuoi, ma se viene chiamato nel contesto della funzione hook / preelaborazione del tema di un modulo ... indicherà il percorso del modulo che ha dichiarato il tema.

Ex. Se ho un tema " my_theme " e il mio modulo " my_module " che sta sovrascrivendo i temi del forum usando gli hook di pre-elaborazione, chiamando path_to_theme () all'interno del mio modulo: ad es. my_module_preprocess_forums () ... restituirà " forum " ;, e non " my_theme " come ci si potrebbe aspettare.

Molto fruttato se me lo chiedi.

In Drupal 7, per ottenere il percorso del tema corrente, possiamo usare: path_to_theme () .

In Drupal 8

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

In Drupal 5, puoi semplicemente usare: path_to_theme ()

Questo ti darà un percorso completo dalla radice di Drupal alla directory tematica specifica. Attenzione, non include una barra finale.

In Drupal 6, questo si comporta in modo leggermente diverso. Se lo chiami dalle tue pagine, chiamerà qualunque cosa stia facendo attualmente il tema ... se questo è il tuo tema, un modulo, ecc. Ecco la citazione chiave dai documenti API:

  

Può puntare al tema attivo o   il modulo gestisce un tema   implementazione. Ad esempio, quando   invocato nell'ambito di una tematica   chiamarlo dipenderà da dove   la funzione di tema è gestita. Se   implementato da un modulo, lo farà   punta al modulo. Se implementato   dal tema attivo, punterà   al tema attivo. Quando chiamato   al di fuori dell'ambito di una chiamata a tema,   indicherà sempre l'attivo   tema.

Fonte: http://api.drupal.org/api/function/path_to_theme

Per D8, la cartella del tema è disponibile nelle funzioni di preelaborazione:

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

page.html.twig:

<img src="{{ logo_src }}">
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top