Google Pus Twitter Facebook RSS
Estatisticas
O GUX Brasil conta com 533 membros cadastrados.
Um total de 749 tópicos e um total de 5008 mensagens no fórum.
Usuários online
1 usuário(s) online (1 usuário(s) navegando na seção: Artigos)

Usuários: 0
Visitantes: 1

mais...
Artigos > XOOPS > Módulos > Desenvolvimento > Criando Módulos XOOPS - 01: Fundamentos

Criando Módulos XOOPS - 01: Fundamentos

Publicado por Luisx em 23-01-2011 (2868 leituras)

Criando Módulos XOOPS – 01: Fundamentos.

Olá pessoal, vamos começar um "mini curso" sobre criação de módulos para o XOOPS, em vários tutoriais, cada um tratando de características dos recursos disponíveis a serem usados no desenvolvimento de um módulo.

Os temas tratados aqui têm origem nos tutoriais do Kaotik (www.kaotik.biz), da Nave-mãe (dev.xoops.org), materiais esparsos nas comunidades locais dos demais países e nas experiências próprias.

A meta é um tutorial novo por semana, porém já peço as vênias antecipadas caso algum deles não saia exatamente no período semanal.

Para cada tutorial, vamos abrir um tópico no Fórum, para discussões e tirar dúvidas, reservando os comentários do artigo para complementos ao texto, que aproveito para convocar o pessoal que tiver algo a contribuir que o faça também!

Lembramos que o foco deste "mini curso" é criar um módulo Xoops e não as linguagens PHP, MySQL, SMARTY, Javascript ou técnicas de Ajax, mas é claro que para tudo dar certo falaremos disso também, o suficiente para funcionar.

Sem mais delongas, vamos ao assunto:

01: Fundamentos para criação de módulos para XOOPS.

01.1. Inicialmente precisamos preparar o ambiente de desenvolvimento, ou seja, verificar se temos as ferramentas necessárias. Para desenvolver os tutoriais, estarei usando localmente o kit Xampp (Apache, MySql e PHP) em português (apachefriends.org/pt_br/), o XOOPS 2.5.0 (disponível na seção de Downloads aqui no GUX), como editor de código estou usando o Notepad ++, mas podem usar qualquer outro que goste mais.

01.2. O XOOPS é um CMS que se difundiu rápido principalmente pela sua solidez e flexibilidade, principalmente pelo formato modular de fácil e rápido desenvolvimento, como vocês verão.

01.3. Todo módulo XOOPS precisa no mínimo de dois arquivos para funcionar, o famoso xoops_version.php e o index.php.

01.3.1. O arquivo xoops_version.php é o responsável pelas informações necessárias ao XOOPS sobre o funcionamento do módulo a que pertence, dizendo ao core os recursos que ele precisa.

01.3.2. O index.php é o arquivo que o navegador vai procurar para ler, onde deverá estar o código do conteúdo objeto do módulo.

01.4.1. Vamos fazer nosso arquivo xoops_version.php:

a) Vamos até o diretório "..modules" e criamos uma nova pasta com o nome "meumodulo";

b) Abrimos o editor que gostamos e começamos com a abertura do código php "";

c) Sempre entre estes dois comandos incluímos os códigos que trataremos;

d) Neste ponto do tutorial queremos criar o módulo mínimo, portanto digitaremos apenas o seguinte código:

< ?php
// definimos o nome do módulo que aparecerá no sistema do XOOPS
$modversion['name'] = "Meu Módulo";

// definimos o nome do diretório root do módulo
$modversion['dirname'] = "meumodulo";

// definimos se o módulo vai aparecer no menu principal, se sim marcamos 1, se não marcamos 0
$modversion['hasMain'] = 1;
? >

e) Salvamos no diretório "..modulesmeumodulo" com o nome xoops_version.php. Observação: Estou usando palavras acentuadas tanto nos comentários como nas informações, isso porque meu editor já está configurado para o arquivo ser codificado em UTF-8, observe isso no seu editor também.

01.4.2. Agora vamos fazer nosso arquivo index.php:

a) No editor que gostamos e começamos com a abertura do código php ""; (daqui para frente não lembrarei mais deste detalhe)

b) Sempre entre estes dois comandos incluímos os códigos que trataremos; (daqui para frente não lembrarei mais deste detalhe)

c) Precisamos no mínimo chamar o arquivo "mainfile.php" que contém os dados gerais do XOOPS, bem como precisamos chamar os arquivos "header.php" e "footer.php" que criam todo o esquema de funcionamento do XOOPS;

d) E também devemos criar o código próprio do módulo, vejamos:

< ?php
// chamamos o arquivo mainfile.php
require_once('../../mainfile.php');
// chamamos o arquivo header.php
require_once(XOOPS_ROOT_PATH.'/header.php');

