[gelöst!] Node mit CCK Feldern, wie an den reinen $body kommen?
Eingetragen von aaki (91)
am 09.12.2009 - 21:22 Uhr in
am 09.12.2009 - 21:22 Uhr in
Moin,
also innerhalb meines Nodetemplates steht mit das $body Objekt nur noch vereint mit den CCK-Feldern zur Verfügung. Ich benötige es jedoch separat. Wie kann ich diese Konkatenation umgehen, also das rendern aller Felder in den body?
Himmel, hab ich mich kompliziert ausgedrückt!
Viele Grüße und entschuldigt meinen Unverstand, irgendwie seh ich es grade nicht :)
~ aaki
- Anmelden oder Registrieren um Kommentare zu schreiben
Ja,Du drückst Dich wirklich
am 10.12.2009 - 00:39 Uhr
Ja,Du drückst Dich wirklich kompliziert aus. Was genau ist das Problem und was möchtest Du erreichen?
Um den normalen Nodetext auszugeben nutze:
<?php print $content; ?>
Um einzelne CCK-Felder auszugeben nutze:
<?php print $field_deinfeld_rendered; ?>
Ok, nochmal...
am 10.12.2009 - 10:49 Uhr
Beim Anlegen eines mittels CCK-Feldern erweiterten Inhaltstyps füllt man doch neben eben diesen Felden auch noch die Standard-Drupal Felder aus. Also Titel und Textkörper (body). Der Titel steht ja auch nach wie vor unverändert zur Verfügung, der body aber nicht. Dieser beinhaltet nun auch noch die gerenderten Felder...
Auf folgende Arten habe ich versucht darauf zuzugreifen:
<?php print $node->body; ?>
<?php print $content; ?>
In der template.php in der phptemplate_preprocess_node():
<?php
print($vars["node"]->body);
?>
Jetzt bin ich ratlos. da dieses Feld sowieso da ist, möchte ich es gern in die Struktur des Inhaltstyps einbeziehen, als ein Feld, welches ich sowieso als mehrzeiliges RichText Feld angelegt hätte...
Ich hoffe, das war nun verständlich :)
Viele Grüße
~ aaki
##############################################
Ich habs gefunden, mit Blindheit war ich geschlagen!
So:
<?php print $node->content["body"]["#value"]; ?>
Himmel Herr hilf lenken, ich meinte, ich hätte selbst das ausprobiert... sorry ob des Spams ;)
Geht bei mir nicht :(
am 14.12.2009 - 07:22 Uhr
hi!
also
<?php
print $field_deinfeld_rendered;
?>
woran kann das liegen? ich habe im normalen page inhaltstyp mit cck ein text feld hinzugefügt, aber es gibt mir mit der variable keinen inhalt aus.
wäre nett wenn mir bitte einer helfen könnte :)
danke!
edit:
auch mit der auf http://blog.quiptime.com/node/4139 gezeigten methode gehts einfach nicht -.-
<?php
global $user;
$nodeprofile = nodeprofile_load('address', $user->uid);
?>
macht bei mir den fehler
Fatal error: Call to undefined function nodeprofile_load() in X:\xampp\xampplite\htdocs\drupal\themes\abkka\page.tpl.php on line 32
:( wäre echt toll wenn mir einer helfen könnte...ich weiss voll nicht weiter.
edit2:
<?php
print_r($node);
?>
liebe grüße
Feldwerte ausgeben
am 14.12.2009 - 09:08 Uhr
also
<?php
print $field_deinfeld_rendered;
?>
Das kann auch nur funktionieren, wenn der Feldinhalt vorher in einer vorgelagerten preprocess-Funktion in einer Variable abgelegt wurde.
Da dies im Regelfall nur für bestimmte Werte geschieht, kann dies auch nicht so einfach funktionieren.
Fatal error: Call to undefined function nodeprofile_load() in X:\xampp\xampplite\htdocs\drupal\themes\abkka\page.tpl.php on line 32
Du hast vermutlich das Modul Nodeprofile nicht. Dementsprechend gibt es auch die Fehlermeldung.
Ich sehe gerade, dass Du die Veränderungen in der page.tpl.php machst. Das ist falsch.
Wie der Name schon vermuten lässt, ist dieses Template für die Struktur einer Seite verantwortlich. Wenn Du die Struktur eines Beitrags ("node") ändern möchtest, musst Du die node.tpl.php anpassen.
Ausgeben kannst Du den Feldwert dann mittels
<?php print $node->content['fieldname']['#value']; ?>
Für den Fall, dass dies nicht funktioniert, kannst Du Dir die Struktur des Feldes auch ausgeben lassen:
<?php drupal_set_message('<pre>' . var_export($node->content['fieldname'], 1) . '</pre>'); ?>
hth,
Stefan
--
Sei nett zu Deinem Themer!
Tipp: Beachte die Verhaltensregeln des DrupalCenter.
ich wollte in dem fall aber
am 14.12.2009 - 10:07 Uhr
ich wollte in dem fall aber tatsächlich diese variablen in dem page template verwenden oder geht das gar nicht?
aber prinzipiell hat sich das problem auch erledigt, ich habe das ganze mit css positioniert.
danke für deine antwort :)