<?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) : ?>
<h2><?php echo htmlspecialchars($item->title); ?></h2>
<p><?php echo date('d.m.Y H:m:s', strtotime($item->date)); ?></p>
<p><?php echo htmlspecialchars($item->content); ?></p>
<?php endforeach; ?>
<p>
<?php if ($view['page'] > 1) : ?>
<a href="?page=<?php echo $view['page'] - 1; ?>"><<</a>
<?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; ?>
</p>