cms4ds
a CMS for Synology Disk Stations
# Besucher
Donate a cup of coffee for Itari

cms4ds - ein Web Content Management System für die DS

2008-11-07

cms4ds ist ein Web Content Management System (CMS) für die Disk Station. Ein Web CMS benutzt meist eine Server-seitige Skript-Sprache für den Zugriff auf eine Datenbank, in der der Content (hauptsächlich als Text oder HTML) ablegt ist; in unserem Fall wäre das PHP5.

Für den eigentlichen Seitenaufbau wird Hyper Text Mark-Up Language (HTML4 bzw. an XHTML1 angelehnt) verwendet. Im CMS wird zwischen dem HTML, was für die Grundstruktur der Web-Seiten verantwortlich ist und dem HTML, welches für die Inhalte verwendet wird, logisch unterschieden. Da natürlich alles HTML ist, macht es für den Browser keinen wirklichen Unterschied.

Die Aufbereitung und Anordnung der Stilelement wird gerne getrennt mittels einer Style-Sheet-Language; es wird hier CSS2 in der Form verwendet, dass mindestens der Firefox und der Internet Explorer damit klar kommen.

Selbstverständlich läuft das cms4ds nicht nur auf der Disk Station, sondern überall, wo es einen Web-Server mit SSI (Servier-Side-Includes), PHP5 und einer MySQL-Datenbank-Anbindung gibt. Da es auf einen Apache-Web-Server entwickelt worden ist, läuft es natürlich dort ohne weitere Anpassungen.

cms4ds - Motivation und Konzept

2008-10-11

Natürlich kenne ich eine Menge CMSen. Und natürlich gibt es auch eine Reihe davon, die auf der DS laufen. Die meisten sind aber nicht allzu modern aufgebaut, nutzen zum Beispiel kaum AJAX und nicht wirklich richtig CSS. Da die Diskussion im Community Forum oft eher so verläuft, dass man irgendwas nicht ganz richtig Verstandenes versucht zum Laufen zu bringen, habe ich hier mal den Ansatz umgedreht und versuche zu erklären, wie man mit relativ bescheidenden Mitteln was gut zum Laufen bringen kann.

Das cms4ds ist ja recht minimalistisch und kann trotzdem so ziemlich alles (wenn man will). Es hat nur kein Installationsskript (damit man sich damit auseinander setzen muss ) und auch kein Admin-Interface (damit man sich selbst was dazu schreibt) und auch kein Templatesystem (damit man selbst CSS lernt) und kann zusammen mit jeder beliebigen Datenstruktur in einer Datenbank zusammenarbeiten (wenn man das SQL selbst dazu komponiert).

Es geht mir ja auch nicht so sehr darum, ein gutes und schickes und was-was-ich-CMS zu basteln, sondern um ein paar Pflöcke, was CMS-Architektur angeht, zu schlagen und zu zeigen, dass die meisten CMS Ressourcen einfach vergeuden.

Bei allem gilt natürlich, es muss auf der Serverseite so einfach wie möglich sein, so wenig wie möglich die Datenbank belasten und so wenig wie möglich irgend welche fertige PHP-Bibliotheken einbinden, die das CMS langsamer machen könnten. Es kann auf der Browser-Seite alles nur Erdenkliche enthalten. Also volle Kanne JavaScript, weil das die DS nicht langsam macht. Und es muss nicht jede Browser-Version mögen, sollte aber so wenig wie nötig Browser-Weichen enthalten. Das wären - so denke ich - die Rahmenbedingungen, denn wir müssen ja nicht unbedingt gegen Joomla oder WordPress gewinnen

Diese Web-Site basiert auf dem cms4ds.

cms4ds - Architektur

2008-10-11

Ein (Web) Content Management System (CMS) benutzt meist eine Server-seitige Skript-Sprache für den Zugriff auf eine Datenbank, in der der Content (hauptsächlich als Text oder HTML) ablegt ist; in unserem Fall wäre das PHP5.

Für den eigentlichen Seitenaufbau wird Hyper Text Mark-Up Language (HTML4 bzw. an XHTML1 angelehnt) verwendet. Im CMS wird zwischen dem HTML, was für die Grundstruktur der Web-Seiten verantwortlich ist und dem HTML, welches für die Inhalte verwendet wird, logisch unterschieden. Da natürlich alles HTML ist, macht es für den Browser keinen wirklichen Unterschied.

Die Aufbereitung und Anordnung der Stilelement wird gerne getrennt mittels einer Style-Sheet-Language; es wird hier CSS2 in der Form verwendet, dass mindestens der Firefox und der Internet Explorer damit klar kommen.

