PHP Nuke

 
[phpnuke logo]

PHP Nuke
Ein WCMS WPS System
Sascha Kunz <mail@sascha-kunz.de>

 

1. Abstract

Almost everyone has come into contact with CMS systems at any time. Almost everyone used them without knowing it. Today a lot of homepages are at the bottom of CMS systems. If for example a user registers on a website in order to demand for userdependent parts, he then uses the Content Management System (CMS) without knowing it. It generates userpersonal startpages of a homepage or it filtrates information corresponding to requests of the user, e.g. But CMS systems are able to do more. For instance users are even able to extend the homepage by publishing own articles or by entering into discussion groups. Such a system is PHP Nuke, which understands itself as an editorial system and the following text deals with it.



Fast jeder ist schon mal mir CMS Systemen in Berührung gekommen. Fast jeder hat sie schon benutzt ohne es zu wissen. Hinter vielen heutiger großer Internet Auftritte steckt ein CMS System. Wenn Benutzer sich auf einer Webseite anmelden um zum Beispiel Benutzergebundene Teile in Anspruch zu nehmen, nutzen Sie dabei oft unbewusst ein Content Management System. Dieses generiert zum Beispiel Personenbezogene Startseiten einer Homepage oder filtert nach User wünschen Informationen. Aber CMS Systeme können noch mehr. So kann ein Nutzer sogar selbst die Homepage erweitern in dem er zum Beispiel eigene Artikel veröffentlichen oder Diskussionsforen moderieren. Ein solches System ist PHP Nuke, welches sich selbst als ein Redaktionssystem versteht und welches der folgende Text zum Inhalt halt.
 

2. PHP Nuke CMS ein CMS Portal System

2.1. Motivation

Das Web und die Technologien, die sich hinter den Webseiten verbergen, sind noch ein relativ junges Forschungsgebiet, da die ersten Konzepte, die zum heutigen Stand des WWW führten, erst im Jahre 1980 entwickelt wurden. Damals war es für kaum ein Unternehmen wichtig im Internet präsent zu sein. Heute sieht das jedoch schon anders aus. Nach der rasanten Entwicklung des Internets über die letzten Jahre kann es sich kaum eine Firma leisten nicht mehr auch im Internet Präsenz zu zeigen um dem Kunden einen ersten Eindruck von Qualität und Leistung zu vermitteln. Daher sollte natürlich ein qualitativ hochwertiger Auftritt das Ziel sein. Die Wahl des Richtigen Werkzeugs ist daher entscheidend und CMS Systeme sind solche Werkzeuge um dynamische Webseiten zu gestalten. Daher stellt sich bereits im Vorfeld eines geplanten Internetauftritts bereits die Frage welches CMS System man denn einsetzen soll. Sofern man sich entscheiden konnte ob man denn überhaupt eines braucht. Um herauszufinden welches man nun einsetzen möchte muss man eine Vielzahl an Fragen klären und bestimmen auf welche Punkte man besonderen Wert legt wie diese in den jeweiligen CMS Systemen umgesetzt worden sind. Fragen zur Wartbarkeit, Flexibilität bezüglich des Designs oder Schnittstellen sind Punkte die man bereits im Vorfeld klären muss.
 

2.2. Was ist PHP Nuke

PHP-Nuke beschreibt sich selbst als ein Web-Portal- und Online-Community-System, welches Webbasierende Administration, Umfragen, vom User einstellbare »Boxes«, Themes-Manager und eine benutzerfreundliche Administrations-GUI multilingual (also mehrsprachig) vereint. Man könnte sagen Nuke ist ein einfaches WCMS mit Redaktions- oder auch Portalsystem. Kern des Systems ist deshalb auch das Redaktionsmodul welches ein Fülle an Modulen zur Verfügung stellt um ein dynamischen Redaktionsorientiertes Portal auf die Beine zu stellen. Durch das eingebaute Artikel – System ermöglicht PHP-Nuke vor allem den Projekten eine Verwirklichung, bei denen mehrere Personen auf der Homepage Artikel schreiben bzw. Verfassen sollen – ohne jedoch die Seite als solche editieren zu müssen. Auch die eigentliche Verwaltung der Seite, das bedeutet das System und das äußere Erscheinungsbild, kann bequem über die Homepage erfolgen – ohne dass die Seite umprogrammiert werden muss. Veröffentlicht und Entwickelt wurde PHP Nuke im übrigen im Juni 2000 von dem Südamerikaner Francisco Burzi. Zudem ist PHP-Nuke ein frei verfügbares System, veröffentlicht unter der GPL. Es darf also von jedem eingesetzt werden, gleich ob kommerziell, privat oder gemeinnützig. Durch den frei verfügbaren Code und die täglich wachsende Gemeinde an PHP-Nuke Nutzern werden täglich neue Funktionen zu diesem System verfügbar, die teilweise simpel zu dem bestehenden System hinzugefügt werden können.

Allerdings ist die GPL seit der Version 5.6 etwas eingeschränkt. Das heißt eine Copyrightzeile steht nun unter jeder generierten Seite und diese darf nicht entfernt werden. Allerdings ist noch sehr strittig ob dies rechtens ist und was es heißt diese Zeile darf nicht entfernt werden. Denn bei geschicktem Einsatz von Templates ist diese Zeile nach wie vor nicht mehr Sichtbar.



Systemvoraussetzungen :

Plattform übergreifend (benötigt aber Apache Webserver)
PHP v4
Datenbank (MySql, mSQL, PostgreSql, PostgreSQL_local, ODBC, ODBC_Adabas, Interbase und Sybase möglich)
Speicherplatz des Systems selbst 5-10 MB
Speicherplatz Datenbank variabel da diese immer weiter wächst. Allerdings sollte hier fürs erste 15 MB völlig ausreichend sein.


