Die tag Klasse erzeugt HTML-Tags.
<html> <!-- alles in einer Datei und abstrakt gehalten, nur zur Info also.--> <body> <!-- Top und Menu und kram--> <div id="content"> <? // Das Modul holen, also nen Objekt Mudule_Aktuelles $module = getModuleFromURL(); // von mir aus kann das Modul auch selber schreiben, // aber so kann man das rechte Menu vorher ausgeben und rechts floaten echo $module->getRightMenu(); echo $module->getHTML(); ?> <!-- Ein Beispiel was dabei rauskommt--> <div> <span class="artikeldatum">23.05.2007</span> <h3>Tadabuftata</h3> <div>Heute hauen wir auf die Pauke tralala.<a id="eineID" href="/artikel/tadabuftata">mehr</a></div> <a href="#oben">oben</a> </div> <div> <span class="artikeldatum">..... <!-- usw. --> <!-- Footer und kram--> </body> <? class Module_Aktuelles{ // Ein Array mit Artikel Klassen protected $aktuelle_artikel = array(); function __construct($parameter){ // Fuer die Startseite bsp. // Hole z.B. alle Artikelanrisse und Ueberschriften usw. aus der Datenbank, // die nicht aelter als ein Jahr sind und pack die in $aktuelle_artikel // Der komplette Artikeltext oder BBCode usw. wird nicht benoetigt } // Alle Ueberschriften als Liste rechts fuer den schnellen Zugriff function getRightMenu(){ $liste = new tag('ul'); foreach($aktuelle_artikel as $curArtikel){ $punkt = new tag('li',null,$curArtikel->getUeberschrift()); $liste->add($punkt); } return $liste->toHTML(); } // Die DIVs mit den Anrissen // Ist ist im Ernstfall sinnvoller, den Teil in der foreach // Schleife in der Artikel Klasse zusammenzubauen. Somit kann // das in mehreren Modulen benutzt werden. // und $artTag->add(new tag('h3',null,$curArtikel->getUeberschrift()); // Ist auch kuerzer, aber hier nur mal zur veranschaulichung ausfuerhlich // fuer die class und id muss ich mir nochmal was ausdenken, damit // das einfach zu setzen ist function getHTML(){ $content = new tag(); // Leeres Tag, ist nur ein Container $nachOben = new tag('a',array('href'=>'#oben'),'oben'); // brauchen wir oefter... foreach( $aktuelle_artikel as $curArtikel){ $artTag = new tag('div'); $artUeberschrift = new tag('h3',null,$curArtikel->getUeberschrift()); $artDate = new tag('span',array('class'=>'artikeldatum'),$curArtikel->getArtikelDatum()); $artAnriss = new tag('div'); $artAnrissText = new tag(null,null,$curArtikel->getAnriss());// Ein Textnode // Ich 'missbrauche' jetzt mal Link aus form.inc.php :) // Das ist ein Link am Ende des Anrisses zum eigentlichen Artikel // Fehlt natürlich der Test und die URl ist auch nur ausgedacht // getName liefert einen eindeutigen String, das ist schoener als nur ne ID $artAnrissLink = new Link(0,'eineID','/artikel/'.$actArtikel->getName(),null,'mehr'); $artAnrissLink = $artAnrissLink->tag(); // Wir brauchen nur das tag Objekt // Zusammenbauen $artTag->add($artDate); // Wird vieleicht nach rechts gefloated... $artTag->add($artUeberschrift); $artAnriss->add($artAnrissText); $artAnriss->add($artAnrissLink); $artTag->add($artAnriss); $artTag->add($nachOben); // Wieder nach oben $content->add($artTag); } return $content->toHTML(); } } ?> </html>