Advertisement
lordjackson

PaginaList

Feb 12th, 2015
334
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 9.37 KB | None | 0 0
  1. <?php
  2.  
  3. /*
  4.  * classe PaginaList
  5.  * Cadastro de Pagina: Contem a listagem e o formulario de busca
  6.  */
  7.  
  8. use Adianti\Database\TFilter1;
  9.  
  10. include_once 'app/lib/funcdate.php';
  11.  
  12. class PaginaList extends TPage {
  13.  
  14.     private $form;     // formulario de cadastro
  15.     private $datagrid; // listagem
  16.  
  17.     /*
  18.      * metodo construtor
  19.      * Cria a pagina, o formulario e a listagem
  20.      */
  21.  
  22.     public function __construct() {
  23.         parent::__construct();
  24.  
  25.         // instancia um formulario
  26.         $this->form = new TForm('form_busca_Pagina');
  27.  
  28.         // instancia uma tabela
  29.         $panel = new TPanelForm(1000, 100);
  30.  
  31.  
  32.         // adiciona a tabela ao formulario
  33.         $this->form->add($panel);
  34.  
  35.         // cria um rótulo para o título
  36.         $titulo = new TLabel('Cadastro de P&aacute;ginas');
  37.         $titulo->setFontFace('Arial');
  38.         $titulo->setFontColor('red');
  39.         $titulo->setFontSize(18);
  40.  
  41.         // adiciona o campo Titulo
  42.         $panel->put($titulo, $panel->getColuna(), $panel->getLinha());
  43.  
  44.         // cria os campos do formulario
  45.         $opcao = new TCombo('opcao');
  46.  
  47.         // cria um vetor com as opcoes da combo
  48.         $items = array();
  49.         $items['nome'] = 'Nome';
  50.         $items['id'] = 'C&oacute;digo';
  51.         // adiciona as opcoes na combo
  52.         $opcao->addItems($items);
  53.         //coloca o valor padrao no combo
  54.         $opcao->setValue('nome');
  55.         $opcao->setSize(150);
  56.  
  57.         $nome = new TEntry('nome');
  58.         $nome->setSize(170);
  59.  
  60.         // cria um botao de acao (buscar)
  61.         $find_button = new TButton('busca');
  62.         // cria um botao de acao (cadastrar)
  63.         $new_button = new TButton('novo');
  64.  
  65.         // define a acao do botao buscar
  66.         $find_button->setAction(new TAction(array($this, 'onSearch')), 'Buscar');
  67.  
  68.         $obj = new PaginaForm;
  69.         // define a acao do botao cadastrar
  70.         $new_button->setAction(new TAction(array($obj, 'onEdit')), 'Novo');
  71.  
  72.         $panel->setLinha(50);
  73.         // adiciona o campo
  74.         $panel->putCampo(null, 'Selecione o Campo:', 0, 0);
  75.         $panel->put(new TLabel('Informe o Valor da Busca:'), $panel->getColuna() + 160, $panel->getLinha());
  76.         $panel->setLinha(70);
  77.         $panel->put($opcao, $panel->getColuna(), $panel->getLinha());
  78.         $panel->put($nome, $panel->getColuna() + 160, $panel->getLinha());
  79.         $panel->put($find_button, $panel->getColuna() + 350, $panel->getLinha());
  80.         $panel->put($new_button, $panel->getColuna() + 420, $panel->getLinha());
  81.  
  82.         // define quais sao os campos do formulario
  83.         $this->form->setFields(array($nome, $find_button, $new_button));
  84.  
  85.         // instancia objeto DataGrid
  86.         $this->datagrid = new TDataGrid;
  87.  
  88.         // instancia as colunas da DataGrid
  89.         $dgcodigo = new TDataGridColumn('id', 'C&oacute;digo', 'right', 50);
  90.         $dgnome = new TDataGridColumn('nome', 'Nome', 'left', 350);
  91.         $dgarquivo = new TDataGridColumn('arquivo', 'Arquivo', 'left', 350);
  92.         $dgsituacao = new TDataGridColumn('situacao', 'Situa&ccedil;&atilde;o', 'left', 100);
  93.         $dgmodulo = new TDataGridColumn('nome_modulo', 'M&oacute;dulo', 'left', 50);
  94.         $dggrupo = new TDataGridColumn('nome_grupomenu', 'Grupo Menu', 'left', 100);
  95.  
  96.         // adiciona as colunas a DataGrid
  97.         //$this->datagrid->addColumn($dgcodigo);
  98.         $this->datagrid->addColumn($dgnome);
  99.         $this->datagrid->addColumn($dgarquivo);
  100.         $this->datagrid->addColumn($dgsituacao);
  101.         $this->datagrid->addColumn($dgmodulo);
  102.         $this->datagrid->addColumn($dggrupo);
  103.  
  104.         // instancia duas acoes da DataGrid
  105.         $action1 = new TDataGridAction(array($obj, 'onEdit'));
  106.         $action1->setLabel('Editar');
  107.         $action1->setImage('ico_edit.png');
  108.         $action1->setField('id');
  109.  
  110.         $action2 = new TDataGridAction(array($this, 'onDelete'));
  111.         $action2->setLabel('Deletar');
  112.         $action2->setImage('ico_delete.png');
  113.         $action2->setField('id');
  114.  
  115.         $action3 = new TDataGridAction(array('PaginaDependenciaDetalhe', 'onReload'));
  116.         $action3->setLabel('Paginas Dependentes');
  117.         $action3->setImage('ico_novo.png');
  118.         $action3->setField('id');
  119.         $action3->setFk('id');
  120.         $action3->setParameter('fk','id');
  121.        // $action3->setParameter('fk', filter_input(INPUT_GET, 'fk'));
  122.  
  123.         // adiciona as acoes a DataGrid
  124.         $this->datagrid->addAction($action1);
  125.         $this->datagrid->addAction($action2);
  126.         $this->datagrid->addAction($action3);
  127.  
  128.         // cria o modelo da DataGrid, montando sua estrutura
  129.         $this->datagrid->createModel();
  130.  
  131.         // monta a paina atraves de uma tabela
  132.         $panel = new TPanelForm(1000, 500);
  133.         $panel->put($this->form, 0, 0);
  134.         $panel->put($this->datagrid, 50, 110);
  135.  
  136.         // adiciona a tabela a pagina
  137.         parent::add($panel);
  138.     }
  139.  
  140.     /*
  141.      * metodo onReload()
  142.      * Carrega a DataGrid com os objetos do banco de dados
  143.      */
  144.  
  145.     function onSearch() {
  146.         // inicia transacao com o banco 'pg_ceres'
  147.         TTransaction::open('pg_ceres');
  148.  
  149.         // instancia um repositorio para Carros
  150.         $repository = new TRepository('PaginaRecord');
  151.  
  152.         //obtem os dados do formulario de busca
  153.         $campo = $this->form->getFieldData('opcao');
  154.         $dados = $this->form->getFieldData('nome');
  155.  
  156.         // cria um criterio de selecao, ordenado pelo id
  157.         $criteria = new TCriteria;
  158.  
  159.  
  160.         //verifica se o usuario preencheu o formulario
  161.         if (($dados) && ($_GET['method'] != '')) {
  162.             if (is_numeric($dados)) {
  163.                 $operador = '=';
  164.                 $valor = strtoupper($dados);
  165.             } else {
  166.                 $operador = 'like';
  167.                 $valor = ("%{$dados}%");
  168.             }
  169.             //filtra pelo campo selecionado pelo usuario
  170.             $criteria->add(new TFilter($campo, $operador, $valor));
  171.         }
  172.  
  173.         $criteria->setProperty('order', 'nome');
  174.  
  175.  
  176.         // carrega os objetos de acordo com o criterio
  177.         $cadastros = $repository->load($criteria);
  178.  
  179.         $this->datagrid->clear();
  180.         if ($cadastros) {
  181.             // percorre os objetos retornados
  182.             foreach ($cadastros as $cadastro) {
  183.                 // adiciona o objeto na DataGrid
  184.                 $this->datagrid->addItem($cadastro);
  185.             }
  186.         }
  187.  
  188.         // finaliza a transacao
  189.         TTransaction::close();
  190.         $this->loaded = true;
  191.     }
  192.  
  193.     /*
  194.      * metodo onReload()
  195.      * Carrega a DataGrid com os objetos do banco de dados
  196.      */
  197.  
  198.     function onReload() {
  199.         // inicia transacao com o banco 'pg_ceres'
  200.         TTransaction::open('pg_ceres');
  201.  
  202.         // instancia um repositorio para Carros
  203.         $repository = new TRepository('PaginaRecord');
  204.         // cria um criterio de selecao, ordenado pelo id
  205.         $criteria = new TCriteria;
  206.  
  207.         $criteria->setProperty('order', 'nome');
  208.  
  209.         // carrega os objetos de acordo com o criterio
  210.         $cadastros = $repository->load($criteria);
  211.  
  212.         $this->datagrid->clear();
  213.         if ($cadastros) {
  214.             // percorre os objetos retornados
  215.             foreach ($cadastros as $cadastro) {
  216.                 // adiciona o objeto na DataGrid
  217.                 $this->datagrid->addItem($cadastro);
  218.             }
  219.         }
  220.  
  221.         // finaliza a transacao
  222.         TTransaction::close();
  223.         $this->loaded = true;
  224.     }
  225.  
  226.     /*
  227.      * metodo onDelete()
  228.      * Executada quando o usuario clicar no botao excluir da datagrid
  229.      * Pergunta ao usuario se deseja realmente excluir um registro
  230.      */
  231.  
  232.     function onDelete($param) {
  233.         // obtem o parametro $key
  234.         $key = $param['key'];
  235.  
  236.         // define duas acoes
  237.         $action1 = new TAction(array($this, 'Delete'));
  238. //        $action2 = new TAction(array($this, 'NaoDelete'));
  239.         // define os parametros de cada acao
  240.         $action1->setParameter('key', $key);
  241.         $action1->setParameter('msg', 'delete');
  242. //        $action2->setParameter('key', $key);
  243.         // exibe um dialogo ao usuario
  244.         new TQuestion('Deseja realmente excluir o registro ?', $action1);
  245.     }
  246.  
  247.     /*
  248.      * metodo Delete()
  249.      * Exclui um registro
  250.      */
  251.  
  252.     function Delete($param) {
  253.         // obtem o parametro $key
  254.         $key = $param['key'];
  255.         // inicia transacao com o banco 'pg_ceres'
  256.         TTransaction::open('pg_ceres');
  257.  
  258.         // instanicia objeto Record
  259.         $cadastro = new PaginaRecord($key);
  260.  
  261.         try {
  262.             // deleta objeto do banco de dados
  263.             $cadastro->delete();
  264.  
  265.             // finaliza a transacao
  266.             TTransaction::close();
  267.         } catch (Exception $e) { // em caso de exceção
  268.             // exibe a mensagem gerada pela exceção
  269.             new TMessage('error', $e->getMessage());
  270.             // desfaz todas alterações no banco de dados
  271.             TTransaction::rollback();
  272.         }
  273.  
  274.         // re-carrega a datagrid
  275.         $this->onReload();
  276.         // exibe mensagem de sucesso
  277.         //new TMessage('info', "Registro Exclu&iacute;do com sucesso");
  278.     }
  279.  
  280.     /*
  281.      * metodo show()
  282.      * Exibe a pagina
  283.      */
  284.  
  285.     function show() {
  286.         // carrega os dados no datagrid
  287.         $this->onReload();
  288.         //chama o metodo show da super classe
  289.         parent::show();
  290.     }
  291.  
  292. }
  293.  
  294. ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement