# Funções do módulo

Esse arquivo armazena as funções e principais comandos do modulo, seu nome é padrão e deve ser sempre armazenado dentro do diretório do modulo

Diversas funções podem ser executadas a partir desse arquivo, sendo algumas definidas como padrão e outras customizáveis que podem ser incluídas no próprio sistema. Vejamos:

{% hint style="info" %}
Todas as funções devem iniciar com o nome do modulo. Ex. **moduloExemplo\_**&#x61;cao\_criar&#x20;
{% endhint %}

## Funções internas do modulo

As funções internas ou auxiliares são criadas por você para manuseio interno do seu modulo, sendo, portanto, funções que serão criadas de acordo com sua necessidade, e utilizadas dentro dos módulos de comando, por exemplo, uma função de POST ou autenticação API para comunicação com sua plataforma externa.

```
function moduloExemplo_funcao_auxiliar($parametros){ //conectar à sua API por exemplo
	
	//seu código aqui
	
	$sucesso=true;
	
	if($sucesso){
		$retorno='xxxxxxxx';
	}else{
		$retorno='erro';
	}
	
	return $retorno;
}
```

Seu uso não é obrigatório.

Seu nome deve ser sempre precedido pelo nome do modulo acrescido de *, No nosso exemplo, moduloExemplo* seguido pelo nome da função.

{% hint style="danger" %}
Nota: nunca crie funções interna no modulo sem adicionar o prefixo com seu nome a fim de se evitar conflitos com outras funções do sistema ou de outros módulos.
{% endhint %}

## Função moduloExemplo\_acao\_criar($parametros)

```
function moduloExemplo_acao_criar($parametros){

	echo'<pre>';
	
	print_r($parametros);
	
	echo'</pre>';
	
	//exit();
	
	//Seu código para criar contas aqui
	
	$sucesso=true;
		
	if($sucesso){
		$resultado=array('status'=>'sucesso');
	}else{
		$resultado=array('status'=>'erro','msg'=>'Mensagem de erro');
	}
	
	return $resultado;
}
```

Essa função tem por finalidade ativar novas contas por meio da integração externa.

A função recebe todos os dados necessários para você conectar-se junto a sua API de integração, ativando a conta.

Essa função possui um nome padrão e também deve ser precedida por NOMEDOMODULO\_, para seu perfeito funcionamento.&#x20;

A função é executada toda vez que o operador, na tela da conta/produto, clica no botão criar, ou quando o pagamento é confirmado (caso o produto esteja configurado para tanto)

As principais informações estão armazenadas na variável **$parametros** onde estão organizados os dados distribuídos em arrays.

**$parametros\['conta']** – Array que contem os dados da conta que está sofrendo a intervenção, como id\_conta, domínio, login, senha, data de cadastro, entre outras. Confira o anexo com a relação de variáveis.

**$parametros\['cliente']** – Array que contem os dados do cliente como (nome, empresa, telefone, email, endereço, numero, bairro, cidade, estado, cpf\_cnpj)

**$parametros\['produto']** – Array que contem os dados referentes ao produto e ao seu modulo. São os valores dos produtos e dos campos que você criou. No nosso exemplo, **plano e featurelist**.

**$parametros\['servidor']** – Array que contem os dados do servidor em que o produto está sendo criado. Dentre os valores estão os campos criados pela variável **$modulo\_servidor\_campos**. No nosso exemplo, **login, senha, hash e ssl**.

{% hint style="info" %}
Caso haja alguma dúvida quanto ao correto nome do campo a ser utilizado você pode listar todos os campos por meio da função print\_r conforme o exemplo a seguir:
{% endhint %}

```
<?php echo‟<pre>‟;

print_r($parametros); //lista todos os parametros disponíveis
echo‟</pre>‟;
exit(); ?>
```

**Retorno da função**

**IMPORTANTE:** quando a função é executada com sucesso **o status do produto é alterado de pendente para ativo**. Para que isso ocorra, é necessário que você forneça retorno adequado da função em caso de sucesso.

```
$sucesso=true;
		
if($sucesso){
	$resultado=array('status'=>'sucesso');
}else{
	$resultado=array('status'=>'erro','msg'=>'Mensagem de erro');
}
	
return $resultado;
```

O retorno é sempre um array, sendo array('status'=>'sucesso') em caso de sucesso, ou array('status'=>'erro','msg'=>'Mensagem de erro') caso haja algum erro, sendo “Mensagem de erro”, qualquer informação que identifique o erro ocorrido.

**Esse procedimento deve se repetir para todas as funções de comando do modulo.**

## Função moduloExemplo\_acao\_suspender($parametros)

```
function moduloExemplo_acao_suspender($parametros){
	
	//Seu código para suspender contas aqui
	
	$sucesso=true;
		
	if($sucesso){
		$resultado=array('status'=>'sucesso');
	}else{
		$resultado=array('status'=>'erro','msg'=>'Mensagem de erro');
	}
	
	return $resultado;
	
}
```

Essa função tem por finalidade suspender/bloquear contas no servidor externo por meio da integração.

A função recebe todos os dados necessários para você conectar-se junto a sua API de integração e suspender a conta do cliente.

