ModulerPlats & Namn
Alla moduler ska läggas till imodulermappi din rotkatalog där vårt CRM är installerat ochvarje modul måstehar unikt mappnamn och init-fil med samma namn som din modulmappNamnHemsida
SkapaDin första modul
Förebörja utveckla en modul, se till att du ställer inUtvecklingslägeför att se någonfel och funktioner/krokar avskrivningsvarningar.
För att komma igång och skapa din första modul, följsteg nedan.
Om ossNavigera till Vår CRM-installation och öppnamodulerHemsida
Om ossSkapa en ny katalog och namnge den efter din modul(t.ex.prov_modulLänkar
Om ossSkapa en ny PHP-filmed samma namn sommodulkatalog, i detta fall,prov_module.php,Denna fil kommer att fungera som "HemsidaFilen"för denna modul.
I så fall är modulen redan skapad och registreradmen det gör ingenting ännu inte heller har något namn eller beskrivningar lagt till, vikommer att lägga till modulmetadata som namn, beskrivning, URL, författare via en PHPblockera kommentar som kommer att fungera som modulrubriker.
Modulrubrikerna bör endast läggas till i init-modulenFilen.
Öppna nu filen most_module.php som vi skapade före ochLägg till följande kommentar högst upp i filen:
<?php
/**
* Säkerställer att modulen init-filen inte kannås direkt, endast inom ansökan.
*/
definierad('BASEPH') ellerexit('Ingen direkt scriptåtkomst tillåten');
/*
Modulnamn: Prova på våraCRM-modul
Beskrivning: Provmodulbeskrivning.
Utgåva: 2.3.0
Kräver minst: 2.3.*Försökning
*/
När du har sparat filen kan du navigera i din vår CRMadmin område tillInställning->Moduleroch du kommer att kunna seDin modul listad.
Kommentaren kommer att fungera som en filrubrik för modulen, dubör kontrolleraFilrubriker guideom du vill fåmer bekant.
Märkese till att du alltid lägger tillModulnamnsidhuvud
Det ärmycket viktigt attKontrollera att din modulmapp och .phpfilnamn är desamma, annars kommer din modul inte att visas imoduler lista
GrundläggandeKrokar
Du måste genomföra några grundläggande krokar när du skaparny modul, somregistrera_aktivering_krok(),registrera_deaktivering_hook()ochregistrera_uninstall_hook()
Om du är bekant med WordPress kommer du förmodligen att vetadet arbete som dessa krokar gör.
Lägga tillKrokar
Du kan lägga till krokar i din modul .php-filer med:
krokar()>add_action($ tagg,$function_to_add, $priority = 10, $accepted_args = 1);
krokar()->add_filter($ tagg,$function_to_add, $priority = 10, $accepted_args = 1);
krokar()->do_action($ tagg,$arg = '');
krokar()->apply_filter($ tagg,$ värde, $ tilläggsparams);
Du kan lägga till egna filter och åtgärder så att du kan användadem i din modulimplementering också, lägga till åtgärder och filter kommer att hjälpaAndra moduler för att interagera med din modul och förlänga modulenFunktionaliteter.
PrefixAnpassade funktioner
Du böralltid prefixera anpassade funktionerochklasser för att förhindra eventuella konflikter med våra CRM-standardfunktioner eller klasser ellermed andra moduler.
AnvändaCodeigniter Instance i modulfiler
Förmodligen kommer du att vilja använda Codeigniter ramverkinstans i din modul init-fil eller andra modulfiler som inte ärutvidga rambasklasserna.
$ detta, fungerar endast inom dina styrenheter,dina modeller eller dina åsikter.
Du kan uppnå detta var som helst i dina filer medFöljande kod:
Tilldela först CodeIgniter-objektet till en variabel:
$CI = &get_instance();
När du har tilldelat objektet en variabel använder duden variabelniställetav$ detta
$Ci=&get_instance();
$CI->belastning->hjälpare('modul_namn/hjälp_namn');
$CI->load->bibliotek('modul_namn/bibliotek_namn');
DatabasPrefix
Från version 2.3.0 Vår CRM har möjlighet att definiera anpassadeDatatabeller prefix.
Standard tabellprefixet i vårt CRM ärtblå
Du bör alltid använda vår anpassade funktiondb_prefix()Tillfå databasprefixet när du frågar databasen, detta säkerställer att iom användaren ändrat databasprefixet kommer din modul fortfarande att fungera medNytt användarprefix.
Här är ett exempel frånMålspårningmodulenWebbplats analys install.phpFilen.
<?php
definierad('BASEPH') ellerexit('Ingen direkt scriptåtkomst tillåten');
om(!$CI->db->tabell_exister(db_prefix() . 'mål')) {
$CI->db-> fråga('Skapa tabell '' .db_prefix() . "Mål" (
'id' int(11) INTE NULL,
'ämne' varchar(191) INTE NULL,
'beskrivning' text INTE NULL,
'startdatum' datum INTE NULL,
'slutdatum' datum INTE NULL,
'mål_typ' int(11) INTE NULL,
'contract_type' int(11) INTE NULL DEFAULT '0',
'prestation' int(11) INTE NULL,
'notifiera_när_misslyckas' liten nyans(1) INTE NULLDefault '1',
'notifiera_när_uppnå' liten nyans(1) INTE NULLDefault '1',
'notified' int(11) INTE NULL DEFAULT '0',
'personal_id' int(11) INTE NULL DEFAULT '0'
) Motor=InnoDB DEFAULTHemsida=" . $CI->db->char_set . ';');
SkapaModulalternativ
Vår CRM har tabell i databasenTillvalförlagra olika inställningar för intern användning och inställningar som används iFunktioner. Vi har utvecklat anpassade PHP-funktioner som kommer att utföra frågor tillHämta alternativ från databasen.
Alternativnamn är strängar, och de måste vara unika så attde strider inte mot varken vår CRM eller andra moduler.
add_option($namn,$värde, $autoload)
$namn
Krävs (sträng). Namnet på alternativet som ska läggas till, görsäker på att den är unik och prefixerad med E.q. Ditt modulnamn.
$värde
Alternativvärdet (sträng)
$autoload
(helt) 1 eller 0
Huruvida det här alternativet ska autoloaded med alla andra alternativ, om du ärmed hjälp av alternativet för mycket tid i vyn, det bästa är att autoload det tillförhindra flera frågor för att få alternativet. Standard till 1
Tänk på attTillägg_optionFunktionenkommer inte att skapa alternativet om alternativnamnet redan finns i alternativtabellen.
get_option($option_namn);
Hämta ett alternativ från databasen,$option_namn(sträng)Ditt alternativnamn.
update_option($option_namn,$ny_värde);
Läs in merUppdatering_optionFunktionen kommer att uppdateraalternativvärde, sedan version 2.3.3, när du ringerupdate_option omAlternativet finns inte, Vår CRM kommer att skapa detta alternativ.