WikiUtopie/Sections

From Travelling School of Life

Jump to: navigation, search

Category:WikiUtopie



sektionen bilden die grundelemente einer seite. sie können beliebig in einander verschachtelt werden. geladen bind eine seite immer mit der sektion mit dem namen 'root'. diese sektion kann verweise auf andere sektionen, layoutvormatierungen oder wiki-skript enthalten.

[edit] die datenstrucktur 'sektion':

  • char sec_name gibt den namen der sektion an. zb 'root'
  • char sec_language gibt die sprache der sektion an. kann auch leer sein und wird verwendet, wenn keine sprache zutrifft.
  • char sec_content enthält den inhalt/text der sektion
  • int sec_timestamp enthält den timestamp der erstellung
  • int sec_entity ist ein zeiger auf das zugehörige entity


[edit] erstellung einer seite:

get_section( int entity, char language, char name ): (wählt die passende sektion)

beim aufruf der seite wird nach der sektion mit dem namen 'root' und der entsprechenden entity kennung gesucht. exestirt mehr als ein eintrag, so wird der eintrag mit der angegebenen sprachpriorität (siehe user) aufgerufen. exitstiert dieser nicht, wird nach den anderen sprachen der prioritätenliste gesucht. gibt es keine übereinstimmungen wird die default-sektion (ohne expliziet angegebene sprache / sec_lan = NULL) aufgerufen. exitstiert mehr als eine version wird die aktuellste aufgerufen.

ist eine der abfragen negativ wird die entsprechende fehler-sektion ausgegeben.

parse_section( section section ): (interpretiert die sektion)

der text der sektion wird nach kommandos und sektions-definitionen durchsucht.

werden kommandos gefunden werden diese ausgeführt.

werden sektionen gefunden werden diese per get_sektion() geladen und mit parse_sektion() interpretiert.

alles andere, wie text und layoutformatierungen, werden in einen buffer geladen und dieser zurückgegeben.

ist auf diese weise der komplette baum durchlaufen kann mit

built_page( char buffer, char format )

die seite erzeugt werden. mit format kann dabei einfluss auf die formatierung genommen werden. zb reintext, html, ...


[edit] zugriff auf sektionen anderer entitys:

auf sektionen anderer entitys kann über entity::sektion zugegriffen werden. entity kann dabei entweder der pfad oder die nummer der entity sein.

bsp: <main_page::intro></>

das laden von sektionen aus fremden entitys kann sinnvoll sein, wenn ein entity zum beispiel als container für sektionen funktioniert. selber aber keine eigenständige seite ist. so könnt zum beispiel ein entity 'templeats' existieren, in dem vorlagen für seiten gespeichert werden.

beim laden einer sektion eines fremden entitys kann dieses nicht beschrieben werden.

Personal tools