Commit aca5ace14cf8f56a7db272ed8d3c63b9653743a1
1 parent
e5f8a8bd
Exists in
master
Refactorings em Core_Controller_Page_*Controller.
Showing
3 changed files
with
75 additions
and
15 deletions
Show diff stats
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 |