ModuleLage & Name
Alle Module sollten in derModuleOrdnerin Ihrem Stammverzeichnis, in dem unser CRM installiert ist undjedes Modul musseindeutigen Ordnernamen und init-Datei mit dem gleichen Namen wie Ihr ModulordnerName:.
ErstellenIhr erstes Modul
Vorherigebeginnen, ein Modul zu entwickeln, stellen Sie sicher, dass SieEntwicklungsmodusum alle zu sehenFehler und Funktionen/Haken Abschreibungen Warnungen.
Um loszulegen und Ihr erstes Modul zu erstellen, folgen Sie denSchritte unten.
· · ·Navigieren Sie zu unserer CRM-Installation und öffnen Sie dieModuleVerzeichnis
· · ·Erstellen Sie ein neues Verzeichnis und benennen Sie es nach Ihrem Modul(z.B.sample_modul) )
· · ·Neue PHP-Datei erstellenmit dem gleichen Namen wie dieModulverzeichnis, in diesem Fallsample_module.php,diese Datei wird als "initiativDatei"für dieses Modul.
In diesem Fall wird das Modul bereits erstellt und registriertaber es tut noch nichts und hat keinen Namen oder Beschreibungen hinzugefügt, wirfügt die Modulmetadaten wie Name, Beschreibung, URL, Autor über ein PHP hinzuBlockkommentar, der als Modulüberschriften fungiert.
Die Modulüberschriften sollten nur im init-Modul hinzugefügt werdenDatei.
Öffnen Sie nun die Datei sample_module.php, die wir zuvor erstellt haben undfügen Sie den folgenden Kommentar oben in der Datei hinzu:
<?php
/**/
* Stellen Sie sicher, dass die Modul init-Datei nicht sein kanndirekt abgerufen, nur innerhalb der Anwendung.
*//
defined('BASEPATH') oderexit('Kein direkter Skriptzugriff erlaubt');
/*
Modulname: Probe UnserCRM-Modul
Beschreibung: SampleModulbeschreibung.
Ausführung: 2.3.0
Benötigt mindestens: 2.3.* * *
*//
Nachdem Sie die Datei gespeichert haben, können Sie in Ihrem CRM navigierenAdmin-Bereich zuSetup->Moduleund Sie werden sehen könnenIhr Modul aufgelistet.
Der Kommentar fungiert als Dateikopf für das Modul, Siesollte dieDatei-Header Anleitungwenn Sie wollenvertrauter.
Machen Siesicher, dass Sie immer dieName des ModulsHeader
Es istsehr wichtig zuStellen Sie sicher, dass Ihr Modulordnername und die .phpDateiname sind gleichsonst wird Ihr Modul nicht in derModulliste
GrundlegendeHaken
Sie müssen einige grundlegende Haken implementieren, wenn Sie erstellenneues Modul, wieregister_activation_hook(),register_deaktivierung_hook()undregistrieren_uninstall_hook()
Wenn Sie mit WordPress vertraut sind, werden Sie wahrscheinlich wissen,die Arbeit, die diese Haken tun.
HinzufügenHaken
Sie können Haken in Ihrem Modul .php Dateien hinzufügen mit:
hooks()->add_action($tag,$function_to_add, $priority = 10, $accepted_args = 1);
hooks()->add_filter($tag,$function_to_add, $priority = 10, $accepted_args = 1);
hooks()->do_action($tag,$arg = '');
hooks()->apply_filters($tag,$Wert, $zusätzliche Params);
Sie können Ihre eigenen Filter und Aktionen hinzufügen, damit Siesie auch in Ihrer Modulimplementierung, Hinzufügen von Aktionen und Filtern wird helfenandere Module zur Interaktion mit Ihrem Modul und Erweiterung des ModulsFunktionen.
VorwahlBenutzerdefinierte Funktionen
Sie solltenimmer beliebige benutzerdefinierte FunktionenundKlassen, um Konflikte mit unseren CRM-Standardfunktionen oder -klassen zu verhindern odermit anderen Modulen.
VerwendungCodeigniter Instanz in Moduldateien
Wahrscheinlich möchten Sie das Codeigniter Framework verwenden wollenInstanz in Ihrer Modul init Datei oder anderen Module Dateien, die nichtErweiterung der Rahmengrundklassen.
$dieses, funktioniert nur innerhalb Ihrer Controller,Ihre Modelle oder Ihre Ansichten.
Sie können dies überall in Ihren Dateien mit demfolgender Code:
Weisen Sie zunächst das CodeIgniter-Objekt einer Variablen zu:
$CI = &get_instance();
Sobald Sie das Objekt einer Variablen zugewiesen haben, werden Siediese Variablestattdessenvon$dieses
$CI, Deutschland=&get_instance();
$CI->load->helper('module_name/helper_name');
$CI->load->library('module_name/library_name');
DatenbankenVorwahl
Ab Version 2.3.0 Unser CRM haben die Möglichkeit, benutzerdefinierte zu definierenPräfix für Datenbank-Tabellen.
Das Standard-Tabellenpräfix in unserem CRM isttbl-Karten
Sie sollten immer unsere benutzerdefinierte Funktion nutzendb_prefix()nachdas Datenbankpräfix beim Abfragen der Datenbank erhalten, wird dies sichergestellt, dass infalls der Benutzer das Datenbankpräfix geändert hat, funktioniert Ihr Modul immer noch mit demneues Benutzerpräfix.
Hier ist ein Beispiel aus demZieleverfolgungModulinstall.php - Die neue VersionDatei.
<?php
defined('BASEPATH') oderexit('Kein direkter Skriptzugriff erlaubt');
wenn(!$CI->db->table_exists(db_prefix() . 'Ziele') {
$CI->db->query('TISCH ERSTELLEN '' .db_prefix() . . . "Ziele' (
'id' int(11) NICHT NULL,
'subject' varchar(191) NICHT NULL,
'Beschreibung' Text NICHT NULL,
'start_date' Datum NICHT NULL,
'end_date' Datum NICHT NULL,
'goal_type' int(11) NICHT NULL,
'contract_type' int(11) NICHT NULL DEFAULT '0',
'Erreichung' int(11) NICHT NULL,
'notify_when_fail' tinyint(1) NICHT NULLDefault '1',
'notify_when_achieve' tinyint(1) NICHT NULLDefault '1',
'notified' int(11) NICHT NULL DEFAULT '0',
'staff_id' int(11) NICHT NULL DEFAULT '0'
) MOTOR=InnoDB DEFAULTCHARSET=" . $CI->db->char_set . . ';');
Erstellen SieModuloptionen
Unser CRM hat Tabelle in der DatenbankOptionenfürSpeichern verschiedener Einstellungen für die interne Nutzung und Einstellungen, die inFunktionen. Wir haben benutzerdefinierte PHP-Funktionen entwickelt, die Abfragen ausführenOptionen aus der Datenbank abrufen.
Optionsnamen sind Strings, und sie müssen eindeutig sein, damitsie stehen weder mit unserem CRM noch anderen Modulen in Konflikt.
add_option($name,$Wert, $autoload)
$Name
Erforderlich (String). Der Name der Option hinzuzufügenden Option, machensicher ist, dass es einzigartig und mit E.q. Ihren Modulnamen.
$Wert
Der Optionswert (String)
$autoload
(ganz) 1 oder 0
Ob diese Option mit allen anderen Optionen autoloadiert werden sollte, wenn Siemit der Option zu viel Zeit in der Ansicht, ist das Beste, es autoloadieren, umverhindern Sie mehrere Abfragen, um die Option zu erhalten. Standardmäßig 1
Denken Sie daran, dassadd_optionFunktionerstellt die Option nicht, wenn der Optionsname bereits in der Options-Tabelle vorhanden ist.
get_option($option_name);
Option aus der Datenbank abrufen,$option_Name(String)Ihren Optionsnamen.
update_option($option_name,$new_value);
Dieupdate_optionFunktion aktualisiert dieOptionswert, seit Version 2.3.3, wenn Sie aufrufenupdate_option wenn dieOption nicht existiert, Unser CRM wird diese Option erstellen.