Hallo Rolf,
Ich persönlich würde ja versuchen, Daten und Darstellung zu trennen und die Darstellung nach Bedarf aus den Daten zu generieren - was natürlich eine ordentliche Abstraktion ist.
das versuche ich. Aber die Daten werden momentan einfach über PHP inkludiert bzw. sind die Strings in einer PHP-Datei als Variablen festgelegt.
Für die subpage Spiel bspw. habe ich folgendermaßen Darstellung und Daten getrennt:
<?php
include $_SERVER['DOCUMENT_ROOT'] . '/includes/subpages/game.inc.php';
beginSubpage();
beginTable();
rowHeader( $PLATFORM ); str( $PLAYSTATION3 ); endRow();
rowHeader( $DEVELOPER ); str( $FROMSOFTWARE ); endRow();
rowHeader( $RELEASEDATE ); str( $JAPAN . $D05 . $M01 . $Y2009 ); str( $NORTHAMERICA . $D06 . $M10 . $Y2009 ); str( $EUROPE . $D25 . $M06 . $Y2010 ); endRow();
rowHeader( $PUBLISHER ); str( $JAPAN . $SONYCOMPUTERENTERTAINMENT ); str( $NORTHAMERICA . $ATLUSUSA ); str( $EUROPE . $BANDAINAMCOGAMES ); endRow();
rowHeader( $GENRE ); str( $ACTIONROLEPLAYINGGAME ); endRow();
rowHeader( $THEME ); str( $FANTASY ); endRow();
rowHeader( $MODE ); str( $SINGLEPLAYER . $separator . $ONLINEMULTIPLAYER ); endRow();
rowHeader( $CONTROLS ); str( $SIXAXIS . $separator . $DUALSHOCK3 ); endRow();
rowHeader( $MEDIUM ); str( $BLURAYDISC ); endRow();
rowHeader( $DISTRIBUTION ); str( $RETAIL ); endRow();
rowHeader( $AGERATING ); str( $ESRBM . $separator . $PEGI16 . $separator . $USK16 ); endRow();
rowHeader( $AUDIOLANGUAGE ); str( $ENGLISH ); endRow();
rowHeader( $SCREENLANGUAGE ); str( $GERMAN . $separator . $ENGLISH . $separator . $FRENCH . $separator . $ITALIAN . $separator . $SPANISH ); endRow();
endTable();
container( 'demons-souls', 'Demon’s Souls', $SOULS );
beginTags();
tag( $THIRDPERSON );
tag( $CHARACTERCREATION );
tag( $DARKFANTASY );
tag( $REPLAYABILITY );
tag( $SOULSLIKE );
endTags();
endSubpage();
?>
Eine bessere Möglichkeit kenne ich momentan nicht.