Informática Numaboa - Tutoriais e Programação
Adicionando um ícone junto aos do pdf, print e email
Seg 8 Dez 2008 19:04 |
- Detalhes
- Categoria: Joomla
- Atualização: Segunda, 02 Julho 2012 19:45
- Autor: vovó Vicki
- Acessos: 9821
Escrevi este tutorial a pedido do meu amigo Jonnathan que me mandou um email perguntando "como inserir um novo icone do lado dos icones e-mail, imprimir, pdf, etc.. com uma nova função". Achei a idéia interessante, principalmente por que, para implementar um projeto destes, é preciso conhecer alguns aspectos relevantes do CMS Joomla.
Etapas do projeto
As etapas deste projeto são as seguintes:
- Em primeiro lugar, é preciso saber onde os ícones pdf, imprimir e email (com seus respectivos links) estão sendo gerados.
- Depois disto, é preciso saber qual template está sendo utilizado para gerar as páginas onde queremos o novo ícone.
- Finalmente, é preciso substituir o arquivo original que gera os ícones (e outras partes das páginas) por um outro que faça parte do conjunto de arquivos do template escolhido.
Conhecendo o caminho das pedras, este projeto até que é simples de implementar. Então, vamos lá.
Arquivo primário que cria as páginas
O componente, que faz parte do sistema Joomla, responsável pela apresentação de páginas colocadas em classes e categorias (assim como as não categorizadas) é o com_content. Este componente realiza todas as tarefas e, para a apresentação final, busca o template que designamos para a classe e/ou categoria do artigo (com isto, também o template do próprio artigo). A estrutura do com_content é a seguinte (procure no diretório /components/com_content):
Eu sei que é uma canseira ver toda esta árvore de diretórios e seus arquivos, mas isto é essencial para entender como funciona a etapa 3 do nosso projeto. Todos os arquivos index.html podem ser ignorados - eles apenas estão presentes em todos os diretórios por motivo de segurança. Se alguém chamar um destes diretórios diretamente, usando um endereço como "www.seusite.com.br/components/helpers/", vai receber apenas uma página em branco e não a listagem dos arquivos e dos sub-diretórios.
O único arquivo que nos interessa no momento é um dos default.php, mas antes umas palavrinhas sobre templates.
Os templates
Uma das características dos templates (que estão todos em sub-diretórios do diretório /templates) é que são chamados pelo componente com_content para fornecerem "a cara da página". São responsáveis pela cor de fundo, cor do texto, jeitão dos links e por aí vai. Acontece que têm mais uma característica muito especial: se houver um arquivo com o mesmo nome no diretório /html/com_content/article, /html/com_content/category, etc, o arquivo do componente com_content será automaticamente subsituído pelo do template.
Este é o pulo do gato! Podemos trocar o arquivo original por outro que faça exatamente o que queremos! Então vamos lá...
Trocando views
Na arquitetura CMV (Control - Model - View) dos componentes Joomla, as views (ou visões) são as responsáveis pela apresentação do conteúdo. No componente com_content a visão para um artigo está em
O arquivo default.php é chamado quando a página é montada. Se quisermos modificar a apresentação do conteúdo, este arquivo precisa ser substituído. A substituição é automática se colocarmos um arquivo de mesmo nome no diretório do nosso template obedecendo a seguinte arquitetura de diretórios:
Podemos usar um arquivo que já esteja pronto e depois modificá-lo de acordo com as nossas necessidades. Sugiro que você copie este arquivo de um dos templates que são instalados junto com o Joomla. Edite o novo default.php e procure pelo seguinte trecho de código:
Aqui são testadas as condições se os ícones de email, imprimir e pdf devem ser mostrados ou não, e é aqui que vamos pegar uma carona. Neste caso específico (outros templates podem ter outros elementos), dentro do bloco <div class="buttonheading"> vamos colocar nosso código e referenciar nosso ícone. Falando em ícone, não se esqueça de colocá-lo no diretório /nosso_template/images/icone.png. Observe a seguir a chamada do ícone e o link que põe o endereço da home page do site (ou outra função qualquer que você designar para ele):