Ich hoffe, so ist es noch halbwegs überschaubar.
[php]<?php
class NewsItem
{
public $id;
public $date;
public $title;
public $content;
public function __construct($id, $date, $title, $content)
{
$this->id = (int) $id;
$this->date = $date;
$this->title = $title;
$this->content = $content;
}
}
$model[‚items‘] = array();
$model[‚items‘] = new NewsItem( 1, ‚2009-09-24 20:12:00‘, ‚Hallo Welt!‘, ‚Ein Newseintrag‘);
$model[‚items‘] = new NewsItem( 2, ‚2009-09-23 22:01:00‘, ‚Hallo Welt!‘, ‚Ein Newseintrag‘);
$model[‚items‘] = new NewsItem( 3, ‚2009-09-22 10:12:00‘, ‚Hallo Welt!‘, ‚Ein Newseintrag‘);
$model[‚items‘] = new NewsItem( 4, ‚2009-09-14 20:29:00‘, ‚Hallo Welt!‘, ‚Ein Newseintrag‘);
$model[‚items‘] = new NewsItem( 5, ‚2009-09-25 10:48:00‘, ‚Hallo Welt!‘, ‚Ein Newseintrag‘);
$model[‚items‘] = new NewsItem( 6, ‚2009-07-19 20:20:00‘, ‚Hallo Welt!‘, ‚Ein Newseintrag‘);
$model[‚items‘] = new NewsItem( 7, ‚2009-08-02 20:30:00‘, ‚Hallo Welt!‘, ‚Ein Newseintrag‘);
$model[‚items‘] = new NewsItem( 8, ‚2009-08-13 20:41:00‘, ‚Hallo Welt!‘, ‚Ein Newseintrag‘);
$model[‚items‘] = new NewsItem( 9, ‚2009-08-14 10:02:00‘, ‚Hallo Welt!‘, ‚Ein Newseintrag‘);
$model[‚items‘] = new NewsItem(10, ‚2009-08-21 20:05:00‘, ‚Hallo Welt!‘, ‚Ein Newseintrag‘);
$model[‚items‘] = new NewsItem(11, ‚2009-07-04 20:19:00‘, ‚Hallo Welt!‘, ‚Ein Newseintrag‘);
$model[‚items‘] = new NewsItem(12, ‚2009-07-08 10:28:00‘, ‚Hallo Welt!‘, ‚Ein Newseintrag‘);
$model[‚items‘] = new NewsItem(13, ‚2009-07-02 09:37:00‘, ‚Hallo Welt!‘, ‚Ein Newseintrag‘);
$model[‚items‘] = new NewsItem(14, ‚2009-06-01 09:52:00‘, ‚Hallo Welt!‘, ‚Ein Newseintrag‘);
// Nach Datum sortieren
usort($model[‚items‘], create_function(‚$a, $b‘,
‚return ($a->date < $b->date) ? 1 : -1;‘
));
// Erforderliche Parameter initialisieren
$_GET[‚page‘] = (isset($_GET[‚page‘])) ? (int) $_GET[‚page‘] : 1;
// Allgemeine Rahmenwerte
$itemsPerPage = 4;
$pagesCount = ceil(count($model[‚items‘]) / $itemsPerPage);
// Darzustellende Seite ermitteln
$page = $_GET[‚page‘];
if ($page < 1) {
$page = 1;
} else if ($page > $pagesCount) {
$page = $pagesCount;
}
// Darzustellende Einträge auswählen
$view = array();
$view[‚items‘] = array_slice($model[‚items‘],
($page - 1) * $itemsPerPage, $itemsPerPage);
$view[‚page‘] = $page;
$view[‚pagesCount‘] = $pagesCount;
// Darstellung
?>
<?php foreach ($view['items'] as $item) : ?>
<?php echo htmlspecialchars($item->title); ?>
<?php echo date('d.m.Y H:m:s', strtotime($item->date)); ?>
<?php echo htmlspecialchars($item->content); ?>
<?php endforeach; ?>
<?php if ($view['page'] > 1) : ?>
<<
<?php endif; ?>
Seite <?php echo $view['page'] ?> von <?php echo $view['pagesCount'] ?>
<?php if ($view['page'] < $view['pagesCount']) : ?>
<a href="?page=<?php echo $view['page'] + 1; ?>">>></a>
<?php endif; ?>
[/php]