5 * @copyright CiviCRM LLC https://civicrm.org/licensing
7 * Generated from xml/schema/CRM/Core/Setting.xml
8 * DO NOT EDIT. Generated by CRM_Core_CodeGen
9 * (GenCodeChecksum:1cc77a956cd4dfc7dd2a7f22579ad742)
13 * Database access object for the Setting entity.
15 class CRM_Core_DAO_Setting
extends CRM_Core_DAO
{
16 const EXT
= 'civicrm';
17 const TABLE_ADDED
= '4.1';
20 * Static instance to hold the table name.
24 public static $_tableName = 'civicrm_setting';
27 * Should CiviCRM log any modifications to this table in the civicrm_log table.
31 public static $_log = FALSE;
39 * Unique name for setting
46 * data associated with this group / name combo
53 * Which Domain is this menu item for
60 * FK to Contact ID if the setting is localized to a contact
67 * Is this setting a contact specific or site wide setting?
74 * Component that this menu item belongs to
81 * When was the setting created
88 * FK to civicrm_contact, who created this setting
97 public function __construct() {
98 $this->__table
= 'civicrm_setting';
99 parent
::__construct();
103 * Returns localized title of this entity.
105 * @param bool $plural
106 * Whether to return the plural version of the title.
108 public static function getEntityTitle($plural = FALSE) {
109 return $plural ?
ts('Settings') : ts('Setting');
113 * Returns foreign keys and entity references.
116 * [CRM_Core_Reference_Interface]
118 public static function getReferenceColumns() {
119 if (!isset(Civi
::$statics[__CLASS__
]['links'])) {
120 Civi
::$statics[__CLASS__
]['links'] = static::createReferenceColumns(__CLASS__
);
121 Civi
::$statics[__CLASS__
]['links'][] = new CRM_Core_Reference_Basic(self
::getTableName(), 'domain_id', 'civicrm_domain', 'id');
122 Civi
::$statics[__CLASS__
]['links'][] = new CRM_Core_Reference_Basic(self
::getTableName(), 'contact_id', 'civicrm_contact', 'id');
123 Civi
::$statics[__CLASS__
]['links'][] = new CRM_Core_Reference_Basic(self
::getTableName(), 'component_id', 'civicrm_component', 'id');
124 Civi
::$statics[__CLASS__
]['links'][] = new CRM_Core_Reference_Basic(self
::getTableName(), 'created_id', 'civicrm_contact', 'id');
125 CRM_Core_DAO_AllCoreTables
::invoke(__CLASS__
, 'links_callback', Civi
::$statics[__CLASS__
]['links']);
127 return Civi
::$statics[__CLASS__
]['links'];
131 * Returns all the column names of this table
135 public static function &fields() {
136 if (!isset(Civi
::$statics[__CLASS__
]['fields'])) {
137 Civi
::$statics[__CLASS__
]['fields'] = [
140 'type' => CRM_Utils_Type
::T_INT
,
141 'title' => ts('Setting ID'),
143 'where' => 'civicrm_setting.id',
144 'table_name' => 'civicrm_setting',
145 'entity' => 'Setting',
146 'bao' => 'CRM_Core_BAO_Setting',
156 'type' => CRM_Utils_Type
::T_STRING
,
157 'title' => ts('Setting Name'),
158 'description' => ts('Unique name for setting'),
160 'size' => CRM_Utils_Type
::HUGE
,
161 'where' => 'civicrm_setting.name',
162 'table_name' => 'civicrm_setting',
163 'entity' => 'Setting',
164 'bao' => 'CRM_Core_BAO_Setting',
170 'type' => CRM_Utils_Type
::T_TEXT
,
171 'title' => ts('Value'),
172 'description' => ts('data associated with this group / name combo'),
173 'where' => 'civicrm_setting.value',
174 'table_name' => 'civicrm_setting',
175 'entity' => 'Setting',
176 'bao' => 'CRM_Core_BAO_Setting',
178 'serialize' => self
::SERIALIZE_PHP
,
180 'label' => ts("Value"),
185 'name' => 'domain_id',
186 'type' => CRM_Utils_Type
::T_INT
,
187 'title' => ts('Domain ID'),
188 'description' => ts('Which Domain is this menu item for'),
190 'where' => 'civicrm_setting.domain_id',
191 'table_name' => 'civicrm_setting',
192 'entity' => 'Setting',
193 'bao' => 'CRM_Core_BAO_Setting',
195 'FKClassName' => 'CRM_Core_DAO_Domain',
197 'label' => ts("Domain"),
199 'pseudoconstant' => [
200 'table' => 'civicrm_domain',
202 'labelColumn' => 'name',
207 'name' => 'contact_id',
208 'type' => CRM_Utils_Type
::T_INT
,
209 'title' => ts('Contact ID'),
210 'description' => ts('FK to Contact ID if the setting is localized to a contact'),
211 'where' => 'civicrm_setting.contact_id',
212 'table_name' => 'civicrm_setting',
213 'entity' => 'Setting',
214 'bao' => 'CRM_Core_BAO_Setting',
216 'FKClassName' => 'CRM_Contact_DAO_Contact',
218 'label' => ts("Contact"),
223 'name' => 'is_domain',
224 'type' => CRM_Utils_Type
::T_BOOLEAN
,
225 'title' => ts('Is Domain Setting?'),
226 'description' => ts('Is this setting a contact specific or site wide setting?'),
227 'where' => 'civicrm_setting.is_domain',
228 'table_name' => 'civicrm_setting',
229 'entity' => 'Setting',
230 'bao' => 'CRM_Core_BAO_Setting',
235 'name' => 'component_id',
236 'type' => CRM_Utils_Type
::T_INT
,
237 'title' => ts('Component ID'),
238 'description' => ts('Component that this menu item belongs to'),
239 'where' => 'civicrm_setting.component_id',
240 'table_name' => 'civicrm_setting',
241 'entity' => 'Setting',
242 'bao' => 'CRM_Core_BAO_Setting',
244 'FKClassName' => 'CRM_Core_DAO_Component',
247 'label' => ts("Component"),
249 'pseudoconstant' => [
250 'table' => 'civicrm_component',
252 'labelColumn' => 'name',
257 'name' => 'created_date',
258 'type' => CRM_Utils_Type
::T_DATE + CRM_Utils_Type
::T_TIME
,
259 'title' => ts('Setting Created Date'),
260 'description' => ts('When was the setting created'),
261 'where' => 'civicrm_setting.created_date',
262 'table_name' => 'civicrm_setting',
263 'entity' => 'Setting',
264 'bao' => 'CRM_Core_BAO_Setting',
269 'name' => 'created_id',
270 'type' => CRM_Utils_Type
::T_INT
,
271 'title' => ts('Created By Contact ID'),
272 'description' => ts('FK to civicrm_contact, who created this setting'),
273 'where' => 'civicrm_setting.created_id',
274 'table_name' => 'civicrm_setting',
275 'entity' => 'Setting',
276 'bao' => 'CRM_Core_BAO_Setting',
278 'FKClassName' => 'CRM_Contact_DAO_Contact',
280 'label' => ts("Created By"),
285 CRM_Core_DAO_AllCoreTables
::invoke(__CLASS__
, 'fields_callback', Civi
::$statics[__CLASS__
]['fields']);
287 return Civi
::$statics[__CLASS__
]['fields'];
291 * Return a mapping from field-name to the corresponding key (as used in fields()).
294 * Array(string $name => string $uniqueName).
296 public static function &fieldKeys() {
297 if (!isset(Civi
::$statics[__CLASS__
]['fieldKeys'])) {
298 Civi
::$statics[__CLASS__
]['fieldKeys'] = array_flip(CRM_Utils_Array
::collect('name', self
::fields()));
300 return Civi
::$statics[__CLASS__
]['fieldKeys'];
304 * Returns the names of this table
308 public static function getTableName() {
309 return self
::$_tableName;
313 * Returns if this table needs to be logged
317 public function getLog() {
322 * Returns the list of fields that can be imported
324 * @param bool $prefix
328 public static function &import($prefix = FALSE) {
329 $r = CRM_Core_DAO_AllCoreTables
::getImports(__CLASS__
, 'setting', $prefix, []);
334 * Returns the list of fields that can be exported
336 * @param bool $prefix
340 public static function &export($prefix = FALSE) {
341 $r = CRM_Core_DAO_AllCoreTables
::getExports(__CLASS__
, 'setting', $prefix, []);
346 * Returns the list of indices
348 * @param bool $localize
352 public static function indices($localize = TRUE) {
354 'index_domain_contact_name' => [
355 'name' => 'index_domain_contact_name',
361 'localizable' => FALSE,
363 'sig' => 'civicrm_setting::1::domain_id::contact_id::name',
366 return ($localize && !empty($indices)) ? CRM_Core_DAO_AllCoreTables
::multilingualize(__CLASS__
, $indices) : $indices;