Commit | Line | Data |
---|---|---|
6a488035 | 1 | <?php |
6a488035 | 2 | /** |
6a488035 | 3 | * @package CRM |
201f27ba | 4 | * @copyright CiviCRM LLC (c) 2004-2017 |
6a488035 | 5 | * |
d5864876 ARW |
6 | * Generated from {$table.sourceFile} |
7 | * {$generated} | |
a8950859 | 8 | * (GenCodeChecksum:{$genCodeChecksum}) |
6a488035 TO |
9 | */ |
10 | ||
f41f0342 | 11 | /** |
c3fc2621 | 12 | * Database access object for the {$table.entity} entity. |
f41f0342 | 13 | */ |
6a488035 TO |
14 | class {$table.className} extends CRM_Core_DAO {ldelim} |
15 | ||
16 | /** | |
f41f0342 | 17 | * Static instance to hold the table name. |
6a488035 TO |
18 | * |
19 | * @var string | |
6a488035 TO |
20 | */ |
21 | static $_tableName = '{$table.name}'; | |
22 | ||
6a488035 | 23 | /** |
f41f0342 | 24 | * Should CiviCRM log any modifications to this table in the civicrm_log table. |
6a488035 | 25 | * |
c3fc2621 | 26 | * @var bool |
6a488035 | 27 | */ |
c3fc2621 | 28 | static $_log = {$table.log|strtoupper}; |
6a488035 TO |
29 | |
30 | {foreach from=$table.fields item=field} | |
31 | /** | |
32 | {if $field.comment} | |
33 | * {$field.comment} | |
6a488035 | 34 | * |
c3fc2621 | 35 | {/if} |
6a488035 TO |
36 | * @var {$field.phpType} |
37 | */ | |
38 | public ${$field.name}; | |
39 | ||
40 | {/foreach} {* table.fields *} | |
41 | ||
42 | /** | |
f41f0342 | 43 | * Class constructor. |
6a488035 | 44 | */ |
c3fc2621 | 45 | public function __construct( ) {ldelim} |
6a488035 TO |
46 | $this->__table = '{$table.name}'; |
47 | ||
48 | parent::__construct( ); | |
49 | {rdelim} | |
50 | ||
71e5aa5c | 51 | {if $table.foreignKey || $table.dynamicForeignKey} |
6a488035 | 52 | /** |
f41f0342 | 53 | * Returns foreign keys and entity references. |
6a488035 | 54 | * |
b6e60008 CW |
55 | * @return array |
56 | * [CRM_Core_Reference_Interface] | |
6a488035 | 57 | */ |
c3fc2621 | 58 | public static function getReferenceColumns() {ldelim} |
740dd877 TO |
59 | if (!isset(Civi::$statics[__CLASS__]['links'])) {ldelim} |
60 | Civi::$statics[__CLASS__]['links'] = static::createReferenceColumns(__CLASS__); | |
6a488035 | 61 | {foreach from=$table.foreignKey item=foreign} |
740dd877 | 62 | Civi::$statics[__CLASS__]['links'][] = new CRM_Core_Reference_Basic(self::getTableName(), '{$foreign.name}', '{$foreign.table}', '{$foreign.key}'); |
71e5aa5c ARW |
63 | {/foreach} |
64 | ||
65 | {foreach from=$table.dynamicForeignKey item=foreign} | |
740dd877 | 66 | Civi::$statics[__CLASS__]['links'][] = new CRM_Core_Reference_Dynamic(self::getTableName(), '{$foreign.idColumn}', NULL, '{$foreign.key|default:'id'}', '{$foreign.typeColumn}'); |
6a488035 | 67 | {/foreach} |
740dd877 | 68 | CRM_Core_DAO_AllCoreTables::invoke(__CLASS__, 'links_callback', Civi::$statics[__CLASS__]['links']); |
71e5aa5c | 69 | {rdelim} |
740dd877 | 70 | return Civi::$statics[__CLASS__]['links']; |
6a488035 TO |
71 | {rdelim} |
72 | {/if} {* table.foreignKey *} | |
73 | ||
74 | /** | |
b6e60008 | 75 | * Returns all the column names of this table |
6a488035 | 76 | * |
6a488035 TO |
77 | * @return array |
78 | */ | |
c3fc2621 | 79 | public static function &fields( ) {ldelim} |
740dd877 | 80 | if ( ! isset(Civi::$statics[__CLASS__]['fields']) ) {ldelim} |
c3fc2621 | 81 | Civi::$statics[__CLASS__]['fields'] = array( |
6a488035 TO |
82 | {foreach from=$table.fields item=field} |
83 | ||
84 | {if $field.uniqueName} | |
3cef3c00 | 85 | '{$field.uniqueName}' |
6a488035 TO |
86 | {else} |
87 | '{$field.name}' | |
88 | {/if} | |
89 | => array( | |
3cef3c00 | 90 | 'name' => '{$field.name}', |
6a488035 TO |
91 | 'type' => {$field.crmType}, |
92 | {if $field.title} | |
93 | 'title' => ts('{$field.title}'), | |
94 | {/if} | |
5c7169eb CW |
95 | {if $field.comment} |
96 | 'description' => '{$field.comment|replace:"'":"\'"}', | |
97 | {/if} | |
6a488035 | 98 | {if $field.required} |
c3fc2621 | 99 | 'required' => {$field.required|strtoupper}, |
6a488035 TO |
100 | {/if} {* field.required *} |
101 | {if $field.length} | |
102 | 'maxlength' => {$field.length}, | |
103 | {/if} {* field.length *} | |
ac5f2ccd TO |
104 | {if $field.precision} |
105 | 'precision' => array({$field.precision}), | |
106 | {/if} | |
6a488035 TO |
107 | {if $field.size} |
108 | 'size' => {$field.size}, | |
109 | {/if} {* field.size *} | |
110 | {if $field.rows} | |
111 | 'rows' => {$field.rows}, | |
112 | {/if} {* field.rows *} | |
113 | {if $field.cols} | |
114 | 'cols' => {$field.cols}, | |
115 | {/if} {* field.cols *} | |
116 | ||
117 | {if $field.import} | |
c3fc2621 | 118 | 'import' => {$field.import|strtoupper}, |
6a488035 TO |
119 | 'where' => '{$table.name}.{$field.name}', |
120 | 'headerPattern' => '{$field.headerPattern}', | |
121 | 'dataPattern' => '{$field.dataPattern}', | |
122 | {/if} {* field.import *} | |
123 | {if $field.export} | |
c3fc2621 | 124 | 'export' => {$field.export|strtoupper}, |
6a488035 TO |
125 | {if ! $field.import} |
126 | 'where' => '{$table.name}.{$field.name}', | |
127 | 'headerPattern' => '{$field.headerPattern}', | |
128 | 'dataPattern' => '{$field.dataPattern}', | |
129 | {/if} | |
130 | {/if} {* field.export *} | |
131 | {if $field.rule} | |
132 | 'rule' => '{$field.rule}', | |
133 | {/if} {* field.rule *} | |
134 | {if $field.default} | |
9e1ed301 | 135 | 'default' => '{if ($field.default[0]=="'" or $field.default[0]=='"')}{$field.default|substring:1:-1}{else}{$field.default}{/if}', |
6a488035 | 136 | {/if} {* field.default *} |
3cef3c00 | 137 | 'table_name' => '{$table.name}', |
138 | 'entity' => '{$table.entity}', | |
139 | 'bao' => '{$table.bao}', | |
7db08f50 | 140 | 'localizable' => {if ($field.localizable)}{1}{else}{0}{/if}, |
6a488035 TO |
141 | |
142 | {if $field.FKClassName} | |
143 | 'FKClassName' => '{$field.FKClassName}', | |
2a5c9b4d CW |
144 | {/if} |
145 | {if $field.serialize} | |
146 | 'serialize' => self::SERIALIZE_{$field.serialize|strtoupper}, | |
147 | {/if} | |
5e545f38 | 148 | {if $field.html} |
c3fc2621 | 149 | 'html' => {$field.html|@print_array}, |
5e545f38 | 150 | {/if} {* field.html *} |
6a488035 | 151 | {if $field.pseudoconstant} |
c3fc2621 | 152 | 'pseudoconstant' => {$field.pseudoconstant|@print_array} |
6a488035 TO |
153 | {/if} {* field.pseudoconstant *} ), |
154 | {/foreach} {* table.fields *} | |
155 | ); | |
740dd877 | 156 | CRM_Core_DAO_AllCoreTables::invoke(__CLASS__, 'fields_callback', Civi::$statics[__CLASS__]['fields']); |
6a488035 | 157 | {rdelim} |
740dd877 | 158 | return Civi::$statics[__CLASS__]['fields']; |
6a488035 TO |
159 | {rdelim} |
160 | ||
66abbb6d | 161 | /** |
787b31c7 | 162 | * Return a mapping from field-name to the corresponding key (as used in fields()). |
66abbb6d | 163 | * |
66abbb6d | 164 | * @return array |
787b31c7 | 165 | * Array(string $name => string $uniqueName). |
66abbb6d | 166 | */ |
c3fc2621 | 167 | public static function &fieldKeys( ) {ldelim} |
787b31c7 TO |
168 | if (!isset(Civi::$statics[__CLASS__]['fieldKeys'])) {ldelim} |
169 | Civi::$statics[__CLASS__]['fieldKeys'] = array_flip(CRM_Utils_Array::collect('name', self::fields())); | |
170 | {rdelim} | |
171 | return Civi::$statics[__CLASS__]['fieldKeys']; | |
66abbb6d AS |
172 | {rdelim} |
173 | ||
6a488035 | 174 | /** |
b6e60008 | 175 | * Returns the names of this table |
6a488035 | 176 | * |
6a488035 TO |
177 | * @return string |
178 | */ | |
c3fc2621 | 179 | public static function getTableName( ) {ldelim} |
6a488035 TO |
180 | {if $table.localizable} |
181 | return CRM_Core_DAO::getLocaleTableName( self::$_tableName ); | |
182 | {else} | |
183 | return self::$_tableName; | |
184 | {/if} | |
185 | {rdelim} | |
186 | ||
187 | /** | |
b6e60008 | 188 | * Returns if this table needs to be logged |
6a488035 | 189 | * |
c3fc2621 | 190 | * @return bool |
6a488035 | 191 | */ |
c3fc2621 | 192 | public function getLog( ) {ldelim} |
6a488035 TO |
193 | return self::$_log; |
194 | {rdelim} | |
195 | ||
196 | /** | |
b6e60008 CW |
197 | * Returns the list of fields that can be imported |
198 | * | |
199 | * @param bool $prefix | |
6a488035 | 200 | * |
b6e60008 | 201 | * @return array |
6a488035 | 202 | */ |
c3fc2621 | 203 | public static function &import( $prefix = FALSE ) {ldelim} |
84a0493c TO |
204 | $r = CRM_Core_DAO_AllCoreTables::getImports(__CLASS__, '{$table.labelName}', $prefix, array( |
205 | {if $table.foreignKey}{foreach from=$table.foreignKey item=foreign} | |
206 | {if $foreign.import}'{$foreign.className}',{/if} | |
207 | {/foreach}{/if} | |
208 | )); | |
209 | return $r; | |
6a488035 TO |
210 | {rdelim} |
211 | ||
212 | /** | |
b6e60008 CW |
213 | * Returns the list of fields that can be exported |
214 | * | |
215 | * @param bool $prefix | |
216 | * | |
217 | * @return array | |
218 | */ | |
c3fc2621 | 219 | public static function &export( $prefix = FALSE ) {ldelim} |
84a0493c TO |
220 | $r = CRM_Core_DAO_AllCoreTables::getExports(__CLASS__, '{$table.labelName}', $prefix, array( |
221 | {if $table.foreignKey}{foreach from=$table.foreignKey item=foreign} | |
222 | {if $foreign.export}'{$foreign.className}',{/if} | |
223 | {/foreach}{/if} | |
224 | )); | |
225 | return $r; | |
6a488035 TO |
226 | {rdelim} |
227 | ||
6b86d84f AS |
228 | /** |
229 | * Returns the list of indices | |
c3fc2621 CW |
230 | * |
231 | * @param bool $localize | |
232 | * | |
233 | * @return array | |
6b86d84f AS |
234 | */ |
235 | public static function indices($localize = TRUE) {ldelim} | |
236 | $indices = {$indicesPhp}; | |
237 | return ($localize && !empty($indices)) ? CRM_Core_DAO_AllCoreTables::multilingualize(__CLASS__, $indices) : $indices; | |
238 | {rdelim} | |
c3fc2621 | 239 | |
6a488035 | 240 | {rdelim} |