Template für CCK Inhaltstyp
am 21.12.2006 - 00:09 Uhr in
Ich bin gerade dabei und setzte nun meine Seite auf Drupal 5 RC auf. Natürlich arbeite ich auch mit dem CCK Modul. Jetzt hänge ich an der Stelle, wo ich ein eigenes Template für meinen neuen Inhaltstyp erstellen will.
Auf drupal.org habe ich die Anleitung dafür gefunden. Ich habe auch das Template schon zum Laufen gebracht. Ich kann Felder, die ich mit CCK angelegt habe in der gewünschten Reihenfolge abrufen.
Das einzige Feld das mir Probleme bereitet ist body. body ist ja von Haus aus bei jedem Inhaltstyp dabei, so wie auch der Titel. Wenn ich mit php die Variable content abrufe, werden alle angelegten Felder angezeigt. wenn ich body abrufe gehts auch net!
Eine Idee?
- Anmelden oder Registrieren um Kommentare zu schreiben
Reihenfolge
am 21.12.2006 - 15:41 Uhr
Gehts es dir nur um die Reihenfolge der Felder? Die kannst du doch schon bei der Erstellung mit dem CCK einstellen.
md - drupalcenter
http://drupal.mdwp.de
vCard herunterladen
vg
md - DrupalCenter.de
mdwp* Drupal Consulting & Services
Nein geht mir nicht nur um
am 21.12.2006 - 18:59 Uhr
Nein geht mir nicht nur um die Reihenfolge. Ich möchte ausgewählte Felder anzeigen lassen und natürlich auch positionieren und auch eigene Überschriften hinzufügen.
Also ich möchte nur die Daten aus den Feldern lesen, um diese dann so anzeigen zu lassen, wie ich will.
Und auch nur der Inhalt von Body macht mir Probleme.
Gruß Florian
Ich habe mir soeben selbst
am 21.12.2006 - 19:12 Uhr
Ich habe mir soeben selbst helfen können.
Ich habe bei den Einstellungen des Content Typs einfach das Feld für Body leer gelassen und somit deaktiviert. Damit ich aber dennoch Text eintragen kann habe ich mir mit CCK ein Textfeld hinzu gefügt. Das Feld kann ich nun ohne Probleme in mein Template einfügen. :-)
Gruß Florian
Ich habe mich selbst verarsc...t
am 21.12.2006 - 20:37 Uhr
Ich habe eben gemerkt, dass ich das Body Feld brauche. Sonst funktioniert das image-node Modul nicht mehr und die Eingabefilter habe ich auch nicht.
mit
<?php print_r($node); ?>
lasse ich mir alle CCK Felder anzeigen und folgendes kommt:
stdClass Object ( [nid] => 19 [vid] => 19 [type] => einsatzberichte [status] => 1 [created] => 1166460778 [changed] => 1166463384 [comment] => 0 [promote] => 0 [sticky] => 0 [revision_timestamp] => 1166463384 [title] => Testeinsatz [body] =>
Bericht
Weitere Informationen
Einsatzort
Musterstraße
Alarmzeit
18.12.2006 - 16:52
Einsatznummer
7
kein Bericht vorhanden
[log] => [format] => 1 [uid] => 1 [name] => baumeister [picture] => [data] => a:0:{} [field_einsatznummer] => Array ( [0] => Array ( [value] => 7 [view] => 7 ) ) [field_alarmzeit] => Array ( [0] => Array ( [value] => 1166457120 [timezone] => [view] => 18.12.2006 - 16:52 ) ) [field_einsatzort] => Array ( [0] => Array ( [value] => Musterstraße [view] => Musterstraße ) ) [field_weitere_informationen] => Array ( [0] => Array ( [url] => [title] => [attributes] => [view] => ) [1] => Array ( [url] => [title] => [attributes] => [view] => ) ) [last_comment_timestamp] => 1166460778 [last_comment_name] => [comment_count] => 0 [taxonomy] => Array ( ) [files] => Array ( ) [readmore] => [content] => Array ( [field_bericht] => Array ( [0] => Array ( [#weight] => 0 [#value] =>
Bericht
[#printed] => 1 ) [#children] =>
Bericht
[#printed] => 1 ) [field_weitere_informationen] => Array ( [0] => Array ( [#weight] => 10 [#value] =>
Weitere Informationen
[#printed] => 1 ) [#children] =>
Weitere Informationen
[#printed] => 1 ) [field_einsatzort] => Array ( [0] => Array ( [#weight] => -3 [#value] =>
Einsatzort
Musterstraße
[#printed] => 1 ) [#children] =>
Einsatzort
Musterstraße
[#printed] => 1 ) [field_alarmzeit] => Array ( [0] => Array ( [#weight] => -3 [#value] =>
Alarmzeit
18.12.2006 - 16:52
[#printed] => 1 ) [#children] =>
Alarmzeit
18.12.2006 - 16:52
[#printed] => 1 ) [field_einsatznummer] => Array ( [0] => Array ( [#weight] => -4 [#value] =>
Einsatznummer
7
[#printed] => 1 ) [#children] =>
Einsatznummer
7
[#printed] => 1 ) [body] => Array ( [#weight] => 0 [#value] =>
kein Bericht vorhanden
[#printed] => 1 ) [#children] =>
Bericht
Weitere Informationen
Einsatzort
Musterstraße
Alarmzeit
18.12.2006 - 16:52
Einsatznummer
7
kein Bericht vorhanden
[#printed] => 1 ) [links] => Array ( [node_images_edit] => Array ( [title] => Edit node images [href] => node/19/images ) [node_images_gallery] => Array ( [title] => Open the image gallery [href] => node/19/image_gallery ) ) )
Wie bekomme ich nun das body angezeigt?
Hier wäre es der Text "kein Bericht vorhanden"!
Euer Baumeister
Gruß Florian
CCK Template
am 22.12.2006 - 00:56 Uhr
Kannst du mal den Code deines Templates und den Namen den du dafür verwendest posten?
Eigentlich sollte das, wie hier http://drupal.org/node/62468 beschrieben, funktionieren.
md - drupalcenter
http://drupal.mdwp.de
vCard herunterladen
vg
md - DrupalCenter.de
mdwp* Drupal Consulting & Services
Hi,
am 22.12.2006 - 10:32 Uhr
Hi,
wenn ich
<?php echo $body ?>
eingebe, dann wirft er mir alle Feldtypen raus. Ich will doch aber nur den Text aus dem Body-Feld. Ich bräuchte also den php-code für die Anzeige des Textes aus dem Body-Feld.Es steht ja auch bei der Anleitung dabei
This will give you a node that has all the default formatting.
Ich hoffe die Info ist ein weiterer Schritt zur Lösung!
Baumeister
Gruß Florian
Ich habs geschafft
am 23.12.2006 - 16:48 Uhr
So ich antworte mir mal selbst und natürlich der Community.
Noch mal Zusammenfassend:
Ich habe einen Inhaltstyp mit CCK erstellt. So habe ich Zahlen und Textfelder definiert. Weiter habe ich in meinem Inhaltstyp das Body Feld, welches Drupal mitbringt, mit Text gefüllt. Schließlich habe ich für den Inhaltstyp ein eigenes Template angelegt, denn die Standartdarstellung konnte ich nicht nutzen.#
Ich habe also im Ordner meines themes die Datei node-NAMEdesInhaltstyps.tpl.php angelegt. Hier habe ich wie auf CCK for Themersbeschrieben die einzelnen Felder, die ich erzeugt habe, abgerufen. So konnte ich Feldinhalte in Tabellen einfügen.
Dann kam mein Problem. Ich wollte den Text, den ich in das Body Feld eingetragen habe ausgeben. In dem Moment, als ich in meinem angelegten Template
<?php print $node->body ?>
eingefüht habe, hat er mir aber alle verfügbaren Feldinhalte angezeigt, was ich ja nicht wollte.Meine Lösung:
Ich habe nun, wie auch in der theme-Readme von CCK die definition einzelner Felder benutzt. Ich habe den bei CCK mitgelieferten Code in die template.php eingefügt und dann die field.tpl.php einfach leer gelassen. Nun bekomme ich nur den Text aus dem Body Feld angezeigt.
Ich bin super glücklich und hoffe hiermit auch euch helfen zu können. Wenn dazu noch Fragen auftauchen, einfach bei mir anklopfen!
Frohes Fest
baumeister
Gruß Florian