| Índice do Artigo |
|---|
| Adicionando um ícone junto aos do pdf, print e email |
| Trocando views |
| Todas as páginas |
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):
content.php
controller.php
index.html
metadata.xml
router.php
view.php
helpers --------|
|- icon.php
|- index.html
|- query.php
|- route.php
models ---------|
|- archive.php
|- article.php
|- category.php
|- frontpage.php
|- index.html
|- section.php
views-----------|
|- archive -----|
|- index.html
|- metadata.xml
|- view.html.php
|- tmpl -----|
|- default.php
|- default.xml
|- default_items.php
|- index.html
|- article -----|
|- index.html
|- metadata.xml
|- view.html.php
|- view.pdf.php
|- tmpl -----|
|- default.php
|- default.xml
|- form.php
|- form.xml
|- index.html
|- pagebreak.php
|- pagebreak.xml
|- category ----|
|- index.html
|- metadata.xml
|- view.feed.php
|- view.html.php
|- tmpl -----|
|- blog.php
|- blog.xml
|- blog_item.php
|- blog_links.php
|- default.php
|- default.xml
|- default_items.php
|- index.html
|- frontpage ---|
|- index.html
|- metadata.xml
|- view.feed.php
|- view.html.php
|- tmpl -----|
|- default.php
|- default.xml
|- default_item.php
|- default_links.php
|- index.html
|- section -----|
|- index.html
|- metadata.xml
|- view.feed.php
|- view.html.php
|- tmpl -----|
|- blog.php
|- blog.xml
|- blog_item.php
|- blog_links.php
|- default.php
|- default.xml
|- index.html
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á...






3630 registros
0 hoje
14 nesta semana
4 neste mês