Newsscript programmieren

In der 2. Woche meines 13-Wochen-Projekts habe ich ein kleines Newsscript für meine Rätselseite programmiert. Welche Vorteile das neue Skript hat, wie ich die alten Newseinträge importiert habe und was bei der Programmierung eines Newsscripts zu beachten ist, erfahrt ihr in diesem Artikel.

Ich denke, es bringt wenig, wenn ich das komplette Script poste, da es doch sehr auf meine Seite zugeschnitten ist. Deshalb schildere ich hier nur die Unterschiede zwischem dem bisherigen News-System und dem neuen Newsscript. Außerdem gehe ich noch auf den Import der Daten und einige Punkte ein, auf die man bei der Programmierung achten sollte.

Bisheriges News-System

Bis letzte Woche hatte ich gar kein Newsscript eingesetzt, sondern nach 10 Meldungen einfach eine neue Seite erstellt. Die neue Seite wurde zur Seite 1, die bisherige Seite 1 zur Seite 2 usw. Diese Vorgehensweise hatte etliche Nachteile:

  • Ich musste die bisherigen Seiten alle umbenennen, was mit steigender Seitenanzahl doch recht arbeitsaufwändig wurde.
  • Da ich die Seiten untereinander verlinkt hatte, musste ich auch die Verlinkungen auf allen Seiten ändern. Bisher hatte ich z. B. die Seite 15 auf die Seiten 14 und 16 verlinkt. Nach der Umbenennung auf Seite 16 musste ich die Verlinkungen auf die Seiten 15 und 17 ändern.
  • Während auf den Folgeseiten immer 10 Einträge angezeigt wurden, war dies auf der ersten Seite nur selten der Fall. Kurz nach Erstellung einer neuen Seite gab es auf dieser nur einige wenige Einträge. Nach einiger Zeit wurden es dann immer mehr Einträge (teilweise sogar über 20) bis ich dann wieder Zeit fand eine neue Seite zu erstellen und die bisherigen Seiten umzubenennen.

Wie ihr leicht erkennen könnt, war das bisherige System sehr unflexibel und arbeitsaufwändig.

Das neue Newsscript

Mein selbst programmiertes Newsscript hat im Vergleich zum bisherigen System folgende Vorteile:

  • Die Seiten werden automatisch erzeugt.
  • Auf jeder Seite gibt es 10 Newseinträge. Die einzige Ausnahme ist die letzte Seite auf der die Anzahl der Newseinträge von 1 – 10 variieren kann.

Import der alten Newseinträge

Ich hatte anfangs überlegt, für die bisherigen knapp 200 Newseinträge ein Importskript zu schreiben, bin dann aber rasch davon abgekommen. Die Gründe dafür waren:

  • Die Einträge waren auf 20 Seiten verteilt.
  • Die Sortierung der Einträge war absteigend (das neueste Datum war vorne im Quelltext). In der Datenbank sollten aber die ältesten Einträge vorne stehen.
  • Ich habe im Internet so gut wie keine brauchbaren Informationen darüber gefunden, wie man eine HTML-Datei in eine MySQL-Datenbank importiert.

Deshalb habe ich in allen Seiten die überflüssigen Tags wie <br /> gelöscht und die Einträge mit Hilfe von Copy & Paste in die Datenbank kopiert. Da mir ein einfaches Newsscript genügt, habe ich eine Tabelle mit nur 3 Spalten angelegt:

  • id – fortlaufende Nummer
  • datum – das Datum des Newseintrags
  • inhalt – der Text des Newseintrags

Mein neues News-Script

Zeilenumbrüche mit nl2br()

In einem MySQL-Text-Datenfeld können auch mehrere Textzeilen eingegeben werden. Die Zeilenumbrüche werden dabei mit „\n“ abgespeichert. Ein Browser kann damit allerdings nichts anfangen und ignoriert diese Anweisung einfach. Deshalb gibt es den PHP-Befehl nl2br(), der alle „\n“ in „<br />“ umwandelt.

$inhalt=nl2br($row['inhalt']);

Seitenanwahl beim Newsscript

Ein wichtiger Bestandteil eines guten Newsscripts ist die Seitenanwahl. Mit $_GET[‚page‘] habe ich die aktuelle Seite ermittelt. Aus Sicherheitsgründen habe ich überprüft, ob es sich bei den Zeichen hinter der Option ‚page‘ auch um Zahlen handelt.

if (isset($_GET['page']) && is_numeric($_GET['page']) && $seitenanzahl>=$_GET['page'])
{
$page=$_GET['page'];
$start=($_GET['page']*$maxeintraege)-$maxeintraege;
}

Falls hinter ‚page‘ keine sinnvolle Zahl eingetragen ist, wird die Startseite angezeigt:

else
{
$page=1;
$start=0;
}

Aktive Seite markieren

Bei der Ausgabe wird die aktive Seite rot markiert:

echo '<ul class="seitenzahlen">';
for($i = 1;$i<($seitenanzahl+1);$i++)
{
if ($i!=$page) echo "<li><a href='/raetsel-news/news.html?page=".$i."'> ".$i."</a></li>";
else echo "<li><a style=\"color:red\" href='/raetsel-news/news.html?page=".$i."'> ".$i."</a></li>";
}
echo '</ul>';

