Wenn ein Menü-Item auf Listendarstellung steht, dann gibt die Methode GetDocuments() alle Dokumente des Menü-Items zurück. Das kann eine lange Liste sein. Hier wäre es dann schöner die Liste zu paginieren, d.h. die Liste auf mehrere Seiten aufzuteilen.
Zu diesem Zweck stehen ein Eigenschaft und zwei weitere Methoden im Menü-Item zur Verfügung:
Mit der Methode GetPagination() bekommen Sie einen String vom Menü-Item zurückgeliefert, den Sie als Paginations-Navigation anzeigen können. Der Methoden übergeben Sie
Mit der Methode GetRangeOfDocuments() bekommen Sie nicht alle, sondern nur einen Teil der Dokumente des Menü-Items zurückgeliefert. Sie übergeben der Menthode die Parameter
Der Index der aktuellen Seite lässt sich über die Eigenschaft selectedPage des Menü-Items ermittlen. Daraus ergibt sich der Index des aktuellen Dokuements der Seite als
$startDoc = ($menuItem->selectedPage - 1) * $docsPerPage;
Zusammengefasst sieht das dann so aus.
// Aktuelles MenüItem
$menuItem = $toFolks->selectedMenuItem;
// Anzahl der Eintraege pro Seite
$docsPerPage = 10;
// Maximale Anzahl an Seiten in der Pagination
$maxPages = 5;
// Vom Menü-Item eine Pagination für die Liste zurueckgeben lassen
$pagination = $menuItem->GetPagination($docsPerPage, $maxPages, "<<", "<", ">", ">>", " | ");
// Startseite innerhalb der paginierten Liste festlegen
$startDoc = ($menuItem->selectedPage - 1) * $docsPerPage;
// Liste der Dokumente abfragen
$docs = $menuItem->GetRangeOfDocuments($startDoc, $docsPerPage);
if (count($docs) > 0)
{
foreach($docs as $doc) ..... ;
}
// Pagination ausgeben
echo $pagination;