Für einen Test zuhause bietet sich ein Projekt von Apachefriends an, welches einen vorkonfigurierten Apache Webserver mit PHP und mySQL sowie zur Datenbank Administration phpmyAdmin. Dieses XAAMP genannte Projekt kann man für verschiedene Plattformen downloaden [www.apachefriends.org].



Historie von PHP Nuke


Hervorgegangen ist PHP Nuke seinerzeit aus dem CS System Thatware. Und hat dieses mittlerweile weit hinter sich gelassen. Thatware hat bis heute kein Modulkonzept oder Block Aufteilung wie in Nuke. Die erste wirklich ausgereifte Version von Nuke war die Version 4.4.1a. Hierfür finden Sie auch bereits sehr viele Downloads und unsere Dokumentation gibt es auch für diese Version. Das System ist aufgrund seiner Struktur etwas schneller und vor allem wegen des fehlenden Modulsystems auch sehr leicht anzupassen. Das System ist noch „relativ“ schlank. Das bedeutet aber nicht, dass ab der Version 5 das PHP-Nuke System aufgebläht ist. Durch ein konsequentes Aufräumen der Systemdateien ist PHP-Nuke 5 weiterhin recht schlank geblieben und kann auf Wunsch durch löschen nicht benötigter Module und Themes etc noch weiter verkleinert werden.

Die Version 5 in PHP-Nuke kannte die wichtigsten Neuerungen:
Blöcke und Module. In der Version 5.5 wurde die Modularisierung endgültig vollständig umgesetzt. Das PHP-Nuke 5.5 System verfügt über einen weit fortgeschrittenen Code, ist strukturiert und leicht anzupassen.

Seit PHP-Nuke 5.6 hat sich (leider) nur wenig im Code getan. Die Versionen 5.5, 5.6, 6.0 und 6.5 bis 7.2 sind praktisch baugleich. In Version 6.0 gab es lediglich ein paar weitere Module und die Version 5 wurde damit abgeschlossen. In Version 6.9 wurden dann in der Nuke Datenbank zahlreiche Bezeichner der Tabellen geändert .Leider auch ohne jeglichen Grund dafür zu nennen. Ein Problem mit dem man wohl leben muss wenn ein GPL Projekt nur von einem Programmierer alleine betreut wird.

Leider wird zudem ab der Version 5.6 eine Copyrightzeile in den generierten Seiten eingefügt was das System für den kommerziellen Einsatz ein wenig unattraktiver macht. Jedoch kann man selbstverständlich eine kommerzielle Version von PHP Nuke erwerben in der man diese Zeile entfernen darf. Ob das alles noch mit der GPL übereinstimmt muss noch geklärt werden.

SpinOff / SplittOff PostNuke:

Als Basis diente der ersten PostNuke Version PHPNuke in der Version 5. PostNuke setzte als erstes Projekt die vollständige Modularisierung, um die inzwischen auch bei PHPNuke erreicht wurde und setzt nach eigenen Angaben vor allem auf Leistungsfähigkeit. PostNuke ist angeblich inzwischen in der Lage 500.000 Pageviews täglich zu handhaben. Das Projekt wird bei Sourceforge geführt [www.postnuke.com].
Größte Unterschied: Das differenzierte User/Admin System mit Rechte-Management macht es für ausgefeiltere Content-Sites interessant, wo mehrere Admins mit unterschiedlichen Schreib-Rechten eingerichtet werden sollen.



Weiter Spinoffs sind zum Beispiel MyPHPNuke oder Xaraya. Es gibt jedoch noch eine Anzahl weiterer die allerdings bisher nicht diesen Bekanntheitsgrad erreichen konnten.

 

2.3 Nuke im Detail


Installation:


Die Installation von PHP Nuke ist denkbar einfach. Bei einem bestehendem Webserver mit PHP und SQL Datenbank muss im Prinzip lediglich PHP Nuke in den htdoc Bereich kopiert werden mit entsprechenden Rechten für die php Dateien und eine SQL Datenbank für PHP Nuke angelegt werden. Schon ist das System fertig für den Einsatz.

Wenn die Datenbank für Nuke nicht auf dem localhost läuft muss eventuell noch die Datei config.php angepasst werden. Dort müssen auch die Änderungen für Datenbanktyp, Username, Userpasswort etc für den Zugriff auf die Datenbank erfolgen.


Hier gibt es noch eine $prefix Variable zu beachten. Da PHP Nuke auf die Tabelle mit einem bestimmten Namen in der Datenbank zugreift scheint es unmöglich zu sein mehrere PHP Nuke Seiten in einer Datenbank zu verwalten. Wenn man eine weitere PHP Nuke Seite anlegen möchte müsste man ja erneut die Tabellen in die Datenbank einfügen, diese bestehen aber ja bereits. Bis PHP 4 konnte man dieses Problem nur durch Eingriff in den Quellcode lösen. Ab Version 5 gibt es eine einfache Möglichkeit das Problem zu lösen mittels einer $prefix Variablen in der config.php.
Das System ist simpel: Jeder Tabelle in der Datenbank wird das Präfix vorangestellt, aus „Downloads“ wird also „nuke_downloads“ oder „xyz_downloads“, wenn man als Präfix „xyz“ angibt. Es ist somit möglich in einer Datenbank mehrere Tabellen mit unterschiedlichen Präfix anzugeben, so dass man mehrere PHPNuke Seiten mit einer Datenbank steuern kann! Problematisch ist aber, dass man dazu das mitgelieferte SQL File von Hand ändern muss, da es standardmäßig auf „nuke“ als Prefix eingestellt ist.

