Modules ModulesLocatie & naam
Alle modules moeten worden toegevoegd aan demodulesfolderin uw hoofdmap waar onze CRM is geïnstalleerd eneach module mustunieke mapnaam en init-bestand met dezelfde naam als uw modulemapname. . .
Creëren makenuw eerste module
Voordat voor eerder eerder eerder eerder eerder eerder eerderBegin met het ontwikkelen van een module, zorg ervoor dat u insteltOntwikkelingsmodus ontwikkelingsmodus ontwikkelingsmodus ontwikkelingsmodusOm te zien dat er eenFouten en functies/haken afschrijvingen waarschuwingen.
Om aan de slag te gaan en uw eerste module te maken, volgt u deonderstaande stappen.
·Navigeer naar onze CRM-installatie en open demodulesdirectory
·Maak een nieuwe map aan en geef deze een naam naar uw module(e.q.sample_module) ) ) ) ) )
·Een nieuw PHP-bestand makenmet dezelfde naam als demodule directory, in dit geval,sample_module.php, voorbeeld_module.php,this file will act as "Initbestand" bestand "bestand"" bestand"voor deze module.
In dit geval is de module al gemaakt en geregistreerdMaar het doet nog niets en heeft geen naam of beschrijvingen toegevoegd, wevoegt de modulemetagegevens toe zoals naam, beschrijving, URL, auteur via een PHPblokcommentaar die fungeert als module headers.
De modulekoppen mogen alleen in de init module in de init module worden toegevoegdbestand. bestand. bestand.
Open nu het bestand sample_module.php dat we eerder hebben gemaakt enVoeg de volgende opmerking toe bovenaan het bestand:
<?phpp <?php
/** /** /** /**
* Zorgt ervoor dat het module-init bestand niet kan zijnRechtstreeks toegankelijk, alleen binnen de applicatie.
*/ */ */
gedefinieerd('BASEPATH') ofexit('Geen directe toegang tot het script toegestaan');
/* /* /*
Naam van de module: Steekproef OnzeCRM-module CRM-module
Omschrijving: Steekproefbeschrijving van de module.
Versie: 2.3.0
Vereist ten minste: 2.3.* * * * * * *
*/ */ */
Nadat u het bestand hebt opgeslagen, kunt u navigeren in uw CRMadmin-gebied naar beheerdersgebied naarInstellen->Modulesen je zult in staat zijn om te zienuw module vermeld.
De opmerking fungeert als een bestandskop voor de module, uControleer of defile headers guideAls je wilt krijgenMeer vertrouwd.
MakeZorg ervoor dat u altijd deNaam van de module Moduleheader header koptekst header
Het iszeer belangrijk om zeer belangrijk om te zijn omZorg ervoor dat de naam van uw modulemap en de .phppDe bestandsnaam is dezelfdeAnders wordt uw module niet weergegeven in deLijst met modules modules lijst met modules modules
BasicHaken
U moet weinig basishaken implementeren bij het maken van een paar basishakennieuwe module, zoalsregister_activation_hook(),register_deactivation_hook()en en enregister_uninstall_hook() register_uninstall_hook()
Als je bekend bent met WordPress, weet je het waarschijnlijkHet werk dat deze haken doen.
Toevoegen toevoegenHaken
U kunt haken toevoegen in uw module .php-bestanden met:
haken()->add_action($tag,$function_to_add, $priority = 10, $accepted_args = 1);
haken()->add_filter($tag,$function_to_add, $priority = 10, $accepted_args = 1);
haken()->do_action($tag,$arg = '');
haken()->apply_filters($tag,$waarde, $extraParams);
U kunt uw eigen filters en acties toevoegen, zodat u deze kunt gebruikenook in de implementatie van uw module, het toevoegen van acties en filters zal helpenandere modules om te communiceren met uw module en de module uit te breidenfunctionaliteiten.
Prefix PrefixAangepaste functies
Je moetalways prefix any custom functionsen en enklassen om conflicten met onze CRM-standaardfuncties of -klassen te voorkomen ofmet alle andere modules.
Gebruik gebruiken gebruiken gebruiken gebruiken gebruiken gebruikenCodeigniter Instantie in modulebestanden
Waarschijnlijk wilt u het Codeigniter-framework gebruikeninstantie in uw module init-bestand of andere modulesbestanden die niet zijnextending the framework base classes.
$this $this $, werkt alleen binnen uw controllers,uw modellen of uw weergaven.
U kunt dit overal in uw bestanden bereiken met devolgende code:
Wijs eerst het CodeIgniter-object toe aan een variabele:
$CI = &get_instance();
Nadat u het object aan een variabele hebt toegewezen, gebruikt udie variabele die variabeleinsteadvan$this $this $
$Ci $ci $ci=&get_instance();
$CI->load->helper('module_name/helper_name');
$CI->load->bibliotheek('module_name/library_name');
DatabasePrefix Prefix
Vanaf versie 2.3.0 Onze CRM heeft de mogelijkheid om aangepaste aangepaste te definiërendatabase tables prefix.
The default table prefix in Our CRM istbl
Gebruik altijd onze aangepaste functiedb_prefix() db_prefix()Om tehet databasevoorvoegsel bij het opvragen van de database, dit zorgt ervoor dat inAls de gebruiker het voorvoegsel van de database heeft gewijzigd, werkt uw module nog steeds met denew user prefix.
Hier is een voorbeeld uit deDoelen Trackingmoduleinstall.phpbestand. bestand. bestand.
<?phpp <?php
gedefinieerd('BASEPATH') ofexit('Geen directe toegang tot het script toegestaan');
indien indien indien(!$CI->db->table_exists(db_prefix() . 'doelen')) { 'doelen')) {
$CI->db->query('CREATE TABEL '' .db_prefix() . "doelen" (
"id' int(11) NIET NULL,
"onderwerp" varchar(191) NIET NULL,
'beschrijving' tekst NIET NULL,
'start_date' datum NIET NULL,
'end_date' datum NIET NULL,
'doel_type' int(11) NIET NULL,
'contract_type' int(11) NIET NULL DEFAULT '0',
"prestatie" int(11) NIET NULL,
'notify_when_fail' tinyint(1) NIET NULLDefinitieve '1', DEFAULT '1',
'notify_when_achieve' tinyint(1) NIET NULLDefinitieve '1', DEFAULT '1',
"Kennisgeving": int(11) NIET NULL DEFAULT '0',
'personeel_id' int(11) NIET NULL DEFAULT '0'
ENGINE=InnoDB DEFAULTCHARSET=" . $CI->db->char_set . ";");
CreateModuleopties Moduleopties
Onze CRM heeft een tabel in databaseoptionsvoor voor voorhet opslaan van verschillende instellingen voor intern gebruik en instellingen die worden gebruikt infuncties. functies. We hebben aangepaste PHP-functies ontwikkeld die query's uitvoeren omOpties ophalen uit de database.
Optienamen zijn tekenreeksen en ze moeten uniek zijn, zodatZe zijn niet in strijd met onze CRM of andere modules.
add_option($naam, add_option($naam,$waarde, $autoload)
$naam $naam
Vereist (snaar). De naam van de toe te voegen optie, maakHet is uniek en voorafgegaan door E.q. naam van uw module.
waarde van $ $ $ $
De optiewaarde (snaar)
$autoload $autoload
(integer) 1 of 0
Of deze optie automatisch moet worden aangepast met alle andere opties, als uMet behulp van de optie te veel tijd in het uitzicht, het beste is om het automatisch te automatisch te kiezen omMeerdere query's voorkomen om de optie te krijgen. Standaardwaarden op 1
Houd er rekening mee dat er rekening mee datadd_optionfunctionDe optie wordt niet gemaakt als de naam van de optie al bestaat in de optietabel.
get_option($option_naam);
Een optie ophalen uit de database,$option_name(snaar)De naam van uw optie.
update_option($option_name, update_option($option_name)$new_waarde); $new_waarde);
Deupdate_optionDe functie werkt de functie zal de functie bijwerken deoptiewaarde, sinds versie 2.3.3, wanneer u beltupdate_option als deOnze CRM maakt deze optie niet mogelijk, onze CRM zal deze optie maken.