Commit aca5ace14cf8f56a7db272ed8d3c63b9653743a1

Authored by Eriksen Costa
1 parent e5f8a8bd
Exists in master

Refactorings em Core_Controller_Page_*Controller.

ieducar/lib/Core/Controller/Page/EditController.php
... ... @@ -366,8 +366,15 @@ abstract class Core_Controller_Page_EditController
366 366 {
367 367 if (isset($this->getRequest()->id)) {
368 368 if ($this->getDataMapper()->delete($this->getRequest()->id)) {
369   - $this->redirect($this->getDispatcher()->getControllerName() . '/' .
370   - $this->getOption('delete_success'));
  369 + if (is_array($this->getOption('delete_success_params'))) {
  370 + $params = http_build_query($this->getOption('delete_success_params'));
  371 + }
  372 +
  373 + $this->redirect(
  374 + $this->getDispatcher()->getControllerName() . '/' .
  375 + $this->getOption('delete_success') .
  376 + (isset($params) ? '?' . $params : '')
  377 + );
371 378 }
372 379 }
373 380 return FALSE;
... ...
ieducar/lib/Core/Controller/Page/ListController.php
... ... @@ -25,7 +25,7 @@
25 25 * @license @@license@@
26 26 * @package Core_Controller
27 27 * @since Arquivo disponível desde a versão 1.1.0
28   - * @version $Id: /ieducar/branches/teste/ieducar/lib/Core/Controller/Page/Abstract.php 646 2009-11-12T21:54:25.107288Z eriksen $
  28 + * @version $Id$
29 29 */
30 30  
31 31 require_once 'Core/View/Tabulable.php';
... ... @@ -86,6 +86,29 @@ class Core_Controller_Page_ListController extends clsListagem implements Core_Vi
86 86 }
87 87  
88 88 /**
  89 + * Retorna os registros a serem exibidos na listagem.
  90 + *
  91 + * Subclasses devem sobrescrever este método quando os parâmetros para
  92 + * CoreExt_DataMapper::findAll forem mais específicos.
  93 + *
  94 + * @return array (int => CoreExt_Entity)
  95 + */
  96 + public function getEntries()
  97 + {
  98 + $mapper = $this->getDataMapper();
  99 + return $mapper->findAll();
  100 + }
  101 +
  102 + /**
  103 + * Configura o botão de ação padrão para a criação de novo registro.
  104 + */
  105 + public function setAcao()
  106 + {
  107 + $this->acao = 'go("edit")';
  108 + $this->nome_acao = 'Novo';
  109 + }
  110 +
  111 + /**
89 112 * Implementação padrão para as subclasses que estenderem essa classe. Cria
90 113 * uma lista de apresentação de dados simples utilizando o mapeamento de
91 114 * $_tableMap.
... ... @@ -97,10 +120,11 @@ class Core_Controller_Page_ListController extends clsListagem implements Core_Vi
97 120 {
98 121 $headers = $this->getTableMap();
99 122  
  123 + // Configura o cabeçalho da listagem.
100 124 $this->addCabecalhos(array_keys($headers));
101 125  
102   - $mapper = $this->getDataMapper();
103   - $entries = $mapper->findAll();
  126 + // Recupera os registros para a listagem.
  127 + $entries = $this->getEntries();
104 128  
105 129 // Paginador
106 130 $this->limite = 20;
... ... @@ -122,11 +146,12 @@ class Core_Controller_Page_ListController extends clsListagem implements Core_Vi
122 146 $this->addLinhas($item);
123 147 }
124 148  
125   - $this->addPaginador2("", count($entries), $_GET, $this->nome, $this->limite);
  149 + $this->addPaginador2('', count($entries), $_GET, $this->nome, $this->limite);
126 150  
127   - $this->acao = "go(\"edit\")";
128   - $this->nome_acao = "Novo";
  151 + // Configura o botão padrão de ação para a criação de novo registro.
  152 + $this->setAcao();
129 153  
130   - $this->largura = "100%";
  154 + // Largura da tabela HTML onde se encontra a listagem.
  155 + $this->largura = '100%';
131 156 }
132 157 }
133 158 \ No newline at end of file
... ...
ieducar/lib/Core/Controller/Page/ViewController.php
... ... @@ -25,7 +25,7 @@
25 25 * @license @@license@@
26 26 * @package Core_Controller
27 27 * @since Arquivo disponível desde a versão 1.1.0
28   - * @version $Id: /ieducar/branches/teste/ieducar/lib/Core/Controller/Page/Abstract.php 646 2009-11-12T21:54:25.107288Z eriksen $
  28 + * @version $Id$
29 29 */
30 30  
31 31 require_once 'Core/View/Tabulable.php';
... ... @@ -96,6 +96,36 @@ class Core_Controller_Page_ViewController extends clsDetalhe implements Core_Vie
96 96 }
97 97  
98 98 /**
  99 + * Configura a URL padrão para a ação de Edição de um registro.
  100 + *
  101 + * Por padrão, cria uma URL "edit/id", onde id é o valor do atributo "id"
  102 + * de uma instância CoreExt_Entity.
  103 + *
  104 + * @param CoreExt_Entity $entry A instância atual recuperada
  105 + * ViewController::Gerar().
  106 + */
  107 + public function setUrlEditar(CoreExt_Entity $entry)
  108 + {
  109 + $this->url_editar = CoreExt_View_Helper_UrlHelper::url(
  110 + 'edit', array('query' => array('id' => $entry->id))
  111 + );
  112 + }
  113 +
  114 + /**
  115 + * Configura a URL padrão para a ação Cancelar da tela de Edição de um
  116 + * registro.
  117 + *
  118 + * Por padrão, cria uma URL "index".
  119 + *
  120 + * @param CoreExt_Entity $entry A instância atual recuperada
  121 + * ViewController::Gerar().
  122 + */
  123 + public function setUrlCancelar(CoreExt_Entity $entry)
  124 + {
  125 + $this->url_cancelar = CoreExt_View_Helper_UrlHelper::url('index');
  126 + }
  127 +
  128 + /**
99 129 * Implementação padrão para as subclasses que estenderem essa classe. Cria
100 130 * uma tela de apresentação de dados simples utilizando o mapeamento de
101 131 * $_tableMap.
... ... @@ -106,7 +136,7 @@ class Core_Controller_Page_ViewController extends clsDetalhe implements Core_Vie
106 136 public function Gerar()
107 137 {
108 138 $headers = $this->getTableMap();
109   - $mapper = $this->getDataMapper();
  139 + $mapper = $this->getDataMapper();
110 140  
111 141 $this->titulo = $this->getBaseTitulo();
112 142 $this->largura = "100%";
... ... @@ -125,9 +155,7 @@ class Core_Controller_Page_ViewController extends clsDetalhe implements Core_Vie
125 155 }
126 156 }
127 157  
128   - $this->url_editar = CoreExt_View_Helper_UrlHelper::url(
129   - 'edit', array('query' => array('id' => $entry->id))
130   - );
131   - $this->url_cancelar = CoreExt_View_Helper_UrlHelper::url('index');
  158 + $this->setUrlEditar($entry);
  159 + $this->setUrlCancelar($entry);
132 160 }
133 161 }
134 162 \ No newline at end of file
... ...