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,8 +366,15 @@ abstract class Core_Controller_Page_EditController
366 { 366 {
367 if (isset($this->getRequest()->id)) { 367 if (isset($this->getRequest()->id)) {
368 if ($this->getDataMapper()->delete($this->getRequest()->id)) { 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 return FALSE; 380 return FALSE;
ieducar/lib/Core/Controller/Page/ListController.php
@@ -25,7 +25,7 @@ @@ -25,7 +25,7 @@
25 * @license @@license@@ 25 * @license @@license@@
26 * @package Core_Controller 26 * @package Core_Controller
27 * @since Arquivo disponível desde a versão 1.1.0 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 require_once 'Core/View/Tabulable.php'; 31 require_once 'Core/View/Tabulable.php';
@@ -86,6 +86,29 @@ class Core_Controller_Page_ListController extends clsListagem implements Core_Vi @@ -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 * Implementação padrão para as subclasses que estenderem essa classe. Cria 112 * Implementação padrão para as subclasses que estenderem essa classe. Cria
90 * uma lista de apresentação de dados simples utilizando o mapeamento de 113 * uma lista de apresentação de dados simples utilizando o mapeamento de
91 * $_tableMap. 114 * $_tableMap.
@@ -97,10 +120,11 @@ class Core_Controller_Page_ListController extends clsListagem implements Core_Vi @@ -97,10 +120,11 @@ class Core_Controller_Page_ListController extends clsListagem implements Core_Vi
97 { 120 {
98 $headers = $this->getTableMap(); 121 $headers = $this->getTableMap();
99 122
  123 + // Configura o cabeçalho da listagem.
100 $this->addCabecalhos(array_keys($headers)); 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 // Paginador 129 // Paginador
106 $this->limite = 20; 130 $this->limite = 20;
@@ -122,11 +146,12 @@ class Core_Controller_Page_ListController extends clsListagem implements Core_Vi @@ -122,11 +146,12 @@ class Core_Controller_Page_ListController extends clsListagem implements Core_Vi
122 $this->addLinhas($item); 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 \ No newline at end of file 158 \ No newline at end of file
ieducar/lib/Core/Controller/Page/ViewController.php
@@ -25,7 +25,7 @@ @@ -25,7 +25,7 @@
25 * @license @@license@@ 25 * @license @@license@@
26 * @package Core_Controller 26 * @package Core_Controller
27 * @since Arquivo disponível desde a versão 1.1.0 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 require_once 'Core/View/Tabulable.php'; 31 require_once 'Core/View/Tabulable.php';
@@ -96,6 +96,36 @@ class Core_Controller_Page_ViewController extends clsDetalhe implements Core_Vie @@ -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 * Implementação padrão para as subclasses que estenderem essa classe. Cria 129 * Implementação padrão para as subclasses que estenderem essa classe. Cria
100 * uma tela de apresentação de dados simples utilizando o mapeamento de 130 * uma tela de apresentação de dados simples utilizando o mapeamento de
101 * $_tableMap. 131 * $_tableMap.
@@ -106,7 +136,7 @@ class Core_Controller_Page_ViewController extends clsDetalhe implements Core_Vie @@ -106,7 +136,7 @@ class Core_Controller_Page_ViewController extends clsDetalhe implements Core_Vie
106 public function Gerar() 136 public function Gerar()
107 { 137 {
108 $headers = $this->getTableMap(); 138 $headers = $this->getTableMap();
109 - $mapper = $this->getDataMapper(); 139 + $mapper = $this->getDataMapper();
110 140
111 $this->titulo = $this->getBaseTitulo(); 141 $this->titulo = $this->getBaseTitulo();
112 $this->largura = "100%"; 142 $this->largura = "100%";
@@ -125,9 +155,7 @@ class Core_Controller_Page_ViewController extends clsDetalhe implements Core_Vie @@ -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 \ No newline at end of file 162 \ No newline at end of file