path_to_theme als Token für node body?
![](https://www.drupalcenter.de/files/imagecache/upic_mini/pictures/picture-10547.png)
am 10.03.2010 - 20:40 Uhr in
Gibt es ein Token oder etwas ähnliches für die Variablen $base_path und $directory was man beim Erfassen von Nodes benutzen kann.
Ich möche gerne sowas machen können <img src="[path-to-template]/images/foo.gif" />
Mit dem Modul "Token Filter" kann man zwar Tokens verwenden aber der Pfad zum Template scheint nicht dabei zu sein.
- Anmelden oder Registrieren um Kommentare zu schreiben
man kann sich recht einfach
am 10.03.2010 - 22:48 Uhr
man kann sich recht einfach tokens bauen:
hier mal eine beispielimplementaion:
function meinmodul_token_values($type, $object = NULL, $options = array()) {
if ($type == 'global') {
$tokens['themepath'] = base_path() . path_to_theme();
return $tokens;
}
}
function meinmodul_token_list($type = 'all') {
if ($type == 'global' || $type == 'all') {
$tokens['global']['themepath'] = t("The full path to the theme");
return $tokens;
}
}
das baust du noch schnell in eine module datei, und die entsprechende. bedenke dass du meinmodul noch in den modulnamen ändern musst.
Cool danke! Ich dachte das es
am 10.03.2010 - 23:10 Uhr
Cool danke!
Ich dachte das es eventuell schon ein Token dafür gibt oder eine andere "Default-Lösung"
OK soweit funktioniert das
am 11.03.2010 - 12:59 Uhr
OK soweit funktioniert das Modul aber eins ist etwas verwirrend
Schaut man sich die Preview an liefert path_to_theme() /modules/node
Nachdem man gespeichert hat steht dann der Pfad zum Theme drin.
Unter http://api.drupal.org/api/function/path_to_theme/6 steht zwar das es das macht aber vielleicht kann mir noch jemand erklären weshalb :)
Falls jemand das auch mal brauchen kann:
tokenthemepath.info
; $ID$
name = "tokenthemepath"
description = Erstellt das Token [themepath]
core = 6.x
package = "Eigene Hacks"
version = "6.x-0.1"
dependencies[] = token
dependencies[] = token_filter
tokenthemepath.module
<?
// $ID$
/**
*@file Modul für das Token [themepath]
*
*/
function tokenthemepath_token_values($type, $object = NULL, $options = array()) {
if ($type == 'global') {
$tokens['themepath'] = base_path() . path_to_theme();
return $tokens;
}
}
function tokenthemepath_token_list($type = 'all') {
if ($type == 'global' || $type == 'all') {
$tokens['global']['themepath'] = t("The full path to the theme");
return $tokens;
}
}
verwendet werden kann das Token dann mit [token global themepath]
Irgendwie funktioniert das
am 11.03.2010 - 23:21 Uhr
Irgendwie funktioniert das nicht immer und überall :)
In Blöcken steht in dem Token [token global themepath] nur der richtige Pfad wenn eine Node angezeigt wird in der das Token auch verwendet wurde.
Ansonsten ist der Pfad $base_path/modules/system
Die Lösung also nur bedingt.
Irgendwie funktioniert das
am 11.03.2010 - 23:21 Uhr
Irgendwie funktioniert das nicht immer und überall :)
In Blöcken steht in dem Token [token global themepath] nur der richtige Pfad wenn eine Node angezeigt wird in der das Token auch verwendet wurde.
Ansonsten ist der Pfad $base_path/modules/system
Die Lösung also nur bedingt.
Na ich habs jetzt halt über
am 24.03.2010 - 15:33 Uhr
Na ich habs jetzt halt über den PHP Filter gemacht.
Da wir den Content selbst eingeben ist das kein Problem, Kunden würde ich aber nur ungern den PHP-Filter freischalten.
<? $themepath = base_path() . path_to_theme(); ?>
<img src="<?= $themepath ?>/images/bild.png" />