Zona de run G Vars

Ejemplo de un controlador


Ya teniendo conocimiento de las zonas de un controlador y la conexión con la capa vista realizaremos un ejemplo sencillo de un conversor de divisas para mostrar las diferentes zonas de un controlador.

El conversor está compuesto solo de 2 archivos:
-example_currency_converter.php en la ruta work/example_currency_converter.php
-example_currency_converter.tpl en la ruta work/templates/t_dark/example_currency_converter.tpl

example_currency_converter.php: este controlador añade una función de conversion de divisas, la cual hace la multiplicación del resultado y envía el resultado al template. Utiliza la variable $this->post->tasa y $this->post->dolares que hacen referencia a los datos enviados desde el template por un método POST, ademas dentro de la función run, antes de llamar la funcion display, verifica si se ha enviado por la ruta del navegador o método GET alguna opción de realizar una operación.

Contenido de example_currency_converter.php:

<?php

require('configs/include.php');

class 
c_example_currency_converter extends super_controller {
    
    public function 
conversion_divisa()
    {
        
$this->engine->assign('resultado',$this->post->tasa*$this->post->dolares);
    }
    
    public function 
display()
    {        
        
$this->engine->assign('title','Currency Converter');
        
$this->engine->display('header.tpl');
        
$this->engine->display('example_currency_converter.tpl');
        
$this->engine->display('footer.tpl');
    }
    
    public function 
run()
    {
        if (isset(
$this->get->option)){$this->{$this->get->option}();}
        
$this->display();
    }
}

$call = new c_example_currency_converter();
$call->run();

?>


Contenido de example_currency_converter.tpl

<form class="well form-search" method="post" action="{$gvar.l_global}example_currency_converter.php?option=conversion_divisa">
<legend>Conversor de divisas</legend>
<fieldset>
<table cellspacing="2">
{if isset($resultado)}
<tr><td>
<b>El resultado de la conversión es de:</b> {$resultado}
</td></tr>
{/if}
<tr><td>Ingrese la tasa de cambio: <input name="tasa" required="required" value="{$smarty.post.tasa}" type="text"></td>
<td>Ingrese la cantidad de dolares: <input name="dolares" required="required" value="{$smarty.post.dolares}" type="text">
</td>
</tr><tr><td><input class="btn btn-primary" type="submit" value="Calcular"></td></tr>
</table>
</fieldset>
</form>

Y finalmente podremos verificar el funcionamiento al ejecutar desde el navegador el archivo work/example_currency_converter.php

Demo Coversor Divisas
Zona de run G Vars