Informática Numaboa - Tutoriais e Programação
Componente 1.5 MVC - Funcionalidade admin
Ter 22 Jan 2008 14:10 |
- Detalhes
- Categoria: Joomla
- Atualização: Segunda, 02 Julho 2012 19:31
- Autor: vovó Vicki
- Acessos: 16372
A vista Ola
Já temos uma vista para listar todas as mensagens - falta uma vista para mostrar um formulário com apenas uma das mensagens. O propósito desta vista é:
- buscar os dados no modelo,
- criar a barra de ferramentas,
- passar os dados para o template e
- chamar o método display( ) para mostrar o template.
Como esta vista será usada tanto para inserir mensagens novas quanto para editar uma existente, a coisa fica um pouco mais complicada. Queremos que o usuário saiba se está adicionando ou editando através da barra de ferramentas. Por este motivo precisamos saber qual foi a tarefa solicitada.
Como estamos buscando o registro no modelo, podemos usar estes dados para determinar a tarefa. Se a tarefa for editar, o campo id do registro possui um valor; se a tarefa for adicionar, o campo id do registro é null.
Vamos adicionar dois botões à barra de ferramentas: salvar e cancelar. Se a tarefa for adicionar, o texto do botão cancelar será 'Cancelar'; se for editar, o mesmo botão (com a mesma funcionalidade) terá o texto 'Fechar'.
O código de /views/ola/view.html.php é o seguinte:
O modelo Ola
A vista Ola precisa de dados. Isto significa que precisamos criar um modelo que os forneça.
Nosso modelo terá duas propriedades: _id e _dados.
Começamos com um construtor, function __construct( ), que vai tentar obter a id de uma query. Nesta função, o método JRequest::getVar( ) é usado para obter os dados da solicitação. O primeiro parâmetro ('cid') é o nome da variável do formulário; o segundo parâmetro ('0') é o valor default que deve ser atribuído se a variável não for encontrada; o terceiro parâmetro é o hash ('post', 'get', ect) do qual se quer obter o valor e o último ('array') é o tipo de dado que deve ser atribuído ao valor.
Nosso construtor vai pegar o primeiro valor do array cid e atribuí-lo à id. O método setId( ) pode ser usado para definir a id. Quando alteramos o valor da id igualando-o com o valor que o modelo forneceu, os dados ficam desatualizados. É por este motivo que "limpamos" os dados com $this->_dados = null.
Por fim, precisamos de um método para obter os dados. O getDados( ) checa se a propriedade _dados foi populada. Se foi, simplesmente devolve os dados; se não foi, vai buscar os dados na base de dados.