Fix #7175 - refine translation code
authorAlan <alan@roojs.com>
Mon, 28 Mar 2022 04:19:54 +0000 (12:19 +0800)
committerAlan <alan@roojs.com>
Mon, 28 Mar 2022 04:19:54 +0000 (12:19 +0800)
DataObjects/Core_template.php
DataObjects/Core_templatestr.php

index 23f885b..09a9584 100644 (file)
@@ -58,6 +58,39 @@ class Pman_Core_DataObjects_Core_template  extends DB_DataObject
         
     }
     
+    function beforeUpdate($old, $q, $roo)
+    {
+        if (!empty($q['_rescan'])){
+            if ($this->filetype != 'html') {
+                $roo->jerr("can not update a php source file currently - TDOD");
+            }
+            $pg = HTML_FlexyFramework::get()->page;
+            
+            $this->syncTemplatePage(array(
+                'template_dir' => $pg->rootDir . '/'. str_replace('.', '/', $this->view_name). '/templates',
+                'template' => $this->template,
+                'base' => $this->view_name,
+                'force' => true
+            ));
+            // update the different langage versions of this page.
+            $x = DB_Dataobject::Factory('core_templatestr');
+            $x->selectAdd();
+            $x->selectAdd('distinct(lang) as lang');
+            $x->whereAdd("lang != ''");
+            $langs  = $x->fetchAll('lang');
+            foreach($langs as $l) {
+                $x = DB_Dataobject::Factory('core_templatestr');
+                $x->syncLang($l, $this->id);
+            }
+           
+            
+            $roo->jok("updated -" .  $this->template);
+        }
+    }
+   
+    
+    
+    
     /*
      * @param base (should be full path to template directory)
      * @param subdir = empty for top or subpath.
@@ -159,6 +192,7 @@ class Pman_Core_DataObjects_Core_template  extends DB_DataObject
      *  @param template_dir  << the path to the template dir ... Pman/XXX/template ...
      *  @param template   << name of template used by name field)
      *  @param base  << view name (module ? + templates?)
+     *  @param force << optional - forces even if database is newer.
      *  
      *  
      */
@@ -172,7 +206,7 @@ class Pman_Core_DataObjects_Core_template  extends DB_DataObject
         ini_set('memory_limit', '512M');
         
         //var_dump($n);
-        $n= $pgdata['template'];  // remove trailing slash..
+        $n = $pgdata['template'];  // remove trailing slash..
         
         $fopts = HTML_FlexyFramework::get()->HTML_Template_Flexy;
         $opts = HTML_FlexyFramework::get()->Pman_Core;
@@ -214,17 +248,18 @@ class Pman_Core_DataObjects_Core_template  extends DB_DataObject
                     $tmpl->filetype = 'html';
                     $tmpl->update($oo);
                 }
-                
-                
-                
-                return $tmpl;
+                if (empty($pgdata['force'])) {
+                    return $tmpl;
+                }
             }
         }
         
-        
+        //die("got here");
         
         try {
             $r = $flexy->compile($pgdata['template']);
+           
+            
         } catch(Exception $e) {
             $old = clone($tmpl);
             $tmpl->updated   = date('Y-m-d H:i:s',filemtime($flexy->resolvePath ($pgdata['template'])));
index 44e58e1..c1aadbf 100644 (file)
@@ -261,9 +261,8 @@ class Pman_Core_DataObjects_Core_templatestr extends DB_DataObject
         //print_r($words);exit;
         // grab original
         $tt = DB_DataObject::factory($this->tableName());
-
-
-        $t = DB_DataObject::factory($this->tableName());
+        $t = clone($tt);
         $t->template_id = $tmpl->id;
         $t->whereAdd("lang = ''");