Show
Ignore:
Timestamp:
08/24/06 20:51:31 (2 years ago)
Author:
mbonetti
Message:

experimental: XML dump of the installation.

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • trunk/gregarius/admin/channels.php

    r1542 r1546  
    741741        break; 
    742742 
    743  
     743    case 'dump': 
     744        // Make sure this is a POST 
     745        if(!isset($_POST['dumpact'])) { 
     746            die('Sorry, you can\'t access this via a GET'); 
     747        } 
     748        $tbl = array('"','"'); 
     749        error_reporting(E_ALL); 
     750        rss_require('schema.php'); 
     751        $tables=getExpectedTables(); 
     752        unset($tables['cache']); 
     753        //$tables=array('channels','tag','config'); 
     754        $bfr=''; 
     755        $bfr .= '<'.'?xml version="1.0" encoding="UTF-8"?'.'>'."\n"; 
     756        $bfr .= '<dump prefix="'.getTable('').'" date="'.date('r').'">'."\n"; 
     757        foreach($tables as $table => $prefixed) { 
     758            $rs = rss_query("select * from $prefixed"); 
     759            $bfr .="<$table>\n"; 
     760            while($row=rss_fetch_assoc($rs)) { 
     761                $r="<row "; 
     762                foreach($row as $key => $val) { 
     763                    $val=htmlspecialchars($val); 
     764                    $r.=" $key=\"$val\" "; 
     765                } 
     766                $r .= "/>\n"; 
     767                $bfr .=$r; 
     768            } 
     769            $bfr .="</$table>\n"; 
     770        } 
     771        $bfr .='</dump>'."\n"; 
     772        $gzdata = gzencode($bfr, 9); 
     773        $tempfname=tempnam("/tmp", "rss.dump").'.xml.gz'; 
     774        $df=fopen($tempfname,'w'); 
     775        fwrite($df, $gzdata); 
     776        fclose($df); 
     777        die($tempfname); 
     778        break; 
    744779    default: 
    745780        break;