Die verwendeten Dateien kurz erläutert:

Die jeweiligen HTML-Dateien (z. B. index.html) sind die Site-Struktur abbildenden Seiten des CMS. Sie werden per Menü-Klick ausgewählt. Je mehr Seiten man in der Menü-Zeile haben möchte, um so mehr weitere Seite muss man anlegen. Die Seiten werden dann mit dem Content der Datenbank gefüllt und zwar so, dass die Beiträge die einer Rubrik angehören auf der dazugehörigen Struktur-Seite geladen werden. Also Rubrik = HTML-Datei-Zuordnung. Am besten nennt man sie auch im Menü genauso.

Die Dateien header.html und footer.html werden per SSI in die anderen HTML-Seiten integriert und enthalten die Seiten für die Page-Struktur, zusammen mit der Style-Sheet-Datei cms4ds.css geben die Form und Farben des CMS.

Alle für die AJAX-Kommunikation und den dynamischen Seitenaufbau notwendigen Java-Skripte befinden sich in der Datei cms4ds.js. Die für die Suche (search.xml), die History-Mechanik (blank.html), die Protokollierung (cms4ds_log.php) und die Datenbank- (cms4ds.php, cms4ds.inc) bzw. RSS- (getrss.php, rss.xsl) Zugriffe notwendigen Dateien runden die Sammlung ab.

Um das cms4ds selbst als Feed zu sehen gibt es noch das Skript cms4ds_rss.php und einen einfachen Datenbankeditor (cms4ds_editor.php) gibt es auch. Ausschließlich zur Verschönerung sind noch zwei Bilder an Bord: eins für den Kopfbereich (cms4ds.jpg) und eines als Browser-Icon (cms4ds.ico).

Download - Vorbereitung - Installation

2008-10-11

(1) wir bauchen phpmyadmin, falls also noch nicht installiert, zuerst darum kümmern. Auch muss die Web Station aktiviert worden sein und laufen.
(2) anlegen eines Verzeichnisses /volume1/web/cms4ds
(3) anlegen einer Datei /volume1/web/cms4ds/index.html mit folgendem Inhalt: "huhu"
(4) (optional) Hinzufügen der folgenden 2 Zeilen in der /usr/syno/apache/conf/extra/httpd-autoindex.conf-user, am besten nach den Audio- oder Blog-Zeilen:

AliasMatch ^/cms4ds$ "/var/services/web/cms4ds/"
Alias /cms4ds/ "/var/services/web/cms4ds/"

user-Apache neu starten: /usr/syno/etc/rc.d/S97apache-user.sh restart
testen, ob im Browser der Aufruf geht: http://IP_DS/index.html und danach die Datei index.html wieder löschen
(5) die Dateien downloaden und entpacken
(6) eventuell die Datei cms4ds.php.inc mit einen normalen (Windows-) Editor anpassen. Wenn man ein Datenbank-Kennwort für den Benutzer 'root' vergeben hat, dieses in die folgende Zeile einfügen:

$com = @mysql_connect("localhost","root","Kennwort");

(7) kopieren des entpackten Verzeichnisses (cms4ds) ins DS-Verzeichnis /volume1/web/cms4ds (so dass danach alle in /volume1/web/cms4ds steht) - das kann man auf Windows heraus machen oder mit der File Station.
(8) mit Telnet oder Ähnlichem als Benutzer 'root' auf der DS anmelden und folgendes ausführen:

cd /volume1/web; ln -s cms4ds.html index.html

(9) phpmyadmin aufrufen und im SQL-Fenster die Datei cms4ds.sql (vom PC aus) laden (Zeichenkodierung: cp1250) und ausführen
(10) im Browser ausprobieren

Da der Download ab und zu Probleme macht - insbesondere der IE geht leider nicht - gibt es jetzt hier eine neue Variante. Der erste Download-Link erzeugt einen Schnappschuss der aktuellen Version, welche hier gerade im Einsatz ist und erfolgt wie bisher über die Itari-Web-Site on-the-fly, geht aber nur mit Browsern, die auch den REFERER unterstützen. Der zweite Download-Link benutzt immer die letzte gezippte Version, die irgendwer mal mit der ersten Variante erzeugt hat(te).

[Download (on-the-fly)] [Download (static)]

Kommentare

von myself am 2009-05-04 09:55
das ist mal ein Beispiel 23
von yourself am 2009-05-04 10:55
Das ist fett
von yourself am 2009-05-04 10:56
das ist ein Link www.google.de
von yourself am 2009-05-04 11:01
Link http://www.google.de
von test1 am 2009-05-05 22:50
<input type="button" onclick="alert('hallo')">
PHP: 0.006718 sek. | #