Essa função possui um nome padrão e também deve ser precedida por NOMEDOMODULO\_, para seu perfeito funcionamento.

A função é executada toda vez que o operador, na tela da conta/produto, clica no botão Suspender, ou quando da execução do cron, quando identificado que o cliente está inadimplente.&#x20;

Os dados são recebidos pela variável $parametros, que trás todas as informações necessárias por meio de array.

Todas as informações estão disponíveis em chaves do array $parametros (conta, cliente, produto e servidor), tudo conforme demonstrado no item **Funcao moduloExemplo\_acao\_criar**, que você pode conferir acima.

**Retorno da função**

**IMPORTANTE:** quando a função é executada com sucesso **o status do produto é alterado de ativo para suspenso**.

Para que isso ocorra, é necessário que você forneça o retorno adequado da função em caso de sucesso.

```
$sucesso=true;
		
if($sucesso){
	$resultado=array('status'=>'sucesso');
}else{
	$resultado=array('status'=>'erro','msg'=>'Mensagem de erro');
}

return $resultado;
```

## Função moduloExemplo\_acao\_reativar($parametros)

```
function moduloExemplo_acao_reativar($parametros){
	
	//Seu código para reativar contas aqui
	
	$sucesso=true;
		
	if($sucesso){
		$resultado=array('status'=>'sucesso');
	}else{
		$resultado=array('status'=>'erro','msg'=>'Mensagem de erro');
	}
	
	return $resultado;
	
}
```

Essa função tem por finalidade reativar/desbloquear contas por meio da integração externa.

A função recebe todos os dados necessários para você conectar-se junto a sua API de integração e reativar a conta do cliente.

Essa função possui um nome padrão e também deve ser precedida por NOMEDOMODULO\_, para seu perfeito funcionamento.

A função é executada toda vez que o operador, na tela da conta/produto, clica no botão Reativar, ou quando o pagamento de uma fatura é confirmado.

Os dados são recebidos pela variável $parametros, que trás todas as informações necessárias por meio de array.

Todas as informações estão disponíveis em chaves do array $parametros (conta, cliente, produto e servidor), tudo conforme demonstrado no item Funcao moduloExemplo\_acao\_criar, que você pode conferir acima.

**Retorno da Função**

**IMPORTANTE:** quando a função é executada com sucesso **o status do produto é alterado de suspenso para ativo**. Para que isso ocorra, é necessário que você forneça o retorno adequado da função em caso de sucesso.

```php
$sucesso=true;
		
	if($sucesso){
		$resultado=array('status'=>'sucesso');
	}else{
		$resultado=array('status'=>'erro','msg'=>'Mensagem de erro');
	}
	
	return $resultado;
```

O retorno é sempre um array, sendo array('status'=>'sucesso'); em caso de sucesso, ou array('status'=>'erro','msg'=>'Mensagem de erro'); caso haja algum erro, sendo “Mensagem de erro”, qualquer informação que identifique o erro ocorrido.

## Função moduloExemplo\_acao\_finalizar($parametros)

```
function moduloExemplo_acao_finalizar($parametros){
	
	//Seu código para finalizar/excluir contas aqui
	
	$sucesso=true;
		
	if($sucesso){
		$resultado=array('status'=>'sucesso');
	}else{
		$resultado=array('status'=>'erro','msg'=>'Mensagem de erro');
	}
	
	return $resultado;
}
```

Essa função tem por finalidade **finalizar / excluir** contas do servidor externo por meio da integração.

A função recebe todos os dados necessários para você conectar-se junto a sua API de integração e finalizar a conta do cliente.

Essa função possui um nome padrão e também deve ser precedida por NOMEDOMODULO\_, para seu perfeito funcionamento.

A função é executada toda vez que o operador, na tela da conta/produto, clica no **botão Finalizar**.

Os dados são recebidos pela variável $parametros, que trás todas as informações necessárias por meio de array.

Todas as informações estão disponíveis em chaves do array $parametros (conta, cliente, produto e servidor), tudo conforme demonstrado no item Funcao moduloExemplo\_acao\_criar, que você pode conferir acima

**Retorno da Função**

**IMPORTANTE:** quando a função é executada com sucesso **o status do produto é alterado de ativo ou suspenso para encerrado**. Para que isso ocorra, é necessário que você forneça o retorno adequado da função em caso de sucesso.

```php
$sucesso=true;
		
	if($sucesso){
		$resultado=array('status'=>'sucesso');
	}else{
		$resultado=array('status'=>'erro','msg'=>'Mensagem de erro');
	}
	
	return $resultado;
```

O retorno é sempre um array, sendo array('status'=>'sucesso'); em caso de sucesso, ou array('status'=>'erro','msg'=>'Mensagem de erro'); caso haja algum erro, sendo “Mensagem de erro”, qualquer informação que identifique o erro ocorrido.

## Funções adicionais (comandos extras)

Foram demonstradas acima as principais funções dos modulos para servidores (criar, suspender, reativar e finalizar), contudo, por vezes será necessário adicionar outras funções/comandos em seu modulo, oque pode ser feito por meio de funções de comando adicionais conforme abaixo.

