P R O G R A M U J E M EOkrem spomenutých hodnôt môže atribút type ešte obsahova hodnoty: prev, reset,unknown, vnd.*, X-*, x-*, ktoré teraz nie sú podstatné. Priradenie jednotlivých klávesovudalostiam je ve¾mi ažké, pretože každé mobilné zariadenie má iný výz<strong>na</strong>m klávesov.Pomocou atribútu label môžeme urèi text popisu, ktorý sa zobrazí pri danom klávese.Mnoho mobilných zariadení tento popis nezobrazuje a zobrazí ho až po stlaèení príslušnéhoklávesu (zobrazí sa menu so všetkými možnými prepojeniami).Atribút <strong>na</strong>me definuje meno udalosti. Toto meno môžeme použi pri predefinovaníudalosti definovanej <strong>na</strong> vyššej úrovni (opíšeme si to ïalej).Posledný atribút optio<strong>na</strong>l urèuje, èi mobilné zariadenie môže udalos ignorova . Tentoatribút sa èasto nepoužíva.Ako ste si urèite všimli, telo objektu musí obsahova definíciu akcie. Akcia urèuje, èosa má urobi , ak <strong>na</strong>stane daná udalos . Akcia je vo WML stránke urèená jedným z viacerýchobjektov (ich zoz<strong>na</strong>m je uvedený v tabu¾ke 1). My si spomenieme iba objekt go,pretože pomocou tohto objektu definujeme kartu, ktorú chceme zobrazi . Objekt godefinujeme takto:objekty objekty Ve¾a atribútov je z definície syntaxe hneï jasných. Atribút href je URL adresa karty,ktorá sa má zobrazi . Sendreferer spôsobí, že v hlavièke žiadosti o stránku sa v premennejHTTP_REQUEST bude <strong>na</strong>chádza URL adresa karty, v ktorej sa <strong>na</strong>chádza objektgo. Týmto môžeme <strong>na</strong> serveri zisti , z ktorej karty bola požiadavka odoslaná. Acceptcharsetzasa urèuje možné jazyky, ktoré je mobilné zariadenie schopné zobrazi .Nakoniec sme si nechali atribút method. Objekt go pracuje ve¾mi podobne ako formulárv HTML. Teda atribútom method urèujeme, akou metódou sa majú informácie <strong>na</strong>server posla . Môžeme použi metódu get alebo post. Pri metóde get sa informácieposielajú v URL adrese. Informácie, ktoré sa majú posla , definujeme v objekte postfielda ich hodnotu môžeme zmeni pomocou objektu setvar. Takto môžeme odovzdávainformácie serveru, ktoré nie sú ve¾mi rozsiahle, <strong>na</strong>príklad meno a priezvi<strong>sk</strong>o používate¾a.Ak chceme <strong>na</strong> server posla väèšie množstvo dát, môžeme použi metódu post. Pri tejtometóde sa všetky informácie <strong>na</strong> server posielajú v hlavièke žiadosti. Metóda post nie jev simulátore M3GATE podporovaná, a preto budeme v príkladoch používa metódu get.Objekt go je možné použi ako prázdny objekt. Na ozrejmenie jeden príklad:Informacie o Vas.Meno: Priezvi<strong>sk</strong>o: Prekrývanie definícií udalostíUdalosti môžeme definova <strong>na</strong> dvoch úrovniach: <strong>na</strong> úrovni dokumentu a <strong>na</strong> úrovni karty.Definovanie udalosti <strong>na</strong> urèitej úrovni z<strong>na</strong>mená, že daná udalos bude plati len <strong>na</strong> danejúrovni a <strong>na</strong> úrovniach nižších. Ak definujeme udalos <strong>na</strong> úrovni dokumentu, definovanáudalos bude plati vo všetkých kartách v dokumente. Ale ak definujeme udalos <strong>na</strong>úrovni karty, v ostatných kartách v dokumente fungova nebude. Tieto úrovne môžemevyuži , ak chceme, aby v každej karte bola rov<strong>na</strong>ká reakcia <strong>na</strong> urèitý kláves, <strong>na</strong>príkladzrušenie transakcie pri fi<strong>na</strong>nèných transakciách, pri ktorých máme každý krok zadávaniainformácií o transakcii rozdelený do inej karty. V tomto prípade definujeme jednu udalos<strong>na</strong> úrovni dokumentu, pri ktorom sa zobrazí karta (alebo dokument) <strong>na</strong> zrušenietransakcie.Ak chceme definova udalos <strong>na</strong> úrovni dokumentu, objekt do umiestnime do objektutemplate, a ak chceme definova udalos <strong>na</strong> úrovni karty, uložíme ho do tej karty, vktorej chceme, aby daná udalos platila.Teraz si môžeme vysvetli výz<strong>na</strong>m atribútu <strong>na</strong>me v objekte do. Ak definujeme objektdo <strong>na</strong> úrovni karty, ktorý má to isté meno ako objekt do definovaný <strong>na</strong> úrovni dokumentu,udalos <strong>na</strong> úrovni dokumentu sa prekryje udalos ou <strong>na</strong> úrovni karty. Takto simôžeme jednoducho vytvori nejakú všeobecne platnú udalos (platnú v každej karte) av prípade, že ju potrebujeme použi <strong>na</strong> iný úèel, vytvoríme novú udalos s rov<strong>na</strong>kýmmenom. Napríklad v niektorých krokoch pri zadávaní transakcie nie je vhodné, aby jupoužívate¾ prerušil (aj keï transakcia musí poèíta s prerušením v hociktorom èase, ale toje už iný problém). Najèastejšie sa definujú udalosti <strong>na</strong> úrovni karty.Použitie odkazovNajjednoduchší prechod medzi kartami je použitím odkazov (link). Ich použitie je ve¾mipodobné ako v HTML. Tam, kde chceme umiestni odkaz <strong>na</strong> inú kartu (buï v tom, aleboinom dokumente), umiestnime objekt a alebo anchor. Syntax objektov je <strong>na</strong>sledujúca:text aakcia text Rozdiel oproti HTML je v použití atribútov title a v prípade objektu anchor aj v použitípovinného objektu akcia.Objekt a definuje odkaz <strong>na</strong> kartu urèenú URL adresou v atribúte href. Tak ako v HTML jetext, ktorý je použitý ako odkaz, uložený medzi zaèiatoènou a koncovou z<strong>na</strong>èkou. Vtomto texte sa môžu <strong>na</strong>chádza aj definície obrázkov. Teda tak ako v HTML je možnévytvori obrázok, ktorý, keï to používate¾ potvrdí, prejde <strong>na</strong> novú kartu. Objekt anchor saod objektu a líši tým, že <strong>na</strong> definíciu odkazu používa samostatný objekt akcia. Objektakcia nie je niè iné ako už spomenutý objekt go. Jeho syntax sme uz opísali.Z<strong>na</strong>kAaNXxMmjeden symbol alebo ve¾ké písmeno (ale nie èíslica)jeden symbol alebo malé písmeno (ale nie èíslica)jed<strong>na</strong> èíslicajeden symbol, èíslica alebo ve¾ké písmenojeden symbol, èíslica alebo malé písmenohocijaký z<strong>na</strong>k, ale slovo sa musí zaèí<strong>na</strong> ve¾kým písmenomhocijaký z<strong>na</strong>k, ale slovo sa musí zaèí<strong>na</strong> malým písmenomÈíslo pred z<strong>na</strong>kom udáva maximálny poèet z<strong>na</strong>kov, ktoré používate¾ môže zada (minimálny je 0)* pred z<strong>na</strong>kom urèuje neobmedzený poèet z<strong>na</strong>kov (používa sa pred posledným náhradným z<strong>na</strong>kom)Tab. 1ReprezentujeZ<strong>na</strong>ky použite¾né v atribúte format v objekte inputOba objekty – a a anchor – obsahujú nepovinný atribút title, ten zasa urèuje text, ktorýsa má zobrazi pri aktivaènom klávese. Aktivaèný kláves je softvérový kláves accept, a taksa <strong>na</strong> väèšine mobilných zariadení <strong>na</strong>chádza text urèený atribútom title v ¾avej dolnejèasti displeja. Keïže táto èas nie je ve¾mi ve¾ká, je dåžka popisu ohranièená <strong>na</strong> 5 z<strong>na</strong>kov.Oba objekty obsahujú ešte jeden nepovinný atribút acce<strong>sk</strong>ey. Z jeho názvu už môžetetuši , že ide o nieèo podobné, ako je hot-key. Hodnota atribútu je èíslo, ktoré sa zobrazípred textom odkazu, a ak používate¾ stlaèí urèený kláves, potvrdí sa daný odkaz. Týmtomôžeme používate¾om ve¾mi urýchli pohyb po WAP stránke. Tento atribút však neodporúèamepoužíva , pretože nie všetky mobilné zariadenia ho podporujú a môže sa sta ,že sa WAP stránka <strong>na</strong> mobilnom zariadení práve pre tento atribút nezobrazí.2. Zí<strong>sk</strong>anie informácií od používate¾aProtokol WAP bol <strong>na</strong>vrhnutý hlavne <strong>na</strong> vytváranie služieb pre používate¾ov mobilnýchsietí. Myslíme, že <strong>sk</strong>oro vždy treba zí<strong>sk</strong>a od používate¾a nejakú informáciu. Èi už ide ove¾mi osobné informácie (meno, èíslo platobnej karty, ...), alebo len o zdanlivo bezvýz<strong>na</strong>mnéinformácie, musí existova možnos ich vyžiadania od používate¾a.WML jazyk po<strong>sk</strong>ytuje nieko¾ko možností, ako zí<strong>sk</strong>a od používate¾a informácie. Môžemedefinova objekty input, select, fieldset.Poïme však po poriadku. Najprv si rozoberieme objekt input. Tento objekt umožòujepoužívate¾ovi zada pomocou klávesnice text. Text sa zadáva rov<strong>na</strong>kým spôsobom ako pripísaní SMS-ky a potvrdzuje sa klávesom accept. Oproti objektu v HTML jazyku má eštejednu vlastnos , a to tú, že je možné zadefinova akúsi ma<strong>sk</strong>u, do ktorej používate¾ musízada dáta. Presný formát objektu je <strong>na</strong>sledujúci:Tak teda atribút <strong>na</strong>me udáva meno premennej, do ktorej sa má uloži <strong>na</strong>èítaný re azec.Title udáva titulok, ktorý sa zobrazí pri zadávaní textu. V okienku <strong>na</strong> zadávanie textu samôže zobrazova celý text alebo iba hviezdièky, známe pri zadávaní hesla. Závisí to od<strong>na</strong>stavenia atribútu type. Ten môže ma hodnoty text pre klasický „vidite¾ný” text alebopassword pre „hviedièkový” text. Atribút emptyok udáva, èi používate¾ môže nechapolíèko prázdne. Ak je táto hodnota true, z<strong>na</strong>mená to, že používate¾ nemusí toto políèkovyplni . Ak ho však nevyplní, do premennej sa uloží hodnota atribútu value (ak je zadaná).Maxlength a size udávajú maximálnu uloženú a zobrazenú dåžku textového políèka.Zatia¾ je podporovaný iba atribút maxlength. Posledne uvedený atribútu tabindex urèuje1/2001 PC REVUE 93
P R O G R A M U J E M Eporadie zadávacieho políèka v množine viacerých políèok (nepoužíva sa <strong>sk</strong>oro vôbec).Najzaujímavejší atribút je atribút format. Pomocou neho môžeme používate¾ovi urèi presnýformát dát, ktoré od neho požadujeme. Formát dát urèujeme pod¾a re azca vo formepodobnej regulárnemu výrazu (ma<strong>sk</strong>a re azca). Napríklad ak chceme, aby používate¾ zadaldátum <strong>na</strong>rodenia v tvare 04-jan-2000, zadáme re azec NN\-aaa\-NNNN. Zoz<strong>na</strong>m všetkýchmožných náhradných z<strong>na</strong>kov použite¾ných v regulárnom výraze uvedieme v ïalšom pokraèovaní<strong>na</strong>šho seriálu. V prípade, že chceme použi iné ako preddefinované z<strong>na</strong>ky (chceme urèipresný formát zadaného textu), môžeme použi spätnú lomku, za ktorou do re azca formátuzadáme z<strong>na</strong>k, ktorý za zobrazí <strong>na</strong> mobilnom zariadení.Druhý možný spôsob, akým môžeme od používate¾a žiada informácie, je po<strong>sk</strong>ytnúmu možnos výberu zo zoz<strong>na</strong>mu. Zoz<strong>na</strong>m môže by dokonca aj štruktúrovaný. Na tentoúèel je urèený objekt select. Jeho formát je:objekty objekty Atribúty title, <strong>na</strong>me, value a tabindex majú ten istý výz<strong>na</strong>m ako pri objekte input. Pribudliatribúty i<strong>na</strong>me a ivalue. Tieto atribúty urèujú meno premennej a jej default hodnotu, doktorej sa má uloži zoz<strong>na</strong>m vybratých (alebo vybratej) položiek. Zoz<strong>na</strong>m vybratých položiekje vlastne re azec, v ktorom sú umiestnené mená alebo èísla poradia všetkých položiek, oddelenébodkoèiarkou, ktoré si používate¾ vybral. V premennej uvedenej v atribúte <strong>na</strong>me súuložené mená položiek a v premennej i<strong>na</strong>me sú indexy (poradové èísla) vybratých položiek.Ak v atribúte multiple uvedieme hodnotu true, bude si používate¾ môc vybra viaceropoložiek <strong>na</strong>raz. V opaènom prípade si používate¾ bude môc vybra iba jednu položku (vtomto prípade budú premenné obsahova takisto iba jednu položku).To, z ktorých položiek si má používate¾ vybera , zadáme v tele objektu, a to pomocouobjektu option:textAtribút title už poznáme, zobrazuje sa pri klávese accept, ale vo väèšine prípadov nieje podporovaný. Value je hodnota, ktorá sa dosadí do premennej v objekte select, ak sipoložku používate¾ vyberie. Onpick obsahuje adresu WML stránky, ktorá sa <strong>na</strong>tiahne, akpoložku používate¾ zaškrtne alebo odškrtne. Text je text, ktorý sa zobrazí <strong>na</strong> displejimobilného zaradenia ako meno položky. Môžeme vytvára dokonca aj štruktúrovaný zoz<strong>na</strong>m.Ak chceme vytvori štruktúrovaný zoz<strong>na</strong>m, použijeme objekt optgroup. Tento objektje ve¾mi jednoduchý a urèuje, ako majú by jednotlivé položky zoz<strong>na</strong>mu (objekty option)spolu zo<strong>sk</strong>upené. Jeho obsah urèuje objekty, ktoré nejako spolu súvisia. Jeho formát je:prvky pod<strong>sk</strong>upiny (objekty optgroup alebo option)Opä title urèuje popis, ktorý sa zobrazí <strong>na</strong> displeji, ak používate¾ aktivuje danú pod<strong>sk</strong>upinu.Posledná možnos , ako od používate¾a zí<strong>sk</strong>a informácie, je použitie objektu fieldset.Doslovný preklad tohto pojmu je množi<strong>na</strong>. A myslíme, že dos presne vystihuje výz<strong>na</strong>mjeho použitia. Jeho výz<strong>na</strong>m je ve¾mi podobný výz<strong>na</strong>mu objektu optgroup. Rozdiel je vtom, že tento objekt môže obsahova položky rôzneho druhu. Konkrétne môže obsahovaobjekty ako input, select alebo ïalší vnorený objekt fieldset. Jeho syntax je teda:objekty select, input a fieldsetTitle urèuje opis daného objektu. A obsah urèuje položky, ktoré má používate¾ k dispozícii.Na záver tejto dos nepreh¾adnej èasti si uvedieme jeden dlhší príklad, ktorý ozrejmípoužitie všetkých spomenutých objektov.Zadajte vas login a heslo.Login:Heslo:PrihlasenieRegistraciaRegistracia noveho pouzivatela.Titul:*Meno:*Priezvi<strong>sk</strong>o:Datum <strong>na</strong>rodenia:Pohlavie:MuzZe<strong>na</strong>NeuvadzamBysli<strong>sk</strong>o:Kosicky krajPresov<strong>sk</strong>y krajB.Bystricky krajTrencian<strong>sk</strong>y krajZilin<strong>sk</strong>y krajBratislav<strong>sk</strong>y krajNitrian<strong>sk</strong>y krajTr<strong>na</strong>v<strong>sk</strong>y krajMimo SRNeuvadzamZaluby:Kolektivne sportyIndividualne sportyHardverSoftverSieteDivadloKinoTeleviziaine*Login: