mschnell hat geschrieben:Wie wird denn das Debuggen bewerkstelligt ?
Kann das Lazarus-Programm mit der Apache- bzw. ISAPI-Anbindung eine "normale" Laraurs-gestaltete Oberfläche haben, auf der man Status- und Test-Ausgaben sieht und auf der man Parameter verändern kann ?
Multithreading und Debuggen, das ist so eine Sache für sich, ich habe mir da einen kleinen Webserver geschrieben natürlich in Free Pascal, als Grundlage habe ich mir den Webserver von
http://www.overbyte.be genommen (single threaded) ein paar Units für Free Pascal umgeschrieben, also meistens waren es nur Probleme mit den Pointern, dann habe ich mir das ISAPI (Interface) eingebaut also nur für Extensions, und lasse mir in diesem Webserver etliche Logzeilen ausgeben, ich nutze da TEventType = (etCustom,etInfo,etWarning,etError,etDebug); aus fpc/rtl/objpas/sysutils/osutilsh.inc , die etDebug sind dann der Final natürlich nicht enthalten!
mschnell hat geschrieben:Gibt es eine systematisch unterstützte Methodik, die für die anzuzeigenden Webseiten verwendeten html-Dateien mit einem beliebigen Standard html-Editor (wysiwig) zu gestalten und dann dynamisch mit Modifikationen versehen zur Anzeige zu bringen ? (So ähnlich wie Haserl das macht.)
In meinem CMS existiert am Ende kein HTML-Schnipsel, ich habe mir ein eigenes DOM-Objekt (Parser) gebaut, während der Laufzeit wird der ganze Code als Objekt-Struktur aufgebaut und am Ende durch einen Befehl ausgelesen, das ermöglicht mir auch während des Bearbeitens noch Attribute oder ähnliches zu ändern.
Mein Code sieht dann z.B. so aus:
Code: Alles auswählen
with FBody.AddElement('div', 'body-container') do
begin
with AddElement('div', 'page-container') do
begin
with AddElement('div', 'header') do
with AddElement('div', 'siteimage') do
begin
with AddElement('a', 'sitelogo') do
begin
Attribute['href'] := '/';
Attribute['title'] := 'Startseite';
// logo
if FileExists(Owner.DLLPath + 'images\' + Proj + '-logo.png') then
with AddElement('img') do
begin
Attribute['src'] := '/images/' + Proj + '-logo.png';
Attribute['alt'] := 'Logo';
end;
with AddElement('span') do
begin
Attribute['class'] := 'accessibility';
innerHTML := '[sitename]';
end;
end;
end;
Das ist am Anfang ein wenig gewöhnungsbedürftig, aber man ist enorm flexibel und am Ende ist es in meinem CMS so, das eine Routine Bilder je nach vorhandener Auflösung als Zoom-Version zur Verfügung stellt und noch Optimierungen vorgenommen werden, das geht natürlich im DOM-Objekt sehr komfortabel! (getElementsByTagName, getElementsByClassName etc.)
Als Editor für den Content der Seiten nutze ich Xinha
http://trac.xinha.org/, da habe ich halt auch bis vor einigen Jahren dran mit gewirkt, bis immer mehr wert auf Skin-Fähigkeit und anderen Schmu Wert gelegt wurde und nicht auf Funktionalität und Funktionsumfang! So hat sich meine Version vom Xinha sehr distanziert, meine Version ist kleiner schneller und hat einen wesentlich größeren Funktionsumfang!
mschnell hat geschrieben:Toll wäre natürlich auch, (optional) die anzuzeigenden Webseiten mit dem Lazarus-Form-Editor gestalten zu können. Aber da sehen ich ziemlich schwarz, obwohl der "custom drawn" Widget Type einen Ausgangspunkt dafür bietet.
Also von drag & drop HTML wie bei FrontPage halte ich gar nichts, ich habe für meine Websites
ein Template (Seitengerüst, siehe Beispiel-Code) welches über css konfigurierbar ist also ein-/zwei- oder dreispaltig die Navigationen können an unterschiedlicher Stelle eingebunden werden (es sind alles UL's (unorders lists) und die Auftritte werden ab IE5.5

und allen gängigen Browsern

korrekt angezeigt, das funzt über drag & drop schon mal gar nicht! Ich bin auch kein Mediengestalter der so ein bisschen an einer HTML-Seite herum schraubt, ich habe da andere Ansprüche z.B. wenn ich bei Google Page Speed meine Seite überprüfe möchte ich 100% haben!
Wenn ich meinen privaten Internet-Auftritt wieder ans Netz (nur DSL 3000) nehme soll die Seite sich in unter einer Sekunde aufbauen wie es bis jetzt auch immer war! Also mein Schwerpunkt in der Entwicklung lege ich darauf das, z.B. während der Laufzeit alle möglichen Optimierungsmöglichkeiten durchgeführt werden um den Traffic so gering wie möglich zu halten und die Qualität des Resultats einfach perfekt ist!