Basics van de module Module

Basics van de module Module

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.


    • Related Articles

    • Gemeenschappelijke Modulefuncties van de module

      register_activation_hook register_act /** /** /** /** * Registreer module activeringshaak * @param * @param * @paramstring $module string $modulesysteemnaammodule systeemnaammodule systeemnaam * @param * @param * @paramgemengde $functie gemengde ...
    • Module Security

      Dus je hebt je module gemaakt en werkt prima, maar is hetVeilig? Veilig? U moet ervoor zorgen dat uw module veilig is en niet kwetsbaar is voor eenSQL-injecties zijn directory traversing. Hieronder vindt u best practices om ervoor te zorgen dat uwDe ...
    • Module File Headers

      Elke module in ons CRM bestaat uit init-bestand dat bevatde algemene moduleconfiguratie en omvat kopteksten die kopteksten bevattenmeta-informatie over de module. Module Module Modulevoorbeeld init file headers voorbeeld init file headers Het ...
    • Anti-witwaspraktijken, bestrijding van financiering van terrorisme

      Inleiding Introductie BIMetaMaatschappij, Maatschappij,welke welke welke welkespecializedin in indevelopinguniqueapplicationsvoor voor voorarchitecten, architecten,ingenieurs, ingenieurs,en en enaannemers,isdedicatedOm teblijven verblijvendoor door ...
    • Betalingsmodi van betalingsmodi

      Als u een nieuwe betaalmodus wilt toevoegen, gaat u naarInstellen->Financiën->BetalingsmodiKlik op de knop linksboven en klik op de knopNieuwe Betaalmodus Nieuwe Betaalmodus Naam van de betalingsmodus - Eq. Bank Bankrekeningen - Beschrijving - Geef ...