Pman.Tab.BuilderView.bjs
[Pman.Builder] / Generator.php
index 7dac970..bd15eaf 100644 (file)
@@ -82,7 +82,7 @@ class Pman_Builder_Generator extends DB_DataObject_Generator
     function start($cli=false, $mods='', $overwrite='')
     {
         
-        
+        $ff = HTML_Flexyframework::get();
         $this->scanModules();
         //echo '<PRE>'; print_r($this->modtables); exit;
         
@@ -91,7 +91,9 @@ class Pman_Builder_Generator extends DB_DataObject_Generator
         
         $proj = 'pman'; //ucfirst(basename($options['database']));
         // we are going to generate all of the code into a temporay foldler..
-        $options['rootDir'] = ini_get('session.save_path').'/temp_'. $proj;
+        $user = posix_getpwuid(posix_getuid());
+        
+        $options['rootDir'] = ini_get('session.save_path').'/temp_'. $proj.'_'. $user['name'];
         $options['cli'] = $cli;
         $options['mods'] = empty($mods) ? array() : explode('/',$mods);
        
@@ -114,7 +116,6 @@ class Pman_Builder_Generator extends DB_DataObject_Generator
        
        
        
-          $ff = HTML_FlexyFramework::get();
        
        
        
@@ -207,7 +208,7 @@ class Pman_Builder_Generator extends DB_DataObject_Generator
     {
         $options = &PEAR::getStaticProperty('DB_DataObject','options');
         
-        $ff = HTML_FlexyFramework::get();
+        $ff = HTML_Flexyframework::get();
         
         $url = parse_url($options['database']);
         // hide stuff for web..
@@ -223,7 +224,8 @@ class Pman_Builder_Generator extends DB_DataObject_Generator
         require_once 'System.php';
         $cat = System::which('cat');
         $mysql = System::which('mysql');
-        
+        //print_r($ff);
+        //print_r($options['mods'] );
         foreach($this->modsql as $m => $fl)
         {
             if ($cli && isset($options['database_'. $m])) {
@@ -236,11 +238,12 @@ class Pman_Builder_Generator extends DB_DataObject_Generator
                 (!empty($url['pass']) ? ' -p' . escapeshellarg($url['pass'])  :  '') .
                 ' ' . basename($url['path']);
            
-          
+            echo $mysql_cmd . "\n" ;
             
             if (!empty($options['mods'] ) && !in_array($m,  $options['mods'] )) {
                 continue;
             }
+            
             foreach($fl as $f) {
                 $fn = $ff->page->rootDir. "/Pman/$m/DataObjects/$f";
                 $cmd = $cat . ' ' . escapeshellarg($fn) . " | $mysql_cmd -f ";
@@ -265,7 +268,7 @@ class Pman_Builder_Generator extends DB_DataObject_Generator
     
     function scanModules()
     {
-        $ff = HTML_FlexyFramework::get();
+        
         $options = &PEAR::getStaticProperty('DB_DataObject','options');
         if (isset($options['modtables'])) {
             $this->modtables = $options['modtables'];
@@ -274,12 +277,13 @@ class Pman_Builder_Generator extends DB_DataObject_Generator
             return;
         }
         
-        
+        $ff = HTML_Flexyframework::get();
         
         $top = $ff->page->rootDir .'/Pman';
         $this->modtables = array();
         $this->modmap = array();
         $this->modmapsql = array();
+        
         foreach(scandir($top) as $m) {
             
             if (!strlen($m) || 
@@ -310,6 +314,7 @@ class Pman_Builder_Generator extends DB_DataObject_Generator
         $options['modtables'] = $this->modtables;
         $options['modmap'] = $this->modmap;
         $options['modsql'] = $this->modsql;
+       // print_r($options);
         
     }
     /**
@@ -327,6 +332,9 @@ class Pman_Builder_Generator extends DB_DataObject_Generator
             $this->scanModules();
         }
          $options = &PEAR::getStaticProperty('DB_DataObject','options');
+        $builder_options = PEAR::getStaticProperty('Pman_Builder','options');
+        $ignore = empty($builder_options['skip_tables']) ? array() : $builder_options['skip_tables'];
+        
          $mods = $options['mods'];
         $inis = array();
         $this->_newConfig = '';
@@ -334,12 +342,24 @@ class Pman_Builder_Generator extends DB_DataObject_Generator
             
             $tn  = strtolower($this->table);
             //print_r($this->modmap);//[$tn]);//
+            
+            
+            
             if (!isset($this->modmap[$tn])) {
-                die("No existing DataObject file found for table {$this->table} \n".
-                    "- create an empty file in the related Module/DataObjects directory
-                    eg. 
-                    touch Pman/????/DataObjects/".ucfirst($this->table).".php
-                   \n");
+                
+                if (in_array($this->table, $ignore)) {
+                    continue;
+                }
+             
+             
+                die("No existing DataObject file found for table {$this->table} 
+                
+- either add it to Pman_Builder[skip_tables] or\n
+- create an empty file in the related Module/DataObjects directory
+eg. 
+touch Pman/????/DataObjects/".ucfirst($this->table).".php
+
+");
                     
             }
             $mod = $this->modmap[$tn];
@@ -383,7 +403,8 @@ class Pman_Builder_Generator extends DB_DataObject_Generator
       // print_R($this->modmap);
        // die("generateClasses");
         $options = &PEAR::getStaticProperty('DB_DataObject','options');
-        $ff = HTML_FlexyFramework::get();
+        
+        $ff = HTML_Flexyframework::get();
         
         $rd = $options['rootDir'];
         $mods = $options['mods'];
@@ -435,10 +456,16 @@ class Pman_Builder_Generator extends DB_DataObject_Generator
    // function generateClasses() { }
    
     var $jsHeader = "//<script type=\"text/javascript\">\n";
-        
+    /**
+     * 
+     * generate the reader tables.. 
+     * I'm not sure if this is needed any more, as our desktop builder 
+     * generates that data anyway.
+     * 
+     */
     function generateRoo()
     {
-         
+        
         $options = &PEAR::getStaticProperty('DB_DataObject','options');
          $mods = $options['mods'];
         $this->rootDir = $options['rootDir'];
@@ -483,8 +510,8 @@ class Pman_Builder_Generator extends DB_DataObject_Generator
     
     function _generateReaders($m)
     {
-         
-        $udb = ucfirst($this->_database);
+        $ff = HTML_FlexyFramework::get();
+        
         $ret = $this->jsHeader;
         $j = new Pman_Builder_Generator_JSON();
         $j->indent = 0;
@@ -508,7 +535,7 @@ class Pman_Builder_Generator extends DB_DataObject_Generator
                 }
             }
             $this->readersArgs[$this->table]['xtype'] = 'JsonReader';
-            $ret.="\n$udb.Readers.$utable = ";
+            $ret.="\n{$ff->project}.Readers.$utable = ";
             $x = $j->encodeUnsafe($this->readersArgs[$this->table]);
             $ret .=  trim(substr($x, 0, -1)) . ",\n"; // strip of trailing ;};
             $ret .=  $j->tab . "fields : [\n". $j->tab.$j->tab;
@@ -817,7 +844,7 @@ class Pman_Builder_Generator extends DB_DataObject_Generator
             'id' => 'id', // primary key!!?
         );
          
-        $d = $this->tableToData($this->_definitions[$table]);
+        $d = $this->tableToData($table, $this->_definitions[$table]);
         
         $this->tablekeys[$this->table]  = $d['tablekey'];
         
@@ -826,7 +853,7 @@ class Pman_Builder_Generator extends DB_DataObject_Generator
             // store the globals
         $this->def['order'][$table] = $d['order'];
         $this->def['readers'][$table]= $d['readers'];
-        $this->def['colmodels'][$table] = $d['colmodes'];
+        $this->def['colmodels'][$table] = $d['colmodels'];
         $this->def['forms'][$table] = $d['forms'];
         
         $this->readersArgs[$table]   = $d['args'];
@@ -835,12 +862,22 @@ class Pman_Builder_Generator extends DB_DataObject_Generator
         
     }
     
-      
+     
+     
+   
     function parseConfig()
     {
-        $ff = HTML_FlexyFramework::get();
-         $dirs = array($ff->page->rootDir.'/Pman/DataObjects'); // not used anymore!
-        foreach($ff->page->modtables as $m=>$ts) {
+         $options = &PEAR::getStaticProperty('DB_DataObject','options');
+        
+        if (isset($options['modtables'])) {
+            $this->modtables = $options['modtables'];
+            $this->modmap = $options['modmap'];
+            $this->modsql = $options['modsql'];
+        }
+        
+        $ff = HTML_Flexyframework::get();
+        $dirs = array($ff->page->rootDir.'/Pman/DataObjects'); // not used anymore!
+        foreach($this->modtables as $m=>$ts) {
             $dirs[] = $ff->page->rootDir.'/Pman/'.$m.'/DataObjects';
         }
         $ini = array('database__render' => array());
@@ -858,7 +895,8 @@ class Pman_Builder_Generator extends DB_DataObject_Generator
             $ini['database__render'] = array_merge($ini['database__render'] , $r);
         }
          //echo '<PRE>';print_R($ini);//exit;
-         
+        
+        
         if (!isset($ini['database__render'])) {
             die("database__render not available in links files.");
             return;
@@ -876,6 +914,13 @@ class Pman_Builder_Generator extends DB_DataObject_Generator
     function mergeConfig($table, $conf, $render)
     {
         $this->mapcols[$table] = array();
+        $options = &PEAR::getStaticProperty('DB_DataObject','options');
+        if (isset($options['modtables'])) {
+            $this->modtables = $options['modtables'];
+            $this->modmap = $options['modmap'];
+            $this->modsql = $options['modsql'];
+        }
+        
         
         foreach($conf as $ocol=>$info) {
             // format col => showval..