ModulyA jméno a umístění
Všechny moduly by měly být přidány doModulySložkaVe vašem kořenovém adresáři, kde je nainstalován náš CRM aKaždý modul musíMají jedinečný název složky a soubor init se stejným názvem jako složka moduluJménoJe to pravda.
VytvářeníVáš první modul
Předtímvyvinout modul, ujistěte se, že jste nastaviliRežim vývojeAbychom viděli jakékolivarování před chybami a funkcemi/háčky.
Chcete-li začít a vytvořit svůj první modul, postupujte podlekroky níže.
Učeno u pacientov liečených rekombinantním eritropoetínou eritropoetínou eritropoetínou eritropoetínou eritropoetínou eritropNavigujte na naši CRM instalaci a otevřeteModulyAdresář
Učeno u pacientov liečených rekombinantním eritropoetínou eritropoetínou eritropoetínou eritropoetínou eritropoetínou eritropVytvořte nový adresář a pojmenujte ho po modulu(j.q._modul vzorek)
Učeno u pacientov liečených rekombinantním eritropoetínou eritropoetínou eritropoetínou eritropoetínou eritropoetínou eritropVytvořte nový soubor PHPSe stejným jménem jakoModulový adresářV tomto případě,_module.php,Tento soubor bude jednat jako "InitSoubor"pro tento modul.
V tomto případě je modul již vytvořen a registrovánJeště nic nedělá, ale nemá přidáno žádné jméno nebo popisy, myPřidá metadata modulu jako jméno, popis, URL, autor prostřednictvím PHPkomentář, který bude působit jako hlavičky modulů.
Hlavičky modulu by měly být přidány pouze do modulu initsoubor.
Nyní otevřete soubor vzor_module.php, který jsme vytvořili předtím aV horní části souboru přidejte následující komentář:
<?php
Vážně
* Zajišťuje, že soubor modulu init nemůže býtpřístup přímo, pouze v rámci aplikace.
*
("základní definice") nebo('Není povolen přímý přístup ke skriptu');
/*
Název modulu: Vzorek NašeCRM modul
Popis: Vzorekpopis modulu.
Verze: 2.3.0
Požaduje alespoň: 2.3.*
*
Po uložení souboru se můžete pohybovat ve svém našem CRMAdmin oblast do->Nastavení modulůA budete moci vidětseznamu vašeho modulu.
Komentář bude působit jako hlavička souboru pro modul, vyMělo by zkontrolovatPříručka hlaviček souborůPokud chcete dostatZnámější.
ZnačkaUrčitě vždy přidáteNázev moduluHlavička
Je toVelmi důležité proUjistěte se, že název složky modulu a .phpJméno souboru je stejné, jinak se váš modul nebude zobrazen vSeznam modulů
ZákladníHáčky
Budete muset implementovat několik základních háčků při vytvářeníNový modul, jako_activation_hook(),_deactivation_hook()a_uninstall_hook()
Pokud znáte WordPress, pravděpodobně budete vědětPráce, kterou tyto háčky dělají.
PřidáníHáčky
Můžete přidat háčky do svého modulu .php soubory pomocí:
()->add_action($tag,$work_to_add, $priorita = 10, $akcepted_args = 1);
()->add_filter($tag,$work_to_add, $priorita = 10, $akcepted_args = 1);
()->do_action($tag,= $arg '');
()->apply_filters($tag,$hodnota, $doditionalParams);
Můžete přidat své vlastní filtry a akce, abyste mohli použítPři implementaci modulu také pomůže přidání akcí a filtrůDalší moduly pro interakci s vaším modulem a rozšíření modulufunkčnosti.
PředponaVlastní funkce
Měli bysteVždy předpona jakýchkoli vlastních funkcíaAby se zabránilo jakýmkoli konfliktům s našimi výchozími funkcemi nebo třídami CRM nebos jakýmikoli jinými moduly.
PoužitíCodeign Instance v modulových souborech
Pravděpodobně budete chtít použít rámec CodeigniterVe souboru modulu init nebo v jakýchkoli jiných souborech modulů, které nejsourozšíření rámcových základních tříd.
$Totohle, funguje pouze uvnitř vašich ovladačů,modely nebo vaše názory.
Můžete toho dosáhnout kdekoli ve svých souborech pomocíNásledující kód:
Nejprve přiřaděte námitku CodeIgniter proměnné:
$CI = &get_instance();
Jakmile objekt přiřadíte proměnné, použijeteTato proměnnáMísto tohonebo$Totohle
$Ci&get_instance();
$CI->load->helper('module_name/helper_name');
$CI->load->library('module_name/library_name');
DatabázePředpona
Z verze 2.3.0 Naše CRM má možnost definovat vlastníPředpona databáze tabulek.
Výchozí předpona tabulky v našem CRM jetbl
Vždy byste měli používat naši vlastní funkcidb_prefix()u pacientov liečených rekombinantním eritropoetínou eritropoetínou eritropoetínou eritropoetínou eritropoetínou eritropoetínou eritropoetzískat předponu databáze při dotazu na databázi, což zajistí, že vUživatel změnil předponu databáze, váš modul bude stále pracovat sNová uživatelská předpona.
Zde je příklad zSledování cílůModulInstalovat.phpsoubor.
<?php
("základní definice") nebo('Není povolen přímý přístup ke skriptu');
Pokud(!$CI->db->table_exists(db_prefix() . 'cíle')) {
$CI->db->dotaz('Vytvořit stůl '' .db_prefix() . "cíle" (
'id' int(11) NULL,
'subject' varchar(191) NULL,
'description' text NULL,
Datum'start_date' NULL,
Datum'end_date' NIE NULL,
'goal_type' int(11) NULL,
'contract_type' int(11) NO NULL DEFAULT '0',
'dosažení' int(11) NULL,
'notify_when_fail' Smallint(1) NIE NULLVliva '1',
'notify_when_achieve' Smallint(1) NIE NULLVliva '1',
'oznámeno' int(11) NO NULL DEFAULT '0',
'staff_id' int(11) NIE NULL DEFAULT '0'
Motor=InnoDB DEFAULT )CharSET=". $CI->db->char_set . ";");
VytvořitMožnosti modulů
CRM má tabulku v databáziMožnostiuUkládání různých nastavení pro interní použití a nastavení používaných vrysy. Vyvinuli jsme vlastní funkce PHP, které budou provádět dotazy naZískejte možnosti z databáze.
Jmeny možností jsou struny a musí být jedinečné, abynejsou v rozporu s našimi CRM nebo jinými moduly.
add_option($name,$hodnota, $autoload)
$jméno
(požadované). Název možnosti přidání, abyJe jedinečný a jistý s E.Q. Název modulu.
$hodnota
Hodnota opce (string)
$autoad
(celé číslo) 1 nebo 0
Zda by tato možnost měla být automaticky nahrána se všemi ostatními možnostmi, pokud jsteS využitím příliš mnoho času v pohledu, nejlepší je automaticky ji nahrát dozabránit více dotazům, abyste získali možnost. Výchozí na 1
Mějte na paměti, žeAdd_optionFunkceNevytvoří možnost, pokud název opce již existuje v tabulce opcí.
get_option($option_name);
Získejte možnost z databáze,$option_name(strunce)Vaše jméno.
Aktualizace_option($option_name,$nová hodnota);
U pacientov liečených rekombinantním eritropoetínou eritropoetínou eritropoetínou eritropoetínou erAktualizace_optionAktualizuje funkciHodnota od verze 2.3.3, když zavoláte_option, pokud aktualizaceMožnost neexistuje, náš CRM vytvoří tuto možnost.