diff --git a/entirewiki.php b/entirewiki.php index 85bbe13..0fc21d3 100644 --- a/entirewiki.php +++ b/entirewiki.php @@ -54,7 +54,8 @@ $ouwikioutput = $PAGE->get_renderer('mod_ouwiki'); $format = required_param('format', PARAM_ALPHA); -if ($format !== OUWIKI_FORMAT_HTML && $format !== OUWIKI_FORMAT_RTF && $format !== OUWIKI_FORMAT_TEMPLATE) { +if ($format !== OUWIKI_FORMAT_HTML && $format !== OUWIKI_FORMAT_PDF + && $format !== OUWIKI_FORMAT_TEMPLATE && $format !== OUWIKI_FORMAT_HTML_PRINT) { print_error('Unexpected format'); } @@ -71,9 +72,28 @@ $files = array(); $fs = get_file_storage(); break; - case OUWIKI_FORMAT_RTF: - require_once($CFG->dirroot.'/local/rtf.php'); - $markup = '

'.get_string('savedat', 'ouwiki', userdate(time())).'


'; + case OUWIKI_FORMAT_HTML_PRINT: + + $url_object_array = $PAGE->theme->css_urls($PAGE); + $url_object = $url_object_array[0]; + $css_url = $url_object->out(); + + $markup = ''; + $markup .= ''; + $markup .= ''; + $markup .= ''; + $markup .= ''; + + break; + case OUWIKI_FORMAT_PDF: + + $markup = ''; + $css = file_get_contents(dirname(__FILE__) .'/pdf.css'); + $markup .= ''; + $markup .= ''; + $markup .= ''; + $markup .= ''; + break; case OUWIKI_FORMAT_HTML: // Do header @@ -98,27 +118,61 @@ } } -// If tree view specified. -if (($treemode) && ($format == OUWIKI_FORMAT_HTML) ) { +// // Original +// if (($treemode) && ($format == OUWIKI_FORMAT_HTML) ) { +// ouwiki_build_tree($index); +// // Print out in hierarchical form... +// print ''; + +// if ($orphans) { +// print '

'.get_string('orphanpages', 'ouwiki').'

'; +// print ''; +// } +// } else { + + +//If tree view specified. +if (($treemode) && ($format == OUWIKI_FORMAT_HTML || $format == OUWIKI_FORMAT_PDF || $format == OUWIKI_FORMAT_HTML_PRINT) ) { + ouwiki_build_tree($index); // Print out in hierarchical form... - print ''; if ($orphans) { - print '

'.get_string('orphanpages', 'ouwiki').'

'; - print ''; } + + if($format == OUWIKI_FORMAT_HTML) + print $treeOutput; + + if($format == OUWIKI_FORMAT_PDF || $format == OUWIKI_FORMAT_HTML_PRINT) + $markup .= $treeOutput; + } else { foreach ($index as $pageinfo) { if (count($pageinfo->linksfrom)!= 0 || $pageinfo->title === '') { @@ -129,8 +183,15 @@ continue; } - $markup .= get_online_display_content($format, $pageversion, $context, $subwiki, $cm, $index, $fs, $files); - + + $output = get_online_display_content($format, $pageversion, $context, $subwiki, $cm, $index, $fs, $files); + + if($format == OUWIKI_FORMAT_HTML) + print $output; + + if($format == OUWIKI_FORMAT_PDF || $format == OUWIKI_FORMAT_HTML_PRINT) + $markup .= $output; + if ($first) { $first = false; } @@ -184,9 +245,26 @@ exit; break; - case OUWIKI_FORMAT_RTF: - $markup .= '
'; - rtf_from_html($filename.'.rtf', $markup); + case OUWIKI_FORMAT_HTML_PRINT: + + $markup .= ''; + + echo $markup; + break; + + case OUWIKI_FORMAT_PDF: + $markup .= ''; + + require_once($CFG->libdir . '/pdflib.php'); + + $doc = new pdf; + $doc->setFont('helvetica'); + $doc->setPrintHeader(false); + $doc->setPrintFooter(false); + $doc->AddPage(); + $doc->writeHTML($markup); + $doc->Output(); + break; case OUWIKI_FORMAT_HTML: @@ -245,10 +323,17 @@ function get_online_display_content($format, $pageversion, $context, $subwiki, $ } $markup .= ''; break; - case OUWIKI_FORMAT_RTF: - $markup .= '

' . htmlspecialchars($visibletitle) . '

'; - $markup .= trim($pageversion->xhtml); - $markup .= '


'; + case OUWIKI_FORMAT_PDF || OUWIKI_FORMAT_HTML_PRINT: + //$markup .= '

' . htmlspecialchars($visibletitle) . '

'; + //$markup .= trim($pageversion->xhtml); + //$markup .= '


'; + + $markup .= '

' . + '' . htmlspecialchars($visibletitle) . '

'; + $markup .= ouwiki_convert_content($pageversion->xhtml, $subwiki, $cm, $index, $pageversion->xhtmlformat); + $markup .= '
'; + break; case OUWIKI_FORMAT_HTML: print '

' . diff --git a/locallib.php b/locallib.php index c7d0e07..4cf6177 100644 --- a/locallib.php +++ b/locallib.php @@ -51,8 +51,9 @@ define('OUWIKI_PARAMS_ARRAY', 3); define('OUWIKI_FORMAT_HTML', 'html'); -define('OUWIKI_FORMAT_RTF', 'rtf'); +define('OUWIKI_FORMAT_PDF', 'pdf'); define('OUWIKI_FORMAT_TEMPLATE', 'template'); +define('OUWIKI_FORMAT_HTML_PRINT', 'print'); // pages define('OUWIKI_GETPAGE_REQUIREVERSION', 0); diff --git a/pdf.css b/pdf.css new file mode 100644 index 0000000..e69de29