Content stylen
am 19.05.2009 - 11:01 Uhr in
Hallo,
Ich habe mir ein eigenes Thema eingerichtet und dort (page.tpl.php) kann ich einiges mit DIVs und CSS ereichen um meine Seite zu stylen. Problem tritt beim Content zu. Content wird einfach über page.tpl.php <?php print $content ?> ausgegeben. Wie kann ich jetzt diesen Content noch stylen?
Kann ich es nur im Bearbeitungsmodus direkt im /node/n/edit händisch mit DIVs versehen und als Full-HTML Code abspeichern? (für jeden einzelnen Node)
Ist ein wenig aufwendig, wenn man z.B 50 Nodes mit statischem Text-Inhalt hat...
Gibt es eine andere Möglichkeit?
thx
- Anmelden oder Registrieren um Kommentare zu schreiben

Hast du schon mal einen
am 19.05.2009 - 12:24 Uhr
Hast du schon mal einen Blick in die Node.tpl.php geworfen?
Wenn du jedoch strukturierten Inhalt, bestehend aus mehreren Feldern, verarbeiten willst, schau dir mal cck an: http://drupal.org/project/cck
Das Modul Contemplate erlaubt dir recht einfach, einen Überblick über verwendete Variablen zu bekommen und die Änderungen direkt abzuspeichern. Auf lange Sicht kannst du sie dann in eine eigene Template Datei übernehmen.
ciao, Ronald
mit Node.tpl.php kann ich
am 19.05.2009 - 13:40 Uhr
mit Node.tpl.php kann ich auch nur
$contentausgeben...Ich wollte mal versuchen mit dem "Drupal for Firebug" mir einfach Variablen auszugeben die bei dem Seitenaufbau verwendet werden, aber bei mir func. leider das Modul nicht richtig.
Rise early, work late and strike oil!

Meinst du diese Variablen?
am 19.05.2009 - 15:31 Uhr
Meinst du diese Variablen? http://api.drupal.org/api/file/modules/node/node.tpl.php
ja, diese Variablen. das
am 20.05.2009 - 07:51 Uhr
ja, diese Variablen.
das Problem ist, dass der ganze Inhalt unter einer Variable
$contentsteckt und wird mittelsprint $contentausgegeben. Dann wir eben der ganze Inhalt angezeigt und für jedes Stylen ist schon zu spät.Ich muss mir wahrscheinlich einen neuen Inhalttyp mittels CCK erstellen, wo ich meine Inhaltbereiche selber konfigurieren kann.
Rise early, work late and strike oil!

Das hört sich so an, als
am 20.05.2009 - 07:57 Uhr
Das hört sich so an, als fehlen Dir einfach die Drupal Grundlagen. Hast Du schon mal in unser Handbuch geguckt? Z.B. hier rein: http://www.drupalcenter.de/handbuch/4217
--
"Jeder Mensch ist lieb." Peter Ludolf
Ich hol das Thema nochmal hoch
am 11.11.2009 - 18:10 Uhr
und frage auch nochmal nach.
An welcher Stelle kann ich auf die Variable $content einwirken?
Auch ich habe ein neuen Inhaltstypen angelegt und ein Textfeld(field_datum)
hinzugefügt. Nun möchte ich diese Feld nicht im Textkörper sehen, sondern vor
den Titel des Node schreiben. Wie komme ich also an die Variable ran?
Ich weiss schon nicht mehr was ich googlen soll-
Ich hol das Thema nochmal hoch
am 11.11.2009 - 18:10 Uhr
und frage auch nochmal nach.
An welcher Stelle kann ich auf die Variable $content einwirken?
Auch ich habe ein neuen Inhaltstypen angelegt und ein Textfeld(field_datum)
hinzugefügt. Nun möchte ich diese Feld nicht im Textkörper sehen, sondern vor
den Titel des Node schreiben. Wie komme ich also an die Variable ran?
Ich weiss schon nicht mehr was ich googlen soll-
Im Template node.tpl.php
am 11.11.2009 - 18:25 Uhr
Im Template node.tpl.php kannst Du auf alle Bestandteile Deines Nodes zugreifen. Auch die Ausgabe des Titels ist klar erkennbar. Also kannst Du das Feld auch vor den Titel schreiben.
Beste Grüße
Werner
Das dachte ich mir
am 11.11.2009 - 19:19 Uhr
,aber wie immer lautet die Frage: Wie???
Was muss ich machen, damit ich mein 'field_datum' vor 'node.titel' bekomme?
Beispiel für eine node-X.tpl.php
am 12.11.2009 - 08:44 Uhr
Sicher geht das auch eleganter, aber mit dem Modul http://drupal.org/project/contemplate kannst Du Dir genau diejenigen Variablen aus dem Node-Objekt des jeweiligen Inhaltstyps heraussuchen, die Du dann später in der node-X.tpl.php verwenden kannst. Dazu löschst Du in der node-X.tpl.php einfach den Teil
<?php print $content; ?>und ersetzt ihn durch die Inhalte (sprich: Variablen), die Du da eben zu stehen hast. Eine meiner node-X.tpl.php sieht so aus:
<div class="Post">
<div class="Post-body">
<div class="Post-inner">
<div class="PostMetadataHeader">
<?php if ($page == 0){
print '<h2><a href="'.$node_url.'" title="'.$title.'">'.$title.'</a></h2>';
}
else {
print '<h1>'.$title.'</h1>';
}
?>
<div class="PostHeaderIcons metadata-icons">
<?php if ($submitted) { echo art_submitted_worker($submitted, $date, $name);} ?> |
<a href="<?php print $node->links['trackback-url']['href'] ?>" title="Trackback-URL für diesen Blog-Beitrag"><?php print $node->links['trackback-url']['title'] ?></a> | <?php print $node->links['flag-lesezeichen']['title'] ?>
</div>
</div>
<div class="PostContent">
<div class="article">
// !! HIER WÄRE DIE CONTENT-VARIABLE !!!
<p><img src="/<?php print $node->field_blogbild[0]['filepath'] ?>" align="left" title="<?php print $node->field_blogbild[0]['data']['title'] ?>" alt="<?php print $node->field_blogbild[0]['data']['alt'] ?>" boder="0" hspace="2" vspace="2" />
<?php print $node->content['adsense_start']['#value'] ?>
<?php print $node->content['body']['#value'] ?>
<?php print $node->content['adsense_end']['#value'] ?>
<?php print $node->content['trackback']['autodetect']['#value'] ?></p>
<?php print $node->content['addtoany']['#value'] ?>
<?php if ($page == 0){
print '<div text-align:right;"><a href="'.$node_url.'" title="'.$title.'">Weiterlesen...</a></div>';
}
?>
<div class="PostFooterIcons metadata-icons"> <p> Tags/ Stichworte zu diesem Beitrag: <?php print $terms ?>
</div>
<p> </p>
</div>
</div>
</div>
</div>
</div>
<p> </p>
Das Design der einzelnen Bereiche lässt sich meist ausreichend mit CSS gestalten.
Und um ein bißchen PHP kommst Du eben nicht drumherum, es sei denn, Du nutzt das genannte Modul, um damit das Erscheinungsbild der Nodes zu ändern - aber selbst da musst Du ein bißchen bei PHP durchblicken.
Präsentiert voller Stolz sein erstes Drupal-Projekt: http://www.diaet-clique.de
Vielen Dank
am 12.11.2009 - 16:02 Uhr
genau sowas habe ich gesucht.