Si des de Smarty volem fer vàries substitucions en una cadena abans demostrar-la podem encadenar modificadors:
{$variable|replace: 'cadena a cercar':'el que hi posarem'}
Per exemple, partint d’aquesta constant definida des de PHP:
define("INDEX_GIMCAMA","La gimcama comença des de ###ORIGEN_CIUTAT_NOM### (###ORIGEN_PAIS###) - ###ORIGEN_CIUTAT_CODI### a ###DESTINACIO_CIUTAT_NOM### (###DESTINACIO_PAIS###) - (###DESTINACIO_CIUTAT_CODI###) i costa ###PREU### ###SIMBOL_MONEDA###");
Aquest és un petit truc per a pàgines multi-llengua, en que les cadenes es defineixen en diferents idiomes, i s’inclou l’arxiu pertinent (require_once).
I tenim present que hem passat a la plantilla de Smarty les variables pertinents des de PHP:
$smarty->assign('s_origen_ciutat_nom', 'Barcelona'); $smarty->assign('s_origen_pais', 'Catalunya'); $s_codi_moneda = 'CAT'; // Aquí hi aniria EUR, USD... en aquests moments polítics en que Europa no s'ha decantat clarament del costat de la Democràcia, perquè no pensar a fer un nou Estat amb moneda pròpia? ;) $smarty->assign('s_codi_moneda', $s_codi_moneda); $smarty->assign('i_decimals', 2); // etc...
Llavors a la TPL (plantilla) faríem:
{$smarty.const.INDEX_GIMCAMA|replace: '###ORIGEN_CIUTAT_NOM###':$s_origen_ciutat_nom|replace: '###ORIGEN_PAIS###':$s_origen_pais|replace: '###ORIGEN_CIUTAT_CODI###':$s_origen_ciutat_codi|replace: '###DESTINACIO_CIUTAT_NOM###':$s_destinacio_ciutat_nom|replace: '###DESTINACIO_PAIS###':$s_destinacio_pais|replace: '###DESTINACIO_CIUTAT_CODI###':$s_destinacion_ciutat_codi|replace: '###SIMBOL_MONEDA###':$s_simbol_moneda|replace: '###PREU###':{$s_preu|money_format:$s_codi_moneda:$i_decimals}}"
Fixeu-vos com al final reemplaço ###PREU### pel preu amb el modificador (modifier) money_format, passant-li |money_format per a que em doni format amb decimals i separadors de milers, i així acabar-ho de brodar.
![]() ![]() | Compartir: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Tags: PHP, smarty template engine
1.638 visualitzacions - versió en PDF