// adicionamos o código necessório ao funcionamento do módulo
echo " <h1> Olá GUX, este é seu primeiro e mais simples módulo</h1> ";
echo " <p> logo este módulo estará bem mais usável</p> ";

// chamamos o arquivo footer.php
require(XOOPS_ROOT_PATH.'/footer.php');
? >

e) Salvamos no diretório "..modulesmeumodulo" com o nome index.php. e pronto, temos nosso primeiro módulo XOOPS, logo no primeiro tutorial, viram como o XOOPS é fácil e flexível!

01.4.3. Vamos agora até a administração de módulos instalar o nosso mais novo módulo. Vocês perceberão que na lista de módulos a instalar aparecerá apenas o nome "Meu Módulo" e a versão 0, pois fizemos até agora um módulo mínimo.

01.4.4. Vamos até a página inicial e vemos que apareceu mais um link com o nome "Meu Módulo", ao clicar nele vai aparecer o resultado do código incluído no arquivo index.php.

01.5. Mas queremos criar um módulo nos padrões do XOOPS, então vamos modificar algumas linhas dos nossos arquivos já existentes.

01.5.1. Todos os arquivos do XOOPS e dos módulos deve conter os comentário no cabeçalho que especificam dados do arquivo e da licença e sistema a que está vinculado:

< ?php
// $Id: nomedoarquivo.php,v x.xx 2011/xx/xx 00:00:00 nomedodesenvolvedor Exp $
// ------------------------------------------------------------------------ //
// XOOPS - PHP Content Management System //
// Copyright (c) 2000-2011 XOOPS.org //
// //
// ------------------------------------------------------------------------ //
// This program is free software; you can redistribute it and/or modify //
// it under the terms of the GNU General Public License as published by //
// the Free Software Foundation; either version 2 of the License, or //
// (at your option) any later version. //
// //
// You may not change or alter any portion of this comment or credits //
// of supporting developers from this source code or any supporting //
// source code which is considered copyrighted (c) material of the //
// original comment or credit authors. //
// //
// This program is distributed in the hope that it will be useful, //
// but WITHOUT ANY WARRANTY; without even the implied warranty of //
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the //
// GNU General Public License for more details. //
// //
// You should have received a copy of the GNU General Public License //
// along with this program; if not, write to the Free Software //
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA //
// ------------------------------------------------------------------------ //
? >

01.5.2. O arquivo xoops_version.php também pode conter algumas informações importantes que completam o sistema de controle do módulo, como autor, descrição do módulo, licença, documentação, etc, algo como uma ficha técnica do módulo.

01.5.3. Então o xoops_version.php ficará assim:

< ?php
// $Id: xoops_version.php,v 1.0 2011/01/23 09:35 Luisx Exp $
// ------------------------------------------------------------------------ //
// XOOPS - PHP Content Management System //
// Copyright (c) 2000-2011 XOOPS.org //
// //
// ------------------------------------------------------------------------ //
// This program is free software; you can redistribute it and/or modify //
// it under the terms of the GNU General Public License as published by //
// the Free Software Foundation; either version 2 of the License, or //
// (at your option) any later version. //
// //
// You may not change or alter any portion of this comment or credits //
// of supporting developers from this source code or any supporting //
// source code which is considered copyrighted (c) material of the //
// original comment or credit authors. //
// //
// This program is distributed in the hope that it will be useful, //
// but WITHOUT ANY WARRANTY; without even the implied warranty of //
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the //
// GNU General Public License for more details. //
// //
// You should have received a copy of the GNU General Public License //
// along with this program; if not, write to the Free Software //
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA //
// ------------------------------------------------------------------------ //

// definimos o nome do módulo que aparecerá no sistema do XOOPS
$modversion['name'] = "Meu Módulo";
// definimos o a versão atual do módulo
$modversion['version'] = 1.0;
// definimos o autor do módulo
$modversion['author'] = "GUX Brasil";
// definimos uma descrição do módulo, que aparecerá nas informações gerais do módulo
$modversion['description'] = "Módulo resultado da série de tutoriais sobre desenvolvimento de módulos para XOOPS";
// definimos os créditos - colaboradores com o módulo
$modversion['credits'] = "Luisx e usuários do GUX Brasil";
// definimos o local do arquivo de ajuda (documentação) do módulo (o endereço é relativo ao root do módulo ou seja "..modulesmeumodulo"
$modversion['help'] = "ajuda.html";
// definimos o tipo de licença de distribuição do módulo - o XOOPS e todos os seus componentes, inclusive os módulos de terceiros devem ser distribuídos com a licença GPL
$modversion['license'] = "GPL veja a LICENÇA";
// definimos se o módulo é reconhecido pela nave mãe (xoops.org) ou não, ou seja, se faz parte de uma distribuição oficial, praticamente todos não são, se oficial marcamos 1 se não oficial marcamos 0
$modversion['official'] = 0;
// definimos a imagem (logo) do módulo, para identificarmos no sistema
$modversion['image'] = "images/meumodulo_logo.png";
// definimos o nome do diretório root do módulo
$modversion['dirname'] = "meumodulo";

