WBC konektory (WBIK)

WBC konektory jsou bu∩ samostatnΘ databßzovΘ objekty (kategorie WWW objekt), nebo sekce v HTW Üablon∞ ohraniΦenß tagy <%WBC%> a <%/WBC%> s ·daji, jakΘ p°φkazy mß WBIK s databßzφ provΘst, p°φpadn∞ dßle jakou Üablonu pou₧φt pro vytvo°enφ v²stupnφho HTML dokumentu p°i ·sp∞ÜnΘm pr∙b∞hu vÜech operacφ a jakou Üablonu pou₧φt p°i v²skytu chyby atd.

Ka₧d² konektor musφ stanovit, jak bude sestaven v²sledn² dokument, kter² se odeÜle browseru. NejΦast∞jÜφ mo₧nostφ je urΦit HTW Üablonu, kterß se pou₧ije pro sestavenφ v²slednΘho dokumentu po vykonßnφ p°φkaz∙ obsa₧en²ch v konektoru. Je-li konektor samostatn² objekt, urΦφ se Üablona pomocφ bloku Template, je-li konektor jako WBC sekce Φßstφ Üablony, pou₧ije se tato Üablona. DalÜφ mo₧nostφ je pou₧φt p°φkaz Location. Tento p°φkaz zp∙sobφ p°esm∞rovßnφ browseru na jinou strßnku, p°iΦem₧ Internet klient odeÜle browseru pouze pokyn k p°esm∞rovßnφ a cφlovΘ URL. Poslednφ mo₧nostφ je pou₧φt p°φkaz SendFile. Do browseru se odeÜle zvolen² proud bajt∙ (hodnota typu BLOB) a zp∙sob zobrazenφ zßvisφ pouze na browseru (Internet Explorer m∙₧e spustit p°φsluÜn² ActiveX control apod.).

V textu WBC konektoru m∙₧e b²t na libovolnΘm mφst∞ citace vstupnφ prom∞nnΘ z formulß°e nebo prom∞nnΘ vytvo°enΘ pomocφ p°φkaz∙ GetVariable Φi DeclareVariable v konektoru p°ed tφmto mφstem. K tomuto staΦφ napsat na danΘ mφsto jmΘno prom∞nnΘ a bezprost°edn∞ p°ed a bezprost°edn∞ za toto jmΘno napsat znak procenta (%).P°i zpracovßnφ konektoru bude tato citace nahrazena aktußlnφ hodnotou prom∞nnΘ.

Vstupnφ prom∞nnΘ jsou v₧dy typu String, vytvo°enΘ prom∞nnΘ mohou b²t libovolnΘho typu.

Konektor lze v∞tvit pomocφ p°φkaz∙ preprocesoru, kterΘ zaΦφnajφ v prvnφm sloupci znakem #.

Do konektor∙ lze zapisovat komentß°e.

P°φkazy konektoru musφ zaΦφnat ji₧ od prvnφho sloupce, jinak bude p°i zpracovßnφ generovßna chyba Φ. 9.

P°φklad: U₧ivatel v browseru v HTML formulß°i zadß pomocφ editaΦnφch polφ hodnoty intervalu datum∙ a nap°. pomocφ comba k≤d zbo₧φ a provedl SUBMIT. Formulß° do konektoru p°edal t°i vstupnφ formulß°ovΘ prom∞nnΘ (a sadu systΘmov²ch prom∞nn²ch). Tyto prom∞nnΘ (a p°φpadnΘ dalÜφ prom∞nnΘ vytvo°enΘ za b∞hu konektoru) se pou₧ijφ k sestavenφ SQL p°φkaz∙, kterΘ mß konektor vykonat.

Blok SQLStatement (p°φkaz SELECT) v konektoru vybere zßznamy vyhovujφcφ zadan²m hodnotßm (dosadφ za jmΘno formulß°ovΘ prom∞nnΘ v procentech jejφ hodnotu - pozor na uvozovky pro °et∞zcov² sloupec kod_zbozi). V Üablon∞ je pak mo₧nΘ zobrazit odpov∞∩ na tento SELECT.

