phpSTE: News

phpSTE: Novedades

Published at 17 Jul 2009 by soywiz

Now that I got Internet working again, I’m continuing with my projects, and I have continued improving phpSTE.

I have changed a lot of things since its inception, and probably I will change much more until it is polished enough,

At this point it fits in 550 LoC and it is pretty functional.

In addition to support inheritance, I have added the following tags:

{extends name=""} - extends a template.  
{include name=""} - includes a template.  
{block name=""}{/block} - defines and prints/modifies a block.  
{addblock name=""}{/addblock} - modifies a block adding its content to the end.  

{blockdef name=""}{/blockdef} - defines a block without using it.  
{putblock name=""} - prints an existant block.  

{t}{/t} - calls the gettext function  

{if cond=""}{/if}  
{elseif cond=""}{else}  

{for var="" from="" to="" step=""}{/for}  

{foreach list="" var=""}{/foreach}  

I have done some optimizations so the tags can know if the contents is a literal, so {t}Text{/t} will be converted, while {t}{if cond=1}Text{/if}{/t} would be kept as Text.

Ahora que vuelvo a tener Internet en plan bien, y ya vuelvo a estar con mis proyectos, he seguido mejorando phpSTE.

He cambiado bastantes cosas desde que lo empecé, y cambiaré bastantes más posiblemente hasta que esté pulido del todo.

Por ahora ocupa unas 550 líneas y ya es bastante funcional.

Además de soportar herencia, he añadido los siguientes tags:

{extends name=""} - extiende un template.  
{include name=""} - incluye un template.  
{block name=""}{/block} - define e imprime/modifica un bloque.  
{addblock name=""}{/addblock} - modifica un bloque añadiendo el contenido al final.  

{blockdef name=""}{/blockdef} - define un bloque sin utilizarlo.  
{putblock name=""} - imprime un bloque existente.  

{t}{/t} - llama a la función de gettext  

{if cond=""}{/if}  
{elseif cond=""}{else}  

{for var="" from="" to="" step=""}{/for}  

{foreach list="" var=""}{/foreach}  

He hecho optimizaciones para que los tags puedan saber si el contenido es un literal, de forma que {t}Texto{/t} se convertiría a mientras que {t}{if cond=1}Texto{/if}{/t} se convertiría a Texto