Modul Grundlagen

Modul Grundlagen

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.


    • Related Articles

    • Modul Dateikopfzeilen

      Jedes Modul in unserem CRM besteht aus init-Datei, die enthältdie allgemeine Modulkonfiguration und enthält Header mitMetainformationen zum Modul. Modulinit file Header Beispiel Das folgende Beispiel stammt aus dem Standard Unser CRM-ModulMenü Setup, ...
    • Gemeinsame Modulfunktionen

      register_aktivierung_haken /**/ * Registriermodul Aktivierungshaken * @paramstring $modulModulsystemname * @paramgemischte $funktionFunktion für den Haken * @return gemischt *// register_activation_hook($modul, $funktion) register_deaktivierung_hook ...
    • Modulsicherheit

      Sie haben Ihr Modul erstellt und funktioniert gut, aber ist essicher? Sie müssen sicherstellen, dass Ihr Modul sicher ist und nicht anfällig für irgendwelcheSQL Injektionen sind Verzeichnisüberquerung. Sie können unten bewährte Verfahren finden, um ...
    • Menüpunkte erstellen

      Wenn Sie Ihre benutzerdefinierten Module erstellen, werden Sie wahrscheinlichMenüpunkte zu erstellen, die in der Seitenleiste des Admin-Bereichs oder des Clients angezeigt werdenNavigation. Mit unserem CRM können Sie dies leicht mit wenigen Zeilen ...
    • Datenverarbeitung Nachtrag

      Damit Sie als Service-Nutzer und Datenverantwortlicher(verantwortlicher" oder "Benutzer") kann a) unserePlattform für soziale und geschäftliche Netzwerke; und b) unsere Hilfsdienste zu nutzen("Dienstleistungen") von uns angeboten, BIMeta Corporation ...