vtigercrm 6.x や f-revocrm 6.x で、新しいモジュールを作りたい場合。
まずは空っぽの最低限の機能を備えただけのモジュールを作ります。
インストールしてあるディレクトリに移動し、console.php
を実行すると、処理内容についてのプロンプトが出ます。
$ php vtlib/tools/console.php
Choose the options below:
1. Create New Module.
2. Create New Layout.
3. Create New Language Pack.
4. Create Test Language Pack.
5. Import Module.
6. Update Module.
7. Remove Module.
Enter your choice:
新しいモジュールを作りたいので 1 を選んでいきましょう。
Enter your choice: 1
>>> MODULE <<<
Enter module name: sampleModule
Entity field (Name): name
Creating ...DONE.
Enter module name でモジュール名を指定します。これはアルファベットにしておきます。今回は sampleModule。
エンティティフィールド(入力必須?)のところにはフィールドをとりあえず一つ準備します。今回は name とします。キーは別でもっているっぽいので、これはプライマリキーではないようです。
ここまでの処理で、モジュールが作成され、管理画面のモジュール一覧に載り、基本的な php ファイルが配置されます。
あとは好きなだけフィールドを足していきましょう。
他のモジュールと関連付けるには、vtlib を使ったちょっとしたコードを書いてあげればいけます。
たとえば、いま作ったばかりの sampleModule → Contacts(顧客担当者)の関連付けをしたい場合は以下のような感じです。
<?php
$Vtiger_Utils_Log = true;
include_once('vtlib/Vtiger/Module.php');
$moduleInstance = Vtiger_Module::getInstance('sampleModule');
$contactsModule = Vtiger_Module::getInstance('Contacts');
$relationLabel = 'Contacts';
$moduleInstance->setRelatedList(
$contactsModule, $relationLabel, Array('ADD','SELECT')
);
?>
逆向きの関連付けの場合は、モジュール名の指定を逆にすればいけるでしょう。
vtlib 呼ぶコード書くときは、最初に $Vtiger_Utils_Log = true;
と入れておくと、何の処理をしたか出力してくれるので確認に便利です。