SuiteCRM은 중소 기업 및 대규모 조직에 적합한 풍부한 기능과 높은 사용자 정의 성을 갖춘 오픈 소스 엔터프라이즈 고객 관계 관리 (CRM) 시스템입니다. 유연한 아키텍처를 통해 개발자는 특정 요구에 따라 2 차 개발 및 모듈 확장을 수행 할 수 있습니다.
모듈 개발 전에 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 기능을 유연하게 확장하고 비즈니스 프로세스를 준수하는 관리 시스템을 구축 할 수 있습니다.