# 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


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://hostmgr.gitbook.io/desenvolvedores/modulos-de-integracao/provisionamento-servidores/funcoes-do-modulo.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
