Módulosubicación y nombre
Todos los módulos deben agregarse en elmóduloscarpetaen su directorio raíz donde nuestro CRM está instalado ycada módulo debetener un nombre de carpeta único y archivo de inicio con el mismo nombre que la carpeta de módulonombre.
Creacióntu primer módulo
Antescomenzar a desarrollar un módulo, asegúrese de configurarmodo de desarrollopara ver cualquiererrores y funciones/hooks advertencias de deprecación.
Para empezar y crear tu primer módulo, sigue lapasos a continuación.
· · ·Vaya a nuestra instalación de CRM y abra elmódulosdirectorio de directorios
· · ·Crea un nuevo directorio y nombrelo después de tu módulo(e.q.sample_module)
· · ·Crear un nuevo archivo PHPcon el mismo nombre que eldirectorio de módulos, en este caso,sam_module.php,este archivo actuará como "initarchivo"para este módulo.
En este caso, el módulo ya está creado y registradopero aún no hace nada ni tiene ningún nombre o descripción agregada,añadirá metadatos del módulo como nombre, descripción, URL, autor a través de un PHPcomentario de bloque que actuará como encabezados de módulo.
Los encabezados del módulo solo deben agregarse en el módulo de initarchivo.
Ahora abra el archivo sample_module.php que creamos antes yagregue el siguiente comentario en la parte superior del archivo:
<?php
/***
* Asegura que el archivo de init del módulo no pueda seraccedido directamente, solo dentro de la aplicación.
*/
definido('BASEPATH') osalida('No se permite acceso directo al script');
/*
Nombre del módulo: Muestra NuestraMódulo CRM
Descripción: Muestradescripción del módulo.
Versión: 2.3.0
Requiere al menos: 2.3.* * *
*/
Después de guardar el archivo, puede navegar por su CRMárea de administración aConfiguración->Módulosy podrás vertu módulo listado.
El comentario actuará como encabezado de archivos para el módulo, usteddebe comprobar elguía de encabezados de archivosi quieres conseguirmás familiar.
Hacerseguro de que siempre agregas elNombre del móduloencabezado
Esmuy importante paraAsegúrate de que el nombre de la carpeta de módulo y el .phpnombre del archivo son los mismos, de lo contrario, su módulo no se mostrará en ellista de módulos
BásicoGanchos
Tendrá que implementar pocos ganchos básicos al crearnuevo módulo, comoregistro_activation_hook(),register_deactivation_hook()yregistro_uninstall_hook()
Si estás familiarizado con WordPress, es probable que lo sepasel trabajo que hacen estos ganchos.
Agregar a AgregadoGanchos
Puede agregar ganchos en los archivos .php de módulo con:
ganchos()->add_action($tag,$function_to_add, $ Prioridad = 10, $acceptted_args = 1);
ganchos()->add_filter($tag,$function_to_add, $ Prioridad = 10, $acceptted_args = 1);
ganchos()->do_action($tag,$arg = '');
ganchos()->apply_filters($tag,valor de $, $Params adicionales);
Puedes añadir tus propios filtros y acciones para que puedas usartambién en la implementación de su módulo, agregar acciones y filtros ayudaráotros módulos para interactuar con su módulo y extender el módulofuncionalidades.
Prefijo telefónicoFunciones personalizadas
Usted debesiempre prefijo cualquier función personalizadayclases para evitar cualquier conflicto con Nuestras funciones o clases predeterminadas de CRM ocon cualquier otro módulo.
UsoInstancia Codeigniter en archivos de módulo
Probablemente querrás usar el framework Codeigniterinstancia en su módulo de init de módulo o cualquier otro archivo de módulos que no seaampliar las clases base marco.
$this, solo funciona dentro de sus controladores,sus modelos, o sus puntos de vista.
Puede lograr esto en cualquier parte de sus archivos con elcódigo siguiente:
Primero, asigne el objeto CodeIgniter a una variable:
$CI = &get_instance();
Una vez que hayas asignado el objeto a una variable, usarásesa variableen su lugar en su lugarde$this
$Ci $=&get_instance();
$CI->load->helper('module_name/helper_name');
$CI->load->library('module_name/library_name');
Base de datosPrefijo telefónico
Desde la versión 2.3.0 Nuestro CRM tiene la opción de definir personalizadaprefijo de tablas de base de datos.
El prefijo de tabla predeterminado en Nuestro CRM estblant
Siempre debe usar nuestra función personalizadadb_prefix()aobtener el prefijo de base de datos al consultar la base de datos, esto asegurará que encaso de que el usuario cambiara el prefijo de base de datos, su módulo seguirá funcionando con elnuevo prefijo de usuario.
Aquí hay un ejemplo de laSeguimiento de objetivosmóduloinstalado.phparchivo.
<?php
definido('BASEPATH') osalida('No se permite acceso directo al script');
si(!$CI->db->table_exists(db_prefix() . 'objetivos')) {
$CI->db-> consulta('CREAR TABLE '' .db_prefix() . "objetivos' (
'id' int(11) NO NULL,
barras(191) NO NULL,
texto de "descripción' NO NULL,
'start_fecha' NO NULL,
'end_date' fecha NO NULL,
'goal_tipo' int(11) NO NULL,
'contract_tipo' int(11) NO DEFAULT '0',
'alto' int(11) NO NULL,
'notify_when_fail' tinyint(1) NO NULLDefault '1',
'notify_when_achieve' tinyint(1) NO NULLDefault '1',
'notificado' int(11) NO DEFAULT '0',
'staff_id' int(11) NO DEFAULT '0'
) ENGINE=InnoDB DEFAULTCHARSET=" . $CI->db->char_set . ';');
Crear unaOpciones de módulo
Nuestro CRM tiene tabla en base de datosopcionespara elalmacenar varios ajustes para uso interno y ajustes que se utilizan encaracterísticas. Hemos desarrollado funciones PHP personalizadas que realizarán consultas parabuscar opciones desde la base de datos.
Los nombres de las opciones son cadenas, y deben ser únicos para queno entran en conflicto con Nuestro CRM ni con otros módulos.
add_option($name,$valor, $autoload)
Nombre de usuario
Requerido (cuerda). El nombre de la opción a agregar, hacerseguro de que es único y prefijo con E.q. su nombre del módulo.
Valor de $
El valor de opción (cuerda)
$autoload
(integrador) 1 o 0
Si esta opción debe ser autorizada con todas las demás opciones, si lo estáutilizando la opción demasiado tiempo en la vista, lo mejor es acoplarla paraevitar múltiples consultas con el fin de obtener la opción. Por defecto a 1
Tenga en cuenta queadd_optionfunción función funciónno creará la opción si el nombre de opción ya existe en la tabla de opciones.
get_option($option_name);
Recuperar una opción de base de datos,$option_name(cuerda)tu nombre de opción.
update_option($option_name,$new_value);
Losupdate_optionfunción actualizará elvalor de opción, desde la versión 2.3.3, cuando llamasi elopción no existe, Nuestro CRM creará esta opción.