Criando um módulo extra

Compreender como o modulo é organizado dentro do sistema é o primeiro passo para desenvolver.
Para tanto, tenha em mente que cada modulo deve ser representado por um diretório com nome exclusivo, escrito em minúsculo e armazenado no diretório /modulos/extras.
Dentro do diretório são armazenados os arquivos do modulo, sendo que a base do modulo será o arquivo que leva seu nome, nesse caso, moduloExemplo.php
*index.php é apenas uma proteção para o diretório
No diretório do módulo podem ser incluídos diversos outros arquivos e bibliotecas a depender de sua necessidade final. No nosso exemplo incluiremos um arquivo de estilos CSS chamado style.css e um arquivo para javascript chamado de scripts.js
Junto desse material você recebeu os arquivos de exemplo para o desenvolvimento do primeiro modulo, que desmembramos abaixo.

Arquivo /modulos/extras/moduloExemplo/moduloExemplo.php

Esse é o arquivo inicial do modulo, deve ser armazenado dentro do diretório do modulo que está sendo criado.
Seu nome deve ser o mesmo nome do diretório acrescido de .php Aqui se inicia a configuração do modulo.
Início do arquivo
<?php
if(VALIDA_MODULO!=1){//PROTEÇÃO DO MÓDULO
die('acesso negado');
exit();
}
Variável $extra['moduloExemplo']
Essa variável carrega os parâmetros do seu módulo sendo que a chave 'moduloExemplo' deve ser o mesmo nome do seu modulo
$extra['moduloExemplo']=array(
'nome' => "Modulo extra (exemplo)",
'autor' => "HOSTMGR",
'versao' => '1.0',
'descricao' => 'Complemento de demonstração para criação de modulo extra'
);
Importante. O parâmetro versão deve sempre ser preenchido usando o padrão x.x sendo permitido apenas um dígito após o ponto. Isso é importante para trabalhar os updates do módulo.

Funções do modulo

O módulo conta com 4 funções necessárias para sua operação, que são executadas em determinadas etapas sendo: Ativar, Update, Desativar e Executar.
Função Ativar
Essa função contem a relação de comandos que serão executadas quando o usuário clicar para ativar o modulo.
É comumente utilizado para criar tabelas na base de dados.
# ATIVAR O COMPLEMENTO
function extra_moduloExemplo_ativar(){
global $banco;
$sql=mysqli_query($banco->con,"CREATE TABLE IF NOT EXISTS mod_moduloExemplo (
id INT( 11 ) NOT NULL AUTO_INCREMENT PRIMARY KEY ,
id_servidor INT( 11 ) NOT NULL ,
parametro TEXT NOT NULL ,
id_produto INT( 11 ) NOT NULL
);");
if($sql){
return true;
}else{
return false;
}
}
Função Update
Quando houverem modificações no modulo, podem ser necessário executar específicos, como por exemplo atualizar uma tabela na base de dados ou adicionar novas tabelas.
Essa função trabalha em conjunto com o parâmetro Versão, desse modo sempre que for feito o upload de novos arquivos do modulo e o sistema identificar que a versão declarada no parametro versão for maior que a versão registrada na base de dados, será disponibilizado ao usuário fazer o update do módulo.
O botão será exibido em configurações, Gerenciar Módulos Extras.
Ao clicar em Atualizar a função será chamada
# UPDATE O COMPLEMENTO
function extra_moduloExemplo_update(){
# CODIGO ao ATUALIZAR DA VERSÃO anterior para mais recente
global $banco, $extra;
$sql=mysqli_query($banco->con,"CREATE TABLE IF NOT EXISTS mod_moduloExemplo (
id INT( 11 ) NOT NULL AUTO_INCREMENT PRIMARY KEY ,
id_servidor INT( 11 ) NOT NULL ,
parametro TEXT NOT NULL ,
id_produto INT( 11 ) NOT NULL
);");
if($sql){
$sql=$banco->query("UPDATE modulosextras SET versao='".$extra['moduloExemplo']['versao']."' WHERE modulo='moduloExemplo' LIMIT 1;");
return true;
}else{
return false;
}
return true;
}
Função Desativar
Função executada quando o usuário decide desativar o modulo.
Normalmente usado para excluir as tabelas do modulo
# DESATIVAR O COMPLEMENTO
function extra_moduloExemplo_desativar(){
global $banco;
$sql=$banco->query("DROP TABLE mod_moduloExemplo");
if($sql){
return true;
}else{
return false;
}
}
Função Executar
Essa função é responsável pela execução do modulo em si. É nela que serão executados todos os comandos do seu modulo e exibidas as informações ao usuário.
Você pode criar outros arquivos e funções e chamar essas informações dentro da função executar.
Você deve preparar todo o código de saida que será impresso no retorno da função.
# CHAMAR MODULO
function extra_moduloExemplo_executar(){
global $banco;
$output='<div class="panel">
<div class="panel-body">'.mod_moduloExemploFunction().'</div>
</div>';
$output.='
<link href="../modulos/extras/moduloExemplo/style.css" rel="stylesheet" type="text/css" />
<script src="../modulos/extras/moduloExemplo/scripts.js"></script>
';
return $output;
}
function mod_moduloExemploFunction(){
$x='Teste Olá Modulo';
return $x;
}