Einfaches News-Addon mit Paginierung
Dieses Addon bietet die Möglichkeit, Newseinträge nach Datum sortiert ausgeben zu lassen. Das Addon ist eine Modifikation dieses Addons. Das darin enthaltene Modul erstellt eine Paginierung nach Monaten und ist deshalb für Seiten mit seltenen Updates nicht so gut geeignet. Deshalb habe ich ein Modul mit einer Zahlenpagination erstellt, basierend auf diesem Beispiel.
Folgende Felder sind enthalten: Datum, Überschrift, TinyMCE Eingabefeld, Bildauswahl.
Um TinyMCE nutzen zu können, muss in der TinyMCE Konfiguration bei „Seiten auswählen bei denen der TinyMCE-Editor integriert werden soll” „news” eingetragen werden. Zur Datumseingabe wird das jQuery_UI Plugin für be_style benötigt.
Die Paginierung funktioniert nur, wenn mod_rewrite aktiv ist.
Beispiel:
Backend Ansicht:
Download:
Moduleingabe:
Anzahl der Meldungen pro Seite:<br /> <input type="text" size="50" name="VALUE[1]" value="REX_VALUE[1]" /> <br /> Bildgröße:<br /> <input type="text" size="50" name="VALUE[2]" value="REX_VALUE[2]" />
Modulausgabe:
<?php $conn = new rex_sql(); $sql = "SELECT COUNT(*) FROM rex_405_news WHERE status='1'"; $result = mysql_query($sql) or trigger_error("SQL", E_USER_ERROR); $r = mysql_fetch_row($result); $numrows = $r[0]; $rowsperpage = REX_VALUE[1]; $totalpages = ceil($numrows / $rowsperpage); if (isset($_GET['page']) && is_numeric($_GET['page'])) { $page = (int) $_GET['page']; } else { $page = 1; } if ($page > $totalpages) { $page = $totalpages; } if ($page < 1) { $page = 1; } $offset = ($page - 1) * $rowsperpage; $sql = "SELECT DATE_FORMAT(`date`,'%d.%m.%Y') AS ldate, headline, description, image FROM rex_405_news WHERE status='1' ORDER BY `date` DESC LIMIT $offset, $rowsperpage"; $result = mysql_query($sql) or trigger_error("SQL", E_USER_ERROR); while ($news = mysql_fetch_assoc($result)) { if ($news['image']!="") { $bild = '<div class="newspic"><img src="index.php?rex_resize=REX_VALUE[2]__'. $news['image'] .'" alt="'. $news['headline'] .'" /> </div>'; } else $bild =''; echo '<div class="news"> <div class="newstop"> <div class="newsheader">' . $news['headline'] . '</div> <div class="newsdate">' . $news['ldate'] .'</div> <br class="clear"/></div> <div class="newsmain">' . $bild . rex_article::replaceLinks($news['description']) .'</div><br class="clear"/></div>' . "\n"; } $range = 5; $site = rex_getUrl('', $REX['CUR_CLANG']); echo '<ul class="pagination">'; if ($page > 1) { echo '<li><a href="'.$site.'?page=1" title="erste Seite"><<</a></li>'; $prevpage = $page - 1; echo '<li><a href="'.$site.'?page='.$prevpage.'" title="zurück"><</a></li>'; } for ($x = ($page - $range); $x < (($page + $range) + 1); $x++) { if (($x > 0) && ($x <= $totalpages)) { if ($x == $page) { echo '<li>'.$x.'</li>'; } else { echo '<li><a href="'.$site.'?page='.$x.'">'.$x.'</a></li>'; } } } if ($page != $totalpages) { $nextpage = $page + 1; echo '<li><a href="'.$site.'?page='.$nextpage.'" title="weiter">></a></li>'; echo '<li><a href="'.$site.'?page='.$totalpages.'" title="letzte Seite">>></a></li>'; } echo '</ul>'; ?>
Sabrina Bauch
Geprüfte Mediendesignerin
Richard-Wagner-Str. 35
76744 Wörth
07271 129737
Quellen:

