SuiteCRM ist ein Open Source Enterprise Customer Relationship Management-System (CRM) mit umfangreichen Funktionen und hohen Anpassungen, die für kleine und mittelgroße Unternehmen und große Unternehmen geeignet sind. Durch seine flexible Architektur können Entwickler sekundäre Entwicklung und Modulerweiterung entsprechend den spezifischen Bedürfnissen durchführen.
Bitte stellen Sie vor dem Modulentwicklung sicher, dass Sie eine SuiteCrecrm -Umgebung erstellt haben und über entsprechende Berechtigungen für Systemzugriffe und Entwicklungen verfügen. Gleichzeitig ist das grundlegende PHP -Programmierkenntnis erforderlich, um relevante Codebeispiele zu verstehen und anzuwenden.
Um ein benutzerdefiniertes Modul zu erstellen, müssen Sie ein neues Modulverzeichnis unter dem Verzeichnis custom/modules
erstellen. Zum Beispiel könnten wir einen Ordner namens CustomModule
als Stammverzeichnis des Moduls erstellen.
Im Ordner CustomModule
ist die folgende Struktur normalerweise enthalten:
CustomModule.php
: Die Kernklasse des Moduls, die das grundlegende Verhalten definiert.language
Ordner: Sprachpaketdatei, Support Lokalisierung.metadata
Ordner: Enthält Informationen wie Felddefinition, Datenbankstruktur usw. In CustomModule.php
definieren wir die Hauptklasse des Moduls und erben SugarBean
-Klasse. Der Beispielcode lautet wie folgt:
<?php
if (!defined('sugarEntry') || !sugarEntry) die('Not A Valid Entry Point');
class CustomModule extends SugarBean
{
// Modulname
public $module_name = 'CustomModule';
// Datentabellenname
public $table_name = 'custom_module';
// Modulobjekt alias
public $object_name = 'CustomModule';
// Primärschlüsselfeld
public $object_field = 'id';
/**
* Konstruktor
*/
public function __construct()
{
parent::__construct();
}
/**
* Implementieren Sie die Schnittstelle
*/
public function bean_implements($interface)
{
switch ($interface) {
case 'ACL': return true;
}
return false;
}
}
Die Felddefinition des Moduls wird normalerweise im Ordner metadata
platziert, z. B. das Erstellen einer custom_module.php
-Datei mit dem folgenden Inhalt:
<?php
$dictionary['CustomModule'] = array(
'table' => 'custom_module',
'fields' => array(
array(
'name' => 'id',
'type' => 'id',
'required' => true,
'len' => 36,
),
array(
'name' => 'name',
'type' => 'varchar',
'len' => 255,
'required' => true,
),
// Weitere Felddefinitionen können hinzugefügt werden
),
'indices' => array(
array(
'name' => 'custom_module_pk',
'type' => 'primary',
'fields' => array('id'),
),
),
);
SuiteCRM bietet reichhaltige Klassen und Methoden zum Betrieb von Datenbanken, z. B. Hinzufügen, Löschen, Ändern und Überprüfen mit SugarQuery
und BeanFactory
. Im Folgenden finden Sie Beispiele für gemeinsame Operationen:
$query = new SugarQuery();
$query->from(BeanFactory::getBean('CustomModule'));
$query->select(array('id', 'name'));
$query->where()->equals('name', 'John Doe');
$result = $query->execute();
$customModule = BeanFactory::newBean('CustomModule');
$customModule->name = 'John Doe';
$customModule->save();
$customModule = BeanFactory::getBean('CustomModule', '12345678-1234-1234-1234-1234567890ab');
$customModule->name = 'Jane Doe';
$customModule->save();
$customModule = BeanFactory::getBean('CustomModule', '12345678-1234-1234-1234-1234567890ab');
$customModule->mark_deleted('12345678-1234-1234-1234-1234567890ab');
In diesem Artikel werden die wichtigsten Schritte bei der Entwicklung benutzerdefinierter Module in SuiteCRM mithilfe von PHP vorgestellt, einschließlich Modulerstellung, Klassendefinition, Feldstruktureinstellung und Datenbankbetriebsmethoden. Durch die Beherrschung dieser grundlegenden Prozesse können Entwickler die CRM -Funktionen flexibel nach den tatsächlichen Bedürfnissen erweitern und ein Managementsystem erstellen, das Geschäftsprozessen entspricht.