A Aldeia Numaboa ancestral ainda está disponível para visitação. É a versão mais antiga da Aldeia que eu não quis simplesmente descartar depois de mais de 10 milhões de pageviews. Como diz a Sirley, nossa cozinheira e filósofa de plantão: "Misericórdia, ai que dó!"

Se você tiver curiosidade, o endereço é numaboa.net.br.

Leia mais...

Informática Numaboa - Tutoriais e Programação

Componente 1.5 MVC - Funcionalidade admin

Ter

22

Jan

2008


14:10

(16 votos, média 4.13 de 5) 


O esqueleto da interface administrativa do componente Olá Pessoal está pronta. Agora falta colocar um pouco de tempero para poder "pilotar" o componente através dos botões da barra de ferramentas. Neste tutorial veremos como implementar as funções básicas de um componente para poder adicionar, editar e deletar registros na sua tabela de dados.

No estágio em que está nosso componente, a seção administrativa não serve para grandes coisas - mostra apenas os registros existentes na base de dados. Para torná-la um pouco mais funcional será preciso adicionar alguns botões e links.

A barra de ferramentas

Já colocamos um título e alguns botões na barra de ferramentas do nosso componente. Como se trata de elementos de tela, o código que faz esta proeza não poderia estar em outro arquivo a não ser o views/olas/view.html.php. Só para relembrar:

JToolBarHelper::title( JText::_( 'Administrar Olás' ), 'generic.png' ); JToolBarHelper::deleteList(); JToolBarHelper::editListX(); JToolBarHelper::addNewX();

O método JText::_( ) facilita a tradução do componente. Se houver um arquivo de idioma para o componente, esta função procura a string passada como argumento no arquivo da linguagem: se for encontrada, usa a tradução correspondente; se não for encontrada, mantém a string passada como parâmetro.

Usamos também três métodos da classe JToolBarHelper (o ajudante da barra de ferramentas) para criar os botões. O método deleteList( ) pode ter até três parâmetros opcionais: o primeiro é uma string que será mostrada para o usuário para confirmar a eliminação do(s) registro(s); o segundo é a tarefa que deve ser enviada com a query (a default é 'remove') e o terceiro é o texto que deve aparecer em baixo do botão.

Os métodos editListX e addNewX podem ter dois parâmetros, também opcionais. O primeiro é a tarefa (a default é 'edit' e 'add', respectivamente) e o segundo é o texto que deve ser mostrado em baixo do botão.

Checkboxes e Links

Agora temos botões. Dois deles atuam sobre registros. Como saber sobre quais registros atuar? Só há uma maneira: fazer com que o usuário os indique. Para isto precisamos colocar um checkbox ao lado de cada um dos registros para que o usuário possa fazer a sua escolha e um checkbox que marca todos eles.

Checkboxes são elementos de tela, portanto fazem parte da visão e devem entrar no código do template. Modifique o arquivo /views/olas/tmpl/default.php conforme mostrado a seguir:

Inserir (1) - Aqui colocamos algumas linhas de código para gerar um checkbox que marca todos os checkboxes da lista de saudações. Não se preocupe com a Javascript. A função checkall( ) faz parte do framework do Joomla e faz exatamente o que precisamos.

itens ); $i < $n; $i++) { $row =& $this->itens[$i];

Inserir (2) - Aqui colocamos um checkbox em cada linha. Desta vez não será preciso criar o checkbox na unha porque podemos usar o método JHTML::_( ) da classe JHTML.

$checado = JHTML::_( 'grid.id', $i, $row->id );

Inserir (3) - É meio chato marcar um registro e depois ter que subir com o cursor do mouse para clicar no botão Editar. Para facilitar as coisas, podemos colocar um link na mensagem que nos leva diretamente até a tela de edição. Criamos o link usando o método JRoute::_( ) da seguinte forma:

$link = JRoute::_( 'index.php?option=com_ola&controller=ola&task=edit&cid[]='. $row->id ); ?> ">

Inserir (4) - Adicionamos uma célula com o checkbox criado em Inserir(2) entre as duas que já existem:

id; ?>

Alterar - Aqui usamos o link criado em Inserir(3). Observe que este link aponta para o nosso novo controlador que vai administrar a manipulação de dados das nossas mensagens.

mensagem; ?>

Testando as alterações

Se você instalou o componente "Olá Pessoal" versão 1.3 e quiser testar estas alterações, modifique o arquivo default.php como indicado, faça o login na área administrativa e chame o componente clicando em Componentes - Olá Pessoal. A nova tela deve mostrar o seguinte:

Nova tela
Fig. 1 - Backend com checkboxes

Informações adicionais