Module Bases

Module Bases

ModulesEmplacement & Nom

Tous les modules devraient être ajoutés dans lemodulesdossierdans votre répertoire racine où Notre CRM est installé etChaque module doitavoir le nom de dossier unique et fichier d'init portant le même nom que le dossier de votre modulenom.

Créervotre premier module

Avantcommencer à développer un module, assurez-vous que vous définissezMode de développementafin de voir n'importe quelleerreurs et fonctions/crochets obsolètes obsolètes.

Pour commencer et créer votre premier module, suivez leétapes ci-dessous.

·Accédez à Notre installation CRM et ouvrez lemodulesrépertoire

·Créez un nouveau répertoire et nommez-le d'après votre module(e.q.sample_module)

·Créer un nouveau fichier PHPportant le même nom que leAnnuaire de modules, dans ce cas,sample_module.php,ce dossier agira comme "initfichier "pour ce module.

Dans ce cas, le module est déjà créé et enregistrémais il ne fait encore rien ni n'a aucun nom ou descriptions ajoutés, nousajoutera les métadonnées du module comme nom, description, URL, auteur via un PHPblock comment qui agira comme en-têtes de module.

Les en-têtes du module doivent être ajoutés uniquement dans le module initfichier.

Ouvrez maintenant le fichier sample_module.php que nous avons créé avant etajoutez le commentaire suivant en haut du fichier:

<?php

/**

* S'assure que le fichier d'init du module ne peut pas êtreconsulté directement, uniquement au sein de l'application.

*/

défini('BASEPATH') ouexit('Aucun accès direct au script autorisé');

/*

Nom du module: Échantillon NotreModule CRM

Description: Échantillondescription du module.

Version : 2.3.0

Nécessite au moins : 2.3.*

*/

Après avoir enregistré le fichier, vous pouvez naviguer dans votre Notre CRMzone d'administration àConfiguration->Moduleset vous pourrez voirvotre module répertorié.

Le commentaire agira comme un en-tête de fichier pour le module, vousdevrait vérifier leGuide d'en-têtes de fichiersi vous voulez obtenirplus familier.

Fairesûr que vous ajoutez toujours leNom du moduleen-tête

C'esttrès important pourassurez-vous que le nom de votre module et le .phpnom de fichier sont les mêmes, sinon, votre module ne sera pas montré dans leListe des modules

BasicCrochets

Vous devrez implémenter peu de crochets de base lors de la créationnouveau module, commeregister_activation_hook(),register_deactivation_hook()etregister_uninstall_hook()

Si vous connaissez WordPress, vous saurez probablementle travail que ces crochets font.

AjouterCrochets

Vous pouvez ajouter des hooks dans votre module fichiers .php avec:

hooks()->add_action($tag,$function_to_ajouter, $priority = 10, $ accepted_args = 1);

hooks()->add_filter($tag,$function_to_ajouter, $priority = 10, $ accepted_args = 1);

hooks()->do_action($tag,$arg = '');

hooks()->apply_filters($tag,$valeur, $additionalParams);

Vous pouvez ajouter vos propres filtres et actions pour pouvoir utilisereux dans l'implémentation de votre module aussi, ajouter des actions et des filtres aiderad'autres modules pour interagir avec votre module et étendre le modulefonctionnalités.

PréfixeFonctions personnalisées

Vous devrieztoujours préfixer toutes les fonctions personnaliséesetclasses pour empêcher tout conflit avec Nos fonctions ou classes par défaut CRM ouavec tous les autres modules.

UtiliserCodeigniter Instance dans les fichiers de modules

Probablement voudrez-vous utiliser le framework Codeigniterinstance dans votre fichier d'init module ou tout autre fichier de modules qui ne sont pasextension des classes de base framework.

$this, ne fonctionne qu'au sein de vos contrôleurs,vos modèles, ou vos vues.

Vous pouvez y parvenir n'importe où dans vos fichiers avec lecode suivant:

Tout d'abord, attribuez l'objet CodeIgniter à une variable :

$CI = &get_instance();

Une fois que vous avez affecté l'objet à une variable, vous utiliserezcette variableà la placede$this

$Ci=&get_instance();

$CI->load->helper('nom_module/helper_name');