Seit der PHP-Nuke Version 5.4 steht eine weitere $prefix Variable zur Verfügung: $user_prefix; Der Sinn dieser Variable ist simpel wie effektiv: Geben Sie hier die Bezeichnung der Datenbank an, in der die User Tabelle liegt, die genutzt werden soll. Sinn macht dies dann, wenn Sie z.B. auf dem gleichen Datenbankserver mehrere Datenbanken für PHP-Nuke Seiten haben. Durch dieses Prefix können sich alle Nuke Seiten die gleiche User-Tabelle teilen. Wenn ein Benutzer sich auf Seite 1 registriert, wird er auch auf Seite 2 erkannt.


 

 

Inbetriebnahme


Zum starten von PHP Nuke öffnen Sie im Webbrowser das html Verzeichnis Ihrer PHP Nuke Installation. Das bedeutet also das dieses Verzeichnis sich am besten in das Root Verzeichnis Ihres Webservers kopiert wird damit es direkt ansprechbar ist ;-) Beim ersten Start sollten Sie natürlich einen Admin anlegen. Dazu rufen Sie einfach admin.php auf oder klicken Sie auf der Home Seite auf das unterstrichene HERE um einen Superuser anzulegen. Das war's dann auch schon. PHP Nuke ist nun installiert und läuft bereits mit den Voreinstellungen. Natürlich muss die Seite jetzt noch nach den eigenen Wünschen hin angepasst werden.
 

Tipp:

Cookies müssen im Webbrowser aktiviert sein, da die Login Daten hier gespeichert werden.

Alle Admins werden in der Tabelle _authors gespeichert. Sollte also einmal das Passwort für einen Admin verloren gegangen sein kann man hier ein wenig nachhelfen. Wenn hier gar kein Admin mehr drin steht muss beim Aufruf von admin.php wieder ein Superadmin angelegt werden. Sollte Sie die Admins nicht alle löschen wollen kann man bei einem gewünschten Admin auch das Passwort einfach abändern. Die Passwörter sind MD5 Hashs welche man mit einfachen Tools generieren kann. Zum Beispiel kann man als Passwort für einen Eintrag 21232f297a57a5a743894a0e4a801fc3 eingeben und das Passwort für diesen User lautet dann 'admin'.


Einfach gesagt kann man bei PHP Nuke in zwei Bereiche unterscheiden. In den User Bereich und in den Admin Bereich.

Ich möchte hier einmal die Hauptfunktionen für Benutzer einer PHP Nuke Seite in der Standard Installation kurz vorstellen.

 

Gliederung

Generell ist eine Nuke Seite im Allgemeinen in 5 Bereiche unterteilt.



 

Selbstverständlich lassen sich diese Teile grob beeinflussen durch Deaktivierung der Blöcke oder durch Veränderungen in den Design Templates.


Header

Dieser Bereich enthält meistens ein Suchfeld und Bannerwerbung. header.php inkludiert die theme.php die derzeit aktiviert ist. Leider nimmt diese dann auch Einfluss auf die angezeigten Optionen im Header Bereich der Seite. So kann in dem einem Design hier noch das Suchfeld zu finden sein und in einem anderen Design nicht mehr. Ein Kritikpunkt an PHPNuke. Die unsaubere Trennung von Content und Design


Footer

Hier werden standardmäßig Copyright und Erstellungszeit der generierten Seite ausgegeben. In footer.php ist dann auch die ungeliebte Copyright Zeile des Autors untergebracht die selbstverständlich nicht gelöscht werden darf. footer.php hat keinen direkte Anbindung durch Inkludierung an das derzeitige Theme.


Blöcke

Die Blöcke Unterscheiden sich in Links der Module Block in dem die derzeitig aktiven Module stehen. Dieser Block lässt sich auch wieder durch inkludieren des Themes modules.php verändern. In manchen Themes existiert daher dieser Block überhaupt nicht. Genauso verhält es sich auch mit dem Rechten Block. Der mittlere Block ist ein Sonderfall. Er enthält die generierte Seite des aktivierten Moduls und kann nicht gelöscht werden wie etwa bei dem Modules Block. Generiert wird dieser durch mainfile.php welches dann wieder zu einem gewissen Teil durch das eingestellte Theme beeinflusst wird.
 

User Bereich

Angemeldete Nutzer haben Ihr eigenes Menü und können auf alle Module der Seite zugreifen. Ist ein Nutzer angemeldet speichert Nuke einen Cookie auf dem Clientrechner mit den Zugangsdaten, einer Session Nummer und dem eingestellten Theme. Alles MD5 verschlüsselt.
 


[Screenshot User Menü PHP Nuke]

Ihre Informationen:

Unter Informationen kann alles persönliche zum User eingestellt werden. Beginnend beim Namen über E-Mail Adresse bis hin zu Zeitzone. Außerdem kann hier das persönliche Passwort abgeändert werden. Sie können auch für das Forum einen Avatar auswählen oder sogar eigene hoch laden. Dazu muss allerdings das Avatar Management aktiviert sein. Siehe Admin Bereich Forums.

 


Startseite anpassen:

Hier kann die persönliche Startseite des Users ein wenig angepasst werden. So kann hier die maximale Anzahl der Nachrichten die angezeigt werden soll, eingestellt werden und ein persönliches Menü eingefügt werden in dem eigener HTML Code für zum Beispiel Links eingesetzt werden kann.

 


Kommentaransicht:

Einstellungen für dir Diskussionsforen. Filterung nach bestimmten Kriterien, Sortierung sowie mögliche Reduzierungen der angezeigten Kommentare.

 


