Kasutaja tarvikud

Lehe tööriistad


wd:administraatorile:andmetüübihaldus:trükimallid:smarty

Trükimallide koostamise juhend Webware Open Office generaatori (X-path) baasil

Üldine

Smarty keelt kasutatakse WebDesktopis trükimallide juures.

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 '' 2 ühekordset jutumärki (ilma jutumärkideta).

Näide:

Sisend
See on siin üks arvude hulk {ldelim}1,2,3{rdelim}
Väljund
See on siin üks arvude hulk {1,2,3}

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.
// Parameeter "o" on vabalt valitud nimetus ja peab kattuma alamteekonnas antuga.
// Ainuke nõue on, et parameeter ei ole võrdne ühegi nö sisseehitatud parameetriga.

{sle n=lhv
p='''webdk_relations/webdk_relation/webdk_slave_item/webdk_item[item_id=''<<glv:o:lahetatav_id>>'']'''
o=$lh}

// Antud näites leitakse kõik seotud lähetused kasutades tüübi identifitseerimiseks laienduse nime.
// See on universaalsem lähenemine ning võimaldab lihtsamini malle ühest süsteemist teise üle kanda.

{sle n=lhs
p='''webdk_relations/webdk_relation/webdk_slave_item/webdk_item[item_type_id=''<<type_ename:Lahetus>
>'']'''}


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
tidsTüübi ID-de loetelu komadega eraldatud
enamesTüübi ekspordi nimetuste loetelu komadega eraldatud
max_depthMaksimaalne 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:

{opt tids=27992,28007,34111}


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
ppath ehk teekond. Määrab asukoha XML-puus

Näide:

{sb p='''webdk_item[item_id=''45676'']'''}

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
ppath ehk teekond. Määrab asukoha XML-puus
ccontext ehk kontekst. Määrab konteksti, millest alates väärtuse otsingut teostatakse. Vt näidet
ttype 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
reqOn nõutud. Määrab, kas vastav muutuja on nõutud. Vaikimisi on “true”
emptyJuhul, 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
dateKuupä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 _dateKuupäev nn nimetatud kujul eesti keeles. Näiteks “30. oktoober 2008”. Vt näidet.
muselMää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:

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}
{sle n=a p=webdk_relations/webdk_relation/webdk_slave_item/webdk_item}
Esimese seose pealkiri: {gv p=pealkiri c=$a.0}


sle (set get value)

Seda tag-i kasutatakse nn sisemiste loetelude koostamiseks, et neid saaks hiljem näiteks Smarty foreach konstruktsiooniga kuvada.

Nimetus Kirjeldus
nname ehk nimetus. Määrab ära, millise nimega loetelu salvestatakse.
ppath ehk teekond. Määrab asukoha XML-puus.
c

määratud). c-d kasutatakse eelkõige foreach jms tsüklites alamelementide kuvamisel.|

Näide:

{sle n=a p=webdk_relations/webdk_relation/webdk_slave_item/webdk_item}


sl (sort list)

Seda tag-i kasutatakse nn sisemiste loetelude (koostatud “sle”-ga) sorteerimiseks.

Nimetus Kirjeldus
nname ehk nimetus.Funktsiooniga „sle“ koostatud loetelu nimi
ppath ehk teekond. Määrab asukoha XML-puus. See on relatiivne iga loetelus oleva elemendi suhtes.

Näide:

{sle n=a p=webdk_relations/webdk_relation/webdk_slave_item/webdk_item}
{sl n=a p=pealkiri}


table

Seda tag-i kasutatakse tabelite koostamiseks.

Nimetus Kirjeldus
ppath ehk teekond. Määrab tabeli väärtuste asukoha
ccontext 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)
sortsorteerimise 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
dateKuupä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:

{table p=webdk_routing}
^Roll^Kes^Ülesanne^
|{tgv n=rt_role_name}|{tgv n=rt_perf_name}|{tgv n=rt_task}|
{/table}


Globaalsed funktsioonid

Globaalseid funktsioone saab kasutada tingimuslausetes jms.

Parameetrid:

Nimetus Kirjeldus
nameVäljakutsutava funktsiooni nimetus. Tüüpiliselt “gv”
param1.. paramNVä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:

 {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''}
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}


{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}

* 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}
* 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}
* 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}
* 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}
* 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.
{gv
p='''webdk_relations/webdk_relation/webdk_slave_item/webdk_item[item_id=''<<objekt_id>>'']/item_name'''}

Suunamiste info

{table p=webdk_routing}

Roll Täitmisaeg Kellele Resolutsioon Olek (suunamise staatus) Kommentaar / vastus
{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}
* Tingimuslik lause: {if xpc(“gv”,“arv”) eq 77}JAH ON 77{else}EI OLE 77{/if}
* 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}
Nimetus: {glv i=$i n=nimetus}
Kood: {glv i=$i n=kood}
Alamtabel: {table c=$i
p=’webdk_relations/webdk_relation/webdk_slave_item/webdk_item[item_type_id=2359]}
Alamnimetus Kirjeldus
{tgv n=nimetus}{tgv n=kirjeldus}

{/table}{/foreach}

Väljund:

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
Roll KesÜlesanne
TeadmiseksMait Kauss
Vastutav isikEero PealisTäpsustage palun kuupäev

Risttabeli väärtuste kuvamine tabelis:

Nimetus KogusSumma
ID-kaadi lugeja5500
Klaviatuur2300
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
* Mitme väärtuse valiku välja kuvamine:
1.
- Kood: K1
- Väärtus: AAA
2.
- Kood: K2 (Erikood)
- Väärtus: BBB
* Mitme kasutaja valiku välja kuvamine:
1.
- ID: 123
- Nimi: Erki Kaldjärv
2.
- ID: 2345
- Nimi: Ants Kalda
* 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

* Tsüklis kontekstipõhiste tabelite genereerimine:
Tavaväärtused:
Nimetus: Toote nimetus Kood: Toote kood
Alamtabel:

Alamnimetus Kirjeldus
Alamtoode 1Pikk kirjeldus 1
Alamtoode 2Pikk kirjeldus 2
wd/administraatorile/andmetüübihaldus/trükimallid/smarty.txt · Viimati muutnud: 2019/08/08 02:06 (väline muutmine)