1<?php 2/** 3 * @package tikiwiki 4 */ 5// (c) Copyright by authors of the Tiki Wiki CMS Groupware Project 6// 7// All Rights Reserved. See copyright.txt for details and a complete list of authors. 8// Licensed under the GNU LESSER GENERAL PUBLIC LICENSE. See license.txt for details. 9// $Id$ 10 11$section = 'wiki page'; 12require_once('tiki-setup.php'); 13$structlib = TikiLib::lib('struct'); 14$auto_query_args = ['page_ref_id', 'page', 'find', 'pageName', 'structureId', 'offset', 'printpages', 'printstructures']; 15 16$access->check_feature('feature_wiki_multiprint'); 17$access->check_permission('tiki_p_view'); 18//get_strings tra('Multiple Print'); 19if (! isset($cookietab)) { 20 $cookietab = '1'; 21} 22if (! isset($_REQUEST['printpages']) && ! isset($_REQUEST['printstructures'])) { 23 $printpages = []; 24 $printstructures = []; 25 if (isset($_REQUEST["page_ref_id"])) { 26 $info = $structlib->s_get_page_info($_REQUEST['page_ref_id']); 27 if (! empty($info)) { 28 $printstructures[] = $_REQUEST['page_ref_id']; 29 } 30 } elseif (isset($_REQUEST["page"]) && $tikilib->page_exists($_REQUEST["page"])) { 31 $printpages[] = $_REQUEST["page"]; 32 } 33} else { 34 $printpages = json_decode(urldecode($_REQUEST["printpages"])); 35 $printstructures = json_decode(urldecode($_REQUEST['printstructures'])); 36} 37if (isset($_REQUEST["find"])) { 38 $find = $_REQUEST["find"]; 39} else { 40 $find = ''; 41} 42$smarty->assign('find', $find); 43if (isset($_REQUEST["addpage"])) { 44 if (! in_array($_REQUEST["pageName"], $printpages)) { 45 foreach ($_REQUEST['pageName'] as $value) { 46 $printpages[] = $value; 47 } 48 } 49 $cookietab = 2; 50} 51if (isset($_REQUEST["removepage"])) { 52 foreach ($_REQUEST['selectedpages'] as $value) { 53 unset($printpages[$value]); 54 } 55 $printpages = array_merge($printpages); 56 $cookietab = 2; 57} 58if (isset($_REQUEST["clearpages"])) { 59 $printpages = []; 60 $cookietab = 2; 61} 62if (isset($_REQUEST["clearstructures"])) { 63 $printstructures = []; 64} 65if (isset($_REQUEST['addstructurepages'])) { 66 $struct = $structlib->get_subtree($_REQUEST["structureId"]); 67 foreach ($struct as $struct_page) { 68 // Handle dummy last entry 69 if ($struct_page["pos"] != '' && $struct_page["last"] == 1) { 70 continue; 71 } 72 $printpages[] = $struct_page["pageName"]; 73 } 74 $cookietab = 2; 75} 76if (isset($_REQUEST['addstructure'])) { 77 $info = $structlib->s_get_page_info($_REQUEST['structureId']); 78 if (! empty($info)) { 79 $printstructures[] = $_REQUEST['structureId']; 80 } 81} 82$smarty->assign_by_ref('printpages', $printpages); 83$smarty->assign_by_ref('printstructures', $printstructures); 84$form_printpages = urlencode(json_encode($printpages)); 85$smarty->assign_by_ref('form_printpages', $form_printpages); 86$form_printstructures = urlencode(json_encode($printstructures)); 87$smarty->assign_by_ref('form_printstructures', $form_printstructures); 88$pages = $tikilib->list_pageNames(0, -1, 'pageName_asc', $find); 89$smarty->assign_by_ref('pages', $pages["data"]); 90$structures = $structlib->list_structures(0, -1, 'pageName_asc', $find); 91$smarty->assign_by_ref('structures', $structures["data"]); 92foreach ($printstructures as $page_ref_id) { 93 foreach ($structures['data'] as $struct) { 94 if ($struct['page_ref_id'] == $page_ref_id) { 95 $printnamestructures[] = $struct['pageName']; 96 break; 97 } 98 } 99} 100$smarty->assign_by_ref('printnamestructures', $printnamestructures); 101 102include_once('tiki-section_options.php'); 103ask_ticket('print-pages'); 104// disallow robots to index page: 105$smarty->assign('metatag_robots', 'NOINDEX, NOFOLLOW'); 106$smarty->assign('pdf_export', ($prefs['print_pdf_from_url'] != 'none') ? 'y' : 'n'); 107$smarty->assign('mid', 'tiki-print_pages.tpl'); 108$smarty->display("tiki.tpl"); 109