Nachrichten:

Internes Nachrichten/Mail System einer PHP Nuke Seite. Hier gelangt man in den Mail Bereich der Webseite. Registrierte User können sich hier Nachrichten schreiben ähnlich des E-Mail Systems. Allerdings ohne Anbindung an das Internet. Nachrichten können lediglich lokal versendet und empfangen werden.
 



Seitendesign:

Eröffnet dem User die Möglichkeit für Ihn persönlich die Seite in einem anderem Design zu präsentieren. Vorausgesetzt es existieren mehrere Designs.

Design befinden sich im 'html/Themes' Ordner der PHP Nuke Installation.
Durch einfaches hinein kopieren oder löschen kann die Auswahl an Designs ohne Neustart beeinflusst werden.



Abmelden:

Beendet die Nuke Session und löscht den Cookie auf dem Client Rechner.
 

 

 

Admin Bereich


[Screenshot Admin Menü PHP Nuke]
 

Der bei weitem Interessantere Teil beim Umgang mit einer PHP Nuke Seite ist der Admin Bereich. Leider kann Nuke nur einen wirklichen Admin anlegen der die Seite administrieren darf. Alle anderen Admins sind nur pseudo Zugänge die lediglich Veränderungen in den Modulen durchführen können, wie zum Beispiel neue Artikel veröffentlichen etc.. So ist es zwar möglich einen Superuser zu erzeugen, jedoch darf der dann wirklich alles. Eine abgestufte Variante der Seiten Admins wie es das zum Beispiel in PostNuke gibt, sucht man hier vergebens.

Im folgenden werde ich die einzelnen Bereiche des Admin Teils einmal kurz erläutern.


Neue Artikel :

In diesem Bereich kann der Admin selbst Artikel verfassen. Dieser Artikel kann dann einem bereits vorhandenem Thema zugeordnet werden und auch Wunsch auch erst Zeit versetzt veröffentlicht werden. Wenn man es wünscht kann auch direkt eine Umfrage für diesen Artikel gestartet werden, wo dann Nutzer mit ihre Meinung abstimmen dürfen.


Backup DB :

Wie der Name schon verrät kann der Admin hier die Datenbank sichern. Die Sicherung ist denkbar einfach. Der Admin kann sich einfach ein SQL File als Textdatei generieren lassen welches einfach die SQL Anweisungen enthält die zu dieser Datenbank führen würden. Bei großen Datenbanken wäre es sinnvoll wenn man diese Datei vielleicht auch direkt als Zip Datei downloaden könnte da sie als Textdatei dann doch irgendwann mal recht gross werden. Vielleicht folgt das ja noch oder man ändert einfach selbst das Modul.
 

Unter <html/admin/modules/backup.php> werden die Daten generiert und könnten hier zum Beispiel dann auch gezippet werden.

PHPMyAdmin bietet seit der Version 2.4.0 ebenfalls die Möglichkeit die Datenbank mit GZIP komprimiert zu sichern.



Banner :

Hier steht dem Admin eine kleine Werbekunden- und Bannerverwaltung zu. Es können Kunden angelegt werden und Banner zu dem dem Kunden registriert werden sowie die Anzahl der gekauften Werbe Einblendungen.

 

Kunden können sich dann über <banners.php?op=login> einloggen und haben hier Zugriff auf Statistiken Ihrer gebuchten Bannerwerbung. Klickrate, Views und Status der Banner können abgerufen werden.

Sollte das Banner nicht angezeigt werden so besteht die Möglichkeit das Banner überhaupt nicht aktiviert worden sind. Oder aber das Theme ist daran Schuld. In der theme.php des jeweiligen Themes gibt es eine Funktion themeheader() im oberen Teil muss banners.php irgendwo aufgerufen werden. Bevor dies geschieht muss allerdings eine Globale Variable global $banner definiert worden sein! Überprüfen Sie dies wenn das Banner in einem bestimmten Theme nicht angezeigt wird.



Blöcke :

Hier liefert Nuke eine Übersicht über die bestehenden Blöcke. Hier kann der Admin festlegen wo der Block anzeigt wird, das heißt also links, rechts, oben oder unten, sowie in welcher Reihenfolge die Blöcke angeordnet sind. Außerdem kann er festlegen wie lange der Block überhaupt erscheint und wer Ihn denn sehen kann. Also zum Beispiel ein Block mit Statistiken vielleicht nur für Admins. Zu guter letzt kann man natürlich auch noch neue Blöcke hinzufügen, allerdings nicht nur HTML Blöcke sondern auch RSS/RDF Blöcke die dann auch eine sich wiederholende Aktualisierung bedürfen zum Beispiel für Headlines oder Newsticker. Das bedeutet es werden Headlines, also News von anderen Seiten importiert. Selbstverständlich kann man auch die eigenen News zum Export freigeben und andere Seiten können diese dann importieren. Klickt dann ein User auf eine solche exportierte News gelangt er aber selbstverständlich auf die eigene Seite um sie dort lesen zu können.

 


Zum Import der News von Ihrer Seite müssen andere Internetauftritte die Datei backend.php von Ihrer Seite einbinden. Hierbei werden die letzten 10 Meldungen exportiert. Sollten Sie keinen Export Ihrer News wünschen kann man diese Datei auch einfach löschen.
 



Inhalt :

Inhalt oder Content ist ein vorinstalliertes Modul von Nuke. Hier haben Sie die Möglichkeit eigene Seiten in Nuke einzufügen. Sie können Kategorien anlegen und Artikelseiten erstellen und der jeweiligen Kategorien zuordnen. Die Erstellung erklärt sich von selbst so das ich darauf nicht weiter eingehen möchte. Eines noch als Tipp. Selbstverständlich können Sie hier auch html Tags verwenden um Ihre Seite anspruchsvoll zu gestalten.





