fix #8131 - chinese translations
[Pman.Core] / DataObjects / Core_enum.php
index 739134b..a2d08ca 100644 (file)
@@ -16,7 +16,9 @@ class Pman_Core_DataObjects_Core_enum extends DB_DataObject
     public $seqid;                           // int(11)  not_null multiple_key
     public $seqmax;                           // int(11)  not_null multiple_key
     public $display_name;
-
+    public $is_system_enum;
+   
+    
     /* the code above is auto generated do not remove the tag below */
     ###END_AUTOCODE
 
@@ -254,6 +256,12 @@ class Pman_Core_DataObjects_Core_enum extends DB_DataObject
 
     function lookupCreate($etype,$name, $display_name=false) {
 
+        static $cache = array();
+        $ckey = json_encode(array($etype, $name));
+        if (isset($cache[$ckey])) {
+            return $cache[$ckey];
+        }
+        
         // check
         $ce = DB_DataObject::Factory('core_enum');
         $ce->setFrom(array(
@@ -269,11 +277,14 @@ class Pman_Core_DataObjects_Core_enum extends DB_DataObject
         $ce->etype = $etype;
         $ce->name = $name;
         if ($ce->find(true)) {
+            $cache[$ckey] = $ce->id;
             return $ce->id;
         }
         $ce->active = 1;
         $ce->display_name = $display_name === false ? $ce->name : $display_name;
-        return  $ce->insert();
+        $ret = $ce->insert();
+        $cache[$ckey] = $ret;
+        return  $ret;
 
     }