Hallo,
ich habe ein kleines Forum gebastelt, das in einem Mitgliederbereich läuft - der Mitgliederbereich besteht aus den 20 Mitgliedern unseres Clubs, also nichts großes.
Nun will ich den Mitgliederbereich neu programmieren - bin Informatikstudent und habe ein paar neue Programmiertechniken gelernt während des Studiums, die ich jetzt gerne praktisch anwenden möchte.
Das Forum ist so aufgebaut:
-> Kategorie 1 (fest, kann nur von Admin hinzugefügt werden)
-> Forum 1 (fest, kann nur von Admin hinzugefügt werden)
-> Thema 1 (kann von jdm. Mitglied erstellt werden)
-> Beitrag 1 (kann von jdm. Mitglied erstellt werden)
-> ...
-> Thema 2
-> ...
-> Forum 2 (...)
-> ...
-> Forum 3 (...)
-> ...
-> Kategorie 2 (...)
-> Forum 1 (...)
-> ...
-> ...
-> Forum 2 (...)
-> ...
-> Kategorie 3 (...)
-> Forum 1 (...)
-> ...
Nur mal so zum Überblick. Nun würde ich gerne mit einer Containerklasse arbeiten, die dann die einzelnen Kategorien, etc. enthält. Nun aber schon das 1.Problem: Zum Zeitpunkt, an dem ich die Kategorien aus der DB abrufe muß ich ja auch die Foren abrufen. Diese will ich dann zu den Kategorien packen (also daß jede Kategorie in ihrem Objekt die Unterforen enthält).
Ist es nun sinnvoll, das ganze so zu lösen (mit einem Conteiner - denke, wenn ich es auf die 2.Art löse brauche ich da auch nicht mehr - und einer Klasse, wo ich dann alle Kategorien, Foren, Themen, etc. reinpacken kann? Oder soll ich für jeden Bereich Kategorien, Themen, Beiträge,... eine eigene Klasse basteln, die speziell darauf zugeschnitten ist?
Hier mal das Codebeispiel von mir:
Ich hoffe, ihr wisst, was ich meine... Vielleicht könnt ihr mir auch einfach nur einen Tipp geben, wie man sowas einigermaßen professionell löst. Man will sich ja immer verbessern und dazu lernen
Danke und Grüße,
Marc
ich habe ein kleines Forum gebastelt, das in einem Mitgliederbereich läuft - der Mitgliederbereich besteht aus den 20 Mitgliedern unseres Clubs, also nichts großes.
Nun will ich den Mitgliederbereich neu programmieren - bin Informatikstudent und habe ein paar neue Programmiertechniken gelernt während des Studiums, die ich jetzt gerne praktisch anwenden möchte.
Das Forum ist so aufgebaut:
-> Kategorie 1 (fest, kann nur von Admin hinzugefügt werden)
-> Forum 1 (fest, kann nur von Admin hinzugefügt werden)
-> Thema 1 (kann von jdm. Mitglied erstellt werden)
-> Beitrag 1 (kann von jdm. Mitglied erstellt werden)
-> ...
-> Thema 2
-> ...
-> Forum 2 (...)
-> ...
-> Forum 3 (...)
-> ...
-> Kategorie 2 (...)
-> Forum 1 (...)
-> ...
-> ...
-> Forum 2 (...)
-> ...
-> Kategorie 3 (...)
-> Forum 1 (...)
-> ...
Nur mal so zum Überblick. Nun würde ich gerne mit einer Containerklasse arbeiten, die dann die einzelnen Kategorien, etc. enthält. Nun aber schon das 1.Problem: Zum Zeitpunkt, an dem ich die Kategorien aus der DB abrufe muß ich ja auch die Foren abrufen. Diese will ich dann zu den Kategorien packen (also daß jede Kategorie in ihrem Objekt die Unterforen enthält).
Ist es nun sinnvoll, das ganze so zu lösen (mit einem Conteiner - denke, wenn ich es auf die 2.Art löse brauche ich da auch nicht mehr - und einer Klasse, wo ich dann alle Kategorien, Foren, Themen, etc. reinpacken kann? Oder soll ich für jeden Bereich Kategorien, Themen, Beiträge,... eine eigene Klasse basteln, die speziell darauf zugeschnitten ist?
Hier mal das Codebeispiel von mir:
Code:
<?php class ForumContainer { public $cont = array(); public function __construct($obj = '') { if(!empty($obj)) $this->Add($obj); } public function Add($obj) { $a = count($this->cont); $this->cont[$a] = $obj; return; } public function getCont() { return $this->cont; } public function Count() { return count($this->cont); } public function __destruct() { unset($this->cont); } } class ForumParts extends ForumContainer{ private $title; // Titel private $text; // Text oder Beschreibung private $time; // Erstellungszeitpunkt private $author; // Autor private $nrChildren; // Anzahl an Kindelementen private $parent; // Was ist das Elternelement public function __construct($aID,$aTitle, $aText, $aTime, $aAuthor, $aNrChildren, $aParent = '') { $this->id = $aID; $this->title = $aTitle; $this->text = $aText; $this->time = $aTime; $this->author = $aAuthor; $this->nrChildren = $aNrChildren; $this->Parents = $aParent; } public function getID() { return $this->id; } public function getTitle() { // Umwandlung der Umlaute und ß return $this->title; } public function getText() { // Umwandlung der Umlaute und ß // Umwandlung der Links, Bilder,.. return $this->text; } public function getTime() { // Umwandlung in lesbares Datum return $this->time; } public function getAuthor() { return $this->author; } public function getNrChildren() { return $this->nrChildren; } public function getParent() { return $this->parent; } public function __destruct() { } } $kategorien = new ForumContainer(); $kategorien->Add(new ForumParts('1','Kat1','','10000000000', '1','5')); $kategorien->Add(new ForumParts('2','Kat2','','10000000000', '1','3')); $arr = $kategorien->getCont(); $arr[0]->Add(new ForumParts('1','Forum1','Desc1 (in Kategorie 1)','10000000000', '1','5','1')); $arr[0]->Add(new ForumParts('2','Forum2','Desc2 (in Kategorie 1)','10000000000', '1','3','1')); $arr[0]->Add(new ForumParts('3','Forum1','Desc1 (in Kategorie 2','10000000000', '1','5','1')); for($i = 0; $i < count($arr); $i++) { echo $arr[$i]->getTitle(); $test = $arr[$i]->getCont(); echo '<ul>'; foreach($test as $value) { echo '<li>'; echo $value->getTitle(); echo '</li>'; } echo '</ul>'; } ?>
Danke und Grüße,
Marc
Kommentar