sexta-feira, 28 de outubro de 2011

Como instalar uma extensão no Joomla (1.7)

O Joomla é muito bom. Bastam as features com que vem de origem para fazer websites bastante completos e com um “look” profissional.

Mas, ao fim de algum tempo surge a necessidade de, no site que montámos, incluir algo que não é possível com os módulos de origem.

Então, é necessário instalar uma extensão no Joomla. Em http://extensions.joomla.org/ ou http://developer.Joomla.org, entre outros sítios, é possível pesquisar e encontrar diversas extensões para o Joomla.

Há cinco tipos principais de extensões, no Joomla: Componentes, Módulos, Plugins, Templates, e Linguagens. Cada um dos tipos lida com funcionalidade específica (ver http://docs.joomla.org/Extension_types_(general_definitions)).

Outras possíveis extensões são Library e File. Libraries são pacotes de código que fornecem funcionalidade à framework Joomla ou às suas extensões. File são ficheiros.

Instalar o Joomla...

O Joomla é outro conhecido framework de portal, disponibilizado sob a licença GNU/GPL, que parece ser o sucessor do PHP-Nuke.

A sua instalação é muito parecida à do PHP-Nuke, e torna-se bastante trivial, após instalação do XAMP (descrita noutro post).

A versão que instalei foi a 1.7.2 e segui os passos indicados em http://docs.joomla.org/Use_Joomla!_on_your_own_computer, apesar de ter feito a instalação no Windows.

No entanto, para o Windows, a instalação parece ser bastante mais fácil, podendo ser usado um instalador Web --> http://www.microsoft.com/web/joomla/

Esse instalador instala os pré-requisitos, assim como o Webmatrix, para além do Joomla, obviamente.

Instalar o PHP-Nuke...

O PHP-Nuke é um conhecido framework de portal, disponibilizado sob a licença GNU/GPL, no qual podem ser instalados inúmeros módulos, ou para o qual podem ser desenvolvidos novos módulos em Php.

Instalei-o hoje no meu PC (WINDOWS 7) e decidi resumir neste post a forma como resolvi os problemas.

Para a instalação do PHP-Nuke, e uma vez que não tinha instalado o Apache, PHP e MySQL, foram feitos os seguintes passos:

- Download do XAMPP (bundle que traz o Apache, PHP e MySQL)
- Instalar o XAMPP.
- Arrancar os serviços (previamente desligar o IIS)
- Download do PHP-Nuke e descompactá-lo para uma directoria
- Correr o PHP-Nuke (obviamente dá erro, mas disponibiliza um link para a instalação fácil)
- Alterar o php.ini para ignorar warnings de funções antigas

Os pontos 1 e 2 são triviais. O XAMPP pode ser downloaded de http://www.apachefriends.org/en/xampp-windows.html ou http://www.baixaki.com.br/download/xampp.htm.

Eu usei a versão XAMPP 1.7.7, que inclui:

- Apache 2.2.21
- MySQL 5.5.16
- PHP 5.3.8
- phpMyAdmin 3.4.5
- FileZilla FTP Server 0.9.39
- Tomcat 7.0.21 (with mod_proxy_ajp as connector)

Já, no ponto 3, o arranque do Apache na porta 80, está dependente da desactivação do IIS (ou arrancar um deles noutra porta...)

--> Para desactivar o IIS basta ir ao Painel de Controlo-->Sistema e Segurança-->Ferramentas Administrativas, abrir o Gestor de Serviços de Informação Internet (IIS) e parar o serviço.

O ponto 4, download do PHP-Nuke, pode ser feito de http://phpnuke.org/index.php. Usei a versão 8.2, e descompactei-o para htdocs\phpnuke.

Depois, corri o phpnuke descompactado, o que provoca um warning de uma função "deprecated", mas disponibiliza um link para uma instalação fácil (não vou falar do outro modo de instalação porque não foi necessário usá-lo).

Este passo pede diversa informação, entre a qual está o nome da BD do MySQL onde vai ser instalada a BD do Nuke.

Após a instalação, ao correr o PHP-Nuke instalado, aparece a primeira página do portal, mas com uma lista de várias linhas com warnings de funções "deprecated". Isto não impede o Nuke de correr correctamente, mas obviamente não fica bem no nosso portal. A maneira mais simples de contornar este problema é "esconder essas mensagens", alterando o ficheiro php.ini com as duas linhas seguintes:

display_errors = off
error_reporting = E_ALL & ~E_DEPRECATED & ~E_NOTICE

Isto resolve o problema e permite-nos começar a explorar o Nuke.