Paging
am 04.01.2008 - 11:37 Uhr in
Hallo zusammen,
und schon wieder ein Problem. Da wir mit langen Berichten arbeiten werden, ist es wichtig das die Nodes an bestimmten stellen "gebrochen", also auf mehrere Seiten verteilt werden.
Nun habe ich das Paging-Modul installiert und alles eingestellt. Bei normalen Artikeln z.B. funktioniert das Ganze auch wunderbar.
Nun habe ich aber einen Inhaltstypen selbst erstellt (mit CCK), und dann ein eigenes Node-Template angelegt. Verwende ich nun den pagebreak innerhalb diesen Inhalttyps passiert leider gar nichts. :|
Dazu sagen sollte ich noch das ich den Content nicht via
<?php
print $content
?><?php
print $node->content['field_link1']['#value']
?><?php
print $content
?>Funktioniert das Modul nur bei Standard-Nodes? Gibt es vllt einen Workaround, oder eine andere Möglichkeit wie ich eine Pagination einbauen kann? Hier mal der Code meiner Node:
<table width="607" border="0" cellspacing="0" cellpadding="0">
<tr>
<td><table width="607" border="0" cellspacing="0" cellpadding="0">
<tr>
<td id="titel"><div style="padding-top:42px; padding-left:34px;"><strong><a class="wb" href="<?php print $node_url ?>" title="<?php print $title ?>"><?php print $title ?></a></strong><br><span class="newsautor"><?php print t('!date — !username', array('!username' => theme('username', $node), '!date' => format_date($node->created))); ?></span></div></td>
<td valign="top" id="kat"><div style="padding-top:47px; padding-left:10px;"><span class="gennews"><?php print $node->content['field_kategorie']['#value'] ?></span></div></td>
</tr>
</table>
<table width="607" border="0" cellspacing="0" cellpadding="0">
<tr>
<td id="newsbg2"><table width="607" border="0" cellspacing="0" cellpadding="0">
<tr>
<td valign="top" id="newsbg"><div style="padding-left:42px; padding-top:4px; width:530px;"><span class="gennews"><?php print $node->content['field_newsbeitrag2']['#value'] ?></span></div></td>
</tr>
</table></td>
</tr>
</table>
<table width="607" border="0" cellspacing="0" cellpadding="0">
<tr>
<td id="infobox" width="109"></td>
<td valign="top" id="newslink">
<table width="498" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="198"> </td>
<td width="100" valign="top"><div style="padding-top:14px;">
<span class="gennews">
<?php print $node->content['field_link_art1']['#value'] ?><br>
<?php print $node->content['field_link_art2']['#value'] ?><br>
<?php print $node->content['field_link_art3']['#value'] ?>
</span></div>
</td>
<td width="200" valign="top"><div style="padding-top:14px;">
<strong><?php print $node->content['field_link1']['#value'] ?></strong><br>
<strong><?php print $node->content['field_link2']['#value'] ?></strong><br>
<strong><?php print $node->content['field_link3']['#value'] ?></strong>
</div></td>
</tr>
</table>
</td>
</tr>
</table></td>
</tr>
</table> Vielen Dank für etwaige Hilfe,
Genesis
Edit: Das ist btw der Bereich wo normalerweise der Content wäre:
<?php
print $node->content['field_newsbeitrag2']['#value']
?>- Anmelden oder Registrieren um Kommentare zu schreiben

Niemand hier der mir damit
am 05.01.2008 - 09:41 Uhr
Niemand hier der mir damit helfen kann? :|
Ist es wirklich so schwer ein selbsterstelltes node-template mit cck-feldern darin über mehrere Seiten laufen zu lassen? :|
Wenn es irgend jemanden gibt der da helfen könnte, ich wäre da sehr verbunden, da es für uns sehr wichtig ist, und eigentlich das letzte große Problem.
Also, vielen Dank im Voraus,
Genesis
So, nach fast 3 Tagen habe
am 05.01.2008 - 13:11 Uhr
So, nach fast 3 Tagen habe ich nun endlich das Problem gelöst. Ich weiß gar nicht wie viele Threads ich in der Zeit gelesen habe.
Für die Nachwelt, falls mal jemand ein ähnliches Problem hat will ich hier kurz festhalten was ich gemacht habe:
Das Problem vom paging.modul bei selbst erstellten CCK-Formularen ist, das es nicht weiß was denn genau geteilt wird, woher auch? Was soll auf jeder Seite stehen, und was verteilt? Er könnte genauso den Titel teilen, oder andere von euch erstellte Felder.
Deswegen muss dem Modul erklärt werden was der Body eurer CCK-Felder ist, vor allem dann wenn ihr sie auch noch in eine eigene Node (node-xyz.tpl.php) schreibt, und das so wie ich oben jedes einzelne Feld.
Nun müsst ihr zunächst einmal ein Bodyfeld einrichten. Das macht ihr bei jedem eigenen Contenttypen auf der Startseite, unter "Body Field Label", dort schreibt ihr z.B. Inhalt rein, da dies eurer Inhaltsbereich werden soll, der später auch geteilt werden soll.
Nun öffnet ihr euer Node-Template, und platziert dort wo der Inhalt stehen soll den Body. Dabei ist darauf zu achten, das ihr nicht
<?php print $body?>eingebt, da dieses alles ausgibt was ihr an Daten eingeben habt zuvor, also alle Felder.
Um wirklich nur das aus zu geben was im Inhaltsbereich eingeben wurde, muss das Ganze so aus sehen:
<?php print $node->content['body']['#value']?>Nun könnt ihr im Inhaltsbereich auch ganz normal euren Pagebreack (Standard: ) platzieren, dort wo eine neue Seite anfangen soll, und schon wird der Inhalt über mehrere Seiten verteilt.
Für jemanden der Firm mit Drupal ist mag das alles einleuchtend sein, aber ich als Nicht-PHPler hatte da gut zu kämpfen, und bin froh das ich das Problem nun gelöst habe.
In diesem Sinne,
Genesis