Wie erhalte ich die URL einer Datei, die sich im Themenordner befindet?

6

Gibt es eine Möglichkeit, die URL eines Bildes im Themenordner abzurufen? Oder einfach die URL des Themenordners abrufen?

Andrey Rudenko
quelle

Antworten:

18

Sie können verwenden drupal_get_path(), um den Pfad zu Ihrem Themenordner abzurufen:

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

Von dort aus können Sie eine bestimmte Datei wie folgt angeben:

$image_path = $path . '/images/image.jpg';

Sie können auch verwenden path_to_theme(), aber seien Sie vorsichtig, da sich die Rendite je nach dem Kontext, in dem sie aufgerufen wird, ändern kann:

Es kann auf das aktive Thema oder das Modul verweisen, das eine thematische Implementierung behandelt. Wenn Sie beispielsweise im Rahmen eines Theming-Aufrufs aufgerufen werden, hängt dies davon ab, wo die Theming-Funktion ausgeführt wird. Wenn es von einem Modul implementiert wird, zeigt es auf das Modul. Wenn es aus dem aktiven Thema implementiert wird, zeigt es auf das aktive Thema. Wenn es außerhalb des Bereichs eines Themenaufrufs aufgerufen wird, zeigt es immer auf das aktive Thema.

Clive
quelle
Danke für Ihre Hilfe. Und um die URL zu erstellen, muss ich nur "$ base_url" am Anfang des Pfads hinzufügen.
Andrey Rudenko
1
Zusätzlich ist es auch möglich, die Funktion zu verwenden file_create_url(), so dass am Ende, um die absolute URL zu erhalten, Folgendes aufgerufen werden kann: $image_url = file_create_url($image_path);
Andrey Rudenko
Ein netter Trick ist auch, "Pfad zum aktuellen Thema" zu erhalten, für das ich diese Funktion verwende: function get_theme_path () {$ themename = variable_get ('theme_default', 'my_theme'); $ themepath = drupal_get_path ('theme', $ themename); return $ themepath; }
Tommi Forsström
6
$imgurl = file_create_url(path_to_theme().'/images/blah.png');

Beschreibung: Diese Codezeile verwendet path_to_theme (), um den Pfad zum Thema abzurufen, und file_create_url (), um eine URL für die Datei zu erstellen und die URL eines Bildes im Themenordner abzurufen, wie von der angefordert op.

Ich habe eine Ablehnung bekommen, weil ich es nicht beschrieben habe, also bist du da :-)

Es ist auch dasselbe wie die akzeptierte Antwort, nur mit Kommentaren, um sie vollständiger zu machen. Bitte beachten Sie, dass es sich auf den Themenordner des aktuellen Themas bezieht, sodass es hauptsächlich in einer Themenvorlage nützlich ist.

Commonpike
quelle
Wenn diese Codezeile eine Antwort auf die Frage liefert, wäre es schön, eine Beschreibung dafür beizufügen.
Krishna Mohan
Wenn Sie eine mehrsprachige Seite haben, ist dies die richtige Methode. drupal_get_path verarbeitet keine Sprachpräfixe in Pfaden. Möglicherweise erhalten Sie den Dateipfad /en/sites/all/themes/mytheme/image.png. file_create_url behandelt es richtig.
Mwallisch
0

In Drupal 8

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