3. Woche: Überarbeitung meiner Werbeseite

Nachdem ich die ersten beiden Projekte erfolgreich bewältigt habe, ist diese Woche nun die Überarbeitung meiner Werbeseite auf diesem Blog an der Reihe. Über das Ergebnis dieser Umgestaltung werde ich nächste Woche berichten.

Mein 13-Wochen-Projekt
Woche 1: CSS-Buttons erstellen
Woche 3: Werbeseite gestalten
Woche 4: 10 tolle Tipps für Piwik

Veröffentlicht von

Cujo

Die Webmaster-Zentrale wurde im Januar 2010 von mir gegründet. Dabei haben mich 3 Internetauftritte maßgeblich beeinflusst. Zum einen die Website des t3n-Magazins, www.t3n.de, auf der immer sehr interessante Artikel zum Thema Webseitenerstellung gepostet wurden. Genau solche Artikel wollte ich auch schreiben. Dann bin ich schon seit mehreren Jahren im Homepage-Forum, www.homepage-forum.de, aktiv. Im Laufe der Zeit stellte ich fest, dass dort immer die gleichen Fragen gestellt wurden. Jedesmal darauf die gleichen Antworten zu geben, war erstens langweilig, zweitens zeitraubend und drittens hat es sich nicht gelohnt, die Fragen ausführlich zu beantworten. In der Webmaster-Zentrale greife ich jetzt oft Fragen auf, die im Homepage-Forum gestellt wurden und habe die Möglichkeit die angesprochenen Themen viel detaillierter zu behandeln. Bei wiederkehrenden Fragen poste ich dann einen Link zu einem Artikel in der Webmaster-Zentrale. Dadurch erhalten die User ausführlichere Antworten als normalerweise in einem Forum üblich. Die Idee, Informationen bereitzustellen und diese im Forum zu verlinken, habe ich von Daniel, www.homepage-faqs.de, übernommen. Daniel bezeichnet sich selbst als Forenhelfer und ist sehr aktiv im Homepage-Forum. Er hat schon zahllosen Usern mit seinen Informationen geholfen und ihnen die Grundlagen der Webseitenerstellung erklärt. Diese 3 Webauftritte hatten einen so großen Einfluss auf mich, dass ich sicher behaupten kann, dass es ohne sie die Webmaster-Zentrale nicht geben würde.

8 Gedanken zu „Newsscript programmieren“

  1. Wenn ich solche Beiträge lese, dann weiss ich, dass ich unbedingt mal eine Programmiersprache erlenen muss. Das ist man viel flexibler.

  2. Ich denke auch, dass sich das lohnen würde. Das Schöne an PHP ist, dass man viele Dinge bereits mit relativ wenig Aufwand realisieren kann.

    Falls du ein gutes PHP-Tutorial suchst, kann ich dir das von Schattenbaum empfehlen. Wenn du das durchgearbeitet hast und feststellst, dass dir PHP Spaß macht, dann kaufst du dir am besten ein Buch um deine Kenntnisse zu vertiefen.

  3. Die 2. Woche scheint sich wirklich gelohnt zu haben, ich kann mir vorstellen, dass es ziemlich nervig war das alte Newssystem zu aktualisieren.

    Ich frage mich nur, was du damit meinst: „Die Sortierung der Einträge war absteigend (das neueste Datum war vorne im Quelltext). In der Datenbank sollten aber die ältesten Einträge vorne stehen.“ Es ist ja ziemlich egal, in welcher Reihenfolge diese in die Datenbank eingetragen sind, da du sie ja mit dem MySQL Befehl ORDER beliebig sortieren kannst.

  4. Es ist natürlich richtig, dass die Reihenfolge der Einträge im Grunde genommen egal ist. Aber zurzeit mache ich die Einträge noch direkt in der Datenbank und da ist es schon praktisch, wenn sie sortiert sind. Ich kopiere z. B. öfters die Einträge der vorhergehenden Wochen und ändere nur den Link ab. Wenn ich weiß, dass ich vor 5 Wochen einen ähnlichen Eintrag hatte, finde ich diesen halt schneller, wenn die Einträge in der Datenbank sortiert sind.

  5. …und als nächstes gibt’s dann eine Verwaltungsoberfläche oder bleibst Du bei PHPmyAdmin?

    Ansonsten aber schön detailliert aufgeführt die Schritte 🙂 Kann man so sehr leicht „nachrüsten“. Danke!

  6. Im Moment gebe ich die Daten noch direkt in phpMyAdmin ein, aber ein Formular zur Dateneingabe wäre auch kein großer Aufwand, da ich schon eins für mein Gästebuch gemacht habe. Das müsste ich nur noch abändern. Andererseits stellt sich natürlich die Frage, ob ich wirklich für 2 Felder ein Formular brauche oder ob das in phpMyAdmin nicht genauso schnell geht.

  7. Aber lohnt sich der Aufwand, wenn man für sowas auch zum Beispiel WordPress verwenden kann und man dafür sich direkt mehr auf die Inhalte konzentrieren kann?

  8. Ich würde mir diese Mühe wohl auch nicht machen. WordPress läuft doch super und würde dir die Arbeit erleichtern. Alleine die Seiten umzubenennen wäre mir zu aufwändig

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.