Hey alle zusammen,
vor sehr sehr langer Zeit habe ich im Rahmen einer Zusammenarbeit mit DarthXela: ein ControlPanel für Godfather-basierende Scripte geschrieben. Das ganze ist auf großes Interesse gestoßen.
Wenn ich heute auf den Source-Code davon gucke, rollen sich mir die Fußnägel auf; daher ist hier eine vernünftig programmierte Alternative
Das ganze ist dieses mal aber nicht in Kooperation mit Darth, sondern mit einem anderen Designer passiert. Diese Person ist nicht hier im Forum; also einfach nur ein Nickname -> "MueOne"
Ich war so frei und habe ein paar gestalterische Elemente weggelassen, weil ich zu faul war, das zu machen; ich hoffe, er vergibt mit das~
Vielleicht regt es ja den einen oder anderen mal an, ein eigenes Design zu machen
Features
- Login & Logout
- Unterstützung von FTP und SFTP
- Online-Banking; Geld einzahlen, Geld auszahlen und überweisen
- Passwort ändern
Liste wird noch erweitert, wenn Sachen kommen, die ich als passend empfinde
Wissenswertes für Serveradmins
Alles wichtige befindet sich im Ordner "config".
Im Normalfall sollte die "config.php" ausreichen, wer aber andere Dateien nutz kann diese in der User.class.php anpassen. Bei Fragen diesbezüglich einfach hier melden
Wissenswertes für PHP-Programmierer
Die Erweiterung des CPs kann sich als extrem schwierig herausstellen, da ich auf nicht für Einsteiger geeignete gängige Techniken zurückgreife; wer keine Ahnung hat, was OOP ist, sollte lieber die Finger davon lassen
Dieses Design nutzt eine eigene, kleine Template-Engine. Die Klassen, die die Seiten beschreiben, findet ihr im Ordner "pages". Die Templates an sich findet ihr im Unterordner von diesem.
Die Template-Engine bietet den Vorteil, dass Designer euch euren Quellcode, den ihr dazu schreibt, nicht kaputt spielen können. Seitennamen sind nur Klein-A bis Klein-Z erlaubt; PaGe ist also keine gültige Seite, wohingegen page eine gültige Seite ist. Wird diese aufgerufen, wird in dem Ordner "pages" automatisch nach einer "PagePage.class.php" (oder "AccountPage.class.php" im Falle der Seite "account") gesucht; den Rest könnt ihr abgucken.
Desweiteren funktioniert das ganze System mit Klassenpaketen, damit man Klassen schnell "ersetzen" kann. Der primäre Grund, warum ich den eingesetzt habe, sind Verbindungsmethoden zum Server; dank den "Mods" (so hab ich sie genannt) muss man nur ein Wort ändern und kann von FTP auf MySQL, von SFTP auf HTTP oder sogar auf Plain Sockets umsteigen. Man muss nur die entsprechenden Klassen kopieren und in einem neuen Ordner umschreiben; die Aufrufe an sich ändern sich trotzdem nicht
Um ein Mod zu laden, einfach ModLoader::loadModule($modname) in der Datei aufrufen. Dann werden alle Klassen in dem Ordner automatisch geladen, sobald sie gebraucht werden
Wissenswertes für Designer
Die Seiten liegen in pages/templates. Auf, an die Arbeit
Die setup.php
Hier mal die "Standart-Setup":
<?php
/* Diese Datei ist Teil des Tionsys.de-Projektes
** Eine Benutzung außerhalb von Projekten ohne Genehmigung von mir ist nur
** erlaubt, wenn mein Name für jeden User des Produktes sichtbar (zB im Impressum) steht.
** Schließlich habe ich auch Arbeit darein gesteckt und eine Namensnennung kostet ja nichts :P
*/
/*
** Verbindungstyp
** Aktuell steht nur "ftp" zur Verfügung; später wird wohl noch sftp folgen
*/
define('CONNECTION', 'ftp');
/*
** Verbindungsdaten
** Sollten sich selber erklären. Das "dir" ist relativ zum Startverzeichnis
*/
define('CONNECTION_HOST', 'tionsys.de');
define('CONNECTION_USER', 'tion');
define('CONNECTION_PASS', 'xxx');
define('CONNECTION_DIR', './tmp/scriptfiles');
/*
** Wurzelverzeichnis der index.php
** Muss im Regelfall nicht geändert werden.
*/
define('ROOT_DIR', '.');
/*
** Die Cachezeit
** Höherer Wert = bessere Performance, aber eventuell veraltete Daten
*/
define('LOCAL_CACHE', 5);
/*
** Welchen Line-Break nutzen die Dateien?
** Eine GF-Edits nutzen den Windows-Break "\r\n", andere den Linux "\n".
*/
define('LINE_BREAK', "\n");
/*
** Der "Grundtitel"
** Steht vor den jeweiligen Seitennamen
*/
define('BASE_NAME', 'Basic SA:MP Roleplay v0.1a');
/*
** Teamspeak 3
** Wenn keiner vorhanden, einfach auskommentieren
** Ohne das ts3server
*/
define('TEAMSPEAK3', 'racitac.de:9987');
/*
** Forum
** Wenn keines vorhanden, einfach auskommentieren
** Mit http oder https
*/
define('FORUM', 'http://tionsys.de/');
/*
** Secret
** Das hier sollte möglichst einzigartig sein und darf niemanden erzählt werden
*/
define('SECRET', 'dhcfgbyjshfgcbukhsfgcbhfdghyfhyuhgfkhgvdfyf');
/*
** Debug-Mode
** Nur interessant, wenn ihr das CP gerade erweitert. Erzwingt das Neucompilen von Templates
*/
//define('DEBUG_MODE', true);
?>
Alles anzeigen
Bitte denkt unbedingt daran, das Secret zu ändern. Sonst kann man euer Webinterface übernehmen. Einfach mit dem Cursor rein und ein bissl mit dem Kopf auf der Tastatur rollen, um die Sicherheit zu erhöhen
Screenshots
Ich habe Kopfschmerzen und bin müde; die kommen im Laufe des Tages. Weitere Screenshots kommen, wenn ich mal geschlafen habe; also morgen oder so
Quelle Bilder: alle von mir
Lizenz
Das ControlPanel ist unter den klischeehaften Bedingungen veröffentlicht...
- Open Source
- Ihr dürft es bearbeiten
- Ihr dürft es frei weiter verbreiten
- Ihr dürft es benutzen
- Mirroring ist erlaubt; wer will, bitte mir eine PM mit dem Link senden. Ich füge die dann unten ein
- Ihr dürft nicht das Copyright im "Footer" streichen
- Ihr dürft es nicht verkaufen (auch nicht bearbeitet!)
Ausnahmen bestätigen die Regeln... bla bla bla... schreibt mich bei Interesse nach einer Ausnahme einfach an... bla bla bla... Verstoß Abmahnung... bla bla bla
Software von Dritten
Damit SFTP unterstützt werden kann, habe ich eine "leicht" veränderte Version der phpseclib mit dazugepackt. Die phpseclib steht unter der MIT-Lizenz; mir wäre also auch ein gewerblicher Verkauf erlaubt. Seid dankbar
Zudem habe ich einen Direktlink zu Skins gefunden. Einen Autor konnte ich nach Suche nicht ausfindig machen; die Quellurl sollte in der Readme stehen, wenn jemand zufällig den Autor kennt -> melden
Feedback
(Ab hier springen die meisten zum Downloadlink)
Es wäre super, wenn ihr irgendwie Feedback gegen würdet; als Entwickler gibt es nichts schöneres, als zu wissen, dass die Software, die man über mehrere Tage/Wochen/Monate programmiert hat, auch gut ankommt oder was man verbessern kann.
Es ist uns dabei volkommen egal, in welcher Form; ob nun als Post oder als Drücken auf den Like-Button, alles hilft weiter und sagt, wie das CP ankommt, was verbessert werden kann, was weg kann, was nicht ganz funktioniert.
Und wehe es beschwert sich dann einer, dass seid Jahren ein Bug drinne ist, von dem ich nicht in Kenntnis gesetzt wurde!
Download (Meiner. Immer up2date ^^)
index.php Sourcecode