Downloads :

In diesem Modul haben Sie die Möglichkeit Ihren Besuchern verschieden Downloads anzubieten. Auch hier gibt es wieder Kategorien und Unterkategorien denen die Downloads zugeordnet werden. Hierbei können Größe der Datei, URL, Autor und Beschreibung angeben werden. Nutzer haben dann aber nicht nur die Möglichkeit sich den Link zu downloaden sondern auch eine Bewertung für diesen Download abzugeben und sich eine Statistik über die abgegebenen Stimmen ansehen. Zudem dann der Nutze auch ggf. "tote" Links zu melden, welche dann dem Admin als "Gemeldete defekte Downloads" angezeigt werden. Zudem kann der Admin alle Links auch automatisch über den Punkt "Überprüfte Downloads/Überprüfe" alle Downloads auf Erreichbarkeit hin checken lassen. Das Anlegen von Kategorien und Downloads ist denkbar einfach und ähnlich dem System für Inhalt oder Artikel und erklärt sich daher von selbst.



Administratoren :


Hier hat der Admin die Möglichkeit neben sich als God Admin noch weitere Administratoren bzw. Autoren anzulegen. Selbstverständlich auch noch einen God Admin, doch der darf dann auch wirklich alles, auch den ursprünglichen God Admin löschen ! Es gibt hier ein kleines System zur Rechteverwaltung was sich darauf beschränkt was ein Autor tun darf. Autoren können Zugriff auf folgende Bereiche der Nuke Seite haben :
 

Artikel

Themen

Benutzer

Umfragen

Bereiche

Links

 

Tagesmotto

FAQ

Downloads

 

Testberichte

Newsletter

Forum

 

Inhalt

Enzyclopädie

Super-User

 


Wie man sieht könnte man sich noch weitere Rechte wünschen wie zum Beispiel das Autoren andere Autoren anlegen können die dann zum Beispiel einen bestimmten Teil administrieren dürfen. Eine solche Delegation von Arbeit ist leider in PHP Nuke nicht möglich. Post Nuke der Spinoff hat bereits diese und weiterführende Möglichkeiten was es für größere Seiten interessanter macht als PHP Nuke.
 



Benutzer :


Viel gibt es hierzu eigentlich nicht zu sagen. Der Admin kann Benutzer anlegen oder bestehende Nutzerdaten modifizieren.

 


Enzyklopädie :

Die Enzyklopädie ist eine Art Glossar. Hier kann man dann bestimmte Begriffe erklären und einer Sprache zuordnen. Dem Nutzer steht später selbstverständlich eine Suchfunktion über das Glossar zur Verfügung. Praktisch bei wissenschaftlichen Themengebieten mit vielen Abkürzungen die nicht unbedingt jeder kennt.
 



Tagesmotto :

Tagesmotto oder Emphemeriden sollen eine Nukeseite interessanter gestalten. Hier kann man zu jedem Tag des Jahres ein Motto oder eine kurze Geschichte erzählen die dann dem User angezeigt wird.

 


FAQ :

Im Prinzip genau das gleiche wie das Glossar nur unter einem anderen Namen. Nur diesmal mit der Möglichkeit die Texte in Kategorienzu Unterteilen. Zugänglich für die User über das FAQ Modul.

 


Forums :

Das Forum ist quasi völlig eigenständig und bietet den Nutzern der Nukeseite die Möglichkeit in einem Forum zu diskutieren. Angemeldete User sind automatisch auch beim Forum angemeldet und können hier aktiv werden. Wenn man als Admin in das Forum geht, gelangt man automatisch in den Admin Bereich des Forums. Hier können dann wieder Einstellungen zum Forum vorgenommen werden oder Statistiken des Forum eingesehen werden.

 

Hier kann unter Konfiguration dann auch das Avatar Management aktiviert werden was registrierten Nutzern die Möglichkeit gibt auch eigene Avatare hoch zu laden. User finden diesen Punkt dann aktiviert unter "Your Account / Your Information". Bei der Standard Installation ist das Avatar Management deaktiviert !

 



Benutzergruppen :

Benutzergruppen soll eine Art Belohnungssystem für besonders aktive Nutzer sein. Hier kann man Punkte für veröffentlichte Beiträge, Umfragen Beteiligung oder ähnliches vergeben. Wenn ein Nutzer eine gewisse Punktzahl erreicht hat gelangt er in eine nächst höhere Benutzergruppe, welche man selbst mit Namen, Beschreibung und notwendige Punktzahl anlegen kann. Daraus resultiert jedoch keine einhergehende Rechtevergabe wie man vielleicht vermuten könnte. Der Nutzer ändert lediglich die Benutzergruppe. Sollte sich damit auch Rechte ändern muss das der Admin selbst von Hand nachtragen.

 


HTTP Refer :

Refer sind die Herkunft Links, also von welcher Seite auf die Index.php verlinkt worden war. Der Admin bekommt hier eine Liste der letzten verlinkenden Seiten angezeigt und kann diese ggf. auch alle löschen lassen.
 

Die Referer funktionieren nur, wenn direkt auf die index.php zugegriffen wurde. Wenn erst eine index.html geladen wird, die dann auf die index.php weiterleitet, gehen die Referer verloren. In der index.php werden die Verweise in der Variable $referer abgespeichert.


 


Mitteilungen :