// definimos se o módulo vai aparecer no menu principal, se sim marcamos 1, se não marcamos 0
$modversion['hasMain'] = 1;
? >

01.5.3.1. Detalhe importante, na primeira linha do comentário de cabeçalho consta a informação "v 1.0", vale lembrar que essa informação de versão é a do arquivo e não tem nada a ver com a versão do módulo que está na informação "$modversion['version'] = 1.0".

01.5.3.2. Ainda, na administração o módulo não tem uma imagem, fica aparecendo duas vezes o nome do módulo, então vamos resolvemos isso criando uma imagem para o módulo, no editor de imagem favorito, criamos uma imagem com as dimensões 92x52 pixels e salvamos com o nome "meumodulo_logo.png" dentro do diretório "meumoduloimages" recém criado.

01.5.3.2.1. Para dar uma força, pode copiar a imagem aqui do artigo.

Meu Módulo Logo

01.5.4. E o arquivo index.php, ficará assim:

< ?php
// $Id: index.php,v 1.0 2011/01/23 09:37 Luisx Exp $
// ------------------------------------------------------------------------ //
// XOOPS - PHP Content Management System //
// Copyright (c) 2000-2011 XOOPS.org //
// //
// ------------------------------------------------------------------------ //
// This program is free software; you can redistribute it and/or modify //
// it under the terms of the GNU General Public License as published by //
// the Free Software Foundation; either version 2 of the License, or //
// (at your option) any later version. //
// //
// You may not change or alter any portion of this comment or credits //
// of supporting developers from this source code or any supporting //
// source code which is considered copyrighted (c) material of the //
// original comment or credit authors. //
// //
// This program is distributed in the hope that it will be useful, //
// but WITHOUT ANY WARRANTY; without even the implied warranty of //
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the //
// GNU General Public License for more details. //
// //
// You should have received a copy of the GNU General Public License //
// along with this program; if not, write to the Free Software //
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA //
// ------------------------------------------------------------------------ //

// chamamos o arquivo mainfile.php
require_once('../../mainfile.php');
// chamamos o arquivo header.php
require_once(XOOPS_ROOT_PATH.'/header.php');

// adicionamos o código necessório ao funcionamento do módulo
echo " <h1> Olá GUX, este é seu primeiro e mais simples módulo</h1> ";
echo " <p> logo este módulo estará bem mais usável</p> ";

// chamamos o arquivo footer.php
require(XOOPS_ROOT_PATH.'/footer.php');
? >

01.5.5. Voltamos ao gerenciador de módulos e atualizamos o nosso módulo, para os novos dados passarem a fazer parte do XOOPS.

01.5.6. Pronto, temos um módulo mínimo, com um pouco do padrão do XOOPS já implementado. Nos próximos tutoriais vamos ampliar os códigos destes artigos.

01.6. Não disponibilizei os arquivos com os códigos, pois acredito que digitar os mesmos é uma boa forma de consolidar os conhecimentos, no futuro quando os códigos ficarem mais extensos repensamos essa posição.

01.7. Lembrem que as discussões e dúvidas estão no Fórum, no tópico Criando Módulos Xoops – 01: Fundamentos.


Navegue pelos artigos
Criando Módulos XOOPS - 02: Constantes Próximo artigo
avaliação 0.00/5
avaliação: 0.0/5 (0 votos)
Os votos estão desabilitados!
Os comentários são de propriedade de seus respectivos autores. Não somos responsáveis pelo seu conteúdo.
Enviado por Tópico
leomissao
Publicado em: 23-01-2011 20:04  Atualizado: 24-01-2011 10:39
Veterano
Usuário desde: 21-02-2010
Localidade: Jequié
Mensagens: 425
 Re: Criando Módulos XOOPS - 01: Fundamentos


Excelente artigo Luis.

Estarei acompanhando.

Obrigado.

Dilmar
Publicado em: 24-01-2011 09:03  Atualizado: 24-01-2011 09:03
Participativo
Usuário desde: 24-02-2010
Localidade: Curitiba
Mensagens: 99
 Re: Criando Módulos XOOPS - 01: Fundamentos

Parabéns pelo Tutorial, atitude assim é que faz o Xoops progredir e dissipar-se cada vez mais! 
Estarei acompanhando também para aprender, já estou salvando em pdf para estudar!

RegisCosta
Publicado em: 25-01-2011 20:50  Atualizado: 25-01-2011 20:50
Iniciante
Usuário desde: 11-03-2010
Localidade: Internet
Mensagens: 6
 Ótimo artigo

É disso que precisávamos, parabéns pelo ótimo artigo e pela atitude de cooperar para o crescimento do Xoops no Brasil.