Die richtige Website habe ich ja letztens erst online gestellt.
Der Service funktioniert mit sogetauften "Renderern". Der HTML-Renderer überträgt die Website 1:1, Grafiken werden über einen FileTransmitter binär übertragen, was quasi ein BinärRenderer ist.
Die Endung .page wird derzeit an einen "Superrenderer" übergeben, dem ich jetzt Layout-Elemente beibringe. So sieht der Spaß dann aus:
Code: Alles auswählen
void SuperRenderer::Render( XSD::Net::HttpResult & result )
{
Layout layout( "bla" );
layout.Include( "header1.inc" );
layout.Title( "Genesys Compiler Project" );
layout.AllCSS( "/css/design.css" );
layout.Include( "header2.inc" );
layout.Include( "imageheader.inc" );
layout.Include( "page_pre.inc" );
layout.Spacer();
layout.TitleGraphic( "img/desert.jpg" );
layout.Spacer();
layout.Headline( 1, "Superrenderer" );
layout.Spacer();
layout.Node( "Dies ist eine Notiz." );
XSD::Type::Parameter * par = result.Url.Parameters.Find( "bla" );
if( par )
layout.String( par->getValue().Embrace( "Dies ist der Inhalt der Variablen bla: \"", "\"" ));
layout.Spacer();
layout.Include( "page_post.inc" );
layout.Include( "footer.inc" );
if( layout.Render( result ) )
result.SetCode( XSD::Net::HttpStatusCode::OK );
else
result.SetCode( XSD::Net::HttpStatusCode::InternalServerError );
result.SetMimeType( XSD::Net::MimeType::TextHtml );
}
Nun gilt es für alle benötigten Elemente entsprechende Layout-Elemente zu schreiben. Anschließend wird vom Superrenderer abgeleitet, um spezialisierte Renderer für komplette Wiki-Seiten, Foren oder Besonderheiten wie Buchrezensionen oder User-Seiten. Und natürlich sämtliche Besonderheiten, wie Anmeldung, private Nachrichten usw.
Jetzt geht der Spaß mit dem CMS los - freie Auswahl, wie das CMS aussehen soll.
Es liegt natürlich nah, dass der Webservice auf kurz oder lang auch programmierbar sein wird.
Ein CMS zu schreiben, machen ja genug Leute hier... da wird das ja wohl nicht so lange dauern.

Falls jemand helfen will, dann kann man sich langsam Gedanken darüber machen, wie wir das Wiki und die Forumsdatenbank übertragen bekommen. Jemand Lust Konverter zu schreiben? ^^
Ansonsten kann man sich Gedanken machen, wie wir neue Elemente erstellen. Info-Boxen; Bereiche, die man einklappen kann, usw.