cvs: docweb /include lib_phpt_generator.inc.php /www phpt_generator.php

[email protected] ("Etienne Kneuss")
Newsgroups php.doc.web
Message-ID <cvscolder1165136986@cvsserver>
colder		Sun Dec  3 09:09:46 2006 UTC

  Modified files:              
    /docweb/include	lib_phpt_generator.inc.php 
    /docweb/www	phpt_generator.php 
  Log:
  Optimizes the way big packages are generated
  
http://cvs.php.net/viewvc.cgi/docweb/include/lib_phpt_generator.inc.php?r1=1.4&r2=1.5&diff_format=u
Index: docweb/include/lib_phpt_generator.inc.php
diff -u docweb/include/lib_phpt_generator.inc.php:1.4 docweb/include/lib_phpt_generator.inc.php:1.5
--- docweb/include/lib_phpt_generator.inc.php:1.4	Thu Nov 30 16:42:09 2006
+++ docweb/include/lib_phpt_generator.inc.php	Sun Dec  3 09:09:45 2006
@@ -15,7 +15,7 @@
 +----------------------------------------------------------------------+
 | Authors: Etienne Kneuss <[email protected]>                             |
 +----------------------------------------------------------------------+
-$Id: lib_phpt_generator.inc.php,v 1.4 2006/11/30 16:42:09 colder Exp $
+$Id: lib_phpt_generator.inc.php,v 1.5 2006/12/03 09:09:45 colder Exp $
 */
 /**
  * Parameters
@@ -323,12 +323,76 @@
             $myArchive->addString('test'.$row['id'].'.phpt', phpt_generate($row));
         }
         
+        // Destructor, to correctly close the file
+        $myArchive->_Archive_Tar();
+
         readfile($archivePath);
         unlink($archivePath);
 
     }
 }
+/**
+ * Generate a list of examples selected by flag
+ *
+ * @return null
+ */
+function phpt_generate_all($sqlite, $flags)
+{
+
+    // select data
+
+    $sql_query = 'SELECT id,
+                 title,
+                 location,
+                 test,
+                 skipif,
+                 expected,
+                 edit_date,
+                 import_date,
+                 flags
+            FROM tests
+           WHERE flags & '.$flags.' = '.$flags;
+               
+    $results = sqlite_query($sqlite, $sql_query);
+    
+    if (count($ids) === 1) {
+        phpt_download(sqlite_fetch_array($results, SQLITE_ASSOC));
+    } else {
+        $flags_verbose = array();
 
+        if ($flags & PHPT_FLAG_FILLED) {
+            $flags_verbose[] = 'filled';
+        }
+
+        if ($flags & PHPT_FLAG_APPROVED) {
+            $flags_verbose[] = 'approved';
+        }
+
+        if ($flags & PHPT_FLAG_IMPLEMENTED) {
+            $flags_verbose[] = 'implemented';
+        }
+        
+
+        $archivePath = '/tmp/phpt_'.implode('_', $flags_verbose).'.tgz';
+    
+        header('Content-Type: application/gzip');
+        header('Content-Disposition: attachment; filename='.basename($archivePath));
+
+        
+
+        $myArchive = new Archive_Tar($archivePath, 'gz');
+
+        while ($row = sqlite_fetch_array($results, SQLITE_ASSOC)) {
+            $myArchive->addString('test'.$row['id'].'.phpt', phpt_generate($row));
+        }
+        // Destructor, to correctly close the file
+        $myArchive->_Archive_Tar();
+
+        readfile($archivePath);
+        unlink($archivePath);
+
+    }
+}
 /**
  * Delete a list of tests
  *
http://cvs.php.net/viewvc.cgi/docweb/www/phpt_generator.php?r1=1.2&r2=1.3&diff_format=u
Index: docweb/www/phpt_generator.php
diff -u docweb/www/phpt_generator.php:1.2 docweb/www/phpt_generator.php:1.3
--- docweb/www/phpt_generator.php:1.2	Mon Nov 27 18:50:21 2006
+++ docweb/www/phpt_generator.php	Sun Dec  3 09:09:45 2006
@@ -15,7 +15,7 @@
 +----------------------------------------------------------------------+
 | Authors: Etienne Kneuss <[email protected]>                             |
 +----------------------------------------------------------------------+
-$Id: phpt_generator.php,v 1.2 2006/11/27 18:50:21 colder Exp $
+$Id: phpt_generator.php,v 1.3 2006/12/03 09:09:45 colder Exp $
 */
 
 require_once '../include/init.inc.php';
@@ -50,23 +50,11 @@
 }
 
 /**
- * Generate every tests
+ * Generate every filled tests
  */
 if (isset($_REQUEST['generateAll'])) {
 
-    $sql_query = 'SELECT id
-                    FROM tests
-                   WHERE flags & '.PHPT_FLAG_FILLED;
-               
-    $results = sqlite_query($sqlite, $sql_query);
-
-    $ids = array();
-
-    while($row = sqlite_fetch_array($results, SQLITE_ASSOC)) {
-        $ids[] = $row['id'];
-    }
-
-    phpt_generate_list($sqlite, $ids);
+    phpt_generate_all($sqlite, PHPT_FLAG_FILLED);
 
     exit;
 }
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.