Siin näed erinevusi valitud versiooni ja hetkel kehtiva lehekülje vahel.
Both sides previous revision Previous revision Next revision | Previous revision | ||
wd:administraatorile:andmetüübihaldus:trükimallid:smarty [2014/08/06 13:38] admin |
wd:administraatorile:andmetüübihaldus:trükimallid:smarty [2019/08/08 02:06] (Hetkel kehtiv) |
||
---|---|---|---|
Rida 1: | Rida 1: | ||
- | ====== Smarty keel ====== | + | ====== Trükimallide koostamise juhend Webware Open Office generaatori (X-path) baasil ====== |
+ | |||
+ | ===== Üldine ===== | ||
Smarty keelt kasutatakse WebDesktopis trükimallide juures. | Smarty keelt kasutatakse WebDesktopis trükimallide juures. | ||
Rida 5: | Rida 7: | ||
Kui Smarty keele märke { } (loogelisi sulgusid) tahetakse kasutada teksti sees, siis tuleb need eelnevalt asendada vastavalt "{" => "{{" | Kui Smarty keele märke { } (loogelisi sulgusid) tahetakse kasutada teksti sees, siis tuleb need eelnevalt asendada vastavalt "{" => "{{" | ||
"}" => "}}" | "}" => "}}" | ||
- | Lisaks tuleb jutumärkide asemel kasutada märke ''' (3 ühekordset jutumärki (ilma jutumärkideta). Ühekordse jutumärgi saamiseks tuleb kasutada märke ''. Kaks ühekordset jutumärki (ilma jutumärkideta). | + | Lisaks tuleb jutumärkide asemel kasutada märke <nowiki>'''</nowiki> 3 ühekordset jutumärki (ilma jutumärkideta). Ühekordse jutumärgi saamiseks tuleb kasutada märke <nowiki>''</nowiki> 2 ühekordset jutumärki (ilma jutumärkideta). |
- | === Näide === | + | === Näide: === |
==Sisend== | ==Sisend== | ||
- | See on siin üks arvude hulk {ldelim}1,2,3{rdelim} | + | <code php>See on siin üks arvude hulk {ldelim}1,2,3{rdelim}</code> |
==Väljund== | ==Väljund== | ||
- | See on siin üks arvude hulk {1,2,3} | + | <code php>See on siin üks arvude hulk {1,2,3}</code> |
Täpsemat infot standardse Smarty süntaksi kohta saate aadressilt http://smarty.net. | Täpsemat infot standardse Smarty süntaksi kohta saate aadressilt http://smarty.net. | ||
+ | \\ | ||
+ | \\ | ||
+ | |||
+ | ===== Path (teekond) ===== | ||
+ | |||
+ | Path on teekond elemendini XML-i puus. Lisaks traditsioonilisele X-Path-i syntax-ile saab | ||
+ | kasutada nö alampath-e eraldades nad “«” ja “»” märkidega. Näiteks “«objekt_id»”. Alamteekondades saab lisaks tavalisele teekonnale kasutada ka veel nn erifunktsioone: | ||
+ | * glv:viide jadale:välja nimetus | ||
+ | * type_ename:tüübi laienduse nimetus | ||
+ | |||
+ | === Näited: === | ||
+ | |||
+ | Antud näiteks väärtustatakse lähetatav (lhv) lähetuselt (lh) loetud id (lahetatav_id) kaudu.\\ | ||
+ | <nowiki>// Parameeter "o" on vabalt valitud nimetus ja peab kattuma alamteekonnas antuga.</nowiki>\\ | ||
+ | <nowiki>// Ainuke nõue on, et parameeter ei ole võrdne ühegi nö sisseehitatud parameetriga.</nowiki> | ||
+ | <code php>{sle n=lhv | ||
+ | p='''webdk_relations/webdk_relation/webdk_slave_item/webdk_item[item_id=''<<glv:o:lahetatav_id>>'']''' | ||
+ | o=$lh}</code> | ||
+ | <nowiki>// Antud näites leitakse kõik seotud lähetused kasutades tüübi identifitseerimiseks laienduse nime.</nowiki>\\ | ||
+ | <nowiki>// See on universaalsem lähenemine ning võimaldab lihtsamini malle ühest süsteemist teise üle kanda.</nowiki> | ||
+ | <code php>{sle n=lhs | ||
+ | p='''webdk_relations/webdk_relation/webdk_slave_item/webdk_item[item_type_id=''<<type_ename:Lahetus> | ||
+ | >'']'''}</code> | ||
+ | \\ | ||
+ | |||
+ | ===== Tag-id ===== | ||
+ | |||
+ | ==== opt ==== | ||
+ | |||
+ | See tag on mõeldud optimeerimiseks. Programmile on vaja anda “vihjeid”, et milliseid tüüpe antud mallis soovitakse kasutada, samuti vajadusel ka välju (näiteks, mis jäävad iflause piirkonda). See hoiab suuresti kokku sisend-XML-i mahtu. Vaikimisi paneb süsteem selle tüübi ID, mille pealt trükkimist alustatakse. St kui soovitakse ainult otseselt samalt andmekaardilt andmeid, siis opt tag-i ei pea kasutama. Samas, kui soovitakse ka seostest andmeid võtta, siis on vaja vastavate seotud tüüpide ID-d määrata. | ||
+ | |||
+ | === Parameetrid: === | ||
+ | ^Nimetus ^ Kirjeldus ^ | ||
+ | |tids|Tüübi ID-de loetelu komadega eraldatud| | ||
+ | |enames|Tüübi ekspordi nimetuste loetelu komadega eraldatud| | ||
+ | |max_depth|Maksimaalne sügavus XML-is. Vaikimisi on see 2. Juhul kui tahetakse näiteks seostest omakorda sügavamale seostesse minna, siis peaks olema max_depth=3 jne| | ||
+ | |||
+ | === Näide: === | ||
+ | |||
+ | <code php>{opt tids=27992,28007,34111}</code> | ||
+ | \\ | ||
+ | |||
+ | ==== sb ==== | ||
+ | |||
+ | See tag on mõeldud baas teekonna määramiseks. Viimast on vaja eelkõige asukoha teekondade kirjelduste lühendamiseks. Kui ühtegi sb tag-i dokumendist ei leita, siis määratakse selleks automaatselt “/webdk_data/webdk_item”. | ||
+ | |||
+ | === Parameetrid: === | ||
+ | ^Nimetus ^ Kirjeldus ^ | ||
+ | |p|path ehk teekond. Määrab asukoha XML-puus| | ||
+ | |||
+ | === Näide: === | ||
+ | |||
+ | <code php>{sb p='''webdk_item[item_id=''45676'']'''}</code> | ||
+ | |||
+ | Määrab, et järgnevad teekonnad on alates item-ist id=4676. | ||
+ | \\ | ||
+ | \\ | ||
+ | |||
+ | ==== gv (get value) ==== | ||
+ | |||
+ | Seda tag-i kasutatakse väljade sisu kuvamiseks. | ||
+ | |||
+ | === Parameetrid: === | ||
+ | ^Nimetus ^ Kirjeldus ^ | ||
+ | |p|path ehk teekond. Määrab asukoha XML-puus| | ||
+ | |c|context ehk kontekst. Määrab konteksti, millest alates väärtuse otsingut teostatakse. Vt näidet| | ||
+ | |t|type ehk tüüp. Määrab ära välja tüübi. Kui määramata, siis kuvatakse täpselt nii nagu on sisendis. Vt tüübid osa| | ||
+ | |req|On nõutud. Määrab, kas vastav muutuja on nõutud. Vaikimisi on “true”| | ||
+ | |empty|Juhul, kui väärtus on tühi või puudu (viimase korral peab req=false), siis antakse selle muutuja väärtus tagasi. Näiteks. {gv p=minuvaartus req=false empty=tühi}.| | ||
+ | |||
+ | === Tüübid: === | ||
+ | ^Nimetus ^ Kirjeldus ^ | ||
+ | |date|Kuupäev ja/või kellaaeg. Määrab ära kuupäeva tüübi, mille abil saab sisendisolevaid kuupäevi erinevatel kujudel esitada. Kuju saab määrata parameetriga fmt| | ||
+ | |est_named _date|Kuupäev nn nimetatud kujul eesti keeles. Näiteks “30. oktoober 2008”. Vt näidet.| | ||
+ | |musel|Määrab ära, et tegemist on musel väärtusega, mis formaaditakse vastavalt parameetritele “musel_sep”, “musel_val”. Näiteks. {gv p=MVV t=musel musel_sep=, empty=tühi musel_val=« code »: «value» req=false}| | ||
+ | |||
+ | === Näide: === | ||
+ | |||
+ | <code php>Tüüp: {gv p=../webdk_item_type/item_type_name_translation/et} | ||
+ | Pealkiri: {gv p=pealkiri} | ||
+ | Kuupäev formaadis AAAA-KK-PP: {gv p=reg_date t=date fmt=''Y-m-d''} | ||
+ | Kuupäev nimetatud formaadis: {gv p=reg_date t=est_named_date}</code> | ||
+ | |||
+ | <code php>{sle n=a p=webdk_relations/webdk_relation/webdk_slave_item/webdk_item} | ||
+ | Esimese seose pealkiri: {gv p=pealkiri c=$a.0}</code> | ||
+ | \\ | ||
+ | |||
+ | ==== sle (set get value) ==== | ||
+ | |||
+ | Seda tag-i kasutatakse nn sisemiste loetelude koostamiseks, et neid saaks hiljem näiteks | ||
+ | Smarty foreach konstruktsiooniga kuvada. | ||
+ | |||
+ | ^Nimetus ^ Kirjeldus ^ | ||
+ | |n|name ehk nimetus. Määrab ära, millise nimega loetelu salvestatakse.| | ||
+ | |p|path ehk teekond. Määrab asukoha XML-puus.| | ||
+ | |c|context ehk kontekst. Määrab ära konteksti, kust alates astavat teekonda otsitakse. Vaikimisi kasutatakse aktiivset asukohta (näiteks sb-käsuga | ||
+ | määratud). c-d kasutatakse eelkõige foreach jms tsüklites alamelementide kuvamisel.| | ||
+ | |||
+ | === Näide: === | ||
+ | |||
+ | <code php>{sle n=a p=webdk_relations/webdk_relation/webdk_slave_item/webdk_item}</code> | ||
+ | \\ | ||
+ | |||
+ | ==== sl (sort list) ==== | ||
+ | |||
+ | Seda tag-i kasutatakse nn sisemiste loetelude (koostatud “sle”-ga) sorteerimiseks. | ||
+ | |||
+ | ^Nimetus ^ Kirjeldus ^ | ||
+ | |n|name ehk nimetus.Funktsiooniga "sle" koostatud loetelu nimi| | ||
+ | |p|path ehk teekond. Määrab asukoha XML-puus. See on relatiivne iga loetelus oleva elemendi suhtes.| | ||
+ | |||
+ | === Näide: === | ||
+ | |||
+ | <code php>{sle n=a p=webdk_relations/webdk_relation/webdk_slave_item/webdk_item} | ||
+ | {sl n=a p=pealkiri}</code> | ||
+ | \\ | ||
+ | |||
+ | ==== table ==== | ||
+ | |||
+ | Seda tag-i kasutatakse tabelite koostamiseks. | ||
+ | |||
+ | ^Nimetus ^ Kirjeldus ^ | ||
+ | |p|path ehk teekond. Määrab tabeli väärtuste asukoha| | ||
+ | |c|context ehk kontekst. Määrab ära alguspunkti, kust alates path-i resolvima hakatakse. Seda on vaja kasutada näiteks tsüklis sees “kontekstis” tabelite genereerimisel (vt näidet)| | ||
+ | |sort|sorteerimise teekond. Määrab ära teekonna väärtuseni mille järgi sorteeritakse. See teekond peab olema relatiivne tabeli reale.| | ||
+ | \\ | ||
+ | |||
+ | ==== tgv (table get value) ==== | ||
+ | |||
+ | Seda tag-i kasutatakse tabeli sisesta väärtuste kuvamiseks. | ||
+ | |||
+ | === Parameetrid: === | ||
+ | |||
+ | Parameetrid on samad, mis funktsioonil gv, vahega, et kontekstiks on konkreetne tabeli rida. | ||
+ | |||
+ | === Tüübid: === | ||
+ | ^Nimetus ^ Kirjeldus ^ | ||
+ | |date|Kuupäev ja/või kellaaeg. Määrab ära kuupäeva tüübi, mille abil saab sisendisolevaid kuupäevi erinevatel kujudel esitada. Kuju saab määrata parameetriga fmt| | ||
+ | |||
+ | === Näide: === | ||
+ | |||
+ | <code php>{table p=webdk_routing} | ||
+ | ^Roll^Kes^Ülesanne^ | ||
+ | |{tgv n=rt_role_name}|{tgv n=rt_perf_name}|{tgv n=rt_task}| | ||
+ | {/table}</code> | ||
+ | \\ | ||
+ | |||
+ | ===== Globaalsed funktsioonid ===== | ||
+ | |||
+ | Globaalseid funktsioone saab kasutada tingimuslausetes jms. | ||
+ | |||
+ | === Parameetrid: === | ||
+ | |||
+ | ^Nimetus ^ Kirjeldus ^ | ||
+ | |name|Väljakutsutava funktsiooni nimetus. Tüüpiliselt “gv”| | ||
+ | |param1.. paramN|Väljakutsutavale funktsioonile edastatavad parameetrid. “gv” puhul võib olla lihtsalt x-path-i teekond. Vt näidist| | ||
+ | \\ | ||
+ | |||
+ | ===== Muud märkused ===== | ||
+ | |||
+ | Ekspordinimes, mida kasutatakse trükimallides ei tohi kasutada numbreid. Näiteks “webdk_item/minuvali2” ei leita, samas “webdk_item/minuvali_b” leitakse. | ||
+ | |||
+ | === Näited: === | ||
+ | |||
+ | <code php> {opt tids=27992,28007,34111}{sb p=/webdk_data/webdk_item} | ||
+ | Tüüp: {gv p=../webdk_item_type/item_type_name_translation/et} | ||
+ | Pealkiri: {gv p=pealkiri} | ||
+ | Meie nr: {gv p=reg_nr} | ||
+ | Teie kuupäev: {gv | ||
+ | p='''webdk_relations/webdk_relation/webdk_slave_item/webdk_item[item_id=''<<reg_nr_odid>>'']/reg_kp'''} | ||
+ | Teie nr: {gv | ||
+ | p='''webdk_relations/webdk_relation/webdk_slave_item/webdk_item[item_id=''<<reg_nr_odid>>'']/reg_nr'''} | ||
+ | Kuupäev: {gv p=reg_date} | ||
+ | Sisu: {gv p=summary} | ||
+ | Mitteeksisteeriv muutuja: {gv p=minu_muutuja req=''false''}</code> | ||
+ | |||
+ | <code php>Seotud ühe objekti väli (näiteks andmed isikukaardilt): | ||
+ | {sle n=lh p='''webdk_relations/webdk_relation/webdk_slave_item/webdk_item[item_id=''<<lahetatav_id>>'']'''} | ||
+ | {glv i=$lh.0 n=Isik}</code> | ||
+ | \\ | ||
+ | |||
+ | {table p=webdk_routing} | ||
+ | ^Roll ^ Kes ^Ülesanne^ | ||
+ | |{tgv n=rt_role_name}|{tgv n=rt_perf_name}|{tgv n=rt_task}| | ||
+ | {/table} | ||
+ | \\ | ||
+ | |||
+ | **Risttabeli väärtuste kuvamine tabelis** | ||
+ | \\ | ||
+ | {table p=kaubad/rows/row} | ||
+ | |{tgv n=nimetus}|{tgv n=kogus}|{tgv n=summa}| | ||
+ | {/table} | ||
+ | \\ | ||
+ | |||
+ | <code php>* Seotud väljsaadetavad kirjad (tüübi ID=28007): | ||
+ | {sle n=a p='''webdk_relations/webdk_relation/webdk_slave_item/webdk_item[item_type_id=''28007'']'''} | ||
+ | {foreach from=$a item=i name=testloop2} | ||
+ | {$smarty.foreach.testloop2.iteration}. | ||
+ | - ID: {glv i=$i n=item_id} | ||
+ | - Tüübi ID: {glv i=$i n=item_type_id} | ||
+ | - Nimi: {glv i=$i n=item_name} | ||
+ | - Looja: {glv i=$i n=item_creator_name} | ||
+ | - Loodud: {glv i=$i n=item_create_time t=date} | ||
+ | {/foreach} | ||
+ | </code> | ||
+ | |||
+ | <code php>* Kõik seotud dokumendid: | ||
+ | {sle n=a p=webdk_relations/webdk_relation/webdk_slave_item/webdk_item} | ||
+ | {foreach from=$a item=i name=testloop3} | ||
+ | {$smarty.foreach.testloop3.iteration}. | ||
+ | - ID: {glv i=$i n=item_id} | ||
+ | - Tüübi ID: {glv i=$i n=item_type_id} | ||
+ | - Nimi: {glv i=$i n=item_name} | ||
+ | - Looja: {glv i=$i n=item_creator_name} | ||
+ | - Loodud: {glv i=$i n=item_create_time t=date} | ||
+ | {/foreach} | ||
+ | </code> | ||
+ | |||
+ | <code php> | ||
+ | * Mitme väärtuse valiku välja kuvamine: | ||
+ | {sle n=a p=MVV/selection} | ||
+ | {foreach from=$a item=i name=mvv1} | ||
+ | {$smarty.foreach.mvv1.iteration}. | ||
+ | - Kood: {glv i=$i n=code}{if xpc(“glv”,$i,”item_id”) eq “K2”} (Erikood){/if} | ||
+ | - Väärtus: {glv i=$i n=value} | ||
+ | {/foreach} | ||
+ | </code> | ||
+ | |||
+ | <code php> | ||
+ | * Mitme kasutaja valiku välja kuvamine: | ||
+ | {sle n=b p=MUSEL/record} | ||
+ | {foreach from=$b item=i name=musel1} | ||
+ | {$smarty.foreach.musel1.iteration}. {glv i=$i n=name}{if !$smarty.foreach.musel1.last}, {/if} | ||
+ | {/foreach} | ||
+ | </code> | ||
+ | |||
+ | <code php> | ||
+ | * Kompleks variant, kus kaardil on ühe objekti valik ning mis peegeldatakse seostesse (dubleeri seosed). | ||
+ | Antud näites on välja ekspordi nimeks "objekt", ehk siis tema ID on tegelikult väljal "objekt_id". | ||
+ | Siin on näide, kuidas kuvada infot seotud objektide hulgast võttes aluseks objekt väljal oleva ID. | ||
+ | </code> | ||
+ | |||
+ | <code php> | ||
+ | {gv | ||
+ | p='''webdk_relations/webdk_relation/webdk_slave_item/webdk_item[item_id=''<<objekt_id>>'']/item_name'''} | ||
+ | </code> | ||
+ | |||
+ | ==== Suunamiste info ==== | ||
+ | |||
+ | |||
+ | {table p=webdk_routing} | ||
+ | ^Roll ^ Täitmisaeg ^ Kellele ^ Resolutsioon ^ Olek (suunamise staatus) ^ Kommentaar / vastus ^ Põhjendus | ||
+ | |{tgv n=rt_role_name}|{tgv n=rt_status_time}|{tgv n=rt_perf_name}|{tgv n=rt_task}|{tgv n=rt_status_tr}|{tgv n=rt_task_answer}|{tgv n=rt_answer_comment}| | ||
+ | |||
+ | <code php>* Tingimuslik lause: {if xpc(“gv”,“arv”) eq 77}JAH ON 77{else}EI OLE 77{/if}</code> | ||
+ | <code php>* Tsüklis kontekstipõhiste tabelite genereerimine: | ||
+ | {sle n=lvvphk | ||
+ | p=’webdk_relations/webdk_relation/webdk_slave_item/webdk_item[item_type_id=2177]’} | ||
+ | {foreach from=$lvvphk item=i}</code> | ||
+ | <code php>Nimetus: {glv i=$i n=nimetus}</code> | ||
+ | <code php>Kood: {glv i=$i n=kood}</code> | ||
+ | <code php>Alamtabel: {table c=$i | ||
+ | p=’webdk_relations/webdk_relation/webdk_slave_item/webdk_item[item_type_id=2359]’}</code> | ||
+ | |||
+ | ^Alamnimetus ^ Kirjeldus^ | ||
+ | |{tgv n=nimetus}|{tgv n=kirjeldus}| | ||
+ | {/table}{/foreach} | ||
+ | \\ | ||
+ | |||
+ | === Väljund: === | ||
+ | |||
+ | <code php>Tüüp: Saabunud kiri | ||
+ | Pealkiri: Kiri Webware OÜ-lt | ||
+ | Meie nr: 1.2/11 | ||
+ | Kuupäev: 15.11.2007 | ||
+ | Sisu: Teade serveri korralisest hooldusest | ||
+ | Mitteeksisteeriv muutuja: | ||
+ | Seotud ühe objekti väli (näiteks andmed isikukaardilt): Andres Maasikas</code> | ||
+ | |||
+ | ^Roll ^ Kes^Ülesanne^ | ||
+ | |Teadmiseks|Mait Kauss|| | ||
+ | |Vastutav isik|Eero Pealis|Täpsustage palun kuupäev| | ||
+ | |||
+ | Risttabeli väärtuste kuvamine tabelis: \\ | ||
+ | ^Nimetus ^ Kogus^Summa^ | ||
+ | |ID-kaadi lugeja|5|500| | ||
+ | |Klaviatuur|2|300| | ||
+ | |||
+ | <code php>Seotud väljsaadetavad kirjad (tüübi ID=28007): | ||
+ | 1. | ||
+ | - ID: 34555 | ||
+ | - Tüübi ID: 28007 | ||
+ | - Nimi: 4.11/68-1 proovikiri | ||
+ | - Looja: Erki Kaldjärv | ||
+ | - Loodud: 03.12.2007 | ||
+ | Kõik seotud dokumendid: | ||
+ | 1. | ||
+ | - ID: 34248 | ||
+ | - Tüübi ID: 34111 | ||
+ | - Nimi: dokument 1 | ||
+ | - Looja: Erki Kaldjärv | ||
+ | - Loodud: 03.10.2007 | ||
+ | 2. | ||
+ | - ID: 34255 | ||
+ | - Tüübi ID: 34111 | ||
+ | - Nimi: dokument 2 | ||
+ | - Looja: Erki Kaldjärv | ||
+ | - Loodud: 06.10.2007 | ||
+ | 3. | ||
+ | - ID: 34262 | ||
+ | - Tüübi ID: 34111 | ||
+ | - Nimi: dokument 3 | ||
+ | - Looja: Erki Kaldjärv | ||
+ | - Loodud: 06.10.2007 | ||
+ | </code> | ||
+ | |||
+ | <code php> | ||
+ | * Mitme väärtuse valiku välja kuvamine: | ||
+ | 1. | ||
+ | - Kood: K1 | ||
+ | - Väärtus: AAA | ||
+ | 2. | ||
+ | - Kood: K2 (Erikood) | ||
+ | - Väärtus: BBB | ||
+ | </code> | ||
+ | |||
+ | <code php> | ||
+ | * Mitme kasutaja valiku välja kuvamine: | ||
+ | 1. | ||
+ | - ID: 123 | ||
+ | - Nimi: Erki Kaldjärv | ||
+ | 2. | ||
+ | - ID: 2345 | ||
+ | - Nimi: Ants Kalda | ||
+ | </code> | ||
+ | |||
+ | <code php> | ||
+ | * Kompleks variant, kus kaardil on ühe objekti valik ning mis peegeldatakse seostesse (dubleeri seosed). | ||
+ | Antud näites on välja ekspordi nimeks "objekt", ehk siis tema ID on tegelikult väljal "objekt_id". | ||
+ | Siin on näide, kuidas kuvada infot seotud objektide hulgast võttes aluseks objekt väljal oleva ID. | ||
+ | Minu objekti nimi | ||
+ | * Tingimuslik lause: JAH | ||
+ | </code> | ||
+ | |||
+ | * Tsüklis kontekstipõhiste tabelite genereerimine:\\ | ||
+ | Tavaväärtused:\\ | ||
+ | Nimetus: Toote nimetus Kood: Toote kood\\ | ||
+ | Alamtabel:\\ | ||
+ | |||
+ | ^Alamnimetus ^ Kirjeldus^ | ||
+ | |Alamtoode 1|Pikk kirjeldus 1| | ||
+ | |Alamtoode 2|Pikk kirjeldus 2| | ||
+ |