sync
[Pman.Admin] / UpdateBjsTemplates.php
index fd7d672..be1a92d 100644 (file)
@@ -30,14 +30,28 @@ class Pman_Admin_UpdateBjsTemplates extends Pman
         return true;
     }
      
-    function get($tbl, $opts=array())
+    function get($step, $opts=array())
     {
         PEAR::setErrorHandling(PEAR_ERROR_CALLBACK, array($this, 'onPearError'));
         $this->opts = $opts;
-        $this->updateData();
+        
+        switch($step) {
+            case 'scanProjectBJS':
+            case 'scanPmanBJS':
+            case 'scanPmanTemplates':
+            case 'scanTables':
+            case 'syncLanguage':
+                  $this->{$step}();
+                  $this->jok("DONE - " . $step);
+            default:
+                $this->jerr("invalid step");
+        }
+        
+         
     }
     
-    function updateData()
+    function updateData() // this does everything?? not used?
+    
     {   
         $this->scanProjectBJS();
         $this->scanPmanBJS();
@@ -54,7 +68,7 @@ class Pman_Admin_UpdateBjsTemplates extends Pman
         
     }
     
-    function scanProjectBJS()
+    function scanProjectBJS()  // this is probably not used (replace by the CMS scanner)
     {
         $ff = HTML_FlexyFramework::get();
         
@@ -114,7 +128,6 @@ class Pman_Admin_UpdateBjsTemplates extends Pman
     
     function scanPmanBJS()
     {
-        
         $ids = array();
         foreach ($this->modules() as $m){
             $view_name = "Pman.$m";
@@ -144,18 +157,27 @@ class Pman_Admin_UpdateBjsTemplates extends Pman
                     'view_name' => $view_name,
                     
                 ));
+                
+                
 
                 $o = false;
 
                 if($template->find(true)){
                     $o = clone ($template);
                 }
+                $updated = empty($template->updated) ? '1970-01-01' : $template->updated ;
+                
                 $template->is_deleted = 0;
 
                 $template->filetype = 'bjs';
                 $template->updated = $template->sqlValue("NOW()");
 
                 (empty($o)) ? $template->insert() : $template->update($o);
+
+                if (strtotime($updated) >= filemtime('Pman' . '/' . $m . '/' . $fn)) {
+                    continue;
+                }
+                
                 $ids[] = $template->id;
                 $data = json_decode(file_get_contents('Pman' . '/' . $m . '/' . $fn), true);
 
@@ -197,7 +219,16 @@ class Pman_Admin_UpdateBjsTemplates extends Pman
             if($this->cli){
                 echo "Sync tables.....\n";
             }
+
+            // deactivate all table translation
+            $t = DB_DataObject::factory('core_templatestr');
+            $t->query(
+                "UPDATE core_templatestr
+                SET active = 0 
+                WHERE on_table != ''"
+            );
             
+            // activate the used table translation
             foreach($ff->Pman_Core['DataObjects_Core_templatestr']['tables'] as $table=>$cols){
                 $t = DB_DataObject::factory($table);
                 foreach($t->fetchAll() as $d) {
@@ -214,14 +245,15 @@ class Pman_Admin_UpdateBjsTemplates extends Pman
         if (empty($ff->Pman_Core)) {
             $this->jerr("config[Pman_Core] is not set");
         }
-        
-        $opt_lang = empty($ff->Pman_Core_I18n) ? array( 'l' => array()) : $ff->Pman_Core_I18n;
+         $ff = HTML_FlexyFramework::get();
+     
+        $opt_lang = empty($ff->Pman_Admin['languages']) ? array( 'l' => array()) : $ff->Pman_Admin['languages'];
         
         if($this->cli){
             echo "Sync the Languages template.....\n";
         }
         
-        foreach($opt_lang['l'] as $l) {
+        foreach($opt_lang as $l) {
             if($this->cli){
                 echo "Sync $l Language.....\n";
             }
@@ -237,7 +269,7 @@ class Pman_Admin_UpdateBjsTemplates extends Pman
         $tp = DB_DAtaObject::Factory('core_template');
         
         foreach ($this->modules() as $m){
-            
+            //var_dump($m);
             // templates...
             $ar = $this->scanDir(array(
                  'tdir' => "Pman/$m/templates",
@@ -246,7 +278,7 @@ class Pman_Admin_UpdateBjsTemplates extends Pman
                 'skipdir' => array('images','css','js'),
                 
             ));
-            
+           //  print_r($ar);
             
             foreach($ar as $pg) {