From: Reini U. <ru...@us...> - 2004-09-20 13:40:29
|
Update of /cvsroot/phpwiki/phpwiki/lib In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv4151 Modified Files: pdf.php IniConfig.php Log Message: define all config.ini settings, only the supported will be taken from -default. support USE_EXTERNAL_HTML2PDF renderer (htmldoc tested) Index: pdf.php =================================================================== RCS file: /cvsroot/phpwiki/phpwiki/lib/pdf.php,v retrieving revision 1.5 retrieving revision 1.6 diff -u -2 -b -p -d -r1.5 -r1.6 --- pdf.php 17 Sep 2004 14:19:02 -0000 1.5 +++ pdf.php 20 Sep 2004 13:40:19 -0000 1.6 @@ -10,4 +10,9 @@ rcs_id('$Id$'); require_once('lib/fpdf.php'); +// http://phpwiki.sourceforge.net/phpwiki/PhpWikiToDocBookAndPDF +// htmldoc or ghostscript + html2ps or docbook (dbdoclet, xsltproc, fop) +// http://www.easysw.com/htmldoc +//define("USE_EXTERNAL_HTML2PDF", "htmldoc --quiet --format pdf14 --no-toc --no-title %s"); + class PDF extends FPDF { var $B = 0; @@ -110,4 +115,30 @@ function ConvertAndDisplayPdf (&$request if (empty($request->_is_buffering_output)) $request->buffer_output(false/*'nocompress'*/); + $pagename = $request->getArg('pagename'); + $dest = $request->getArg('dest'); + + include_once("lib/display.php"); + displayPage($request); + $html = ob_get_contents(); + + // check hook for external converters + if (defined('USE_EXTERNAL_HTML2PDF') + and USE_EXTERNAL_HTML2PDF) + { // See http://phpwiki.sourceforge.net/phpwiki/PhpWikiToDocBookAndPDF + // htmldoc or ghostscript + html2ps or docbook (dbdoclet, xsltproc, fop) + $request->discardOutput(); + $request->buffer_output(false/*'nocompress'*/); + require_once("lib/WikiPluginCached.php"); + $cache = new WikiPluginCached; + $cache->newCache(); + $tmpfile = $cache->tempnam(); + $fp = fopen($tmpfile, "wb"); + fwrite($fp, $html); + fclose($fp); + Header('Content-Type: application/pdf'); + passthru(sprintf(USE_EXTERNAL_HTML2PDF, $tmpfile)); + unlink($tmpfile); + } else { + // use fpdf: if ($GLOBALS['LANG'] == 'ja') { include_once("lib/fpdf/japanese.php"); @@ -119,16 +150,11 @@ function ConvertAndDisplayPdf (&$request $pdf = new PDF; } - include_once("lib/display.php"); - displayPage($request); - $html = ob_get_contents(); $pdf->Open(); $pdf->AddPage(); $pdf->ConvertFromHTML($html); $request->discardOutput(); - $request->buffer_output(false/*'nocompress'*/); - $pagename = $request->getArg('pagename'); - $dest = $request->getArg('dest'); $pdf->Output($pagename.".pdf", $dest ? $dest : 'I'); + } if (!empty($errormsg)) { $request->discardOutput(); @@ -137,4 +163,8 @@ function ConvertAndDisplayPdf (&$request // $Log$ +// Revision 1.6 2004/09/20 13:40:19 rurban +// define all config.ini settings, only the supported will be taken from -default. +// support USE_EXTERNAL_HTML2PDF renderer (htmldoc tested) +// // Revision 1.5 2004/09/17 14:19:02 rurban // default pdf dest: browser Index: IniConfig.php =================================================================== RCS file: /cvsroot/phpwiki/phpwiki/lib/IniConfig.php,v retrieving revision 1.50 retrieving revision 1.51 diff -u -2 -b -p -d -r1.50 -r1.51 --- IniConfig.php 6 Sep 2004 09:28:58 -0000 1.50 +++ IniConfig.php 20 Sep 2004 13:40:19 -0000 1.51 @@ -134,7 +134,11 @@ function IniConfig($file) { foreach ($_IC_VALID_VALUE as $item) { - if (defined($item)) continue; + if (defined($item)) { + unset($rs[$item]); + continue; + } if (array_key_exists($item, $rs)) { define($item, $rs[$item]); + unset($rs[$item]); //} elseif (array_key_exists($item, $rsdef)) { // define($item, $rsdef[$item]); @@ -157,5 +161,8 @@ function IniConfig($file) { // be true. foreach ($_IC_VALID_BOOL as $item) { - if (defined($item)) continue; + if (defined($item)) { + unset($rs[$item]); + continue; + } if (array_key_exists($item, $rs)) { $val = $rs[$item]; @@ -189,4 +196,5 @@ function IniConfig($file) { define($item, true); } + unset($rs[$item]); } @@ -209,4 +217,8 @@ function IniConfig($file) { $DBParams['directory'] = @$rs['DATABASE_DIRECTORY']; $DBParams['timeout'] = @$rs['DATABASE_TIMEOUT']; + foreach (array('DATABASE_TYPE','DATABASE_DSN','DATABASE_SESSION_TABLE','DATABASE_DBA_HANDLER', + 'DATABASE_DIRECTORY','DATABASE_TIMEOUT','DATABASE_PREFIX') as $item) { + unset($rs[$item]); + } // USE_DB_SESSION default logic: if (!defined('USE_DB_SESSION')) { @@ -232,4 +244,5 @@ function IniConfig($file) { $ExpireParams[$major] = array(); $ExpireParams[$major][$max] = $val; + unset($rs[$item]); } } @@ -269,11 +282,16 @@ function IniConfig($file) { $DBAuthParams[$apkey] = $rsdef[$rskey]; } + unset($rs[$rskey]); } // optional values will be set to '' to simplify the logic. foreach ($_IC_OPTIONAL_VALUE as $item) { - if (defined($item)) continue; + if (defined($item)) { + unset($rs[$item]); + continue; + } if (array_key_exists($item, $rs)) { define($item, $rs[$item]); + unset($rs[$item]); } else define($item, ''); @@ -345,4 +363,13 @@ function IniConfig($file) { } + // process the rest of the config.ini settings: + foreach ($rs as $item => $value) { + if (defined($item)) { + continue; + } else { + define($item, $value); + } + } + fix_configs(); } @@ -619,4 +646,8 @@ function fix_configs() { // $Log$ +// Revision 1.51 2004/09/20 13:40:19 rurban +// define all config.ini settings, only the supported will be taken from -default. +// support USE_EXTERNAL_HTML2PDF renderer (htmldoc tested) +// // Revision 1.50 2004/09/06 09:28:58 rurban // fix PLUGIN_CACHED_CACHE_DIR fallback logic. ini entry did not work before |