cms4ds - ein Web Content Management System für die DS
2008-10-11Natü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.
System Administration
2009-08-08Angefangen hat die Idee der System Administration mit dem PHP SysInfo-Skript. Mir fehlten noch einige Anzeigen und die Flexibilität neue Module einzubauen. Zudem machte ich die Bekanntschaft mit den Möglichkeiten der Google-Chart-API. So entstanden nach und nach mehr als 30 Module, die unter einer Menü-Oberfläche [Bild-0006] zusammengefasst sind. Per Klick werden die verschiedenen Module in ein iframe geladen.
Die aufgerufenen Module verwenden für ihre Anzeige fieldsets-Container. In der Legende kann man oft sehen, wie der Kommando- bzw. Programmaufruf lautet, der zu einer entsprechende Ausgabe geführt hat.
Die Integration in den Disk Station Manager als 3rd-Party Application kann mit der im Download beigefügten application.cfg erfolgen.
Pfad für das Menu-Skript: /usr/syno/synoman/phpsrc/systeminfo/sysi.php
Pfad für die Module: /usr/syno/synoman/phpsrc/systeminfo/modules/
Pfad für die 3rd-Party Konfigurationsdatei: /usr/syno/synoman/webman/3rdparty/systeminfo
Mittlerweile hab ich alle Module und Skripte nach /usr/syno/synoman/webman/3rdparty/SystemAdministration verlagert. Es kann sein, dass nun nach dem Download der Pfad entweder in der application.conf oder als Startverzeichnis unter 3rdparty noch angepasst werden muss. In den Beschreibungen der einzelnen Module ist das dann auch zu berücksichtigen. Wieso sind diese Inkonsistenzen? Weil ich mittlerweile so ziemlich alles aus dem phpsrc-Verzeichnis unter das 3rdparty-Verzeichnis verschoben habe, damit bei einem Firmware-Update nicht immer alles nachinstalliert werden muss. Sorry wegen dieser möglichen kleinen Unstimmigkeit, aber ich mag nun nicht alle Seiten nachbessern.
Der Download enthält das Menu-Skript sowie alle Modul-Skripte.
[Download]cms4ds - Architektur
2009-05-07Ein (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 Dateien index.html, page2.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 (page3.html usw.) muss man anlegen. Die Seite index.html enthält hauptsächlich statischen Content (als Beispiel), während die Seite page2.html der Prototyp für dynamischen Content ist, welcher per AJAX hinzu geladen wird.
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).
Mittlerweile ist eine Kommentierungs-Funktionalität hinzugekommen. Eine Foto-Gallerie und ein Kalender/eineTermin-Liste sind jetzt auch dabei.
Download - Vorbereitung - Installation
2008-10-11
(1) anlegen eines Verzeichnisses /volume1/web/cms4ds
(2) anlegen einer Datei /volume1/web/cms4ds/index.html mit folgendem Inhalt: "huhu"
(3) 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/"
(4) user-Apache neu starten: /usr/syno/etc/rc.d/S97apache-user.sh restart
(5) testen, ob im Browser der Aufruf geht: http://IP_DS/cms4ds/index.html
(6) die Dateien downloaden und ins cms4ds-Verzeichnis kopieren
(7) ausprobieren
cms4ds hat eine eigene Web-Site cms4ds