Merge pull request #1765 from lynndanzig/master
[civicrm-core.git] / xml / templates / dao.tpl
index 1468302a7dc29bd8898329b224e5a23f2306a293..f6e7ad545a2563f656a2eeb56122a5fc0b196872 100644 (file)
@@ -2,7 +2,7 @@
 
 /*
  +--------------------------------------------------------------------+
- | CiviCRM version 4.3                                                |
+ | CiviCRM version 4.4                                                |
  +--------------------------------------------------------------------+
  | Copyright CiviCRM LLC (c) 2004-2013                                |
  +--------------------------------------------------------------------+
@@ -64,6 +64,14 @@ class {$table.className} extends CRM_Core_DAO {ldelim}
       */
       static $_fields = null;
 
+     /**
+      * static instance to hold the keys used in $_fields for each field.
+      *
+      * @var array
+      * @static
+      */
+      static $_fieldKeys = null;
+
      /**
       * static instance to hold the FK relationships
       *
@@ -203,7 +211,7 @@ class {$table.className} extends CRM_Core_DAO {ldelim}
                       'rule'      => '{$field.rule}',
 {/if} {* field.rule *}
 {if $field.default}
-                          'default'   => '{$field.default|substring:1:-1}',
+                         'default'   => '{if ($field.default[0]=="'" or $field.default[0]=='"')}{$field.default|substring:1:-1}{else}{$field.default}{/if}',
 {/if} {* field.default *}
 {if $field.enumValues}
                           'enumValues' => '{$field.enumValues}',
@@ -227,6 +235,30 @@ class {$table.className} extends CRM_Core_DAO {ldelim}
           return self::$_fields;
       {rdelim}
 
+      /**
+       * Returns an array containing, for each field, the arary key used for that
+       * field in self::$_fields.
+       *
+       * @access public
+       * @return array
+       */
+      static function &fieldKeys( ) {ldelim}
+        if ( ! ( self::$_fieldKeys ) ) {ldelim}
+               self::$_fieldKeys = array (
+{foreach from=$table.fields item=field}
+                    '{$field.name}' =>
+{if $field.uniqueName}
+                                            '{$field.uniqueName}'
+{else}
+                                            '{$field.name}'
+{/if},
+
+{/foreach} {* table.fields *}
+                                      );
+          {rdelim}
+          return self::$_fieldKeys;
+      {rdelim}
+
       /**
        * returns the names of this table
        *