PHP Nuke

Transcrição

PHP Nuke
PHP Nuke
[phpnuke logo]
PHP Nuke
Ein WCMS WPS System
Sascha Kunz <[email protected]>
Inhalt
Anfang
1. Abstract
Seite 1
2. PHP Nuke CMS
Seite 2
2.1. Motivation
Seite 2
2.2. Was ist PHP Nuke
Seite 2
• Historie
Seite 3
2.3. Nuke im Detail
Seite 4
• Installation
Seite 4
• In Betriebnahme
Seite 4
• Gliederung
Seite 5
• User Bereich
Seite 6
• Admin Bereich
Seite 7
• PHP Nuke Seite
Seite 13
2.4. Benutzer Prüfung
Seite 14
3. Erweiterungen / Ausblick
Seite 15
4. Evaluierung
Seite 15
5. Zusammenfassung
Seite 16
6. Quellen
Seite 17
7. Glossar
Seite 17
Seite 1 von 17
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
Seite 2 von 17
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 PHPNuke 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.
Seite 3 von 17
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 UserTabelle 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.
Seite 4 von 17
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.
Seite 5 von 17
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.
Seite 6 von 17
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.
Seite 7 von 17
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.
Seite 8 von 17
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.
Seite 9 von 17
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.
Seite 10 von 17
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
Seite 11 von 17
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.
Seite 12 von 17
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 :
Seite 13 von 17
<?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 :
Seite 14 von 17
<?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.
Kontinuität der Entwicklung
Support
Performance
Bedienung
Sicherheit
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.
Seite 15 von 17
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.
Seite 16 von 17
6 Quellen
6.1 Literatur
[1] Netskill AG. PHP-Nuke – Eine Empfehlenswerte Enterprise-Lösung?. Juni 2004.
<http://www.competence-site.de>
[2] Ferner, Jens. PHP-Nuke Dokumentation Version 1.3. Juni 2004.
<http://www.PHPNuke-book.com>
[3] Storm4Net. PHP Nuke Themes verstehen ?. November 2002.
<http://www.storm4net.de/support/download>
[4] Schmid,Egon. PHP Handbuch.2000.
PHP Dokumentations Gruppe
[5] Stepken,Guido. MySql Datenbankhandbuch. September 1999.
<http://www.php-center.de>
[6] SQL Kompendiung. Deutschland: Markt & Technik ,2000.
[7} MySQL.com. MySql Dokumentation. August 2004
<http://www.mysql.com/documentation/mysql/bychapter/>
[8] PHP.net. PHP Referenz-Dokumentation. August 2004
<http://www.php.net/manual/de/>
[9] NukeBoards. Großes deutsches Nuke Community Forum. September 2004
<http://www.nukeboards.de/>
6.2 Software
[1] PHP Nuke. Juni 2004
<http://www.phpnuke.org/>
[2] XAAMP. Apache Webserver VKP inkl PHP und MySQL. Juni 2004
<http://www.apachefriends.org/de/>
[3] Netzid, PHP NUKE VKP. Juli 2004
<http://www.phpnuke-vkp>.
[4] Postnuke. Postnuke. Juli 2004
<http://www.postnuke.com>
[5] SourceForge. PHPMyAdmin. Juli 2004
<http://www.phpmyadmin.net/ >
7 Glossar
VKP
Vorkonfiguriertes Paket
CMS
Content Management System
WCMS
Web Content Management System
WPS
Web Portal System
Seite 17 von 17

Documentos relacionados