Changes between Initial Version and Version 1 of WF/Modificadoresdevariaveis


Ignore:
Timestamp:
07/24/07 15:01:41 (17 years ago)
Author:
trac
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • WF/Modificadoresdevariaveis

    v1 v1  
     1Modificadores de variáveis podem ser aplicados a variáveis, funções personalizadas ou strings. Para aplicar um modificador, especifique o valor seguido por |(pipe) e o nome do modificador. Um modificador aceita parâmetros adicionais que afetam o seu comportamento. Estes parâmetros vem após o nome do modificador e são separados por : (dois pontos). 
     2  
     3 
     4Exemplo 5-1. Exemplo de modificador 
     5 
     6{{{ 
     7 
     8{* Faz o título ficar com letras maiúsculas *} 
     9 
     10<h2>{$titulo|upper}</h2> 
     11 
     12 
     13 
     14{* Faz com que $topico use somente 40 caracteres, e coloca ... no fim da frase *} 
     15 
     16 
     17 
     18Tópico: {$topico|truncate:40:"..."} 
     19 
     20 
     21 
     22{* transforma a data em um formato legível *} 
     23 
     24{"agora"|date_format:"%Y/%m/%d"} 
     25 
     26 
     27 
     28{* aplica um modificador à uma função personalizada *} 
     29 
     30{mailto|upper address="eu@dominio.dom"} 
     31 
     32}}} 
     33 
     34Se você aplicar um modificador à uma matriz ao invés de aplicar ao valor de uma variável, o modificador vai ser aplicado à cada valor da matriz especificada. Se você quer que o modificador use a matriz inteira como um valor, você deve colocar o símbolo @ antes do nome do modificador, como a seguir: {$tituloArtigo|@count} (isto irá mostrar o número de elementos na matriz $tituloArtigo). 
     35 
     36 
     37 
     38Modificadores podem ser carregados automaticamente à partir do seu $plugins_dir (veja: Nomes sugeridos) ou podem ser registrados explicitamente (veja: register_modifier). Adicionalmente, todas as funções php podem ser utiliadas como modificadores implicitamente. (O exemplo do @count acima usa a função count do php e não um modificador do Smarty). Usar funções do php como modificadores tem dois pequenos problemas: Primeiro: às vezes a ordem dos parâmetros da função não é a desejada ({"%2.f"|sprintf:$float} atualmente funciona, mas o melhor seria algo mais intuitivo. Por exemplo: {$float|string_format:"%2.f"} que é disponibilizado na distribuição do Smarty). Segundo: com a variável $security ativada em todas as funções do php que são usadas como modificadores precisam ser declaradas como confiáveis (trusted) na matriz $security_settings['MODIFIER_FUNCS']. 
     39 
     40 
     41 
     42= capitalize = 
     43 
     44---- 
     45 
     46Isto é usado para converter para maiúsculas a primeira letra de todas as palavras em uma variável. 
     47 
     48 
     49 
     50Exemplo 5-2. capitalize 
     51 
     52 
     53 
     54index.php: 
     55 
     56{{{ 
     57 
     58$smarty = new Smarty; 
     59 
     60$smarty->assign('articleTitle', 'Police begin campaign to rundown jaywalkers.'); 
     61 
     62$smarty->display('index.tpl'); 
     63 
     64 
     65 
     66index.tpl: 
     67 
     68 
     69 
     70{$articleTitle} 
     71 
     72{$articleTitle|capitalize} 
     73 
     74 
     75 
     76SAÍDA: 
     77 
     78 
     79 
     80Police begin campaign to rundown jaywalkers. 
     81 
     82Police Begin Campaign To Rundown Jaywalkers. 
     83 
     84}}} 
     85 
     86 
     87 
     88= lower = 
     89 
     90---- 
     91 
     92Isto é usado para converter para minúsculas uma variável. 
     93 
     94 
     95 
     96Exemplo 5-13. lower 
     97 
     98 
     99 
     100index.php: 
     101 
     102{{{ 
     103 
     104$smarty = new Smarty; 
     105 
     106$smarty->assign('articleTitle', 'Two Convicts Evade Noose, Jury Hung.'); 
     107 
     108$smarty->display('index.tpl'); 
     109 
     110 
     111 
     112index.tpl: 
     113 
     114 
     115 
     116{$articleTitle} 
     117 
     118{$articleTitle|lower} 
     119 
     120}}} 
     121 
     122MOSTRA: 
     123 
     124 
     125 
     126Two Convicts Evade Noose, Jury Hung. 
     127 
     128two convicts evade noose, jury hung. 
     129 
     130 
     131 
     132= date_format = 
     133 
     134---- 
     135 
     136{{{ 
     137 
     138Posição do Parâmetro    Tipo    Requerido       Padrão  Descrição 
     139 
     1401       string  Não     %b %e, %Y       Este é o formato para a data mostrada. 
     141 
     1422       string  Não     n/a     Esta é a data padrão se a entrada estiver vazia. 
     143 
     144}}} 
     145 
     146Isto formata a data e hora no formato strftime() indicado. Datas podem ser passadas para o Smarty como timestamps unix, timestamps mysql, ou qualquer string composta de mês dia ano(interpretavel por strtotime). Designers podem então usar date_format para ter um controle completo da formatação da data. Se a data passada para date_format estiver vazia e um segundo parâmetro for passado, este será usado como a data para formatar. 
     147 
     148 
     149 
     150Exemplo 5-8. date_format 
     151 
     152 
     153 
     154index.php: 
     155 
     156{{{ 
     157 
     158$smarty = new Smarty; 
     159 
     160$smarty->assign('yesterday', strtotime('-1 day')); 
     161 
     162$smarty->display('index.tpl'); 
     163 
     164 
     165 
     166index.tpl: 
     167 
     168 
     169 
     170 
     171 
     172{$smarty.now|date_format} 
     173 
     174{$smarty.now|date_format:"%A, %B %e, %Y"} 
     175 
     176{$smarty.now|date_format:"%H:%M:%S"} 
     177 
     178{$yesterday|date_format} 
     179 
     180{$yesterday|date_format:"%A, %B %e, %Y"} 
     181 
     182{$yesterday|date_format:"%H:%M:%S"} 
     183 
     184 
     185 
     186MOSTRA: 
     187 
     188 
     189 
     190Feb 6, 2001 
     191 
     192Tuesday, February 6, 2001 
     193 
     19414:33:00 
     195 
     196Feb 5, 2001 
     197 
     198Monday, February 5, 2001 
     199 
     20014:33:00 
     201 
     202 
     203 
     204Exemplo 5-9. date_format conversion specifiers 
     205 
     206 
     207 
     208%a - nome do dia da semana abreviado de acordo com o local atual 
     209 
     210 
     211 
     212%A - nome do dia da semana inteiro de acordo com o local atual 
     213 
     214 
     215 
     216%b - nome do mês abreviado de acordo com o local atual 
     217 
     218 
     219 
     220%B - nome do mês inteiro de acordo com o local atual 
     221 
     222 
     223 
     224%c - representação preferencial de data e hora para o local atual 
     225 
     226 
     227 
     228%C - ano com dois dígitos (o ano dividido por 100 e truncado para um inteiro, intervalo de 00 a 99) 
     229 
     230 
     231 
     232%d - dia do mês como um número decimal (intervalo de 00 a 31) 
     233 
     234 
     235 
     236%D - o mesmo que %m/%d/%y 
     237 
     238 
     239 
     240%e - dia do mês como um número decimal, um único dígito é precedido por um 
     241 
     242espaço (intervalo de 1 a 31) 
     243 
     244 
     245 
     246%g - ano baseado na semana, sem o século [00,99] 
     247 
     248 
     249 
     250%G - ano baseado na semana, incluindo o século [0000,9999] 
     251 
     252 
     253 
     254%h - o mesmo que %b 
     255 
     256 
     257 
     258%H - hora como um número decimal usando um relógio de 24 horas (intervalo de 00 a 23) 
     259 
     260 
     261 
     262%I - hora como um número decimal usando um relógio de 12 horas (intervalo de 01 a 12) 
     263 
     264 
     265 
     266%j - dia do ano como um número decimal (intervalo de 001 a 366) 
     267 
     268 
     269 
     270%k - hora (relógio de 24 horas) digítos únicos são precedidos por um espaço em branco (intervalo de 0 a 23) 
     271 
     272       
     273 
     274%l - hora como um número decimal usando um relógio de 12 horas, digítos unicos são precedidos 
     275 
     276por um espaço em branco (intervalo de 1 a 12) 
     277 
     278 
     279 
     280%m - mês como número decimal (intervalo de 01 a 12) 
     281 
     282 
     283 
     284%M - minuto como um número decimal 
     285 
     286 
     287 
     288%n - caractere de nova linha  
     289 
     290 
     291 
     292%p - ou `am' ou `pm' de acordo com o valor de hora dado, ou as strings correspondentes ao local atual  
     293 
     294 
     295 
     296%r - hora na notação a.m. e p.m.   
     297 
     298 
     299 
     300%R - hora na notação de 24 horas 
     301 
     302 
     303 
     304%S - segundo como número decimal  
     305 
     306 
     307 
     308%t - caractere tab  
     309 
     310 
     311 
     312%T - hora atual, igual a %H:%M:%S  
     313 
     314 
     315 
     316%u - dia da semana como um número decimal [1,7], com 1 representando segunda-feira  
     317 
     318 
     319 
     320%U - número da semana do ano atual como um número decimal, começando com o primeiro domingo como primeiro dia da primeira semana  
     321 
     322 
     323 
     324%V - número da semana do ano atual como um número decimal de acordo com The ISO 8601:1988, 
     325 
     326intervalo de 01 a 53, aonde a semana 1 é a primeira semana que tenha pelo menos quatro dias no ano atual, sendo domingo o primeiro dia da semana.  
     327 
     328 
     329 
     330%w - dia da semana como decimal, domingo sendo 0  
     331 
     332 
     333 
     334%W - número da semana do ano atual como número decimal, começando com a primeira segunda como primeiro dia da primeira semana   
     335 
     336 
     337 
     338%x - representação preferencial da data para o local atualsem a hora  
     339 
     340 
     341 
     342%X - representação preferencial da hora para o local atual sem a data  
     343 
     344 
     345 
     346%y - ano como número decimal sem o século (intervalo de 00 a 99)  
     347 
     348 
     349 
     350%Y - ano como número decimal incluindo o século  
     351 
     352 
     353 
     354%Z - zona horária ou nome ou abreviação  
     355 
     356 
     357 
     358%% - um caractere `%'  
     359 
     360}}} 
     361 
     362 
     363 
     364NOTA PARA PROGRAMADORES: date_format é essencialmente um wrapper para a função strftime() do PHP. 
     365 
     366Você deverá ter mais ou menos especificadores de conversão disponíveis de acordo com a  
     367 
     368função strftime() do sistema operacional aonde o PHP foi compilado. De uma olhada 
     369 
     370na página de manual do seu sistema para uma lista completa dos especificadores válidos. 
     371 
     372 
     373 
     374= count_words = 
     375 
     376---- 
     377 
     378Isto é usado para contar o número de palavras em uma variável. 
     379 
     380 
     381 
     382Exemplo 5-7. count_words 
     383 
     384 
     385 
     386index.php: 
     387 
     388{{{ 
     389 
     390$smarty = new Smarty; 
     391 
     392$smarty->assign('articleTitle', 'Dealers Will Hear Car Talk at Noon.'); 
     393 
     394$smarty->display('index.tpl'); 
     395 
     396 
     397 
     398index.tpl: 
     399 
     400 
     401 
     402{$articleTitle} 
     403 
     404{$articleTitle|count_words} 
     405 
     406 
     407 
     408MOSTRA: 
     409 
     410 
     411 
     412Dealers Will Hear Car Talk at Noon. 
     413 
     4147 
     415 
     416}}} 
     417 
     418 
     419 
     420= default = 
     421 
     422---- 
     423 
     424Posição do Parâmetro    Tipo    Requerido       Padrão  Descrição 
     425 
     4261       string  Não     vazio   Este é o valor padrão para mostrar se a variável estiver vazia. 
     427 
     428 
     429 
     430Isto é usado para definir um valor padrão para uma variável. Se a variável estiver vazia ou não for definida, o valor padrão dado é mostrado. Default usa um argumento. 
     431 
     432 
     433 
     434Exemplo 5-10. default 
     435 
     436 
     437 
     438index.php: 
     439 
     440{{{ 
     441 
     442$smarty = new Smarty; 
     443 
     444$smarty->assign('articleTitle', 'Dealers Will Hear Car Talk at Noon.'); 
     445 
     446$smarty->display('index.tpl'); 
     447 
     448 
     449 
     450index.tpl: 
     451 
     452 
     453 
     454{$articleTitle|default:"no title"} 
     455 
     456{$myTitle|default:"no title"} 
     457 
     458 
     459 
     460MOSTRA: 
     461 
     462 
     463 
     464Dealers Will Hear Car Talk at Noon. 
     465 
     466no title 
     467 
     468}}} 
     469 
     470 
     471 
     472= escape = 
     473 
     474---- 
     475 
     476Posição do Parâmetro    1        
     477 
     478Tipo    string   
     479 
     480Requerido       Não      
     481 
     482Valores Possíveis       html,htmlall,url,quotes,hex,hexentity,javascript         
     483 
     484Padrão  html     
     485 
     486Descrição Este é o formato de escape para usar. 
     487 
     488 
     489 
     490Este é usado para escapar html, url, aspas simples em uma variável que já não esteja escapada, escapar hex, hexentity ou javascript. Por padrão, é escapado o html da variável. 
     491 
     492 
     493 
     494Exemplo 5-11. escape 
     495 
     496 
     497 
     498index.php: 
     499 
     500{{{ 
     501 
     502$smarty = new Smarty; 
     503 
     504$smarty->assign('articleTitle', "'Stiff Opposition Expected to Casketless Funeral Plan'"); 
     505 
     506$smarty->display('index.tpl'); 
     507 
     508 
     509 
     510index.tpl: 
     511 
     512 
     513 
     514{$articleTitle} 
     515 
     516{$articleTitle|escape} 
     517 
     518{$articleTitle|escape:"html"}    {* escapa  & " ' < > *} 
     519 
     520{$articleTitle|escape:"htmlall"} {* escapa todas as entidades html *} 
     521 
     522{$articleTitle|escape:"url"} 
     523 
     524{$articleTitle|escape:"quotes"} 
     525 
     526<a href="mailto:{$EmailAddress|escape:"hex"}">{$EmailAddress|escape:"hexentity"}</a> 
     527 
     528 
     529 
     530MOSTRA: 
     531 
     532 
     533 
     534'Stiff Opposition Expected to Casketless Funeral Plan' 
     535 
     536'Stiff Opposition Expected to Casketless Funeral Plan' 
     537 
     538'Stiff Opposition Expected to Casketless Funeral Plan' 
     539 
     540'Stiff Opposition Expected to Casketless Funeral Plan' 
     541 
     542%27Stiff+Opposition+Expected+to+Casketless+Funeral+Plan%27 
     543 
     544\'Stiff Opposition Expected to Casketless Funeral Plan\' 
     545 
     546<a href="mailto:%62%6f%62%40%6d%65%2e%6e%65%74">bob@me.net</a> 
     547 
     548}}} 
     549 
     550 
     551 
     552= indent = 
     553 
     554---- 
     555 
     556Posição do Parâmetro    Tipo    Requerido       Padrão  Descrição 
     557 
     5581       integer Não     4       Isto define com quantos caracteres endentar. 
     559 
     5602       string  Não     (um espaço)     Isto define qual caractere usado para endentar. 
     561 
     562 
     563 
     564Isto endenta uma string em cada linha, o padrão é 4. Como parâmetro opcional, você pode especificar o número de caracteres para endentar. Como segundo parâmetro opcional, você pode especificar o caractere usado para endentar. (Use "\t" para tabs.) 
     565 
     566 
     567 
     568Exemplo 5-12. indent 
     569 
     570 
     571 
     572index.php: 
     573 
     574{{{ 
     575 
     576$smarty = new Smarty; 
     577 
     578$smarty->assign('articleTitle', 'NJ judge to rule on nude beach.'); 
     579 
     580$smarty->display('index.tpl'); 
     581 
     582 
     583 
     584index.tpl: 
     585 
     586 
     587 
     588{$articleTitle} 
     589 
     590 
     591 
     592{$articleTitle|indent} 
     593 
     594 
     595 
     596{$articleTitle|indent:10} 
     597 
     598 
     599 
     600{$articleTitle|indent:1:"\t"} 
     601 
     602}}} 
     603 
     604 
     605 
     606= string_format = 
     607 
     608---- 
     609 
     610Posição do parâmetro    Tipo    Requerido       Padrão  Descrição 
     611 
     6121       string  Sim     n/a     Este é o formato para ser usado. (sprintf) 
     613 
     614 
     615 
     616Este é um meio para formatar strings, como números decimais e outros. Use a sintaxe para sprintf para a formatação. 
     617 
     618 
     619 
     620Exemplo 5-18. string_format 
     621 
     622 
     623 
     624index.php: 
     625 
     626{{{ 
     627 
     628$smarty = new Smarty; 
     629 
     630$smarty->assign('number', 23.5787446); 
     631 
     632$smarty->display('index.tpl'); 
     633 
     634 
     635 
     636index.tpl: 
     637 
     638 
     639 
     640{$number} 
     641 
     642{$number|string_format:"%.2f"} 
     643 
     644{$number|string_format:"%d"} 
     645 
     646}}} 
     647 
     648MOSTRA: 
     649 
     650 
     651 
     65223.5787446 
     653 
     65423.58 
     655 
     65624 
     657 
     658 
     659 
     660= strip_tags = 
     661 
     662---- 
     663 
     664Isto retira as tags de marcação, basicamente tudo entre < e >. 
     665 
     666 
     667 
     668Exemplo 5-20. strip_tags 
     669 
     670 
     671 
     672index.php: 
     673 
     674{{{ 
     675 
     676$smarty = new Smarty; 
     677 
     678$smarty->assign('articleTitle', "Blind Woman Gets <font face=\"helvetica\">New Kidney</font> from Dad she Hasn't Seen in <b>years</b>."); 
     679 
     680$smarty->display('index.tpl'); 
     681 
     682 
     683 
     684index.tpl: 
     685 
     686 
     687 
     688{$articleTitle} 
     689 
     690{$articleTitle|strip_tags} 
     691 
     692}}} 
     693 
     694MOSTRA: 
     695 
     696 
     697 
     698Blind Woman Gets <font face="helvetica">New Kidney</font> from Dad she Hasn't Seen in <b>years</b>. 
     699 
     700Blind Woman Gets New Kidney from Dad she Hasn't Seen in years. 
     701 
     702 
     703 
     704= strip = 
     705 
     706---- 
     707 
     708Isto substitui todos os espaços repetidos, novas linhas e tabs por um único espaço ou a string indicada. 
     709 
     710 
     711 
     712Nota: Se você quer substituir blocos de texto do template, use a função strip.  
     713 
     714 
     715 
     716Exemplo 5-19. strip 
     717 
     718 
     719 
     720index.php: 
     721 
     722{{{ 
     723 
     724$smarty = new Smarty; 
     725 
     726$smarty->assign('articleTitle', "Grandmother of\neight makes\t    hole in one."); 
     727 
     728$smarty->display('index.tpl'); 
     729 
     730 
     731 
     732index.tpl: 
     733 
     734 
     735 
     736{$articleTitle} 
     737 
     738{$articleTitle|strip} 
     739 
     740{$articleTitle|strip:" "} 
     741 
     742}}} 
     743 
     744MOSTRA: 
     745 
     746 
     747 
     748Grandmother of 
     749 
     750eight makes        hole in one. 
     751 
     752Grandmother of eight makes hole in one. 
     753 
     754Grandmother of eight makes hole in one. 
     755 
     756 
     757 
     758= truncate = 
     759 
     760---- 
     761 
     762Posição Tipo    Requerido       Padrão  Descrição 
     763 
     7641       integer Não             80      Este determina para quantos caracteres truncar. 
     765 
     7662       string  Não             ...     Este é o texto para adicionar se truncar. 
     767 
     7683       boolean Não             false   Isto determina quando truncar ou não ao final de uma palavra(false), ou no caractere exato (true). 
     769 
     770 
     771 
     772Isto trunca a variável para uma quantidade de caracteres, o padrão é 80. Como segundo parâmetro opcional, você pode especificar uma string para mostrar ao final se a variável foi truncada. Os caracteres da string são incluídos no tamanho original para a truncagem. por padrão, truncate irá tentar cortar ao final de uma palavra. Se você quizer cortar na quantidade exata de caracteres, passe o terceiro parâmetro, que é opcional, como true. 
     773 
     774 
     775 
     776Exemplo 5-21. truncate 
     777 
     778 
     779 
     780index.php: 
     781 
     782{{{ 
     783 
     784$smarty = new Smarty; 
     785 
     786$smarty->assign('articleTitle', 'Two Sisters Reunite after Eighteen Years at Checkout Counter.'); 
     787 
     788$smarty->display('index.tpl'); 
     789 
     790 
     791 
     792index.tpl: 
     793 
     794 
     795 
     796{$articleTitle} 
     797 
     798{$articleTitle|truncate} 
     799 
     800{$articleTitle|truncate:30} 
     801 
     802{$articleTitle|truncate:30:""} 
     803 
     804{$articleTitle|truncate:30:"---"} 
     805 
     806{$articleTitle|truncate:30:"":true} 
     807 
     808{$articleTitle|truncate:30:"...":true} 
     809 
     810}}} 
     811 
     812MOSTRA: 
     813 
     814 
     815 
     816Two Sisters Reunite after Eighteen Years at Checkout Counter. 
     817 
     818Two Sisters Reunite after Eighteen Years at Checkout Counter. 
     819 
     820Two Sisters Reunite after... 
     821 
     822Two Sisters Reunite after 
     823 
     824Two Sisters Reunite after--- 
     825 
     826Two Sisters Reunite after Eigh 
     827 
     828Two Sisters Reunite after E... 
     829 
     830 
     831 
     832= wordwrap = 
     833 
     834---- 
     835 
     836Posição Tipo    Requerido Padrão        Descrição 
     837 
     8381       integer Não       80            Isto determina em quantas colunas quebrar. 
     839 
     8402       string  Não       \n            Esta é a string usada para quebrar. 
     841 
     8423       boolean Não       false         Isto determina quando quebrar ou não ao final de uma palavra (false), ou no caractere exato (true). 
     843 
     844 
     845 
     846Isto quebra uma string para uma largura de coluna, o padrão é 80. Como segundo parâmetro opcional, você pode especificar a string que será usada para quebrar o texto para a próxima linha (o padrão é um retorno de carro \n). Por padrão, wordwrap irá tentar quebrar ao final de uma palavra. Se você quiser quebrar no tamanho exato de caracteres, passe o terceiro parâmetro, que é opcional, como true. 
     847 
     848 
     849 
     850Exemplo 5-23. wordwrap 
     851 
     852 
     853 
     854index.php: 
     855 
     856{{{ 
     857 
     858$smarty = new Smarty; 
     859 
     860$smarty->assign('articleTitle', "Blind woman gets new kidney from dad she hasn't seen in years."); 
     861 
     862$smarty->display('index.tpl'); 
     863 
     864 
     865 
     866index.tpl: 
     867 
     868 
     869 
     870{$articleTitle} 
     871 
     872 
     873 
     874{$articleTitle|wordwrap:30} 
     875 
     876 
     877 
     878{$articleTitle|wordwrap:20} 
     879 
     880 
     881 
     882{$articleTitle|wordwrap:30:"<br>\n"} 
     883 
     884 
     885 
     886{$articleTitle|wordwrap:30:"\n":true} 
     887 
     888}}} 
     889 
     890MOSTRA: 
     891 
     892 
     893 
     894Blind woman gets new kidney from dad she hasn't seen in years. 
     895 
     896 
     897 
     898Blind woman gets new kidney 
     899 
     900from dad she hasn't seen in 
     901 
     902years. 
     903 
     904 
     905 
     906Blind woman gets new 
     907 
     908kidney from dad she 
     909 
     910hasn't seen in 
     911 
     912years. 
     913 
     914 
     915 
     916Blind woman gets new kidney<br> 
     917 
     918from dad she hasn't seen in years. 
     919 
     920 
     921 
     922Blind woman gets new kidney fr 
     923 
     924om dad she hasn't seen in year 
     925 
     926s. 
     927 
     928 
     929 
     930= spacify = 
     931 
     932---- 
     933 
     934Posição Tipo    Requerido       Padrão          Descrição 
     935 
     9361       string  Não             um espaço       O que é inserido entre cada caractere da variável. 
     937 
     938 
     939 
     940Insere um espaço entre cada caractere de uma variável. Você pode opcionalmente passar um caractere (ou uma string) diferente para inserir. 
     941 
     942 
     943 
     944Exemplo 5-17. spacify 
     945 
     946 
     947 
     948index.php: 
     949 
     950{{{ 
     951 
     952$smarty = new Smarty; 
     953 
     954$smarty->assign('articleTitle', 'Something Went Wrong in Jet Crash, Experts Say.'); 
     955 
     956$smarty->display('index.tpl'); 
     957 
     958 
     959 
     960index.tpl: 
     961 
     962 
     963 
     964{$articleTitle} 
     965 
     966{$articleTitle|spacify} 
     967 
     968{$articleTitle|spacify:"^^"} 
     969 
     970}}} 
     971 
     972MOSTRA: 
     973 
     974 
     975 
     976Something Went Wrong in Jet Crash, Experts Say. 
     977 
     978S o m e t h i n g   W e n t   W r o n g   i n   J e t   C r a s h ,   E x p e r t s   S a y . 
     979 
     980S^^o^^m^^e^^t^^h^^i^^n^^g^^ ^^W^^e^^n^^t^^ ^^W^^r^^o^^n^^g^^ ^^i^^n^^ ^^J^^e^^t^^ ^^C^^r^^a^^s^^h^^,^^ ^^E^^x^^p^^e^^r^^t^^s^^ ^^S^^a^^y^^. 
     981 
     982 
     983 
     984= replace = 
     985 
     986---- 
     987 
     988Posição Tipo    Requerido Padrão        Descrição 
     989 
     9901       string  Sim       n/a   Esta é a string a ser substituida. 
     991 
     9922       string  Sim       n/a   Esta é a string que irá substituir. 
     993 
     994 
     995 
     996Um simples localizar e substituir. 
     997 
     998 
     999 
     1000Exemplo 5-16. replace 
     1001 
     1002 
     1003 
     1004index.php: 
     1005 
     1006{{{ 
     1007 
     1008$smarty = new Smarty; 
     1009 
     1010$smarty->assign('articleTitle', "Child's Stool Great for Use in Garden."); 
     1011 
     1012$smarty->display('index.tpl'); 
     1013 
     1014 
     1015 
     1016index.tpl: 
     1017 
     1018 
     1019 
     1020{$articleTitle} 
     1021 
     1022{$articleTitle|replace:"Garden":"Vineyard"} 
     1023 
     1024{$articleTitle|replace:" ":"   "} 
     1025 
     1026}}} 
     1027 
     1028OUTPUT: 
     1029 
     1030 
     1031 
     1032Child's Stool Great for Use in Garden. 
     1033 
     1034Child's Stool Great for Use in Vineyard. 
     1035 
     1036Child's   Stool   Great   for   Use   in   Garden. 
     1037 
     1038 
     1039 
     1040= nl2br = 
     1041 
     1042---- 
     1043 
     1044Todas as quebras de linha serão convertidas para <br /> na variável data. Isto é equivalente a função nl2br() do PHP. 
     1045 
     1046 
     1047 
     1048Exemplo 5-14. nl2br 
     1049 
     1050 
     1051 
     1052index.php: 
     1053 
     1054{{{ 
     1055 
     1056$smarty = new Smarty; 
     1057 
     1058$smarty->assign('articleTitle', "Sun or rain expected\ntoday, dark tonight"); 
     1059 
     1060$smarty->display('index.tpl'); 
     1061 
     1062 
     1063 
     1064index.tpl: 
     1065 
     1066 
     1067 
     1068{$articleTitle|nl2br} 
     1069 
     1070}}} 
     1071 
     1072MOSTRA: 
     1073 
     1074 
     1075 
     1076Sun or rain expected<br />today, dark tonight