From: Carsten K. <car...@us...> - 2002-02-20 00:14:42
|
Update of /cvsroot/phpwiki/phpwiki/lib In directory usw-pr-cvs1:/tmp/cvs-serv26952 Modified Files: loadsave.php Log Message: New function for dumping pages as html. It mostly works, but I couldn't get the Template function to work yet. Index: loadsave.php =================================================================== RCS file: /cvsroot/phpwiki/phpwiki/lib/loadsave.php,v retrieving revision 1.56 retrieving revision 1.57 diff -u -2 -b -p -d -r1.56 -r1.57 --- loadsave.php 19 Feb 2002 04:09:48 -0000 1.56 +++ loadsave.php 20 Feb 2002 00:14:40 -0000 1.57 @@ -199,4 +199,70 @@ function DumpToDir (&$request) } + +function DumpHtmlToDir (&$request) +{ + $directory = $request->getArg('directory'); + if (empty($directory)) + $request->finish(_("You must specify a directory to dump to")); + + // see if we can access the directory the user wants us to use + if (! file_exists($directory)) { + if (! mkdir($directory, 0755)) + $request->finish(fmt("Cannot create directory '%s'", $directory)); + else + $html = HTML::p(fmt("Created directory '%s' for the page dump...", + $directory)); + } else { + $html = HTML::p(fmt("Using directory '%s'", $directory)); + } + + StartLoadDump($request, _("Dumping Pages"), $html); + + $dbi = $request->getDbh(); + $pages = $dbi->getAllPages(); + + while ($page = $pages->next()) { + + $filename = FilenameForPage($page->getName()) . ".html"; + + $msg = HTML(HTML::br(), $page->getName(), ' ... '); + + if($page->getName() != $filename) { + $msg->pushContent(HTML::small(fmt("saved as %s", $filename)), + " ... "); + } + + $revision = $page->getCurrentRevision(); + + require_once('lib/PageType.php'); + $transformedContent = PageType($revision); + + require_once('lib/Template.php'); + //Can't get the template to work... + //$transformedContent = array('CONTENT' => $transformedContent); + //$transformedContent = array_merge($request, array('CONTENT' => $transformedContent)); + $template = $transformedContent; //this works but no template!! + //$template = Template('browse', $transformedContent); + $data = GeneratePageasXML($template, $page->getName()); + + if ( !($fd = fopen("$directory/$filename", "w")) ) { + $msg->pushContent(HTML::strong(fmt("couldn't open file '%s' for writing", + "$directory/$filename"))); + $request->finish($msg); + } + + $num = fwrite($fd, $data, strlen($data)); + $msg->pushContent(HTML::small(fmt("%s bytes written", $num))); + PrintXML($msg); + + flush(); + assert($num == strlen($data)); + fclose($fd); + } + + EndLoadDump($request); +} + + //////////////////////////////////////////////////////////////// // |