DataObjects/Core_watch.php
[Pman.Core] / DataObjects / core_functions.sql
index 23a2cbb..22dadec 100644 (file)
@@ -6,15 +6,29 @@ CREATE FUNCTION i18n_translate(in_ltype  varchar(1) , in_lkey varchar(8), in_inl
         RETURNS VARCHAR(64) DETERMINISTIC
     BEGIN
         DECLARE ret  VARCHAR(64);
+        DECLARE v_id INTEGER;
         SET ret  = '';
-        SELECT lval INTO ret FROM i18n
+        SELECT id, lval  INTO v_id, ret FROM i18n
             WHERE ltype=in_ltype AND lkey=in_lkey and inlang=in_inlang LIMIT 1;
-        RETURN ret;
+
+        IF v_id  > 0 THEN 
+            RETURN ret;
+        END IF;
+
+        -- we do not have it  - return the english.
         
-    END $$
-DELIMITER ;
+        SELECT id, lval  INTO v_id, ret FROM i18n
+            WHERE ltype=in_ltype AND lkey=in_lkey and inlang='en' LIMIT 1;
 
+        IF v_id > 0 THEN 
+            RETURN ret;
+        END IF;
+        
 
+        RETURN '??';
+        
+    END $$
+DELIMITER ;
 
 DROP FUNCTION IF EXISTS core_enum_seqmax_update;
 DELIMITER $$
@@ -23,11 +37,15 @@ CREATE FUNCTION core_enum_seqmax_update( in_etype varchar(128))
 
 BEGIN
         DECLARE v_seqmax INT(11);
-        SELECT MAX(seqid) +1 INTO seqmax FROM core_enum WHERE
+        SELECT MAX(seqid) +1 INTO v_seqmax FROM core_enum WHERE
             etype = in_etype;
         UPDATE core_enum SET seqmax = v_seqmax WHERE etype = in_etype;
-        RETURN seqmax;
+        RETURN v_seqmax;
     END $$
 DELIMITER ;
 
--- usage: SELECT core_enum_seqmax_update(DISTINCT(etype)) FROM core_enum;
\ No newline at end of file
+-- usage: SELECT core_enum_seqmax_update(DISTINCT(etype)) FROM core_enum;
+DROP TABLE IF EXISTS core_enum_tmp;
+CREATE TEMPORARY TABLE core_enum_tmp SELECT DISTINCT(etype) FROM core_enum;
+SELECT core_enum_seqmax_update(etype) FROM core_enum_tmp;
+DROP TABLE IF EXISTS core_enum_tmp;
\ No newline at end of file