Hier kann der Admin eine Mitteilung verfassen die dann praktischerweise über allen Artikeln angezeigt wird. Da diese sich ja immer wieder neu ordnen kann man keinen Artikel verfassen der diese Aufgabe erfüllen könnte. Deshalb das Mitteilungssystem. Die Handhabung ist denkbar einfach und selbsterklärend. Einen Titel, Text, Verfallstag und wer die Mitteilung sehen kann. Viola.
 



Module :

Hier kann man als Admin Module aktivieren, den Namen ändern oder auch festlegen wer darauf zugreifen darf. Deaktivierte Module können nur vom Admin aktiviert werden und sind für normale Nutzer nicht sichtbar. Zudem können Sie aber auch ein Modul zwar aktivieren es aber nicht im Modulblock erscheinen lassen.

Die Installation der Module ist unterschiedlich und variiert von Modul zu Modul. Allerdings ist es bei einfachen Modulen oft ausreichend diese einfach in das Modul Verzeichnis zu kopieren.

 


Newsletter :


Hier können Sie Newsletter an die Benutzer versenden. Einfach Betreff und Inhalt eingeben fertig. Sie haben dann die Möglichkeit diese Email entweder an alle abbonierten Nutzer zu versenden oder an alle. Also vorher überlegen an wen man dieses Newsletter versenden will. Es ist nicht gerade nett einen Newsletter an Nutzer zu versenden die gar keinen abboniert haben.

 


Optimize DB :

Seit PHP Nuke v5.4 steht dem Admin ein Optimize DB zur Verfügung, welches die Datenbank von "Restmüll" aufräumt um so Ihre Größe und Performance zu erhalten. Einfach aktivieren und die Datenbank wird aufgeräumt. Zudem erhält man eine Statistik mit den in der Datenbank enthaltenen Tabellen und deren Größe sowie der Größe nach dem optimieren.
 



Testberichte :

Hier gibt es die Möglichkeit Testberichte zu verfassen, zu modifizieren oder geschriebene Testberichte anderer Autoren freizuschalten. Es ist eine Art von Artikelsystem wobei der Autor eines Testberichts zudem auch noch Punkte als Bewertung für das Produkt vergeben kann. Zudem kann zu jedem Testbericht ein Link und ein Bild angegeben werden. Nutzer können sich diese Textberichte ansehen und ggf. auch Kommentare dazu verfassen.

 


Spezial Berichte :

Spezial Bericht ist im Prinzip ähnlich wobei die Berichte in Kategorien verteilt werden können und Bild undLiinks etc selbst als HTML tag in den Text eingefügt werden müssen. Den Kategorien kann auch jeweils ein Bild zugeordnet werden welches sich dann im Verzeichnis <html/images/sections/> befinden muss. Diese Sections können gesondert durchsucht werden, was auch Sinn macht da es für Artikel vorgesehen ist die nicht unbedingt im Zusammenhang mit anderen Bereichen stehen.
 



Einstellungen :

Dies ist der zentrale Bereich für Einstellungen und Konfiguration einer PHP Nuke Seite. Hier wird quasi der Kern einer Nuke Seite eingestellt. Der Admin kann hier die Standard Sprache oder das Standard Theme festlegen.

Dieser Bereich unterteilt sich in mehrere Unterbereiche.
 


Generelle Einstellung - Hier werden zum Beispiel wie bereits gesagt Theme und Sprache eingestellt aber auch Name der Homepage, Seitenlogo, Seitenspruch, Admin E-Mail Adresse oder auch Anzahl der Artikel die gleichzeitig auf deren Startseite angezeigt werden. Eben alle einfachen generellen Einstellungen.

Multilinguale Optionen - Hier können Sie festlegen ob die Seite überhaupt mehrere Sprachen unterstützen soll und wenn ja ob die Auswahl der aktivierten Sprache als dropdown Menü oder in Landesflaggen erfolgen soll. Die dabei zur Auswahl stehenden Sprachen richtet sich nach den Einträgen im Verzeichnis <html/language> löschen Sie hier einfach die Sprachen die Sie nicht unterstützen wollen. Danach sind diese sofort aus der Auswahl verschwunden. Sollten Sie mehrere Sprachen verwenden denken sie daran das Sie die Blöcke entsprechend übersetzen müssen und ggf. nur für die jeweilige Sprache anzeigen lassen.

Bannereinstellungen - Einfach ja oder nein ob das Bannersystem aktiviert ist. Mehr siehe Banner

Fußnachrichten - Man hat hier die Möglichkeit 3 Footer bereiche anzulegen die auf den Seiten angezeigt werden soll. Wie immer sind html Tags erlaubt.

Backend Einstellungen - Das backend ist ja das Export Modul für die eigenen News Nachrichten. Hier kann man eine Überschrift für diese News festlegen als auch deren Sprache.

Mail neue Artikel an Admin - Legt fest ob der Admin bzw. eine andere Person über neue Artikel benachrichtigt werden soll via E-Mail.

Kommentare Moderieren - Legt fest ob Kommentare zu zum Beispiel Testberichte moderiert werden sollen und wenn ja von Admin oder dem User bzw. Autor.

Kommentar Einstellungen - legt ein Limit in Bytes für einen Kommentar fest als auch einen Namen von nicht registrierten Userkommentaren.

Grafische Einstellungen - Lediglich eine Option ob Grafiken im Admin Menü angezeigt werden sollen oder nur der Text.

Sonstige Einstellungen - Hier können verschieden Optionen eingestellt werden. Ob die Refers aktiviert werden sollen und wenn ja wie viele denn gespeichert werden sollen. Sowie ob man Kommentare zu Artikeln oder Umfragen zulassen möchte.

