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:

http://www.fcb-woerth.de/

Backend Ansicht:


Download:

Download Einfaches News-Addon

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">&lt;&lt;</a></li>';
   $prevpage = $page - 1;
   echo '<li><a href="'.$site.'?page='.$prevpage.'" title="zurück">&lt;</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">&gt;</a></li>';
   echo '<li><a href="'.$site.'?page='.$totalpages.'" title="letzte Seite">&gt;&gt;</a></li>';
}
echo '</ul>';
?>

zurück

Sabrina Bauch
Geprüfte Mediendesignerin

Richard-Wagner-Str. 35
76744 Wörth

07271 129737

bauch@sbmediendesign.de


Quellen:

PHP Freaks Pagination

News-Addon Pcwehle