Hallo,
im Rahmen eines Projektes wird ein selbst erstelltes Anzeige-Modul verwendet, um mehrere hundert "gemischte" Datensätze zu präsentieren. Gemischt heißt hier: Auch z.B. extern (nicht in der DB) abgelegte Bilder werden angezeigt.
Diese Menge Datensätze auf einer Seite ist aber unübersichtlich - also die so oft beschworene "Pagination" verwenden.
Nachdem ich nun "Listing", "NewsReader" und "GoogleMaps" eingehend studiert habe, verstehe ich in diese Richtung aber garnichts mehr. Auch ein paar Experimente waren erfolglos. Gibt es irgendwo oder von irgendwem eine einfaches Beispiel, welches die Pagination erklärt? Wenn nein, könnte irgendwer in folgendem trivialen Code (hat nichts mit dem tatsächlichen Modul zu tun - nur zum Verständnis) die benötigten Änderungen eintragen?
Im Modul:
Code:
...
// Fetch data
$resultMem = $this->Database->prepare("SELECT firstname, lastname FROM tl_member")
->execute();
...
// Build array
while ($resultMem->next())
{
$arrMem[] = array
(
'fn' => $resultMem->firstname,
'ln' => $resultMem->lastname,
);
}
...
// Assign data to the template
$this->Template->mem = $arrMem;
...
Im Template:
Code:
<div>
<table border="0" cellpadding="1">
<?php foreach ($this->mem as $mem): ?>
<tr>
<td><?php echo 'Name'; ?></td>
<td><?php echo $mem['fn']; echo $mem['ln']; ?></td>
</tr>
<?php endforeach; ?>
</table>
</div>
Ich weiß inzwischen, daß ich im Modul (theoretisch) folgenden Code benötige:
Code:
...
$per_page = 10; // oder aus BE-Variable holen
...
$objPagination = new Pagination($resultMem->count, $per_page);
$this->Template->pagination = $objPagination->generate("\n ");
$this->Template->per_page = $per_page;
...
und im Template zumindest folgende Zeile:
Code:
<?php echo $this->pagination; ?>
Das kann aber doch nicht alles sein - denn sonst würde es ja funktionieren ...
... und bitte keine Kommentare wie "... dann nimm doch Listing ...". Dies ist keine Option!
Lesezeichen