$CI->load->library(''nom_module/nom_nom_library');

Base de donnéesPréfixe

À partir de la version 2.3.0 Notre CRM ont possibilité de définir personnaliséPréfixe des tables de base de données.

Le préfixe de table par défaut dans Notre CRM esttbl

Vous devez toujours utiliser notre fonction personnaliséedb_prefix()àobtenir le préfixe de base de données lors de l'interrogation de la base de données, cela garantira qu'encas où l'utilisateur a changé le préfixe de base de données, votre module fonctionnera toujours avec lenouveau préfixe utilisateur.

Voici un exemple tiré duSuivi des objectifsmoduleinstall.phpfichier.

<?php

défini('BASEPATH') ouexit('Aucun accès direct au script autorisé');

si(!$CI->db->table_existe(db_prefix() . "buts") {

$CI->db->requête('CREATE TABLE '' .db_prefix() . " buts' (

'id' int(11) NULL,

'subject' varchar(191) PAS NULL,

'description' texte PAS NULL,

'start_date' date PAS NULL,

'fin_date' date PAS NULL,

'objectif_type' int(11) PAS NULL,

'contract_type' int(11) PAS NULL DEFAULT '0',

'réalisation' int(11) PAS NULL,

'notifier_quand_fail' tinyint(1) PAS NULLDefault '1',

'notifier_quand_achieve' tinyint(1) PAS NULLDefault '1',

'notified' int(11) PAS NULL DEFAULT '0',

'staff_id' int(11) PAS NULL DEFAULT '0'

) ENGINE=InnoDB DEFAULTCHARSET=" . $CI->db->char_set . ' ;');

CréerOptions du module

Notre CRM a tableau en base de donnéesoptionspourstockage de divers paramètres pour un usage interne et des paramètres qui sont utilisés danscaractéristiques. Nous avons développé des fonctions PHP personnalisées qui effectueront des requêtes pouroptions d'aller dans la base de données.

Les noms d'option sont des chaînes, et ils doivent être uniques pour queils n'entrent en conflit ni avec Notre CRM ni avec d'autres Modules.

add_option($name,$valeur, $autoload)

$nom
Requis (caîne). Le nom de l'option à ajouter, fairesûr que c'est unique et préfixé par E.q. nom de votre module.

$valeur
La valeur d'option (chaîne)

$autoload
(entier) 1 ou 0
Si cette option doit être autoloadée avec toutes les autres options, si vous êtesen utilisant l'option trop de temps dans la vue, le mieux est de l'autoload pourempêcher plusieurs requêtes afin d'obtenir l'option. Par défaut à 1

Gardez à l'esprit queadd_optionfonctionne créera pas l'option si le nom de l'option existe déjà dans le tableau des options.

get_option($option_name) ;

Récupérer une option à partir de base de données,Nom_option_nom(caîne)nom de votre option.

update_option($option_name,$new_valeur) ;

Leupdate_optionfonction mettra à jour levaleur d'option, depuis la version 2.3.3, lorsque vous appelezupdate_option si leoption n'existe pas, Notre CRM créera cette option.


    • Related Articles

    • Module Sécurité

      Donc, vous avez créé votre module et fonctionne bien, mais est-cesécurisé ? Vous devez vous assurer que votre module est sécurisé et n'est vulnérable à aucuneSQL Injections sont la traversée de répertoires. Vous trouverez ci-dessous les meilleures ...
    • Fonctions de module communes

      register_activation_hook /** * Enregistrer crochet d'activation du module * @paramstring $moduleNom du système de module * @parammixte $fonctionfonction pour le crochet * @return mixte */ register_activation_hook($module, $function) ...
    • En-têtes de fichier de module

      Chaque module de Notre CRM sont constitués de fichier init qui contientla configuration générale du module et comprend des en-têtes contenantméta-informations concernant le module. Moduleinit fichier en-têtes exemple L'exemple de suivre est tiré de ...
    • Ajouter Articles/Produits

      Créer nouvel article Pour créer de nouveaux éléments à partir du menu d'administration principal accéder àVentes->Articleset cliquez sur le bouton supérieur à gaucheNouvel article. Description- Donner à l'article courte description de la rubrique de ...
    • Créer Menu Articles

      Si vous créez vos modules personnalisés, probablement voudrez-vouspour créer des éléments de menu qui seront montrés sur barre latérale zone d'administration ou zone clientsnavigation. Avec Notre CRM vous pouvez facilement y parvenir avec peu de ...