MódulosLocalização & nome
Todos os módulos devem ser adicionados nomódulospastaem seu diretório raiz onde nosso CRM está instalado ecada módulo deveter nome de pasta exclusivo e arquivo init com o mesmo nome da pasta do módulonome.
Criandoseu primeiro módulo
Antescomeçar a desenvolver um módulo, certifique-se de que você definiumodo de desenvolvimentopara ver qualquererros e funções/anchos avisos de depreciação.
Para começar e criar seu primeiro módulo, siga opassos abaixo.
·Navegue até nossa instalação de CRM e abra omódulosdiretório
·Crie um novo diretório e nomeie-o após o módulo(e.q.sample_module)
·Criar um novo arquivo PHPcom o mesmo nome que odiretório do móduloNeste caso,sample_module.php,este arquivo irá agir como "Initarquivo"para este módulo.
Neste caso, o módulo já está criado e registradomas não faz nada ainda nem tem qualquer nome ou descrições adicionadas, nósadicionará os metadados do módulo como nome, descrição, URL, autor através de um PHPbloco comentário que funcionará como cabeçalhos do módulo.
Os cabeçalhos do módulo devem ser adicionados apenas no módulo initarquivo.
Agora abra o arquivo sample_module.php que criamos antes eadicione o seguinte comentário na parte superior do arquivo:
O que é?php
/****
* Garante que o arquivo init do módulo não pode seracessado diretamente, apenas dentro do aplicativo.
*/
definido('BASEPATH') ouexit('Nenhum acesso direto ao script');
/*
Nome do módulo: Amostra NossoMódulo CRM
Descrição: Sampledescrição do módulo.
Versão: 2.3.0
Requer pelo menos: 2.3.*
*/
Depois de salvar o arquivo, você pode navegar em seu nosso CRMárea de administração paraConfiguração - Módulose você será capaz de verseu módulo listado.
O comentário agirá como um cabeçalho de arquivo para o módulo, vocêdeve verificar oguia de cabeçalhos de arquivose você quiser obtermais familiar.
Fazercerteza de que você sempre adicionar oNome do módulocabeçalho
Émuito importante paracertifique-se de que o nome da pasta do módulo e o .phpnome do arquivo são os mesmos, caso contrário, seu módulo não será mostrado nolista de módulos
BásicoGanchos
Você precisará implementar alguns ganchos básicos ao criarnovo módulo, comoregistro_activation_hook(),Ver perfil()eVer mais informações:
Se você está familiarizado com o WordPress, provavelmente saberáo trabalho que esses ganchos fazem.
AdicionandoGanchos
Você pode adicionar ganchos em seus arquivos .php do módulo com:
brasileiros() - [$tag,$function_to_add, $priority = 10, $accepted_args = 1);
brasileiros() - [$tag,$function_to_add, $priority = 10, $accepted_args = 1);
brasileiros() - [$tag,$arg = '');
Atualizações e/outiqueta($tag,$value, $additionalParams);
Você pode adicionar seus próprios filtros e ações para que você possa usareles na implementação do seu módulo também, adicionando ações e filtros ajudaráoutros módulos para interagir com seu módulo e estender o módulofuncionalidades.
PrefixoFunções personalizadas
Você devesempre prefixar quaisquer funções personalizadaseclasses para evitar conflitos com nossas funções padrão ou classes ou classes ou classes oucom quaisquer outros módulos.
UsandoInstância Codeigniter em arquivos de módulo
Provavelmente você vai querer usar a estrutura Codeigniterinstância em seu arquivo init do módulo ou quaisquer outros arquivos de módulos que não sãoestendendo as classes base de estrutura.
$ este livro, só funciona dentro de seus controladores,seus modelos, ou seus pontos de vista.
Você pode conseguir isso em qualquer lugar em seus arquivos com oseguinte código:
Primeiro, atribua o objeto CodeIgniter a uma variável:
$CI = &get_instance();
Depois de atribuir o objeto a uma variável, você usaráessa variávelem vez dissoda$ este livro
$Ci=&get_instance();
$CI-1.load- Álbum('module_name/helper_name');
$CI-1.load- =library('module_name/library_name');
Banco de dadosPrefixo
Da versão 2.3.0 Nosso CRM tem a opção de definir personalizadotabelas de banco de dados prefixo.
O prefixo de tabela padrão em Nosso CRM étbl
Você deve sempre usar nossa função personalizadadb_prefix()paraobter o prefixo do banco de dados ao consultar o banco de dados, isso garantirá que emcaso o usuário alterou o prefixo do banco de dados, seu módulo ainda funcionará com onovo prefixo do usuário.
Aqui está um exemplo doRastreamento de metasmóduloinstall.phparquivo.
- O que é?
definido('BASEPATH') ouexit('Nenhum acesso direto ao script');
se(!$CI-1.db- _exists(db_prefix() . "Objetivos")) {
$CI-]db- =query('CREATE TABLE '' .() . "Objetivos' (
'id' int(11) NÃO NULL,
'sujeito' varchar (191) NÃO NULL,
texto 'descrição' texto NÃO NULL,
'start_date' data NÃO NULL,
'end_date' data NÃO NULL,
'goal_type' int(11) NÃO NULL,
'contract_type' int(11) NÃO DEFAULT '0',
'realização' int(11) NÃO NULL,
'notify_when_fail' tinyint(1) NÃO NULLDefault '1',
'notify_when_achieve' tinyint(1) NÃO NULLDefault '1',
'notificado' int(11) NÃO DEFAULT '0',
'staff_id' int(11) NÃO DEFAULT '0'
) Engine=db defaultCHARSET=" . $CI- $CI-1.db-1. ";");
CriarOpções do módulo
Nosso CRM tem tabela no banco de dadosopçõesparaarmazenando várias configurações para uso interno e configurações que são usadas emcaracterísticas. Desenvolvemos funções PHP personalizadas que executarão consultas parabuscar opções do banco de dados.
Nomes de opções são strings, e eles devem ser únicos para queeles não entram em conflito com nosso CRM ou outros módulos.
add_option($name,$value, $autoload)
$name
Obrigatório (string). O nome da opção a ser adicionado, makecerteza que é único e prefixado com E.q. seu nome do módulo.
$valor
O valor da opção (string)
$autoload
(inteiro) 1 ou 0
Se esta opção deve ser carregada automaticamente com todas as outras opções, se você estiverusando a opção muito tempo na visualização, o melhor é carregá-la automaticamente paraevitar várias consultas para obter a opção. O padrão é 1
Tenha em mente queadd_optionfunçãonão criará a opção se o nome da opção já existir na tabela de opções.
get_option($option_name);
Recuperar uma opção do banco de dados,$option_name(string)o nome da sua opção.
($option_name,$new_value);
O que éupdate_optionfunção irá atualizar ovalor da opção, desde a versão 2.3.3, quando você chamase oopção não existe, Nosso CRM criará essa opção.