Hallo ich habe folgendes Problem.
Ich habe ein Script mit einem smartysystem und würde bei
einer Ausgabe gerne eine Blätterfunktion einfügen.
Diese Blätterfunktion funktioniert in einem anderen Script
sehr gut daher würde ich diese gerne übernehmen.
Hier mal die while-schleife für die bestehende Smartyausgabe
die Variabeln müssten folgende sein:
$count = gesetzte Anzahl der Einträge pro Seite
$i = aktueller Eintrag
$id = Anzahl der Einträge insgesamt
PHP-Code:
while($row = $sql->FetchArray()) {
$i++;
$id=$row['id'];
if($i<=$count){
array_push($messages, array(
'from' => $row['sfrom'],
'to' => $row['sto'],
'date'=> date("d.m.Y, H:i:s", $row['date']),
'msg'=> $row['msg'],
));
} else {
$sqlc = new SQLq("DELETE FROM {bs_pre}sent WHERE id='".$id."'");
$sqlc->Close();
};
};
$sql->FreeClose();
if($i==0) $smarty->assign('keineintrag', true);
$smarty->assign('messages', $messages);
$smarty->assign('count', $count);
$smarty->assign('page', 'ausgabe.tpl');
};
und der Aufruf der Blätterfunktion würde folgendermassen aussehen :
PHP-Code:
print buildPages($id, $count , 5, $i,"index.php?.........);
Hier mal die komplette Blätterfunktion :
PHP-Code:
function buildPages($total, $per_page, $shown_pages, $current_page, $LINK, $LINK_ADD = "") {
if ($shown_pages < 3) {
$shown_pages = 3;
} elseif ($shown_pages % 2 == 0) {
$shown_pages ++;
}
$LINK = str_replace("&p=".$current_page, "", $LINK);
if ($current_page === "") {
$current_page = 1;
}
$page_num = (int)($total / $per_page);
$page_num += ($total % $per_page) ? 1 : 0;
$offset = $current_page - ($shown_pages - 1) / 2;
if ($offset > ($page_num - $shown_pages + 1)) {
$offset = $page_num - $shown_pages + 1;
}
if ($offset < 1) {
$offset = 1;
}
$output = "\r\n([b]$total[/b] Einträge auf [b]$page_num[/b] ".(($page_num > 1) ? "Seiten" : "Seite").")";
$output .= ($offset > 1) ? "\r\n[<a ".$LINK_ADD." href=\"".$LINK."&p=1\" title=\"Erste\">«</a>]" : "";
$offset_end = ($shown_pages < $page_num) ? $offset + $shown_pages : $page_num + 1;
for ($i = $offset; $i < $offset_end; $i++ ) {
$output .= ($i != $current_page) ?
"\r\n[<a ".$LINK_ADD." href=\"".$LINK."&p=$i\">$i</a>]" :
"\r\n[b]($i)[/b]";
}
$output .= ($offset < ($page_num - $shown_pages + 1)) ?
"\r\n[<a ".$LINK_ADD." href=\"".$LINK."&p=$page_num\" title=\"Letzte\">»</a>]" :
"";
return "<div align=\"center\">$output</div>
\r\n";
}
Für einen Tipp wäre ich uper dankbar, denn ich habe absolu keinen Plan von Smarty !
Gruss und Danke