From: <ny...@us...> - 2011-01-26 22:37:06
|
Revision: 32165 http://tikiwiki.svn.sourceforge.net/tikiwiki/?rev=32165&view=rev Author: nyloth Date: 2011-01-26 17:30:08 +0000 (Wed, 26 Jan 2011) Log Message: ----------- [bp/r31254][MOD] Fixed PDF printing [bp/r31562][FIX] Headers sent while printing PDF did not work using HTTPS with Internet Explorer Modified Paths: -------------- branches/proposals/6.x/templates/tiki-listpages_content.tpl branches/proposals/6.x/templates/tiki-print_pages.tpl branches/proposals/6.x/templates/tiki-wiki_topline.tpl branches/proposals/6.x/tiki-admin_structures.php branches/proposals/6.x/tiki-index.php branches/proposals/6.x/tiki-listpages.php branches/proposals/6.x/tiki-print.php branches/proposals/6.x/tiki-print_multi_pages.php branches/proposals/6.x/tiki-print_pages.php branches/proposals/6.x/tiki-view_forum_thread.php Modified: branches/proposals/6.x/templates/tiki-listpages_content.tpl =================================================================== --- branches/proposals/6.x/templates/tiki-listpages_content.tpl 2011-01-26 17:27:49 UTC (rev 32164) +++ branches/proposals/6.x/templates/tiki-listpages_content.tpl 2011-01-26 17:30:08 UTC (rev 32165) @@ -349,6 +349,10 @@ {if $prefs.feature_wiki_multiprint eq 'y'} <option value="print_pages" >{tr}Print{/tr}</option> + + {if $prefs.print_pdf_from_url neq 'none'} + <option value="export_pdf" >{tr}PDF{/tr}</option> + {/if} {/if} {if $prefs.feature_wiki_usrlock eq 'y' and ($tiki_p_lock eq 'y' or $tiki_p_admin_wiki eq 'y')} Modified: branches/proposals/6.x/templates/tiki-print_pages.tpl =================================================================== --- branches/proposals/6.x/templates/tiki-print_pages.tpl 2011-01-26 17:27:49 UTC (rev 32164) +++ branches/proposals/6.x/templates/tiki-print_pages.tpl 2011-01-26 17:30:08 UTC (rev 32165) @@ -21,6 +21,15 @@ <input type="submit" name="print" value="{tr}Print{/tr}" /> </form> + {if $pdf_export eq 'y'} + <form method="get" action="tiki-print_multi_pages.php"> + <input type="hidden" name="printstructures" value="{$form_printstructures|escape}" /> + <input type="hidden" name="find" value="{$find|escape}" /> + <input type="hidden" name="display" value="pdf" /> + <input type="submit" name="print" value="{tr}PDF{/tr}" /> + </form> + {/if} + <form action="tiki-print_pages.php" method="post"> <input type="submit" name="clearstructures" value="{tr}Clear{/tr}" /> </form> @@ -95,8 +104,15 @@ <div style="float:right;margin-right:20%;"> <form method="get" action="tiki-print_multi_pages.php"> <input type="hidden" name="printpages" value="{$form_printpages|escape}" /> - <p><input type="submit" name="print" title="{tr}Print{/tr}" value="{tr}Print{/tr}" /></p> - </form> + <input type="submit" name="print" title="{tr}Print{/tr}" value="{tr}Print{/tr}" /> + </form> + {if $pdf_export eq 'y'} + <form method="get" action="tiki-print_multi_pages.php"> + <input type="hidden" name="display" value="pdf" /> + <input type="hidden" name="printpages" value="{$form_printpages|escape}" /> + <input type="submit" name="print" title="{tr}PDF{/tr}" value="{tr}PDF{/tr}" /> + </form> + {/if} </div> {/if} {if $prefs.feature_wiki_structure eq 'y'} Modified: branches/proposals/6.x/templates/tiki-wiki_topline.tpl =================================================================== --- branches/proposals/6.x/templates/tiki-wiki_topline.tpl 2011-01-26 17:27:49 UTC (rev 32164) +++ branches/proposals/6.x/templates/tiki-wiki_topline.tpl 2011-01-26 17:30:08 UTC (rev 32165) @@ -22,7 +22,7 @@ <div class="wikiactions" style="float: right; padding-left:10px; white-space: nowrap"> <div class="icons" style="float: left;"> {if $pdf_export eq 'y'} - <a href="tiki-print.php?{query display="pdf"}" title="{tr}PDF{/tr}">{icon _id='page_white_acrobat' alt="{tr}PDF{/tr}"}</a> + <a href="tiki-print.php?{query display="pdf" page=$page}" title="{tr}PDF{/tr}">{icon _id='page_white_acrobat' alt="{tr}PDF{/tr}"}</a> {/if} {if $editable and ($tiki_p_edit eq 'y' or $page|lower eq 'sandbox') and $beingEdited ne 'y' and $machine_translate_to_lang == '' or $canEditStaging eq 'y' } <a title="{tr}Edit this page{/tr}" {ajax_href template="tiki-editpage.tpl"}tiki-editpage.php?page={if $needsStaging eq 'y'}{$stagingPageName|escape:"url"}{else}{$page|escape:"url"}{/if}{if !empty($page_ref_id) and $needsStaging neq 'y'}&page_ref_id={$page_ref_id}{/if}{/ajax_href}>{icon _id='page_edit' alt="{tr}Edit this page{/tr}"}</a> Modified: branches/proposals/6.x/tiki-admin_structures.php =================================================================== --- branches/proposals/6.x/tiki-admin_structures.php 2011-01-26 17:27:49 UTC (rev 32164) +++ branches/proposals/6.x/tiki-admin_structures.php 2011-01-26 17:30:08 UTC (rev 32165) @@ -263,8 +263,7 @@ include_once ('tiki-section_options.php'); // disallow robots to index page: $smarty->assign('metatag_robots', 'NOINDEX, NOFOLLOW'); -// Detect if we have a PDF export mod installed -$smarty->assign('pdf_export', file_exists('lib/mozilla2ps/mod_urltopdf.php') ? 'y' : 'n'); +$smarty->assign('pdf_export', ($prefs['print_pdf_from_url'] != 'none') ? 'y' : 'n'); // Display the template $smarty->assign('mid', 'tiki-admin_structures.tpl'); $smarty->display("tiki.tpl"); Modified: branches/proposals/6.x/tiki-index.php =================================================================== --- branches/proposals/6.x/tiki-index.php 2011-01-26 17:27:49 UTC (rev 32164) +++ branches/proposals/6.x/tiki-index.php 2011-01-26 17:30:08 UTC (rev 32165) @@ -491,7 +491,7 @@ } // Detect if we have a PDF export mod installed -$smarty->assign('pdf_export', file_exists('lib/mozilla2ps/mod_urltopdf.php') ? 'y' : 'n'); +$smarty->assign('pdf_export', ($prefs['print_pdf_from_url'] != 'none') ? 'y' : 'n'); // Display the Index Template $pageRenderer->runSetups(); Modified: branches/proposals/6.x/tiki-listpages.php =================================================================== --- branches/proposals/6.x/tiki-listpages.php 2011-01-26 17:27:49 UTC (rev 32164) +++ branches/proposals/6.x/tiki-listpages.php 2011-01-26 17:30:08 UTC (rev 32165) @@ -80,6 +80,22 @@ } break; + case 'export_pdf': + $access->check_feature('feature_wiki_multiprint'); + foreach($_REQUEST["checked"] as $check) { + $access->check_page_exists($check); + // Now check permissions to access this page + $perms = Perms::get( array( 'type' => 'wiki page', 'object' => $check ) ); + if (! $perms->view ) { + $access->display_error($check, tra("You do not have permission to view this page."), '403'); + } + + $multiprint_pages[] = $check; + } + + header("Location: tiki-print_multi_pages.php?display=pdf&printpages=" . urlencode(serialize($multiprint_pages))); + die; + case 'unlock_pages': $access->check_feature('feature_wiki_usrlock'); $access->check_authenticity(tr('Are you sure you want to unlock the %0 selected pages?', count($_REQUEST['checked']))); Modified: branches/proposals/6.x/tiki-print.php =================================================================== --- branches/proposals/6.x/tiki-print.php 2011-01-26 17:27:49 UTC (rev 32164) +++ branches/proposals/6.x/tiki-print.php 2011-01-26 17:30:08 UTC (rev 32165) @@ -77,11 +77,19 @@ $smarty->assign('display', isset($_REQUEST['display']) ? $_REQUEST['display'] : ''); // Allow PDF export by installing a Mod that define an appropriate function if (isset($_REQUEST['display']) && $_REQUEST['display'] == 'pdf') { - // Method using 'mozilla2ps' mod - if (file_exists('lib/mozilla2ps/mod_urltopdf.php')) { - include_once ('lib/mozilla2ps/mod_urltopdf.php'); - mod_urltopdf(); - } + require_once 'lib/pdflib.php'; + $generator = new PdfGenerator(); + $pdf = $generator->getPdf( 'tiki-print.php', array('page' => $page) ); + + header('Cache-Control: private, must-revalidate'); + header('Pragma: private'); + header("Content-Description: File Transfer"); + header('Content-disposition: attachment; filename="'. $page. '.pdf"'); + header("Content-Type: application/pdf"); + header("Content-Transfer-Encoding: binary"); + header('Content-Length: '. strlen($pdf)); + echo $pdf; + } else { $smarty->display('tiki-print.tpl'); } Modified: branches/proposals/6.x/tiki-print_multi_pages.php =================================================================== --- branches/proposals/6.x/tiki-print_multi_pages.php 2011-01-26 17:27:49 UTC (rev 32164) +++ branches/proposals/6.x/tiki-print_multi_pages.php 2011-01-26 17:30:08 UTC (rev 32165) @@ -84,11 +84,32 @@ if (isset($_REQUEST['display'])) $smarty->assign('display', $_REQUEST['display']); // Allow PDF export by installing a Mod that define an appropriate function if (isset($_REQUEST['display']) && $_REQUEST['display'] == 'pdf') { - // Method using 'mozilla2ps' mod - if (file_exists('lib/mozilla2ps/mod_urltopdf.php')) { - include_once ('lib/mozilla2ps/mod_urltopdf.php'); - mod_urltopdf(); + require_once 'lib/pdflib.php'; + $generator = new PdfGenerator(); + $pdf = $pdfname = ''; + + if (!empty($printpages)) { + $pdf = $generator->getPdf( 'tiki-print_multi_pages.php', array('print' => 'print', 'printpages' => $_REQUEST['printpages'] ) ); + $pdfname = implode(', ', $printpages); + + } else if (!empty($printstructures)) { + $pdf = $generator->getPdf( 'tiki-print_multi_pages.php', array('print' => 'print', 'printstructures' => $_REQUEST['printstructures'] ) ); + $pdfname = implode(', ', $printstructures); + + } else { + $smarty->display("tiki-print_multi_pages.tpl"); + die; } + + header('Cache-Control: private, must-revalidate'); + header('Pragma: private'); + header("Content-Description: File Transfer"); + header('Content-disposition: attachment; filename="'. $pdfname . '.pdf"'); + header("Content-Type: application/pdf"); + header("Content-Transfer-Encoding: binary"); + header('Content-Length: '. strlen($pdf)); + echo $pdf; + } else { $smarty->display("tiki-print_multi_pages.tpl"); } Modified: branches/proposals/6.x/tiki-print_pages.php =================================================================== --- branches/proposals/6.x/tiki-print_pages.php 2011-01-26 17:27:49 UTC (rev 32164) +++ branches/proposals/6.x/tiki-print_pages.php 2011-01-26 17:30:08 UTC (rev 32165) @@ -97,6 +97,6 @@ ask_ticket('print-pages'); // disallow robots to index page: $smarty->assign('metatag_robots', 'NOINDEX, NOFOLLOW'); - +$smarty->assign('pdf_export', ($prefs['print_pdf_from_url'] != 'none') ? 'y' : 'n'); $smarty->assign('mid', 'tiki-print_pages.tpl'); $smarty->display("tiki.tpl"); Modified: branches/proposals/6.x/tiki-view_forum_thread.php =================================================================== --- branches/proposals/6.x/tiki-view_forum_thread.php 2011-01-26 17:27:49 UTC (rev 32164) +++ branches/proposals/6.x/tiki-view_forum_thread.php 2011-01-26 17:30:08 UTC (rev 32165) @@ -336,17 +336,24 @@ $smarty->assign('mid', 'tiki-print_forum_thread.tpl'); // Allow PDF export by installing a Mod that define an appropriate function if ($_REQUEST['display'] == 'pdf') { - // Method using 'mozilla2ps' mod - if (file_exists('lib/mozilla2ps/mod_urltopdf.php')) { - include_once ('lib/mozilla2ps/mod_urltopdf.php'); - mod_urltopdf(); - } + require_once 'lib/pdflib.php'; + $generator = new PdfGenerator(); + $pdf = $generator->getPdf( 'tiki-view_forum_thread.php', array('display' => 'print', 'comments_parentId' => $_REQUEST['comments_parentId'], 'forumId' => $_REQUEST['forumId']) ); + + header('Cache-Control: private, must-revalidate'); + header('Pragma: private'); + header("Content-Description: File Transfer"); + header('Content-disposition: attachment; filename="'. $thread_info['title'] . '.pdf"'); + header("Content-Type: application/pdf"); + header("Content-Transfer-Encoding: binary"); + header('Content-Length: '. strlen($pdf)); + echo $pdf; + } else { $smarty->display('tiki-print.tpl'); } } else { - // Detect if we have a PDF export mod installed - $smarty->assign('pdf_export', file_exists('lib/mozilla2ps/mod_urltopdf.php') ? 'y' : 'n'); + $smarty->assign('pdf_export', ($prefs['print_pdf_from_url'] != 'none') ? 'y' : 'n'); $smarty->assign('display', ''); $smarty->assign('mid', 'tiki-view_forum_thread.tpl'); $smarty->display('tiki.tpl'); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |