ModulokHelyszín és név
Minden modult hozzá kell adni amodulokmappaaz Ön gyökérkönyvtárában, ahol a CRM telepítve van, ésMinden modulnakegyedi mappanév és init fájl ugyanazzal a névvel, mint a modul mappanév.
LétrehozásAz első modul
Korábbankezdjen el fejleszteni egy modult, győződjön meg róla, hogy beállítjafejlesztési módAnnak érdekében, hogy lássuk bármelyhibák és funkciók/hookok elavulására figyelmeztetések.
Az első modul létrehozásához kövesse a következőket:Lépések alább.
·Navigáljon CRM telepítésünkre, és nyissa meg amodulokkönyvtár
·Hozzon létre egy új könyvtárat, és nevezze el a modul után(pl.q.minta_modul)
·Új PHP fájl létrehozásaUgyanazzal a névvel, mint amodul könyvtár, ebben az esetben,sample_module.php,Ez a fájl úgy fog működni, mint "initfájl"erre a modulra.
Ebben az esetben a modul már létrejött és regisztráltde még nem tesz semmit, és nincs hozzáadott név vagy leírás, mihozzáadja a modul metaadatokat, mint például a név, leírás, URL, szerző egy PHP-n keresztülblokk hozzászólás, amely modul fejlécekként fog működni.
A modul fejléceket csak az init modulban szabad hozzáadnifájl.
Most nyissa meg a korábban létrehozott sample_module.php fájlt ésAdja hozzá a következő megjegyzést a fájl tetejére:
<?php
/**
* Biztosítja, hogy a modul init fájl nem lehetKözvetlenül, csak az alkalmazáson belül érhető el.
*/
meghatározott ("BASEPATH") vagykilépés ("A közvetlen parancsfájl-hozzáférés nem megengedett");
/*
Modul neve: Minta a miCRM modul
Leírás: Mintamodul leírása.
Verzió: 2.3.0
Legalább: 2.3.*
*/
A fájl mentése után navigálhat a CRM-benadmin terület aBeállítás ->ModulokÉs látni fogodA modul felsorolása.
A megjegyzés a modul fájlfejléceként fog működni, ÖnEllenőrizze afájl fejlécek útmutatóHa meg akarod kapniIsmertebb.
GyártásGyőződjön meg róla, hogy mindig hozzáadja aModul nevefejléc
Ez azNagyon fontos, hogygyőződjön meg róla, hogy a modul mappa neve és a .phpA fájlnév ugyanazEllenkező esetben a modul nem jelenik meg amodullista
AlapvetőHorgok
Néhány alapvető horogot kell végrehajtania a létrehozás soránÚj modul, mint példáulregister_activation_hook(),register_deactivation_hook()ésregister_uninstall_hook()
Ha ismeri a WordPress-t, valószínűleg tudni fogjaA munkát, amit ezek a horgok végeznek.
HozzáadásHorgok
A .php modulhoz horgokat adhat hozzá a következőkkel:
hooks()->add_action($címkézés,$function_to_add, $priority = 10, $accepted_args = 1);
horgs()->add_filter($címkézés,$function_to_add, $priority = 10, $accepted_args = 1);
hooks()-> do_action($címkézés,$arg = ');
hooks()->apply_filters($címkézés,$ érték, $ kiegészítő Params;
Hozzáadhatja saját szűrőit és műveleteit, így használhatjaőket a modul implementációjában is, a műveletek és szűrők hozzáadása segítegyéb modulok a modullal való interakcióhoz és a modul kiterjesztéséhezfunkciók.
ElőrejavításEgyedi funkciók
Meg kell tennieMindig előzetesen csatolja az egyéni funkciókatésosztályok a CRM alapértelmezett funkcióinkkal vagy osztályainkkal való konfliktusok megelőzése érdekében, vagybármely más modullal.
HasználataCodeigniter Instance modulfájlokban
Valószínűleg használni fogja a Codeigniter keretrendszertpéldául a modul init fájlban vagy bármely más modulfájlban, amely nemA keretrendszer alaposztályok kiterjesztése.
$ezcsak az Ön vezérlőin belül működik,A modelljeid vagy a nézeteid.
Ezt bárhol elérheti a fájlokban aa következő kód:
Először rendelje hozzá a CodeIgniter objektumot egy változóhoz:
$CI = &get_instance();
Miután hozzárendelte az objektumot egy változóhoz, aEz a változóehelyettvagy$ez
$Ci=&get_instance();
$CI->load->segítő('module_name/helper_name');
$CI->load->könyvtár('module_name/library_name');
AdatbázisElőrejavítás
A 2.3.0-s verziótól CRM-ünknek lehetősége van az egyéni meghatározásraadatbázis táblázatok előtagja.
A CRM alapértelmezett táblázat előtagjatbl
Mindig használja egyedi funkciónkatdb_prefix()amegkapja az adatbázis előtagját az adatbázis lekérdezésekor, ez biztosítja, hogy aHa a felhasználó megváltoztatta az adatbázis előtagját, a modul továbbra is működik aÚj felhasználói előtag.
Íme egy példa aCélok nyomon követésemodulinstall.phpfájl.
<?php
meghatározott ("BASEPATH") vagykilépés ("A közvetlen parancsfájl-hozzáférés nem megengedett");
ha(!$CI->db->table_létezik(db_prefix() . "célok")) {
$CI-> db-> lekérdezés('Tábla létrehozása' .db_prefix() . "célok" (
"id" int(11) NEM NULL,
"tárgy" varchár(191) NEM NULL,
"leírás" szöveg NEM NULL,
"kezdési dátum" dátum NEM NULL,
"vég_date" dátum NEM NULL,
"goal_type" int(11) NEM NEM NULL,
"contract_type" in(11) NEM NEM NULL DEFAULT '0',
"eredmény" in(11) NEM NULL,
'notify_when_fail' tinyint(1) NEM NEM NULLDefault "1",
'notify_when_achieve' tinyint(1) NEM NEM NULLDefault "1",
"bejelentett" in(11) NEM NEM NULL DEFAULT "0",
'staff_id' int(11) NEM NEM NEMÉNY DEFAULT '0'
) ENGINE=InnoDB DEFAULTCharset=" $CI->db->char_set . ";");
Hozzon létreModul opciók
CRM táblázatot tartalmaz az adatbázisbanopcióka szövegrészkülönböző beállítások tárolása a belső használathoz és ajellemzők. Egyéni PHP funkciókat fejlesztettünk ki, amelyek lekérdezéseket hajtanak végreOpciók keresése az adatbázisból.
Az opciók nevei karakterláncok, és egyedieknek kell lenniük, hogyNem ütköznek sem a CRM-ünkkel, sem más modulokkal.
add_option($név,$érték, $automatikus betöltés)
$név
Szükséges (húr). A hozzáadandó opció neve, készítse elBiztos, hogy egyedi és előre rögzített E.q. A modul neve.
$érték
Az opció értéke (húr)
$automatikus betöltés
(teljes) 1 vagy 0
Hogy ezt az opciót automatikusan fel kell-e tölteni az összes többi opcióval, hahasználja az opciót túl sok időt a nézetben, a legjobb, ha automatikusan betölti, hogyakadályozza meg a több lekérdezést az opció megszerzése érdekében. Alapértelmezett hibák 1
Ne feledje, hogyadd_optionfunkciónem hozza létre az opciót, ha az opció neve már létezik a beállítások táblázatában.
get_option($option_name);
Kérjen meg egy opciót az adatbázisból,$option_name(húr)Az opció neve.
update_option($option_name,$new_value);
Afrissítés_opcióA funkció frissíti aopciós érték, a 2.3.3-as verzió óta, amikor hívUpdate_option, ha aHa nem létezik, a CRM létrehozza ezt az opciót.