Unterschiedliche Layouts für verschiedene Inhaltstypen?

am 05.01.2010 - 15:11 Uhr in
Ich würde gerne verschiedene Inhaltstypen mit unterschiedlichen Layouts gestalten.
Also zum Bsp. in den Blogs ein Foto links oben, Text rechts, für einen Inhaltstyp News etwa Text links, mehrere Bilder rechts daneben untereinander etc.
Also habe ich meine Blogs mal nach der Anleitung von Thoor gestaltet.
(finde übrigens das Tutorial sehr hilfreich u. auch die ganze Site mit den vielen anderen Podcasts.)
Die Änderungen sind nun aber für Beiträge eines jeden Inhaltstyps sichtbar.
Man kann zwar bei der Kreation der Contenttyps (CT) mit der Reihung der Contentfelder das Erscheinungsbild der einzelnen CTs noch grob gestalten, mehr aber nicht.
Auch die Anleitung im Drupalcenter-Handbuch
hilft mir leider nicht weiter.
Ich kann mir auch nicht vorstellen, daß es damit getan ist die node.tpl.php zu kopieren u. umzubenennen, da ich darin keinen Verweis auf ein Node-eigenes CSS-file finden kann.
Hat jemand Erfahrung damit bzw. kann mir weiterhelfen.
Danke schon mal.
Gruß Robert
BTW.: Weiß vielleicht jemand, ob man gestaltete Panels als Vorlagen für Inhaltstypen abspeichern kann?
- Anmelden oder Registrieren um Kommentare zu schreiben
Keine wirkliche Hilfe nur ein Hinweis.
am 05.01.2010 - 15:27 Uhr
Ich kann mir auch nicht vorstellen, daß es damit getan ist die node.tpl.php zu kopieren u. umzubenennen, da ich darin keinen Verweis auf ein Node-eigenes CSS-file finden kann.
Das brauchts auch nicht, denn mit CCK bzw. Views gibts eigene Klassen, die Du in der style.css auch definieren kannst. Soweit mein Wissensstand. Die *.tpl.php ist nicht für das Design zuständig sondern nur für die Anzeige/Auswahl der Inhaltsteile eines Nodes.
Gruss Roger
Gelöste Forenbeiträge mit [gelöst] im Titel ergänzen (1. Posting vom Thema) <==> das erleichtert das finden von Lösungen
Also Inhaltstypen kann man
am 05.01.2010 - 15:42 Uhr
Also Inhaltstypen kann man auf viele unterschiedliche Arten und Weisen anpassen. Wenn du allerdings an die Basis willst musst du das Ganze entsprechend themen. Dazu hast du ja schon richtig erkannt das man eine Node für den Content Typen anlegen muss. In diese kannst du entweder den Inhalt der Standard-Node einbauen, oder aber du gibst jedes Feld deines Content Typen einzeln aus, was dir natürlich noch mal mehr Kontrolle über die Themebarkeit gibt.
Wenn du grundsätzlich für jede Node ein eigenes Design/Layout, oder aber eine eigene CSS willst, dann musst du wieder andere Wege nehmen. Nodes haben keine eigene CSS und das ist in Drupal so auch nicht vorgesehen. Was du machen kannst ist z.B. das Node Type Theme-Modul verwenden, oder aber ThemeKey.
Es gibt auch noch über einen entsprechenden Code in der template.php die Möglichkeit statt Nodes nach Content Typen zu themen diese als Page zu themen. Dann hättest du eine page-contenttype.tpl.php. Finde diese Lösung aber nicht so sauber.
Du solltest erst mal versuchen die Felder einzeln auszugeben um zu sehen was sich da schon über CSS, etc. machen lässt.
Grüße vom,
Genesis
Hallo Rabbit69 schrieb Das
am 13.01.2010 - 11:28 Uhr
Hallo
Das brauchts auch nicht, denn mit CCK bzw. Views gibts eigene Klassen, die Du in der style.css auch definieren kannst. Soweit mein Wissensstand.
Danke für diesen Tip. Wenn man für jeden ContentTyp eigene Felder(f.Text,Img etc) anlegt kann man einiges gestalten.
Die *.tpl.php ist nicht für das Design zuständig sondern nur für die Anzeige/Auswahl der Inhaltsteile eines Nodes.
Da hast du wahrscheinlich recht. Ich hab keine CSS-Klassen gefunden die sich auf den neu angelegten Inhalsttyp beziehen.
Nur dann versteh ich die entsprechende Anweisung im Drupal-Handbuch nicht
http://www.drupalcenter.de/handbuch/4287
---Um die verschiedenen Inhaltstypen unterschiedlich zu gestalten, ist es ausreichend Node-Templates zu erzeugen, die den Namen des entsprechenden Inhaltstyps enhalten (in dieser Form: node-inhaltstyp.tpl.php).
Jeder, unter admin/content/types angelegte Inhaltstyp kann auf diese Weise individuell gestaltet werden.---
Ist das falsch oder nur sehr mißverständlich?
Gruß Robert
Hallo Genesis Besten Dank
am 13.01.2010 - 11:30 Uhr
Hallo Genesis
Besten Dank für die vielen Tips.
Habe mal das Node-Type-Theme probiert. Wenn man das StandardTheme kopiert/umbenennt und für jeden CT ein eigenes Layout designet ist das für mich auch eine gute Lösung.
Außerdem kann man dabei z.Bsp.: auch jeweils ein anderes PanoramaFoto/Logo im Header bringen.
Gruß Robert
*.tpl.php => HTML / styles.css => CSS
am 13.01.2010 - 11:44 Uhr
... dann versteh ich die entsprechende Anweisung im Drupal-Handbuch nicht
http://www.drupalcenter.de/handbuch/4287
---Um die verschiedenen Inhaltstypen unterschiedlich zu gestalten, ist es ausreichend Node-Templates zu erzeugen, die den Namen des entsprechenden Inhaltstyps enhalten (in dieser Form: node-inhaltstyp.tpl.php).
Jeder, unter admin/content/types angelegte Inhaltstyp kann auf diese Weise individuell gestaltet werden.---
Ist das falsch oder nur sehr mißverständlich?
Als falsch würde ich das keineswegs bezeichnen. Wenn du dir diese node-inhaltstyp.tpl.php anlegst, musst Du darin aber auch die Klassen, etc. dort eintragen, die du später mit CSS designen willst. Wie bereits erwähnt die *.tpl.php sind nur für die Aswahl der Ausgabe zuständig, anderst gesagt, die erstellen dir den HTML-Code und haben mit CCS nichts zu tun. (sehr hart formuliert aber ich finde keine bessere Formulierung.)
Gruss Roger
Gelöste Forenbeiträge mit [gelöst] im Titel ergänzen (1. Posting vom Thema) <==> das erleichtert das finden von Lösungen
Capito finalmente :-)
am 14.01.2010 - 11:40 Uhr
Begreife endlich.
Einfach die class=".."-Anweisungen umbenennen.
Aber bitte noch eine Frage.
Die Inhalte(Text,IMG,etc.) werden wie's scheint nur in einer einzigen Variabel($content) ausgegeben.
Gibt's vielleicht auch die Möglichkeit diese jeweils mit einer eigenen Variabel anzuzeigen?.
Ich denke nämlich an die Möglichkeit eine Html-Tabelle einzufügen.
Wäre zwar etwas umständlich aber möglich.
Merci vielmals
Gruß Robert
Unsere Erde ist nichts anderes als
ein Dorf am Rande des Weltalls.
Bin nicht der php-Spezialist, aber...
am 14.01.2010 - 13:04 Uhr
In der
node-<em>type</em>-tpl.php
solltest Du eigentlich mit folgendem Code die einzelnen Inhalte von$node
auflisten können:<pre><?php print_r($node) ?></pre>
die einzelnen Variabeln kannst Du dann mit diesem Code ausgeben lassen:
<?php print $node->variabelname ?>
Hoffe ich konnte dir helfen.
Gruss Roger
Gelöste Forenbeiträge mit [gelöst] im Titel ergänzen (1. Posting vom Thema) <==> das erleichtert das finden von Lösungen