<?php
class HandlerEquipamento extends MHandler
{
function init()
{
parent::init();
$this->manager->Trace('HandlerEquipamento:init');
}
}
?>
Agora que a estrutura padrão está montada você está pronto para a criação da interface e funcionamento do módulo.
Inicialmente o módulo Equipamento terá uma tela com os ícones Categoria e Material (main.inc). Ao selecionar uma das opḉões será exibido um grid com os dados já cadastrados e a opção de inserir um novo item, ao clicar em um dos elementos do grid, será possível editá-lo ou exclui-lo.
Vamos a criação do arquivo main.inc que deve dicar dentro do diretório miolo/modules/equipamento/handlers.
<?php
// obtem o objeto UI para acesso a metodos de interface (forms, grids, reports, images, etc.)
$ui = $MIOLO->getUI();
// limpa a area de conteudo do tema
$theme->clearContent();
// link a ser chamado se o usuario fechar o panel abaixo
$close = $MIOLO->getActionURL('equipamento','main');
// instancia um novo panel, onde sao colocados os icones de acao
// a variavel global $module se refere ao modulo corrente (exemplo)
$panel = new MActionPanel('pnlEquipamento','Módulo Equipamento','', $close, $ui->getImage( $module,'tools1.png'));
// adiciona os icones de acao ao panel criado
$panel->addAction('Categoria',$ui->getImage($module,'categoria.png'),$module, 'main:categoria:find');
$panel->addAction('Material',$ui->getImage($module,'material.png’'),$module, 'main:material:find');
// o codigo seguinte obtem qual o proximo handler a ser executado na sequencia definida
// pelo parametro "action" da URL
$a = $context->shiftAction();
// chama o proximo handler - $handled é falso se nenhum handler for executado
$handled = $MIOLO->invokeHandler($module,$a);
// se nenhum outro handler foi executado, insere o panel na area de conteudo do tema
// se outro handler for executado, assume que esse outro handler vai preecher a area de conteudo
if (! $handled)
{
$theme->insertContent($panel);
}
// inclui o menu principal da aplicacao (geralmente com links para outros modulos)
include_once($MIOLO->GetConf('home.modules') .'/main_menu.inc');
?>
Obs.: As imagens devem estar dentro do diretório html/images.
Agora deve ser criado um handler para cada item. Eles serão responsáveis por chamar outros Handles.
miolo/modules/equipamento/handlers/categoria.inc
<?php
$action = $context->ShiftAction();
$navbar->AddOption('Categoria', 'equipamento', 'main:categoria:find');
switch($action)
{
case 'find':
$MIOLO->InvokeHandler($module, 'categoria/find');
break;
case 'new':
$MIOLO->InvokeHandler($module, 'categoria/new');
break;
default:
$MIOLO->InvokeHandler($module, 'categoria/main');
break;
}
?>
miolo/modules/equipamento/handlers/material.inc
<?php
$action = $context->ShiftAction();
$navbar->AddOption('Material', 'equipamento', 'main:material:find');
switch($action)
{
case 'find':
$MIOLO->InvokeHandler($module, 'material/find');
break;
case 'new':
$MIOLO->InvokeHandler($module, 'material/new');
break;
default:
$MIOLO->InvokeHandler($module, 'material/main');
break;
}
?>
Crie também dentro do diretório handlers uma pasta material e outra categoria.
Dentro destas pastas criaremos os arquivos que farão as chamadas para os formulários.
Vamos começar a criar os arquivos para Categoria
miolo/modules/equipamento/handlers/categoria/find.inc
<?php
// variáveis
$theme->ClearContent();
$ui = $MIOLO->GetUI();
// insere formulário frmProcessosFind
$form = $ui->GetForm($module,'frmCategoriaFind',NULL,'categoria');
$theme->InsertContent($form);
?>
miolo/modules/equipamento/handlers/categoria/new.inc
<?php
// variáveis
$theme->ClearContent();
$ui = $MIOLO->GetUI();
// insere formulário frmProcessosFind
$form = $ui->GetForm($module,'frmCategoriaNew',NULL,'categoria');
$theme->InsertContent($form);
?>


Muito legal!
ResponderExcluirFramework é bem facil de se manipular!