<?
$MIOLO->import('modules::example::controls::viewsource');

class frmSession extends MForm
{

    public function __construct() 
    {   
        parent::__construct('Exemplo do uso de sessão');
    }
    
    public function createFields()
    {   
        global $counter;

        $session = $this->manager->getSession();

// se já estiver na sessão, pega o valor, senão inicializa
        $counter = $session->isRegistered("counter") ? $session->getValue("counter") : 0;
// atribuir ao campo
        $this->addField(new MTextLabel('cnt', $counter,'Global'));
// incrementa para o próximo round-trip
        $counter++;

// variáveis globais tem seu valor automaticamente atribuido a $_SESSION
        $session->register("counter");

        $char = (string)$session->isRegistered("sessionchar") ? $session->getValue("sessionchar") : 'A';
        $this->addField(new MTextLabel('ch', $char,'Local'));
        $char .= 'A';

// variáveis locais tem seu valor setado através de SetValue
        $session->setValue('sessionchar',$char);

        $this->addField(new ViewSource(__FILE__));

    }
}
?>