üdv!
Írtam egy apró plugint a smartyhoz, ami visszaad egy stringet (gettype, egy var paraméter).
{assign var=foo value='{gettype var=$sVal}' }
name: '{$aTableHead.title}', type: '$foo'
{if $foo == "date"}
, dateFormat: 'Y-m-d'
{/if}
első esetben tudnám helyettesiteni ugye a {gettype var=$sVal}-al,
de a feltételbe nem írhatom be így... emiatt assign-nal létre akartam hozni egy változót, amibe belerakom, de nem úgy működik, ahogy kéne :(
{assign var=foo value='{gettype var=$sVal}'}
ez a sor eredményként "'}" (utolsó 2) karaktereket küldi a kimenetre... mint ha rosszul parse-olná :/
rosszul csinálok valamit?
ha vkinek van vmi elkerülő javaslata az ne tartsa magában :)
- 1051 megtekintés
Hozzászólások
up? :(
- A hozzászóláshoz be kell jelentkezni
Itt le van írva.
http://www.smarty.net/manual/en/language.custom.functions.php#language…
{assign var=foo value='{gettype var=$sVal}' }
helyette
{assign var=foo value='$sVal'}
- A hozzászóláshoz be kell jelentkezni
de nekem a gettype-olt $sVar visszatérési értékét kéne eltárolni :)
a kettő nem ekvivalens
- A hozzászóláshoz be kell jelentkezni
Tehát adott egy függvényed ami valamilyen értékkel visszatér. Aztán azt szerenéd eltárolni, hogy smarty-ban hozzáférjél?
$smarty -> assign('gettype',$gettype');
- A hozzászóláshoz be kell jelentkezni
igen, csak a függvényem is smarty-ban van (pluginként).
itt van, hogy mi történik és mit szeretnék :)
1. smartynak átadok egy heterogén tömböt php-val.
2. smartyban ezen végigmegyek (foreach) és megszületik $sVal, ennek kéne, hogy milyen alaptípus (int, float, date, string)
3. erre írtam egy smarty plugint: gettype. ez így működik is: mondjuk csak beírom {gettype var=$sVal} erre kiirja a kimenetre a típusát.
4. tovább akartam ezzel menni és feltételt szeretnék írni, hogy ha dátum, akkor még irjon ki egy dátumformátumot is, de ez most lényegtelen.
A probléma ezzel az, hogy {if {gettype var=$sVal} == 'date'} {/if} ezt nem írhatom le, mert syntax error.
5. sebaj, gondoltam belerakom egy új változóba a smarty plugin visszatérési értékét (ami ugyan php függvénynek felel meg, de a változót csak smartyból tudom [$sVal]). de ezt szintén nem írhatom {assign var=foo value='{gettype var=$sVal}' }, mert ezt is rosszul értelmezi :(
lehet egyszerüsíteni kellene a koncepción...
- A hozzászóláshoz be kell jelentkezni
Ezzel el lehet foni a kimenetet:
{capture assign=izeize}{gettype $valtozo}{/capture}
--
A vegtelen ciklus is vegeter egyszer, csak kelloen eros hardver kell hozza!
- A hozzászóláshoz be kell jelentkezni
köszi, ez megoldotta a problémát :)
nem tudom ez hogy kerülte el a figyelmem, pedig a manualt böngésztem egész este
- A hozzászóláshoz be kell jelentkezni
Teljesítményben jobban jössz ki ha assignto paramétert bevezetsz.
- A hozzászóláshoz be kell jelentkezni
pont gyengélkedik a smarty szervere... de utánanézek! itt a teljesítmény is fontos. kipróbálok minden lehetséges megoldást. nem gondoltam, hogy egynél több van :D visszajelzek majd :)
- A hozzászóláshoz be kell jelentkezni
tényleg elegánsabb így, nem tudom, hogy ez hogy nem jutott eszembe
- A hozzászóláshoz be kell jelentkezni