Frage

Die Drupal API hat drupal_get_path($type, $name) , welche den Weg eines bestimmten Thema geben oder Modul. Was passiert, wenn ich den Pfad des aktuellen Themas will?

War es hilfreich?

Lösung

Mit der path_to_theme Funktion.

Andere Tipps

Das sollte funktionieren ( doc ):

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

// there's also a $theme_path global

global $theme_path;

In D6 path_to_theme () in einer Weise, die Sie erwarten, verhalten sich nicht je nachdem, wie Sie es verwenden. Wenn Sie es außerhalb jeglicher Thema Vorprozess Funktionen verwenden, dann wird es wahrscheinlich Ihnen, was Sie wollen, aber wenn es im Rahmen eines Moduls Theming / Vorprozess Hook-Funktion aufgerufen wird ... es wird auf den Modulpfad werden zeigen, dass erklärte das Thema.

Ex. Wenn ich ein Thema „my_theme“ und mein Modul „my_module“, die die Forum Themen überschreibt die Vorprozess Haken, ruft path_to_theme () in meinem Modul: z.B. my_module_preprocess_forums () ... will return "Foren", und nicht "my_theme", wie man erwarten könnte.

Sehr fruchtig, wenn Sie mich fragen.

In Drupal 7 zum aktuellen Thema des Weg bekommen, können wir verwenden: path_to_theme () Funktion.

In Drupal 8

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

In Drupal 5, können Sie einfach: path_to_theme ()

Dies gibt Ihnen einen vollständigen Pfad von der Wurzel von Drupal zu dem spezifischen Themenverzeichnis. Seien Sie sich bewusst, es enthält nicht Slash.

In Drupal 6, dies verhält sich nur ein bisschen anders. Wenn Sie es aus Ihren Seiten aufrufe, wird es nennen, was derzeit die Thematisierung tut ... ob das Ihr Thema ist, ein Modul, usw. Hier ist der Schlüssel Zitat aus der API-Dokumentation:

  

Es kann auf das aktive Thema hinweisen oder   das Modul ein Themen Handling   Implementierung. Wenn zum Beispiel   im Rahmen eines theming aufgerufen   rufen wird es davon abhängen, wo die   Theming-Funktion behandelt. Wenn   von einem Modul implementiert, wird es   weisen auf das Modul. wenn umgesetzt   vom aktiven Thema, wird es zeigen   zum aktiven Thema. wenn sie aufgerufen   außerhalb des Bereichs eines theming Anrufs,   es wird immer auf den aktiven Punkt   Thema.

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

Für D8, die Themenordner in Vorprozess Funktionen zur Verfügung:

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

page.html.twig:

<img src="{{ logo_src }}">
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top