tpl field vars und eigene Templates
Eingetragen von yannick-149 (78)
am 04.04.2013 - 18:09 Uhr in
am 04.04.2013 - 18:09 Uhr in
Moin zusammen,
heute stoße ich mit folgendem Problem an meine Grenzen: Ich habe in meiner template.php folgende Änderungen vorgenommen:
<?php
function theme003_preprocess_node(&$variables) {
/* HIER */
/* NEU EINGEFÜGT */
if (isset($variables['node']->type)) {
$variables['theme_hook_suggestions'][] = 'node__' . $variables['node']->type;
/* war vorhanden */
$variables['submitted'] = t('By !username | !datetime', array('!username' => $variables['name'], '!datetime' => $variables['date']));
if ($variables['view_mode'] == 'full' && node_is_page($variables['node'])) {
$variables['classes_array'][] = 'node-full';
}
}
}
/* NEU EINGEFÜGT */
function theme003_preprocess_page(&$variables) {
if (isset($variables['node']->type)) {
$variables['theme_hook_suggestions'][] = 'page__' . $variables['node']->type;
}
}
?>
Es funktioniert auch alles ganz super, nur möchte ich gerne den Code von tpl_vars_field in die function theme003_preprocess_node(&$variables) an die Stelle "HIER" einfügen, um eine bessere Übersicht über die fields zu bekommen?
<?php
/* tpl_field_vars */
tpl_field_vars_preprocess($variables, $variables['node'], array(
'cleanup' => TRUE,
'debug' => FALSE,
));
?>
Wenn ich das tue verschwinden alle Node Inhalte. Allerdings werden die nodes, des Inhaltstyps, den ich neu anlege angezeigt.
Hat jemand eine Idee?
Danke und Gruß,
Yannick
- Anmelden oder Registrieren um Kommentare zu schreiben
Hast Du die Variablen in
am 04.04.2013 - 18:55 Uhr
Hast Du die Variablen in deiner node--[inhaltstyp].tpl.php auch ausgetauscht in der Form
<?php print $body; ?>
statt<?php print render($page['content']); ?>
usw.?und bekommst Du bei debug=>TRUE die Felder mit Bezeichner ausgegeben?
BTW:
if (isset($variables['node']->type)) {
$variables['theme_hook_suggestions'][] = 'node__' . $variables['node']->type;
kann man sich sparen. Diese Suggestion ist schon im System.
Gruß
Christian
Dann schreibe ihn als
am 04.04.2013 - 18:56 Uhr
Dann schreibe ihn als Kommentar rein. Einen Überblick über die Felder bekommst Du am besten, wenn Du das devel-Modul installierst und dann in der template.php mittels "dsm($variable);" die die Variablen, die Du sehen willst ausgibst. Du bekommst sie dann bei der Ausgabe der Seite in einem speziellen Bereich zum Aufklappen angezeigt.
Beste Grüße
Werner
Okay, also du meinst, ich
am 04.04.2013 - 21:36 Uhr
Okay, also du meinst, ich komme ohne das tpl_field_var aus, und nutze die Variablen, die mir Devel gibt? Ich habe das Tool installiert, steige aber ehrlich gesagt nicht ganz durch, in wie fern ich da irgendwelche Variablen nutzen kann. Sehe zum Beispiel unter dem Reiter "Load" das field_geburtstag->und->0->value, dort steht der Wert, den ich haben möchte.
Wie ist das mit dsm($variable); gemeint? Ich nehme an, das muss in die function theme003_preprocess_node(&$variables) ???
Gruß und danke schonmal bis hierher,
Yannick
Mit 'Template Field
am 05.04.2013 - 08:14 Uhr
Mit 'Template Field Variables' scheinst Du was durcheinandergebracht zu haben: das ist primär nicht dafür gedacht die Variablen anzuzeigen, sondern die Arrays in einfache Variablen umzuwandeln (eh ein etwas fragwürdiges Konzept, bei dem, nach Issues, auch nur ein Teil der Variablen erfasst wird). Wenn Du die Variablen nur angezeigt haben willst, dann halte Dich an Werner.
Nein, ich möchte die
am 05.04.2013 - 17:40 Uhr
Nein, ich möchte die Variablen in meiner node--contenttype.tpl.php verwenden. Aber dabei taucht das oben beschriebene Problem auf
Dann solltest Du in der
am 05.04.2013 - 17:46 Uhr
Dann solltest Du in der preprocess_node-Funktion im Variables-Array eigene Variablen definieren (also eigene Namen vergeben), die Du dann im Template-File benutzen kannst.
Beste Grüße
Werner
kannst du mir einen Tipp
am 05.04.2013 - 18:07 Uhr
kannst du mir einen Tipp geben, wie ich die Syntax wäre, wenn ich zum Beispiel im Inhaltstyp ein Feld "field_lieblingsfarbe" habe?