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.