Snapshot原田

備忘録

f-Revo カスタマイズ基礎

vTigerベーシックカスタマイズ

vTigerアーキテクチャ(構造)

モジュール構造

たとえばこんなURLだったとします。

http://***/index.php?module=Contacts&view=Datail&record=xxx

index.phpのあとに?module=Contacts&view=Datail&record=xxx が続いていますね。 これを分解してみていきます。

modlue=Contactsとあります。
これは顧客担当者のモジュールを示しています。

モジュール一覧(abc順)
モジュール 説明
Accounts 顧客企業
Assets 資産
Calender 予定表
Campaigns マーケティング
Contacts 顧客担当者
Dailyports 日報
Documents ドキュメント
EmailTemplates メールテンプレート
Faq 回答事例
HelpDesk サポート依頼
Invoice 請求書
Leads 見込み客
MailManager メールマネージャー
Potencials 案件
PriceBooks 価格台帳
Products 製品
Project プロジェクト
PurchOrder 購買発注
Quorts 見積もり
Reports
SaledOrder 販売受注
ServiceContracts サービス契約
Services サービス
SMSNotfier SMS通知
Vendors 納入業者
  • ホームindex
    http://***/index.php?moduke=Home&view=DashBoard

  • 顧客企業 DetailView

  • 案件 EditView
  • 顧客担当者 ListView

Vtlibについて

VtlibはvtigerCRMの新しいモジュールの開発を容易にするためのライブラリです。

新規モジュール作成をやりながらVtlibの機能を追って行きましょう。

モジュール インスタンス作成/データベーステーブル作成/メニューに追加

|php|  $module_name = ‘Sample’; $table_name = ‘vtiger_sample’; $main_name = “titlename”; $main_id = “sampleid”; //module作成 $module = new Vtiger_Module(); $module->name = $module_name; $module->save(); $module->initTables($table_name, $main_id); $menu = Vtiger_Menu::getInstance(‘Tools’); $menu->addModule($module);

||<

テーブル名 命名規則 説明
Basetable vtiger_ 新しいモジュールのデフォルトのフィールドが含まれる (例:vtiger_sample)
CustomTable vtiger_cf モジュールのカスタムフィールドが含まれる (例:vtiger_samplecf)

*1

ブロック追加

以下の例はさっき作ったモジュールに新しいブロックを作成 する方法について説明する

|php| // block作成 $blockInstance = new Vtiger_Block(); $blockInstance->label = ‘LBL_SAMPLE_INFORMATION’; $module-> addBlock($blockInstance);

ここでいう'LBL_SAMPLE_INFORMATION'がブロックラベル名

フィールド追加

以下の例はさっき作成したブロックに新しいフィールドを作成する方法について 説明しています。

|php| // field作成 $field = new Vtiger_Field(); $field->name = ‘TitleName’; $field->table = ‘vtiger_sample’; $field->column = ‘titlename’; $field->columntype = ‘VARCHAR(255)’; $field->uitype = 1; $field->typeofdata = ‘V~M’; $blockInstance->addField($field); $filter_field1 = $field;

ここでよく使うのが'$fieldInstance -> ***(この部分にオプション名) = (ここに値やら関数やら配列)'を記入

fieldInstanceのオプション名一覧
オプション 説明
table テーブル名
colmn カラム名
colmntype カラムの種類・長さ
uitype UIのタイプ
name ラベル名
typeofdata データのタイプ
presence 0-常に表示(レイアウトエディタで変更不可) 1-非表示 2-表示(レイアウトエディタで変更可)
quickcreate 0-クイック作成フォームで入力可 1-クイック作成フォームで入力不可
masseditable 0-一括編集禁止(レイアウトエディタで変更不可) 1-一括編集許可 2-一括編集禁止(レイアウトエディタで変更可)

フィールド追加時 必須手順

新規作成するモジュールのうち1項目に対して書き設定を行う。 本設定は顧客企業であれば顧客企業名、案件であれば案件名といった各画面でのリンクとなる項目。」

|php| / * モジュール内でキーとなるカラム1つに対して実行 * 複数回は実施しないこと / $module->setEntityIdentifier($field);

uitypeの振り番号一覧
uitype 説明
1 テキスト
2 テキスト(必須)
3 [私の設定]の[アクセスキー]の自動生成
4 [請求書番号]のような自動生成される(必須)
5 日付
6 日付と時間
7 数値
8 JSON配列。カンマで区切られた文字列になる
9 パーセンテージ
10 関連(複数のモジュールから選択できる)
11 テキスト(妥当性チェックなし)
13 電子メールアドレス(チェックあり)
15 選択型コンボボックス(役割に基づいた定義リスト)
16 選択型コンボボックス(役割に基づかない定義リスト)
17 ウェブサイト
19 テキストエリア(2列分)
20 テキストエリア(2列分)※必須
21 テキストエリア
26 ドキュメントフォルダ
30 [予定表]-[アラーム]のドロップダウン
33 複数選択コンボボックス
53 ドロップダウン+ラジオボタン
56 チェックボックス
71 通貨

フィルタ作成

*1:f-Revo公式マニュアルより