[gelöst] von Drupal 6 auf 7: theme() Funktion
am 25.02.2011 - 22:26 Uhr in
Hallo,
bei folgender Zeile in einer tpl-Datei bekomme ich in Drupal 7 eine Fehlermeldung.
theme('image', path_to_theme() . '/button_jetzt_bestellen_3.png');
In Drupal 6 hat es funktioniert. Was muß ich anders machen?
Vielen Dank im Voraus. Gruß ... Jorge
- Anmelden oder Registrieren um Kommentare zu schreiben

Ein kurzer Blick auf die API
am 26.02.2011 - 11:10 Uhr
Ein kurzer Blick auf die API von Drupal 7 hätte das geklärt.
Beste Grüße
Werner
theme() API
am 26.02.2011 - 13:53 Uhr
Hallo Werner,
vielen Dank für die Antwort. Der Blick in die theme() Beschreibung hat mir nicht 100% geholfen. Die Funktion sieht fast gleich aus, nur scheint Drupal 7 für $variables ein Array zu erwarten. Wenn das der Unterschied ist, mit welchem Key muß ich den Bild-Pfad übergeben und wie kann ich, wenn ich das nicht weiß, die Key-Definitionen grundsätzlich herausfinden?
Vielen Dank im Voraus .... Jorge
Man sollte evtl wissen, daß
am 26.02.2011 - 19:08 Uhr
Man sollte evtl wissen, daß der Aufruf von theme('image',..... auf den Aufruf von theme_image umgeleitet wird. Die Beschreibung dazu findest Du auch in der API. Der Key ist also 'path'. Allerdings habe ich die Funktion path_to_theme() nicht in der API gefunden, weder bei Drupal 6 noch bei Drupal 7. Du solltest also drupal_get_path benutzen.
Beste Grüße
Werner
theme_image
am 26.02.2011 - 20:03 Uhr
Hallo.
@Jorge: [api:theme_image:7] zeigt Dir die möglichen Schlüssel des Parameter-Arrays.
@Werner: [api:path_to_theme:6] :)
Stefan
theme() und dann theme_image()
am 26.02.2011 - 20:31 Uhr
Hallo Werner, hallo Stefan,
super, danke, jetzt wird mir es klarer. In der API Beschreibung steht ja mit dem Hook-Beispiel "table", dass entweder
function called 'theme_table' or a template file called 'table.tpl.php'
aufgerufen wird.
Wie kann ich für zukünftige Fälle mit ggf. anderen Hooks heraus finden, was die theme() tatsächlich aufruft und welche Parameter bzw. Keys ich benötige? So könnte ich mir dann selber helfen.
Gruß ... Jörg
@Stefan muß ich wohl beim
am 26.02.2011 - 20:49 Uhr
@Stefan
muß ich wohl beim Eintippen in das Suchfeld verschrieben haben, aber man lernt ja nie aus :-)
Beste Grüße
Werner
theme-Funktionen
am 27.02.2011 - 00:19 Uhr
Hallo.
Wie kann ich für zukünftige Fälle mit ggf. anderen Hooks heraus finden, was die theme() tatsächlich aufruft und welche Parameter bzw. Keys ich benötige?
Die Funktion [api:theme:7] delegiert den Aufruf an eine untergeordnete spezialisierte Theme-Funktion.
Wenn also der 1. Parameter "image" ist, wird bei
<?php theme('image', $variables) ?>eigentlich die Funktion [api:theme_image:7] aufgerufen.Hintergrund der ganzen Geschichte ist, dass man Theme-Funktionen überschreiben kann. Du könntest also in der template.php Deines Themes eine Abwandlung von [api:theme_image:7] definieren, die den HTML-Quelltext für ein Bild etwas anders ausgibt, als die vordefinierte Funktion.
Wenn Du jetzt also einen Aufruf von
<?php theme('irgendetwas, ...); ?>siehst, findest Du die möglichen Parameter bei der Funktiontheme_irgendetwas.hth,
Stefan
Vielen Dank für die Hilfe
am 27.02.2011 - 10:02 Uhr
Vielen Dank für die Hilfe .....