SuiteCRMは、中小企業や大規模な組織に適した、豊富な機能と高いカスタマイズ可能性を備えたオープンソースエンタープライズカスタマーリレーションシップマネジメント(CRM)システムです。柔軟なアーキテクチャを通じて、開発者は特定のニーズに応じて二次開発とモジュールの拡張を実行できます。
モジュール開発の前に、SuiteCRM環境を構築し、対応するシステムアクセスおよび開発権限があることを確認してください。同時に、関連するコードの例を理解して適用するには、基本的なPHPプログラミングの知識が必要です。
カスタムモジュールを作成するには、 custom/modules
ディレクトリの下に新しいモジュールディレクトリを作成する必要があります。たとえば、モジュールのルートディレクトリとしてCustomModule
という名前のフォルダーを作成できます。
CustomModule
フォルダーには、通常、次の構造が含まれています。
CustomModule.php
:モジュールのコアクラス、基本的な動作を定義します。language
フォルダー:言語パッケージファイル、ローカリゼーションをサポートします。metadata
フォルダー:フィールド定義、データベース構造などの情報が含まれています。CustomModule.php
では、モジュールのメインクラスを定義し、SuiteCRMが提供するSugarBean
クラスを継承します。サンプルコードは次のとおりです。
<?php
if (!defined('sugarEntry') || !sugarEntry) die('Not A Valid Entry Point');
class CustomModule extends SugarBean
{
// モジュール名
public $module_name = 'CustomModule';
// データテーブル名
public $table_name = 'custom_module';
// モジュールオブジェクトエイリアス
public $object_name = 'CustomModule';
// 主キーフィールド
public $object_field = 'id';
/**
* コンストラクタ
*/
public function __construct()
{
parent::__construct();
}
/**
* インターフェイス判断を実装します
*/
public function bean_implements($interface)
{
switch ($interface) {
case 'ACL': return true;
}
return false;
}
}
モジュールのフィールド定義は、通常、 custom_module.php
ファイルの作成など、次のコンテンツを使用してmetadata
フォルダーに配置されます。
<?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,
),
// より多くのフィールド定義を追加できます
),
'indices' => array(
array(
'name' => 'custom_module_pk',
'type' => 'primary',
'fields' => array('id'),
),
),
);
SuiteCRMは、 SugarQuery
とBeanFactory
を使用して追加、削除、変更、チェックなど、データベースを操作するための豊富なクラスと方法を提供します。以下は一般的な操作の例です。
$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');
この記事では、モジュールの作成、クラス定義、フィールド構造設定、データベース操作方法など、PHPを使用してSuiteCRMでカスタムモジュールを開発する際の重要な手順を紹介します。これらの基本プロセスを習得することにより、開発者は実際のニーズに応じてCRM機能を柔軟に拡張し、ビジネスプロセスに準拠する管理システムを構築できます。