Benutzeroptionen -Hier werden Benutzer spezifische Einstellungen vorgenommen. Passwortlänge, Empfang von Broadcast Nachrichten, Lesen von Überschriften oder Anzahl der Nachrichten vom Benutzer änderbar aktivieren.

Zensuroptionen - Zu guter letzt noch eine Zenuroption welche ungebliebte Wörter aus den Texten filtern soll und diese durch **** ersetzt. Die zu zensierenden Wörter und die Ersetzung stehen in der Tabelle nuke_bbwords und können im Forums Admin Menü unter Word Censor geändert und erweitert werden.

 


Artikel :

Benutzer können mit submit.php (meist unter submit news) Artikel verfassen und an das System schicken. Der Admin hat dann unter Artikeln die Möglichkeit diese Artikel zu modifizieren und freizuschalten und damit zu veröffentlich oder auch komplett zu löschen.

 


Umfragen :

Hier gibt es die Möglichkeit Umfragen zu erstellen oder vorhandene Umfragen zu modifizieren oder zu löschen. Sollten Sie eine mehrsprachige Seite publizieren wollen, sollten Sie auch mehrere Umfragen für jede Sprache eine erstellen und diese dann nur nach der jeweiligen Sprache anzeigen lassen.

 


Themen :

Mit dem Themen – Manager können die einzelnen Themen organisiert werden. Es können Themen angelegt und gelöscht werden. Diese Themen tauchen dann im Menü „Artikel schreiben“ auf und es können somit Artikel diesen Themen zugeordnet werden. Es können Namen des Thema's, Themeninfos sowie ein Bild angegeben werden. Das Bild muss sich dann im Verzeichnis <html/images/topics/> befinden.

 


Links :

Hier steht Ihnen eine Verwaltung einer internen Linkliste zur Verfügung. Als erstes muss eine Hauptkategorie angelegt werden. Dazu sind dann natürlich auch wieder Unterkategorien möglich. Nun kann man Links den Kategorien zugeordnet eintragen. User können wieder wie bei den Downloads diese Links bewerten als auch defekte Links melden. Genauso wie bei den Downloads stehen dann dem Admin auch wieder die Optionen defekte Links modifizieren oder alle Links überprüfen zur Verfügung. Ingesamt eigentlich genau das gleiche wie die Downloadverwaltung nur das es einfache Links zu Internetseiten sind und keine Dateien.

 


Logout :


Beendet die Nuke Session und löscht den Cookie auf dem Client Rechner.
 

 


PHP Nuke Seite


[Screenshot PHP Nuke generierte Seite] [Anklicken für Original Grösse]

 

Zu den bis jetzt genannten Möglichkeiten Inhalt auf einer PHP Nuke Seite anzuzeigen will man allerdings sicher auch gerne eigene Inhalte im gleichen Layout präsentieren. Dazu reicht es oft aus die eigene Seite im PHP Nuke Rahmen zu laden. Am einfachsten geht das in dem man die Struktur von PHP Nuke übernimmt und die eigene Seite einfügt.

Legen Sie dazu zum Beispiel eine Seite test.php an mit dem Inhalt :
 

<?php
include('mainfile.php');
include('header.php');
include('meinedatei.htm');
include('footer.php');
?>


Diese Datei liefert dann die gleiche Struktur wie die "normalen" PHP Nuke Seiten, allerdings lädt dann im Mainteil, also im mittleren Block die eigene Seite.

Hinweis : Es empfiehlt sich, bei eingebundenen HTML Seiten die HTML Kopfzeilen am Anfang und Ende des Dokumentes <html> und </html> zu entfernen, da ja von PHP-Nuke diese Header erzeugt werden.

Allerdings werden auf diese Weise die rechten Blöcke nicht angezeigt. Wer diese dennoch einfügen will muss die Variable $index auf 1 setzen. Damit sieht uns vorheriges Beispiel dann folgendermaßen aus :
 

<?php
include('mainfile.php');
$index =1;
include('header.php');
include('meinedatei.htm');
include('footer.php');
?>

 

2.4 Benutzer Prüfung


Wie bereits besprochen werden die Benutzer MD5 verschlüsselt in der Datenbank gespeichert. Von Zeit zu Zeit will man aber vielleicht einen eigenen Bereich auf der PHP Nuke Seite haben der nur registrierten Usern zugänglich ist. Der generelle Aufbau einer Aufforderung an eine PHP Seite geht jeweils über ein SQL Layer Skript an die Datenbank und über das gleiche Skript dann wieder zurück. Welches Skript benutzt wird entscheidet dabei die Datei db.php mittels einer einfachen case Anweisung aufgrund der eingestellten Datenbank. In unserem Fall nehmen wir einmal an wir benutzen mySQL als Datenbankserver. In der DB.php sieht das dann so aus :
 

:
:

