procedure TDataModule1.SpiderCGI1Request(Sender: TObject;
Request: TSpiderRequest; var Response: TSpiderResponse);
var
Template: THtmlTemplate;
begin
Template:= THtmlTemplate.Create('blackwhite/index.html');
// Assigning the tags to be replace
Template.Tags.Add('', ExePath + 'blackwhite/');
Template.Tags.Add('', 'Qui scrivo quello che voglio. Posso anche andare ad inserirci altri oggetti jquery, form, tabelle e quant''altro.');
Template.Tags.Add('', 'mio titolo');
Template.Load;
Response.Add(Template.Content);
Template.Free;
end;
unit main;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, FileUtil, SpiderCGI, SpiderUtils, htmltemplate;
type
{ TDataModule1 }
TDataModule1 = class(TDataModule)
SpiderCGI1: TSpiderCGI;
procedure DataModuleCreate(Sender: TObject);
procedure SpiderCGI1Request(Sender: TObject; Request: TSpiderRequest;
var Response: TSpiderResponse);
private
{ private declarations }
public
{ public declarations }
end;
const
ExePath='/bin-cgi/'; {il path di dove risiede la nostra cartella CGI per intenderci dove dobbiamo copiare il nostro eseguibile per farlo lavorare correttamente - sostituire bin-cgi con il nome della nostra cartella preposta all'esecuzione dei file cgi}
var
DataModule1: TDataModule1;
implementation
{$R *.lfm}
{ TDataModule1 }
procedure TDataModule1.DataModuleCreate(Sender: TObject);
begin
SpiderCGI1.Execute;
end;
procedure TDataModule1.SpiderCGI1Request(Sender: TObject;
Request: TSpiderRequest; var Response: TSpiderResponse);
var
Template: THtmlTemplate; {l'oggetto che ci permette di inglobare un template nel nostro progetto}
begin
Template:= THtmlTemplate.Create('blackwhite/index.html'); {creo l'oggetto in memoria e lo riempio del contenuto del file passato come parametro - ovvero il nostro template}
Template.Tags.Add('', ExePath + 'blackwhite/'); {all'interno del nostro template vado a sostituire le stringhe con il percorso della cartella dove si trova il nostro file style.css }
Template.Tags.Add('', 'Qui scrivo quello che voglio. Posso anche andare ad inserirci altri oggetti jquery, form, tabelle e quant''altro.'); {idem come la riga sopra solo che qui immetto del testo per far capire come rendere le pagine interattive mantenendo una sottostruttura stabile che adibiamo a template}
Template.Tags.Add('', 'mio titolo'); {idem come la riga sopra ma serve solo per rendere variabile il contenuto del titolo}
Template.Load; {carico in memoria i miei dati}
Response.Add(Template.Content); {stampo sul browser dell'utente il contenuto dell'oggetto template come lo abbiamo preparato}
Template.Free; {libero l'area di memoria adibita a contenere il template}
end;
end.