Informática Numaboa - Tutoriais e Programação

Adicionando um ícone junto aos do pdf, print e email

Seg

8

Dez

2008


19:04

  • Imprimir
(4 votos, média 3.25 de 5) 


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:

  1. Em primeiro lugar, é preciso saber onde os ícones pdf, imprimir e email (com seus respectivos links) estão sendo gerados.
  2. Depois disto, é preciso saber qual template está sendo utilizado para gerar as páginas onde queremos o novo ícone.
  3. 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á...


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

views-----------| |- article -----| |- tmpl -----| |- default.php

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:

nosso_template ---| |- html ----| |- com_content ----| |- article ----| |- default.php

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:

params->get('show_pdf_icon') || $this->params->get('show_print_icon') || $this->params->get('show_email_icon')) : ?>
print) : ?> params->get('show_email_icon')) : ?> article, $this->params, $this->access); ?> params->get( 'show_print_icon' )) : ?> article, $this->params, $this->access); ?> params->get('show_pdf_icon')) : ?> article, $this->params, $this->access); ?> article, $this->params, $this->access); ?>

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):

... Home page

Finalmentes

Fácil, né não? Pois é, quando a gente conhece o caminho das pedras, tudo fica facinho smile

казино eurogrand автоматыникас харьковсайты отзывовтрансформеры ноутбукиалександр лобановский харьковкак правильно наносить консилер фотоцены никас