Elementele modulului de bază

Elementele modulului de bază

ModuleLocație și nume

Toate modulele trebuie adăugate înModulefolderulîn directorul rădăcină unde este instalat CRM-ul nostru șiFiecare modul trebuieAu nume unic de folder și fișier init cu același nume ca folderul modululuinumeÎn limba engleză

CreareaPrimul modul

ÎnainteÎncepeți să dezvoltați un modul, asigurați-vă că setațiModul de dezvoltarePentru a vedea oriceErorile și funcțiile / cârligele avertismentele de depreciere.

Pentru a începe și a crea primul modul, urmațiPași de mai jos.

· ȘtiriNavigați la Instalarea noastră CRM și deschidețiModuleDirectorul

· ȘtiriCreați un director nou și denumiți-l după modul(de.q.eșantion_modulÎn limba engleză

· ȘtiriCrearea unui fișier PHP noucu același nume ca șiDirectorul modulelor, în acest caz,eșantion_module.php,Acest fișier va acționa ca "Init-ulFișier"Pentru acest modul.

În acest caz, modulul este deja creat și înregistratDar nu face nimic încă și nici nu a adăugat nici un nume sau descrieri, noiVa adăuga metadatele modulului cum ar fi numele, descrierea, adresa URL, autorul printr-un PHPBloc comentariu care va acționa ca anteturi modulului.

Anteturile modulului trebuie adăugate numai în modulul initFișier.

Acum deschideți fișierul eșantion_module.php pe care l-am creat înainte șiAdăugați următorul comentariu în partea de sus a fișierului:

<?php

/**

* Asigură că fișierul init modul nu poate fiaccesat direct, numai în cadrul aplicației.

*/

definit('BASEPATH') sauieșire('Nu este permis accesul direct al scriptului');

/*

Nume modul: Exemplu nostruModul CRM

Descriere: EșantionDescrierea modulului.

Versiune: 2.3.0

Necesită cel puțin: 2.3.* Știri

*/

După ce salvați fișierul, puteți naviga în CRM-ul nostruZona de administrare pentru aConfigurare-> ModuleȘi veți putea vedeaModulul listat.

Comentariul va acționa ca un antet de fișiere pentru modul, tuAr trebui să verificeGhidul anteturilor de fișiereDacă vrei să obțiiMai familiar.

MarcaAsigur că adăugați întotdeauna întotdeaunaNumele modululuiantet

Este vorba de:Foarte important săAsigurați-vă că numele folderului modulului și .phpNumele fișierului este același, în caz contrar, modulul dvs. nu va fi afișat înLista de module

BazăCârlige

Va trebui să implementați câteva cârlige de bază atunci când creațimodul nou, cum ar firegister_activare_cârlig(),registru_deactivare_cârlig()șiÎnregistrare_uninstall_hook()

Dacă sunteți familiarizat cu WordPress, probabil veți știMunca pe care o fac aceste cârlige.

AdăugareaCârlige

Puteți adăuga cârlige în modulul .php fișiere cu:

cârlige()>ad_action($ tag,$function_to_add, $priority = 10, $accepted_args = 1);

cârlige()>add_filter($ tag,$function_to_add, $priority = 10, $accepted_args = 1);

cârlige()>do_action($ tag,$arg = '');

cârlige()>aplica_filters($ tag,Valoarea $, Params suplimentare $);

Puteți adăuga propriile filtre și acțiuni, astfel încât să puteți utilizaEle în implementarea modulului, de asemenea, adăugarea de acțiuni și filtre vă va ajutaAlte module pentru a interacționa cu modulul și a extinde modululfuncționalități.

PrefixulFuncții personalizate

Ar trebui să-ți faciÎntotdeauna prefixați orice funcții personalizateșiClase pentru a preveni orice conflicte cu funcțiile sau clasele noastre implicite CRM saucu orice alte module.

UtilizareaCodeigniter Instance în fișierele modulului

Probabil că veți dori să utilizați cadrul Codeigniterinstanță în fișierul init al modulului sau în orice alte fișiere de module care nu suntextinderea claselor-cadru de bază.

$acestea, funcționează numai în cadrul controlerelor dvs.,Modelele dvs. sau opiniile.

Puteți realiza acest lucru oriunde în fișierele cuUrmătorul cod:

În primul rând, atribuiți obiectul CodeIgniter unei variabile:

$CI = &get_instance();

Odată ce ați atribuit obiectul unei variabile, veți utilizaacea variabilăîn schimba$acestea

$CI (în engleză)=&get_instance();

$CI->load->ajutor('modul_name/ajutor_name');

$CI->load->bibliotecă('modul_name/bibliotecă_name');

Baza de datePrefixul

Din versiunea 2.3.0 CRM-ul nostru are opțiunea de a defini personalizatePrefixul tabelelor bazei de date.

Prefixul implicit al tabelului în CRM-ul nostru estecu tbl

Ar trebui să utilizați întotdeauna funcția noastră personalizatădb_prefix()Laobțineți prefixul bazei de date atunci când interogați baza de date, acest lucru se va asigura că înîn cazul în care utilizatorul a schimbat prefixul bazei de date, modulul dvs. va funcționa în continuare cuPrefixul utilizatorului nou.

Iată un exemplu de laUrmărirea obiectivelormodululInstalare.phpFișier.

<?php

definit('BASEPATH') sauieșire('Nu este permis accesul direct al scriptului');

dacă(!$CI->db->table_exists(db_prefix() . 'Țintă')) {

$CI->db->interogare('CREA tabelul '' .db_prefix() . "Țintă" (

'id' int(11) NU NULL,

'subiect' varchar(191) NU NULL,

Textul 'descriere' NU NULL,

'data_de' NU NULL,

'data de sfârșit' NU NULL,

'tip de țintă' int(11) NU NULL,

'contract_type' int(11) NU NUL DEFAULT '0',

Int(11) NU NULL,

'notify_când_eșu' micuță(1) NU NULLDefault '1',

'notify_când_achieve' tinyint(1) NU NULLDefault '1',

'notificat' int(11) NU NUL DEFAULT '0',

'personal_id' int(11) NU NUL DEFAULT '0'

) Motor=InnoDB DEFAULTCARSET=" . $CI->db->char_set . ';');

CreeazăOpțiuni modul

CRM-ul nostru are tabelul în baza de dateOpțiunipentrustocarea diferitelor setări pentru utilizare internă și a setărilor care sunt utilizate înCaracteristici. Am dezvoltat funcții PHP personalizate care vor efectua interogări pentruPreia opțiunile din baza de date.

Numele opțiunii sunt șiruri de caractere și trebuie să fie unice, astfel încâtEi nu intră în conflict nici cu CRM-ul nostru, nici cu alte module.

add_option($name,Valoare $, $autoload)

$nume
Necesar (șir). Numele opțiunii care urmează să fie adăugată, facețiAsigurați-vă că este unic și prefixat cu E.q. Numele modulului.

Valoare $
Valoarea opțiunii (șir)

$autoload
(întreg) 1 sau 0
Indiferent dacă această opțiune ar trebui să fie automată cu toate celelalte opțiuni, dacă suntețiFolosind opțiunea prea mult timp în vizualizare, cel mai bun este să-l autoload lapreveniți mai multe interogări pentru a obține opțiunea. Implicit la 1

Rețineți căAdresă_opțiuneFuncțieNu va crea opțiunea dacă numele opțiunii există deja în tabelul opțiuni.

get_option($opțiune_nume);

Recuperarea unei opțiuni din baza de date,$option_nume(șir)Numele opțiunii.

update_option($opțiune_nume,$noua_valoare);

Încă mai multeActualizare_opțiuneFuncția va actualizaValoarea opțiunii, începând cu versiunea 2.3.3, atunci când apelațiupdate_option dacăOpțiunea nu există, CRM-ul nostru va crea această opțiune.


    • Related Articles

    • Securitatea modulului

      Deci, v-ați creat modulul și funcționează bine, dar este vorba deSigur? Trebuie să vă asigurați că modulul dvs. este sigur și nu este vulnerabil la niciun fel deInjecțiile SQL sunt traversarea directorului. Puteți găsi mai jos cele mai bune practici ...
    • Funcțiile modulului comun

      Înregistrare_activare_cârlig /** * Cârlig de activare a modulului de înregistrare * @paramșir $modulNumele sistemului modulului * @paramFuncție $ mixtăFuncția pentru cârlig * @return amestecat */ register_activation_hook($modul, $funcție) ...
    • Valori de bază ale companiei

      Conducere- NostruCompania se mândrește cu a deveni un lider imens în tehnologieIndustria.Facem acest lucru nu numaiPrezentarea direcției noastre către clienții noștri, dar întotdeauna asigurându-ne căCererile sunt ascultate și întotdeauna ...
    • Anteturi de fișiere de modul

      Fiecare modul din CRM-ul nostru constă din fișierul init care conțineconfigurația modulului general și include anteturi care conținmeta-informații privind modulul. ModululExemplu de anteturi de fișiere init Următorul exemplu este preluat din modulul ...
    • Politica de confidențialitate - SAAS

      Bine ați venit la BIMeta! Următoarea politică de confidențialitate oferăO imagine de ansamblu simplă a ceea ce se întâmplă cu datele dvs. personale atunci când vizitați și utilizațiPlatforma noastră de rețea socială și de afaceri și serviciile ...