switch($dbtype) {

case 'MySQL':
include("".$the_include."/mysql.php");
break;

:
:


db.php inkludiert also das benötigte SQL Layer File für die Datenbank Kommunikation.



Um jetzt aber zum Beispiel selbst einige Seiten nur für ein registriertes Mitglied zugänglich zumachen muss man nicht selbst jeweils eine Datenbankverbindung erzeugen sondern kann sich der Funktion is_user() bedienen. Wenn wir nochmal das Beispiel von eben nehmen aber nur registrierte User Zugriff haben sollen, ändert sich das Beispiel folgendermaßen :
 

<?php
include('mainfile.php');
include('header.php');
if(is_user($user)) include('meinedatei.php');
else include(‘nouser.htm’);
include('footer.php');
?>


meinedatei.php wird nur eingefügt wenn der User auch registriert worden ist, ansonsten wird die Datei nouser.htm eingebunden.


3 Erweiterungen / Aussichten

Es gibt einiges was man noch verbessern könnte und zusätzlich einbauen könnte um Nuke noch attraktiver zu machen. Eine Theme Editor wie bei vielen kommerziellen Projekten bereits vorhanden würde bestimmt das anpassen an des Designs an die eigenen Wünsche und Vorstellungen stark verbessern. Auch ein ausgefeilteres rechte Management wird von vielen Usern als wünschenswert angesehen. Die Aussichten dafür sehen ganz gut aus. Die Community von Nuke ist groß und die von PHP sowieso. Es dürfte wohl nur eine Frage der Zeit sein bis solche Entwicklungen Einzug in eine neue Version von Nuke halten.

 

4 Evaluierung

Losgelöst von verschieden CMS Systemen sind folgende Fragestellungen interessant.

 


PHP Nuke nach diesen Kriterien betrachtet liefert folgende Aussagen :
 

[Stand September 2004 Nuke Version 7.0]

Kontinuität der Entwicklung
Die Software PHP-Nuke besteht seit den späten 1990ern und wird seitdem kontinuierlich entwickelt. Es gab bisher keinerlei Brüche oder, eine Gefahr von Software aus diesem Bereich, Ankündigungen, das Projekt werde eingestellt. Es ist in keiner Weise ein Ende der Projekt-Entwicklung abzusehen. Trotzdem gib es da einen großen Unterschied zu anderen besonders kommerziellen System. PHP Nuke wird nur von einen Programmierer betreut währen es bei anderen Projekten oft mehrere oder sogar ganze Gruppen sind. Die kann zu Problemen führen zum Beispiel hinsichtlich der Geschwindigkeit von Entwicklungen. Siehe Sicherheit.

Support
In der freien Version von PHP Nuke gibt es keinen Support. Wenn man Hilfe brauch muss man auf externe Dienstleister oder auf die Community zurückgreifen. Mittlerweile gibt es allerdings auch eine kommerzielle Version von Nuke die dann auch den Support  beinhaltet.

Performance
Was die Performance angeht lässt sich leider keine allgemein zutreffende Aussage machen das diese stark von der jeweiligen eingesetzten Version abhängt. Man kann jedoch sagen das die Datenbankzugriffe mit größer werden der Version ebenfalls gestiegen sind. Während beim generieren der Startseiten in der Version 5 es noch 30 Datenbank Zugriffe waren sind es in der Version 7 bereits über 60. Es gibt Berichte wonach die Versionen 6 und 7 bei Besucherzahlen von über 1000 am Tag Probleme haben sollen. Wie sooft sollte man das am besten einmal selber testen da es keine verlässlichen unabhängigen test bisher gibt.

Bedienung
Die Bedienung des Systems ist durchaus als intuitiv zu bezeichnen. Man kann sich schnell einarbeiten und auch unerfahren Systemadministratoren sollte nach 2 -3 Nachmittagen die grundsätzliche Bedienung des Systems beherrschen. Für Probleme gibt es einiges an Anleitungen im Netz die die meisten Fragen schnell klären.

Sicherheit

Die Sicherheit von PHP Nuke ist ein aktuelles Problem. Es gibt keine zentrale Anlaufstelle für Sicherheitsfixes und da das System nur von einem Programmierer betreut wird dauert es auch schon mal länger bis entsprechende fixes erscheinen. Hilfreich sind da besonders die vielen erhältlichen VKP`s die zum Teil genau diese Probleme lösen in dem die bereits bekannten Sicherheitslöcher gestopft sind. Ein gutes VKP was bereits sehr stark gegen Angriffe abgesichert ist finden Sie unter <http://www.phpnuke-vkp>.


 

5 Zusammenfassung

Als persönliches Fazit würde ich sagen ein CMS System zum Appetit holen. Aber satt wird man davon nicht.

Sicherlich muss man sagen das PHP Nuke ein bereits recht ausgereiftes Portalsystem ist mit dem sich sehr schnell ansprechende dynamische Seiten ins Netz stellen lassen. Wer also ein Redaktionssystem sucht ist hier recht gut aufgehoben. Durch das durchdachte Modulsystem kann man mit entsprechendem Aufwand durchaus eigene Ideen verwirklichen und die Community ist groß genug um Probleme sicher gemeinsam lösen zu können. Es ist quasi kostenlos zu haben, und sehr genügsam in seinen Ansprüchen. Aber es gibt durchaus auch Schattenseiten. So führt die verschwommene Trennung des Designs vom Inhalt dazu das die Entwicklung eigener Templates nur sehr schwer und mit viel Aufwand verbunden ist. Da haben kommerzielle Systeme die oft mit einem Theme Editor ausgestattet sind sicherlich einen Vorteil. Außerdem muss man sich damit begnügen das Probleme nur sehr schleppend vom Autor gelöst werden. Denn anders als bei anderen freien CMS Systemen arbeitet hier wirklich nur ein Programmierer am System. Das kann schon mal Probleme machen wenn man auf den Patch einer Sicherheitslücke ein paar Wochen warten muss. Insgesamt hat mich das System für den Einsatz als Portalsystem überzeugt, aber mehr kann man damit eigentlich nicht machen es sei denn man investiert eine Menge Zeit und ist fit in PHP. Denn auf Basis der Version 5 lassen sich durchaus auch völlig eigene Ideen verwirklichen. Und dazu gibt es ja auch noch unzählige Module im Netz um Nuke zu erweitern.

Wie immer ist es also wohl Geschmackssache und welche Zielsetzung man den verfolgt ob PHP Nuke nun das richtige ist oder nicht.
 

6 Quellen

6.1 Literatur
 


6.2 Software

 

7 Glossar