Script behívása változók alapján
Hogyan lehet behívni egy script-et egy vagy több változó értéke alapján.
2022.01.31 — Posted by Webb & Flow
A scripteket be lehet hívni a template-be azonosító ( {SCRIPT $id=ID}
), vagy név ( {SCRIPT $name=NAME}
) alapján.
A tartalom saját ExternalData változóival lehet szabályozni, hogy pontosan melyik script-et szeretnénk az adott tartalomban behívni.
Behívás azonosítóval
Tegyük fel, hogy van egy STRING típusú ExternalData változónk, aminek SCRIPTID a neve.
Ez alapján be lehet állítani, hogy pontosan melyik script legyen behívva, ha a következő kóddal rakjuk be a template-be:
{SCRIPT $id=@SCRIPTID@}
Arra figyelni kell, hogy a SCRIPTID változóban mindig egy létező script azonosító legyen, mivel a SCRIPT függvény $id paramétere kötelező ebben az esetben.
Érdemes a tartalom Content Type-jában megadni egy alapértelmezett azonosítót, hogy mindenképpen legyen valamilyen érték megadva a tartalomban.
Behívás névvel
Az előző megoldás bizonyos esetekben jó, de általában helyettesíthető BOX típusú ExternalData változókkal.
Névvel behívás esetén legyen egy STRING típusú ExternalData változónk, aminek SCRIPTNAME a neve.
Ekkor a következő kóddal lehet a megfelelő script-et behívni:
{SCRIPT $name=@SCRIPTNAME@}
Ebben az esetben is figyelni kell, hogy egy létező script név legyen megadva a SCRIPTNAME változóban.
A neveknél előfordulhat, hogy van egy egységes elnevezési rendszer a script-eknél, és csak a név egy bizonyos részét szeretnénk változtatni. Ezt különösen akkor tudjuk kihasználni, ha több különböző script-et is ugyanazon változó alapján szeretnénk behívni.
Például ha árlistát szeretnénk megjeleníteni úgy, hogy van egy tartalom a forint, és egy másik tartalom az euro árak megjelenítésére, de közös template-et szeretnénk használni, nem pedig tartalmanként megírni az egész szöveget.
Ekkor felvehetjük a következő script-eket:
- TETEL1HUF
- TETEL1EUR
- TETEL2HUF
- TETEL2EUR
Így van két tételünk az árlistára, forint és euro pénznemben is.
Ezután felvehetünk egy STRING típusú ExternalData változót, PENZNEM néven. Ebbe a változóba vagy HUF, vagy EUR értéket kell majd írnunk.
A template-be elhelyezhetjük a következő listát:
* Tétel 1 : {SCRIPT $name=TETEL1@PENZNEM@}
* Tétel 2 : {SCRIPT $name=TETEL2@PENZNEM@}
Így már a tartalomban be tudjuk állítani, hogy melyik pénznemben jelenjen meg az ár.
Behívás névvel, több változó alapján
Amennyiben a behívandó script neve több változóból áll össze, egyszerűen össze kell fűzni a változók értékeit:
{SCRIPT $name=@SCRIPTNAME1@@SCRIPTNAME2@}
Feltéve, hogy van két STRING típusú ExternalData változónk, SCRIPTNAME1 és SCRIPTNAME2 néven.
Erre lehet egy példa, ha árakat akarunk megjeleníteni, de nem cak a pénznemet, hanem a nyelvet is szeretnénk megadni.
Ehhez kell két STRING típusú ExternalData változó, PENZNEM és NYELV néven.
Ezután felvesszük a következő script-eket:
- TETEL1HUFHU
- TETEL1EURHU
- TETEL2HUFHU
- TETEL2EURHU
- TETEL1HUFEN
- TETEL1EUREN
- TETEL2HUFEN
- TETEL2EUREN
A template-be pedig a következő kódot írjuk:
* Tétel 1 : {SCRIPT $name=TETEL1@PENZNEM@@NYELV@}
* Tétel 2 : {SCRIPT $name=TETEL2@PENZNEM@@NYELV@}
A PENZNEM változóba HUF vagy EUR, a NYELV változóba pedig HU vagy EN értékeket írhatunk.