```
function moduloExemplo_acao_alterar_senha($parametros){
	//Seu código para alterar senha aqui
	
	$sucesso=true;
		
	if($sucesso){
		$resultado=array('status'=>'sucesso');
	}else{
		$resultado=array('status'=>'erro','msg'=>'Mensagem de erro');
	}
	
	return $resultado;
}
```

As ações adicionais não possuem um nome padrão, contudo, assim como as funções padrão do modulo, seu nome deve ser precedido de moduloExemplo\_acao\_ (onde moduloExemplo é o nome do modulo). Isso tem por escopo evitar conflitos com outras funções ou módulos do sistema.

Você definirá livremente qual a finalidade da função, seja alterar um plano, senha, ligar um VPS, obter informações e etc.

A função recebe todos os dados necessários para você conectar-se junto a sua API de integração e executar o comando.

{% hint style="info" %}
A função é executada toda vez que o operador, na tela da conta/produto, clica no botão correspondente que será definido por você logo abaixo.
{% endhint %}

Os dados necessários são recebidos pela variável $parametros, que trás todas as informações necessárias por meio de array

Todas as informações estão disponíveis em chaves do array $parametros (conta, cliente, produto e servidor), tudo conforme demonstrado no item Funcao moduloExemplo\_acao\_criar, que você pode conferir acima.

**Retorno da Função**

**IMPORTANTE:** ao ser executado, você precisa informar ao operador do sistema o status do comando (sucesso ou erro). Para que isso ocorra, é necessário que você forneça o retorno adequado da função em caso de sucesso.

```php
$sucesso=true;
		
	if($sucesso){
		$resultado=array('status'=>'sucesso');
	}else{
		$resultado=array('status'=>'erro','msg'=>'Mensagem de erro');
	}
	
	return $resultado;
```

O retorno é sempre um array, sendo array('status'=>'sucesso'); em caso de sucesso, ou array('status'=>'erro','msg'=>'Mensagem de erro'); caso haja algum erro, sendo “Mensagem de erro”, qualquer informação que identifique o erro ocorrido.

## Função moduloExemplo\_comandos\_adicionais()

```
function moduloExemplo_comandos_adicionais() {
	//adicionar outros comandos	(criar, suspender, reativar e finalizar são definidos automaticamente)
	
	$comandosAdmin=array(
		array("comando"=>"Alterar Senha",	"funcao"=>"acao_alterar_senha"),
		array("comando"=>"Alterar Plano",	"funcao"=>"acao_alterar_plano"),
	);
	
	return $comandosAdmin;
}
```

Essa função tem por finalidade **adicionar ao painel admin** (na tela da conta/produto) os botões necessários para executar as funções adicionais.

No caso do nosso exemplo, são adicionados dois botões **“Alterar Senha”** e **“Alterar Plano”**, que respectivamente chamam as funções **moduloExemplo\_acao\_alterar\_senha($parametros)** e **moduloExemplo\_acao\_alterar\_plano($parametros)**

O retorno da função deve ser o array que contem a relação dos botões que serão criados

## Função moduloExemplo\_comandos\_cliente()

```
function moduloExemplo_comandos_cliente() {
	//adicionar outros comandos	
	
	$comandosCliente=array(
		array("comando"=>"Resetar Senha",	"funcao"=>"acao_alterar_senha"),
		/*comandos criar, suspender, reativar e finalizar não são permitidos*/
		
	);
	
	return $comandosCliente;
}
```

Essa função funciona de forma semelhante a função anterior, contudo, tem por finalidade adicionar ao painel do cliente (detalhes do serviço) os botões necessários ao gerenciamento de seu produto.

{% hint style="danger" %}
**NOTA: não é permitido adicionar as funções, criar, suspender, reativar e/ou finalizar.**
{% endhint %}

No caso do nosso exemplo, é adicionado o botão “Resetar Senha” que chama a função moduloExemplo\_acao\_alterar\_senha.

O retorno da função deve ser o array que contem as características dos botões.

## Função moduloExemplo\_informacoes\_admin

Essa função tem por finalidade imprimir códigos HTML na tela da conta/produto no admin. Pode ser utilizada para agregar painéis e comandos adicionais ou expor informações relacionadas aquela conta/serviço.

```
function moduloExemplo_informacoes_admin($parametros){

	$code='<p>meu código aqui</p>';
	
	return $code;
}
```

Os dados são exibidos no admin (na tela da conta/produto de seu cliente), ao final da página.

O retorno da função é o código HTML que será exibido.

## Função moduloExemplo\_informacoes\_cliente

Essa função funciona de forma idêntica a anterior, contudo, tem por finalidade imprimir códigos HTML na **central do cliente** (detalhes do produto/serviço).

Pode ser utilizada para agregar painéis e comandos adicionais ou expor informações relacionadas àquela conta obtidas por meio de API da sua plataforma.

```
function moduloExemplo_informacoes_cliente($parametros){

	$code='<p>meu código aqui</p>';
	
	return $code;
}
```

Os dados são exibidos central do cliente (na tela de detalhes do produto/serviço), ao final da página. O retorno da função é o código HTML a ser exibido
