1

CiviCRM 拡張機能を構築しています。これには、拡張機能に固有のさまざまな構成を設定するための UI を備えた管理セクションもあります。データベースに構成を保存するための推奨されるアプローチを探しています。

1 つの方法は、特にこの目的のためにデータベースに新しいテーブルを作成することですが、保存するオプションが 2 つしかない場合、これはやり過ぎのように思えます。

別の方法として、テーブルを使用することもできcivicrm_settingます。これは最初は理にかなっていますが、このテーブルがこの目的で使用されることを意図しているかどうかはわかりません。

アドバイスをいただければ幸いです。

4

2 に答える 2

3

はい、間違いなく使用できますし、使用する必要がありますcivicrm_setting

civicrm_settinggroup_name拡張機能の一意の識別子を含む必要がある列があります。私は通常、拡張機能の完全な名前を付けorg.example.extensionますが、それは任意の文字列である可能性があり、コアではラベル名 (例: Preference settings) を使用します。

これらの設定を操作するには、次の操作を実行できます。

// save the setting
CRM_Core_BAO_Setting::setItem($value, 'My group name', 'my_setting_name');

// get the setting
$setting = CRM_Core_BAO_Setting::getItem('My group name', 'my_setting_name');

// get all the setting for you extension
$settings = CRM_Core_BAO_Setting::getItem('My group name');

用の API があるSettingようですが、CiviCRM 4.4.x ではうまく動作しないようです。CiviCRM 4.5 の方が優れているかどうかはわかりません。

于 2014-11-07T22:34:26.623 に答える