<%WBC%>
RequiredValues: datod datdo kod

SQLStatement: polobjC
+ SELECT B2.nazev_zbozi,B2.datum, B2Count, COALESCE(B3Count,0) AS B3Count
+ FROM (SELECT Obj_header.datum,COUNT(Obj_header.id_dobj) AS B2COUNT, Cenik.nazev_zbozi
+    FROM Obj_header, Obj_polozky, Cenik
+    WHERE Obj_polozky.id_cnk=Cenik.id_cenik AND Obj_polozky.id_dobj=Obj_header.id_dobj
+    AND datum>=%datod% AND datum<=%datdo% AND Cenik.kod_zbozi="%kod%"
+    GROUP BY Obj_header.datum) AS B2 
+ LEFT OUTER JOIN 
+    (SELECT Obj_header.datum,COUNT(Obj_header.id_dobj) AS B3COUNT, Cenik.nazev_zbozi
+    FROM Obj_header, Obj_polozky, Cenik
+    WHERE Obj_polozky.id_cnk=Cenik.id_cenik AND Obj_polozky.id_dobj=Obj_header.id_dobj
+    AND datum>=%datod% AND datum<=%datdo% AND Cenik.kod_zbozi="%kod%"
+    AND Obj_header.potvrzena
+    GROUP BY Obj_header.datum) AS B3 
+ ON (B2.datum=B3.datum)
+ ORDER BY B2.datum
<%/WBC%>

V Üablon∞, kterß mß konektor jako zdroj dat, pak lze pracovat

Bezchybovß citace prom∞nnΘ

Pokud nenφ jistΘ, zda bude Φi nebude urΦitß vstupnφ prom∞nnß p°eΦtena z formulß°e, pou₧ijte tzv. bezchybovou citaci danΘ prom∞nnΘ. Tato bezchybovß citace vstupnφ prom∞nnΘ se od normßlnφ citace liÜφ tφm, ₧e mezi prvnφmi procenty a nßzvem prom∞nnΘ je znak otaznφk (?). Mezi procenty a otaznφkem, resp. otaznφkem a nßzvem prom∞nnΘ m∙₧e b²t libovoln² poΦet mezer a tabulßtor∙. P°i vyhodnocenφ citace se postupuje takto: pokud je danß prom∞nnß p°eΦtena z formulß°e, bude citace nahrazena jejφ hodnotou, pokud prom∞nnß nenφ p°eΦtena z formulß°e, bude citace nahrazena prßzdn²m °et∞zcem a nebude generovßna chyba. BezchybovΘ prom∞nnΘ lze s v²hodou pou₧φt u INPUT typu CHECKBOX (pokud toti₧ u₧ivatel ve formulß°i checkbox nezatrhne, CGI skriptu by nebyla p°edßna odpovφdajφcφ prom∞nnß - pokud se ovÜem pou₧ije bezchybovß citace, p°edß se bu∩ hodnota nebo prßzdn² string a podle dΘlky je mo₧nΘ rozliÜit dva stavy - TRUE a FALSE).

HlßÜenφ u₧ivatelsk²ch chyb

Cφlem je umo₧nit v²vojß°i dynamick²ch HTML strßnek reagovat na neΦekan² stav, kter² nastal

a ukonΦit provßd∞nφ WBC konektoru (neprovßd∞t nßsledujφcφ bloky) a nastavit po₧adovanΘ chybov² stav, na n∞j₧ zareaguje WBIK chybovou Üablonou. Toho v²vojß° dosßhne

Tato akce nastavφ chybu Φ. 90 (chyba vyvolanß z programu) a jako chybovΘ hlßÜenφ nastavφ obsah p°edanΘho °et∞zce. Bezprost°edn∞ po bloku Error nebo po ukonΦenφ bloku Program (nebo RunProgram), ve kterΘm byla tato funkce zavolßna, Internet klient ukonΦφ provßd∞nφ WBC konektoru a vygeneruje chybovou HTML strßnku dle nastavenΘ chybovΘ Üablony.

Nßsledujφcφ tabulka ukazuje abecednφ seznam blok∙, kterΘ m∙₧e WBC konektor obsahovat: