Hallo,
man kann ja bekanntlich immer dazulernen indem man ein eigenes Script schreibt. Ich denke das ich relativ viel kann auch wenn ich natürlich immernoch gewillt bin mehr zu lernen. Darum würd ich gerne mal eine eigene Forensoftware schreiben. Ich habe auch einpaar Gedanken dazu und hätte gern vielleicht hier und da einpaar tipps.
Struktur
Die indexdatei includiert die wichtigsten Dateien wie z.b. die Datei mit den MySQL daten, php endung für Leute die auf ihrem Server php4 oder dergleich schreiben müssen, die Sessions und vielleicht noch eine Sprachdatei. Im Bodytag werden die Tabellen includiert die man im AdminPanel auch erweitern kann also neue hinzufügen (wie das genau gehen soll weiß ich auch noch nicht...). Auch die Links zu den Verschiedenen Foren müssen in dieser Datei gegeben sein, per Get sodass diese auch verlinkt werden können:
http://myforum.de/index.php?boardid=1
In den boards ist es dasselbe der Link zu den Threads heisst dann natürlich dann anders:
http://myforum.de/board.php?threadid=1
Die verschiedenen Profile sind ebenfalls über get zu erreichen:
http://myforum.de/profil.php?id=1
Für die verschiedenen Boards und Threads sollte ein Template reichen damit es auch später mit wenigen HTML kenntnissen oder WYSIWYG editoren nachbearbeitet werden kann. Selbiges gilt für die Profile.
Die MySQL struktur könnte folgendermaßen aussehen:
user - beinhaltet die Nutzer mit deren Angaben, Einstellungen und Nutzergruppen
posts - beinhaltet den Post, den Autor, die BoardID und das Datum
threads - beinhaltet Threadtitel, Nachricht, Autor, Datum und die Boardid
Boards - beinhaltet BoardID, Name des Boards und ggf. beschreibung
Admintables - beinhalten verschiedene Konfigurationen die der Admin vorgenommen hat in seinem CP und natürlich auch die des ModCPs welche die Moderatoren vorgenommen haben...
Anhangtables sollten vielleicht gesondert sein um die Anhänge zu verwalten die dann dementsprechend im ACP abgerufen werden können
Ansonsten unter Umständen noch Tables für BBCodes, Avatare, Smilies, events, Kalendar, Aktionlogs der Admins und Mods, für PNs, Umfragen, Ranks und Styles.
AdminCP
Das AdminCP soll nur verfügar sein wenn der User auch wirklich admin ist also circa:
Im AdminCP könnte man die SessionID dann noch prüfen denn es könnte ja auch jemand kommen und einfach admincp.php im Browser eingeben.
Nun nehmen wir an der User ist eingeloggt und Admin und alles hat geklappt.
Dann wäre er im admincp und würde ein kleines Overview sehen. Z.B. wann das Board erstellt wurde, wieviele Member es hat, wieviele Posts, Threads und wer alles Online ist.
Links dann die Navigationsleiste. Es wird bei jeder Seite überprüft ob der Administrator auch die Rechte dazu hat denn es soll ja vielleicht auch Admins mit beschränkten rechten geben. Also:
Die einstellungen werden wie schon gesagt in der DB gespeichert. Nehmen wir an der Admin will eine Signaturlänge festlegen. Also wird ein Formular mit einer Zahl abgeschickt, diese Zahl wird in der DB gespeichert und später im Profil wird das alles überprüft anhand der Daten in der DB. Kein Problem, denke ich.
Wenn der Admin einen User Sperren will wird die Nutzergruppe geändert, auch kein Problem.
Thread.php
Sobald ein Thread abgeschickt wird, also sobald das Formular gesendet wurde wird der Nutzer weitergeleitet:
Nach erfolgreichem Eintrag in die DB wird der nutzer auf seinen Post weitergeleitet. Dort werden die Informationen angegeben wie beitragersteller etc. in der Post.php passiert dasselbe allerdings wird das ganze gespeichert in der post table und die ThreadID wird mit übergeben. Die ThreadID ist Unique, genau wie die BoardID.
index
In der Indexdatei und das wäre ein Problem für mich werden die verschiedenen Foren und die Kategorien gelistet.
<!-- Kategorie -->
<!-- BoardID1 -->
Aber wie kann der Admin über ACP Board hinzufügen...?
Beispiel: ich wähle alle BoardIDs aus der SQL und dann:
Das wäre meine lösung und wenn die ID nicht gefunden wird, wird nichts angezeigt. Problem: wenn ich 4 IDs vordefiniere kann der Admin nicht mehr als 4 Board und Kategorien haben. Das würde ich lösen indem ich die Datei überschreibe sobald der Admin ein neues Board hinzufügt. Das heisst allerdings auch das die Datei immer größer wird. Also muss es auch eine andere Möglichkeit geben, die ich noch suche.
Im Grunde war es das schon alles andere ist Schnick Schnack und kann auch später hinzugefügt werden.
Rechtschreib- und Grammatikfehler sind gewollt und Copyrighted :P
man kann ja bekanntlich immer dazulernen indem man ein eigenes Script schreibt. Ich denke das ich relativ viel kann auch wenn ich natürlich immernoch gewillt bin mehr zu lernen. Darum würd ich gerne mal eine eigene Forensoftware schreiben. Ich habe auch einpaar Gedanken dazu und hätte gern vielleicht hier und da einpaar tipps.
Struktur
Die indexdatei includiert die wichtigsten Dateien wie z.b. die Datei mit den MySQL daten, php endung für Leute die auf ihrem Server php4 oder dergleich schreiben müssen, die Sessions und vielleicht noch eine Sprachdatei. Im Bodytag werden die Tabellen includiert die man im AdminPanel auch erweitern kann also neue hinzufügen (wie das genau gehen soll weiß ich auch noch nicht...). Auch die Links zu den Verschiedenen Foren müssen in dieser Datei gegeben sein, per Get sodass diese auch verlinkt werden können:
http://myforum.de/index.php?boardid=1
In den boards ist es dasselbe der Link zu den Threads heisst dann natürlich dann anders:
http://myforum.de/board.php?threadid=1
Die verschiedenen Profile sind ebenfalls über get zu erreichen:
http://myforum.de/profil.php?id=1
Für die verschiedenen Boards und Threads sollte ein Template reichen damit es auch später mit wenigen HTML kenntnissen oder WYSIWYG editoren nachbearbeitet werden kann. Selbiges gilt für die Profile.
Die MySQL struktur könnte folgendermaßen aussehen:
user - beinhaltet die Nutzer mit deren Angaben, Einstellungen und Nutzergruppen
posts - beinhaltet den Post, den Autor, die BoardID und das Datum
threads - beinhaltet Threadtitel, Nachricht, Autor, Datum und die Boardid
Boards - beinhaltet BoardID, Name des Boards und ggf. beschreibung
Admintables - beinhalten verschiedene Konfigurationen die der Admin vorgenommen hat in seinem CP und natürlich auch die des ModCPs welche die Moderatoren vorgenommen haben...
Anhangtables sollten vielleicht gesondert sein um die Anhänge zu verwalten die dann dementsprechend im ACP abgerufen werden können
Ansonsten unter Umständen noch Tables für BBCodes, Avatare, Smilies, events, Kalendar, Aktionlogs der Admins und Mods, für PNs, Umfragen, Ranks und Styles.
AdminCP
Das AdminCP soll nur verfügar sein wenn der User auch wirklich admin ist also circa:
PHP-Code:
if(logged_in AND $usergroup == "Admin"){
echo '<a href=admincp.php?session='. $PHPSESSID .'>AdminCP</a>';
}
Nun nehmen wir an der User ist eingeloggt und Admin und alles hat geklappt.
Dann wäre er im admincp und würde ein kleines Overview sehen. Z.B. wann das Board erstellt wurde, wieviele Member es hat, wieviele Posts, Threads und wer alles Online ist.
Links dann die Navigationsleiste. Es wird bei jeder Seite überprüft ob der Administrator auch die Rechte dazu hat denn es soll ja vielleicht auch Admins mit beschränkten rechten geben. Also:
PHP-Code:
if($usergroup == "Admin" && $adminrechte == $full){
tuwas
}elseif($usergroup == "Admin" && $adminrechte == $half){
tuwas anderes
}
...
Wenn der Admin einen User Sperren will wird die Nutzergruppe geändert, auch kein Problem.
Thread.php
Sobald ein Thread abgeschickt wird, also sobald das Formular gesendet wurde wird der Nutzer weitergeleitet:
PHP-Code:
if(!empty($beitrag) && !empty($threadtitel)){
echo "Dein Beitrag wurde erfolgreich eingetragen, du wirst nun weitergeleitet.";
}
elseif(!empty($beitrag) && empty($threadtitel)){
echo "Bitte geben einen Threadtitel an.";
}
elseif(empty($beitrag) && !empty($threadtitel)){
echo "Du hast keinen Beitrag eingegeben.";
}
index
In der Indexdatei und das wäre ein Problem für mich werden die verschiedenen Foren und die Kategorien gelistet.
<!-- Kategorie -->
<!-- BoardID1 -->
Aber wie kann der Admin über ACP Board hinzufügen...?
Beispiel: ich wähle alle BoardIDs aus der SQL und dann:
PHP-Code:
<?
//Kategorie
echo $row->Kategorie; //where BoardID == 1
echo $row->Boards; //where ID == 1
?>
Im Grunde war es das schon alles andere ist Schnick Schnack und kann auch später hinzugefügt werden.
Rechtschreib- und Grammatikfehler sind gewollt und Copyrighted :P
Kommentar