Uncommited changes synced
[Pman.Cms] / UpdateTemplates.php
index fd9a474..c76ca09 100644 (file)
@@ -31,7 +31,7 @@ class Pman_Cms_UpdateTemplates extends Pman
             
         ),
         'debug' => array(
-            'desc' => 'Turn on debuggin',
+            'desc' => 'Turn on debugging',
             'default' => '',
             'short' => 'd',
             'min' => 1,
@@ -56,8 +56,10 @@ class Pman_Cms_UpdateTemplates extends Pman
         return true;
     }
      
-    function get($tbl, $opts)
+    function get($tbl, $opts=array())
     {
+        PEAR::setErrorHandling(PEAR_ERROR_CALLBACK, array($this, 'onPearError'));
+        
         
         if (!empty($opts['debug'])) {
             DB_DataObject::debugLevel(1);
@@ -78,6 +80,10 @@ class Pman_Cms_UpdateTemplates extends Pman
     function fixOldNames()
     {
         $ff = HTML_FlexyFramework::get();
+        if (empty($ff->Pman_Cms)) {
+            $this->jerr("config[Pman_Cms] is not set");
+        }
+        
         $base = $ff->Pman_Cms['project_name'];
         $tdirs = $ff->Pman_Cms['templateDir'];
         if (!is_array($tdirs)) {
@@ -108,14 +114,14 @@ class Pman_Cms_UpdateTemplates extends Pman
         
         $pages = $this->scanCode();
         
-        print_R($pages);         exit;
+        //print_R($pages);         exit;
         
         $page_templates = array();
         foreach($pages as $pg) {
             $page_templates[$pg['template']] =1;
         }
         
-        //print_R($pages); exit;;
+       
         
         
         
@@ -128,9 +134,9 @@ class Pman_Cms_UpdateTemplates extends Pman
             $pages[] = $pg;
         }
         
+        //print_R($pages); exit;;
         
-        
-        // print_R($pages); exit;
+         
         // now generate all the templates..
         
         // create the templates..
@@ -143,10 +149,12 @@ class Pman_Cms_UpdateTemplates extends Pman
                 continue;
             }
             
+            
             $pages[$i]['template_object'] = $tp->syncTemplatePage($pg);
+           // print_r($pages[$i]['template_object'] );exit;
+            
         }
         
-        
         $pgo = DB_DataObject::factory('cms_page');
         foreach($pages as $i=>$pg) {
             
@@ -159,11 +167,24 @@ class Pman_Cms_UpdateTemplates extends Pman
             if (empty($pg['template_object'])) {
                 continue;
             }
-            
+            $cur_els = array();
             foreach($pg['template_object']->elements as $e) {
-                //print_r($e);
+                $cur_els[] = $e->id;
                 $e->syncTemplateFromPage($pg);
             }
+            
+            // #2012 disable the unused item.......
+            // needs testing
+            if(!empty($pg['page']->id)){
+                $cur_pg = DB_DataObject::factory('cms_page');
+                $cur_pg->parent_id = $pg['page']->id;
+                $cur_pg->whereAddIn("!cms_page.element_id", $cur_els, 'int');
+                foreach($cur_pg->fetchAll() as $unused){
+                    $old = clone($unused);
+                    $unused->is_deleted = 1; 
+                    $unused->update($old);
+                }
+            }
         }
         
         $opts = HTML_FlexyFramework::get()->Pman_Cms;
@@ -180,11 +201,27 @@ class Pman_Cms_UpdateTemplates extends Pman
         }
         $ff = HTML_FlexyFramework::get();
         $opt_lang = empty($ff->Pman_Core_I18n) ? array( 'l' => array()) : $ff->Pman_Core_I18n;
+        
+        $langs = $opt_lang['l'] ;
+        // see what languages are in there already!?
+        $cl = DB_DataObject::factory('cms_templatestr');
+        $cl->selectAdd();
+        $cl->selectAdd('distinct(lang) as lang');
+        $cl->whereAdd("lang != ''");
+        $dblangs = $cl->fetchAll('lang');
+        foreach($langs as $l) {
+            if (!in_array($$l, $dblangs)) {
+                $dblangs[] = $l;
+            }
+        }
+         
+        
+        
         // templates.. -- assume the above does the template syncing..
         //DB_DataObject::DebugLevel(1);
         echo "Sync the Languages template.....\n";
         
-        foreach($opt_lang['l'] as $l) {
+        foreach($dblangs as $l) {
             echo "Sync $l Language.....\n";
             $tps = DB_DataObject::factory('cms_templatestr');
             $tps->syncLang($l); /// this should be configured somewhere..
@@ -259,7 +296,7 @@ class Pman_Cms_UpdateTemplates extends Pman
                          
                      foreach($prefixes as $pr) {
                          
-                         
+                        // print_r($x);
                          
                          $add =  array(
                              'base' => $pr,
@@ -281,7 +318,7 @@ class Pman_Cms_UpdateTemplates extends Pman
              
         }   
         
-        
+        //print_r($ret);exit;
        
 
         $dh = opendir($class_dir);
@@ -324,6 +361,12 @@ class Pman_Cms_UpdateTemplates extends Pman
             $cls = $class_base .'_' . str_replace('/', '_', preg_replace('/.php$/', '', $fn));
             if (!class_exists($cls)) {
                 echo "SKIP - not a PHP class $cls\n";
+                continue;
+            }
+            
+            if (!is_a($cls,'HTML_FlexyFramework_Page')) {
+                echo "SKIP - not a PHP class $cls\n";
+                continue;
             }
             
             $x = new $cls();
@@ -364,7 +407,7 @@ class Pman_Cms_UpdateTemplates extends Pman
         echo "TSCAN base= $base subdir =$subdir\n ";
         $ff = HTML_FlexyFramework::get();
         
-        $generate_cms_page_for = $ff->Pman_Cms['generate_cms_page_for'];
+        $generate_cms_page_for = isset($ff->Pman_Cms['generate_cms_page_for']) ? $ff->Pman_Cms['generate_cms_page_for'] : false;
         
         
         $tdirs = $ff->Pman_Cms['templateDir'];
@@ -500,12 +543,12 @@ class Pman_Cms_UpdateTemplates extends Pman
                 'base' => $base,
                 'template_dir' => $tdir ,
                 'page_link' => $generate_this_page ? $pl : false,
-                'template' =>  $subdir . (empty($subdir) ? '' : '/').  strtolower($fn)
+                'template' =>  $subdir . (empty($subdir) ? '' : '/').  $fn  /// this used to be strtolower?? why???
             );
             
             
         }
-        //print_r($ret);
+//        print_r($ret);
         
         return $ret;