| 
									
										
										
										
											2004-05-30 13:43:42 +00:00
										 |  |  | <?php | 
					
						
							| 
									
										
										
										
											2016-12-26 09:26:26 +00:00
										 |  |  | namespace LAM\TOOLS\PDF_EDITOR; | 
					
						
							|  |  |  | use \htmlTable; | 
					
						
							|  |  |  | use \htmlTitle; | 
					
						
							|  |  |  | use \htmlTableExtendedInputField; | 
					
						
							|  |  |  | use \htmlSpacer; | 
					
						
							|  |  |  | use \htmlTableExtendedSelect; | 
					
						
							|  |  |  | use \htmlButton; | 
					
						
							|  |  |  | use \htmlOutputText; | 
					
						
							|  |  |  | use \htmlGroup; | 
					
						
							|  |  |  | use \htmlSelect; | 
					
						
							|  |  |  | use \htmlInputField; | 
					
						
							|  |  |  | use \htmlSubTitle; | 
					
						
							|  |  |  | use \htmlFieldset; | 
					
						
							|  |  |  | use \htmlInputTextarea; | 
					
						
							|  |  |  | use \htmlHiddenInput; | 
					
						
							| 
									
										
										
										
											2017-06-25 13:19:11 +00:00
										 |  |  | use LAM\PDF\PDFStructureReader; | 
					
						
							|  |  |  | use LAM\PDF\PDFTextSection; | 
					
						
							|  |  |  | use LAM\PDF\PDFEntrySection; | 
					
						
							| 
									
										
										
										
											2017-07-01 07:50:49 +00:00
										 |  |  | use LAM\PDF\PDFStructure; | 
					
						
							| 
									
										
										
										
											2017-07-01 07:59:51 +00:00
										 |  |  | use LAM\PDF\PDFSectionEntry; | 
					
						
							| 
									
										
										
										
											2017-07-02 07:00:14 +00:00
										 |  |  | use LAM\PDF\PDFStructureWriter; | 
					
						
							| 
									
										
										
										
											2004-05-30 13:43:42 +00:00
										 |  |  | /* | 
					
						
							|  |  |  | $Id$ | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-10-27 18:47:12 +00:00
										 |  |  |   This code is part of LDAP Account Manager (http://www.ldap-account-manager.org/) | 
					
						
							| 
									
										
										
										
											2007-11-22 19:50:26 +00:00
										 |  |  |   Copyright (C) 2003 - 2006  Michael Duergner | 
					
						
							| 
									
										
										
										
											2017-02-11 16:11:37 +00:00
										 |  |  |                 2007 - 2017  Roland Gruber | 
					
						
							| 
									
										
										
										
											2004-05-30 13:43:42 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |   This program is free software; you can redistribute it and/or modify | 
					
						
							|  |  |  |   it under the terms of the GNU General Public License as published by | 
					
						
							|  |  |  |   the Free Software Foundation; either version 2 of the License, or | 
					
						
							|  |  |  |   (at your option) any later version. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   This program is distributed in the hope that it will be useful, | 
					
						
							|  |  |  |   but WITHOUT ANY WARRANTY; without even the implied warranty of | 
					
						
							|  |  |  |   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | 
					
						
							|  |  |  |   GNU General Public License for more details. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   You should have received a copy of the GNU General Public License | 
					
						
							|  |  |  |   along with this program; if not, write to the Free Software | 
					
						
							|  |  |  |   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   Manages creating/changing of pdf structures. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | */ | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2005-06-21 20:58:32 +00:00
										 |  |  | /** | 
					
						
							|  |  |  | * Displays the main page of the PDF editor where the user can select the displayed entries. | 
					
						
							|  |  |  | * | 
					
						
							| 
									
										
										
										
											2007-10-24 17:31:14 +00:00
										 |  |  | * @author Michael Duergner | 
					
						
							| 
									
										
										
										
											2005-06-21 20:58:32 +00:00
										 |  |  | * @author Roland Gruber | 
					
						
							|  |  |  | * @package PDF | 
					
						
							|  |  |  | */ | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2006-03-26 17:51:25 +00:00
										 |  |  | /** security functions */ | 
					
						
							|  |  |  | include_once("../../lib/security.inc"); | 
					
						
							| 
									
										
										
										
											2005-07-27 18:06:55 +00:00
										 |  |  | /** access to PDF configuration files */ | 
					
						
							| 
									
										
										
										
											2004-05-31 09:38:59 +00:00
										 |  |  | include_once('../../lib/pdfstruct.inc'); | 
					
						
							| 
									
										
										
										
											2005-07-27 18:06:55 +00:00
										 |  |  | /** LDAP object */ | 
					
						
							| 
									
										
										
										
											2004-05-31 09:38:59 +00:00
										 |  |  | include_once('../../lib/ldap.inc'); | 
					
						
							| 
									
										
										
										
											2005-07-27 18:06:55 +00:00
										 |  |  | /** LAM configuration */ | 
					
						
							| 
									
										
										
										
											2004-05-31 09:38:59 +00:00
										 |  |  | include_once('../../lib/config.inc'); | 
					
						
							| 
									
										
										
										
											2005-07-27 18:06:55 +00:00
										 |  |  | /** module functions */ | 
					
						
							| 
									
										
										
										
											2004-05-31 09:38:59 +00:00
										 |  |  | include_once('../../lib/modules.inc'); | 
					
						
							| 
									
										
										
										
											2004-05-30 13:43:42 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | // start session
 | 
					
						
							| 
									
										
										
										
											2006-03-26 17:51:25 +00:00
										 |  |  | startSecureSession(); | 
					
						
							| 
									
										
										
										
											2017-02-11 16:11:37 +00:00
										 |  |  | enforceUserIsLoggedIn(); | 
					
						
							| 
									
										
										
										
											2004-05-30 13:43:42 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2007-12-30 13:15:39 +00:00
										 |  |  | // die if no write access
 | 
					
						
							|  |  |  | if (!checkIfWriteAccessIsAllowed()) die(); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-08-13 17:43:48 +00:00
										 |  |  | checkIfToolIsActive('toolPDFEditor'); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2004-05-30 13:43:42 +00:00
										 |  |  | setlanguage(); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-05-15 19:16:46 +00:00
										 |  |  | if (!empty($_POST)) { | 
					
						
							|  |  |  | 	validateSecurityToken(); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2004-05-30 13:43:42 +00:00
										 |  |  | // check if user is logged in, if not go to login
 | 
					
						
							|  |  |  | if (!$_SESSION['ldap'] || !$_SESSION['ldap']->server()) { | 
					
						
							|  |  |  | 	metaRefresh("../login.php"); | 
					
						
							|  |  |  | 	exit; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2004-06-03 14:26:48 +00:00
										 |  |  | // Write $_POST variables to $_GET when form was submitted via post
 | 
					
						
							| 
									
										
										
										
											2016-12-26 09:26:26 +00:00
										 |  |  | if (isset($_POST['type'])) { | 
					
						
							| 
									
										
										
										
											2004-05-31 09:38:59 +00:00
										 |  |  | 	$_GET = $_POST; | 
					
						
							| 
									
										
										
										
											2004-05-30 13:43:42 +00:00
										 |  |  | } | 
					
						
							| 
									
										
										
										
											2004-05-31 09:38:59 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-12-26 09:26:26 +00:00
										 |  |  | $typeManager = new \LAM\TYPES\TypeManager(); | 
					
						
							|  |  |  | $type = $typeManager->getConfiguredType($_GET['type']); | 
					
						
							|  |  |  | if ($type->isHidden() || !checkIfWriteAccessIsAllowed($type->getId())) { | 
					
						
							|  |  |  | 	logNewMessage(LOG_ERR, 'User tried to access hidden PDF structure: ' . $type->getId()); | 
					
						
							| 
									
										
										
										
											2013-01-01 20:46:28 +00:00
										 |  |  | 	die(); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2005-06-21 20:58:32 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2004-06-03 14:26:48 +00:00
										 |  |  | // Abort and go back to main pdf structure page
 | 
					
						
							| 
									
										
										
										
											2004-05-31 09:38:59 +00:00
										 |  |  | if(isset($_GET['abort'])) { | 
					
						
							|  |  |  | 	metarefresh('pdfmain.php'); | 
					
						
							|  |  |  | 	exit; | 
					
						
							|  |  |  | } | 
					
						
							| 
									
										
										
										
											2005-07-06 13:48:55 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2004-06-03 14:26:48 +00:00
										 |  |  | // Load PDF structure from file if it is not defined in session
 | 
					
						
							| 
									
										
										
										
											2004-05-31 09:38:59 +00:00
										 |  |  | if(!isset($_SESSION['currentPDFStructure'])) { | 
					
						
							| 
									
										
										
										
											2004-06-03 14:26:48 +00:00
										 |  |  | 	// Load structure file to be edit
 | 
					
						
							| 
									
										
										
										
											2017-06-25 13:19:11 +00:00
										 |  |  | 	$reader = new PDFStructureReader(); | 
					
						
							| 
									
										
										
										
											2017-07-02 07:00:14 +00:00
										 |  |  | 	try { | 
					
						
							|  |  |  | 		if(isset($_GET['edit'])) { | 
					
						
							|  |  |  | 			$_SESSION['currentPDFStructure'] = $reader->read($type->getId(), $_GET['edit']); | 
					
						
							|  |  |  | 		} | 
					
						
							|  |  |  | 		// Load default structure file when creating a new one
 | 
					
						
							|  |  |  | 		else { | 
					
						
							|  |  |  | 			$_SESSION['currentPDFStructure'] = $reader->read($type->getId(), 'default'); | 
					
						
							|  |  |  | 		} | 
					
						
							| 
									
										
										
										
											2004-05-31 09:38:59 +00:00
										 |  |  | 	} | 
					
						
							| 
									
										
										
										
											2017-07-02 07:00:14 +00:00
										 |  |  | 	catch (\LAMException $e) { | 
					
						
							|  |  |  | 		metaRefresh('pdfmain.php?loadFailed=1&name=' . $_GET['edit']); | 
					
						
							|  |  |  | 		exit; | 
					
						
							| 
									
										
										
										
											2004-05-31 09:38:59 +00:00
										 |  |  | 	} | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-07-01 07:50:49 +00:00
										 |  |  | if (!empty($_POST['form_submit'])) { | 
					
						
							|  |  |  | 	updateBasicSettings($_SESSION['currentPDFStructure']); | 
					
						
							|  |  |  | 	updateSectionTitles($_SESSION['currentPDFStructure']); | 
					
						
							|  |  |  | 	addSection($_SESSION['currentPDFStructure']); | 
					
						
							| 
									
										
										
										
											2017-07-01 07:59:51 +00:00
										 |  |  | 	addSectionEntry($_SESSION['currentPDFStructure']); | 
					
						
							| 
									
										
										
										
											2017-07-01 09:21:53 +00:00
										 |  |  | 	removeItem($_SESSION['currentPDFStructure']); | 
					
						
							| 
									
										
										
										
											2017-07-02 07:00:14 +00:00
										 |  |  | 	moveUp($_SESSION['currentPDFStructure']); | 
					
						
							|  |  |  | 	moveDown($_SESSION['currentPDFStructure']); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | // Check if pdfname is valid, then save current structure to file and go to
 | 
					
						
							|  |  |  | // main pdf structure page
 | 
					
						
							|  |  |  | $saveErrors = array(); | 
					
						
							|  |  |  | if(isset($_GET['submit'])) { | 
					
						
							|  |  |  | 	$writer = new PDFStructureWriter(); | 
					
						
							|  |  |  | 	try { | 
					
						
							|  |  |  | 		$writer->write($type->getId(), $_POST['pdfname'], $_SESSION['currentPDFStructure']); | 
					
						
							|  |  |  | 		unset($_SESSION['currentPDFStructure']); | 
					
						
							|  |  |  | 		metaRefresh('pdfmain.php?savedSuccessfully=' . $_POST['pdfname']); | 
					
						
							|  |  |  | 		exit; | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | 	catch (\LAMException $e) { | 
					
						
							|  |  |  | 		$saveErrors[] = array('ERROR', $e->getTitle(), $e->getMessage()); | 
					
						
							|  |  |  | 	} | 
					
						
							| 
									
										
										
										
											2017-07-01 07:50:49 +00:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-01-04 19:52:51 +00:00
										 |  |  | $availablePDFFields = getAvailablePDFFields($type->getId()); | 
					
						
							| 
									
										
										
										
											2004-05-31 09:38:59 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2004-06-03 14:26:48 +00:00
										 |  |  | // Create the values for the dropdown boxes for section headline defined by
 | 
					
						
							|  |  |  | // value entries and fetch all available modules
 | 
					
						
							| 
									
										
										
										
											2004-05-31 09:38:59 +00:00
										 |  |  | $modules = array(); | 
					
						
							| 
									
										
										
										
											2004-06-03 14:26:48 +00:00
										 |  |  | $section_items_array = array(); | 
					
						
							| 
									
										
										
										
											2004-05-31 09:38:59 +00:00
										 |  |  | $section_items = ''; | 
					
						
							| 
									
										
										
										
											2010-04-05 10:13:37 +00:00
										 |  |  | $sortedModules = array(); | 
					
						
							| 
									
										
										
										
											2017-01-04 19:52:51 +00:00
										 |  |  | foreach($availablePDFFields as $module => $fields) { | 
					
						
							| 
									
										
										
										
											2010-04-05 10:13:37 +00:00
										 |  |  | 	if ($module != 'main') { | 
					
						
							| 
									
										
										
										
											2016-12-26 09:26:26 +00:00
										 |  |  | 		$title = getModuleAlias($module, $type->getScope()); | 
					
						
							| 
									
										
										
										
											2010-04-05 10:13:37 +00:00
										 |  |  | 	} | 
					
						
							|  |  |  | 	else { | 
					
						
							|  |  |  | 		$title = _('Main'); | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | 	$sortedModules[$module] = $title; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | natcasesort($sortedModules); | 
					
						
							|  |  |  | foreach($sortedModules as $module => $title) { | 
					
						
							| 
									
										
										
										
											2017-01-04 19:52:51 +00:00
										 |  |  | 	$values = $availablePDFFields[$module]; | 
					
						
							| 
									
										
										
										
											2010-04-05 10:13:37 +00:00
										 |  |  | 	if (!is_array($values) || (sizeof($values) < 1)) { | 
					
						
							|  |  |  | 		continue; | 
					
						
							|  |  |  | 	} | 
					
						
							| 
									
										
										
										
											2004-05-31 09:38:59 +00:00
										 |  |  | 	$modules[] = $module; | 
					
						
							| 
									
										
										
										
											2010-04-05 10:13:37 +00:00
										 |  |  | 	$section_items .= "<optgroup label=\"" . $title . "\"\n>"; | 
					
						
							|  |  |  | 	natcasesort($values); | 
					
						
							|  |  |  | 	foreach($values as $attribute => $attributeLabel) { | 
					
						
							| 
									
										
										
										
											2004-06-03 14:26:48 +00:00
										 |  |  | 		$section_items_array[] = $module . '_' . $attribute; | 
					
						
							| 
									
										
										
										
											2010-04-05 10:13:37 +00:00
										 |  |  | 		$section_items .= "<option value=\"" . $module . '_' . $attribute . "\">" . $attributeLabel . "</option>\n"; | 
					
						
							| 
									
										
										
										
											2004-05-31 09:38:59 +00:00
										 |  |  | 	} | 
					
						
							| 
									
										
										
										
											2010-04-05 10:13:37 +00:00
										 |  |  | 	$section_items .= "</optgroup>\n"; | 
					
						
							| 
									
										
										
										
											2004-05-31 09:38:59 +00:00
										 |  |  | } | 
					
						
							|  |  |  | $modules = join(',',$modules); | 
					
						
							| 
									
										
										
										
											2004-05-30 13:43:42 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | // print header
 | 
					
						
							| 
									
										
										
										
											2010-01-01 17:21:46 +00:00
										 |  |  | include '../main_header.php'; | 
					
						
							| 
									
										
										
										
											2010-05-26 17:54:00 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | // print error messages if any
 | 
					
						
							|  |  |  | if (sizeof($saveErrors) > 0) { | 
					
						
							|  |  |  | 	for ($i = 0; $i < sizeof($saveErrors); $i++) { | 
					
						
							|  |  |  | 		call_user_func_array('StatusMessage', $saveErrors[$i]); | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | 	echo "<br>\n"; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-12-21 14:30:42 +00:00
										 |  |  | $newFieldFieldElements = array(); | 
					
						
							|  |  |  | foreach($sortedModules as $module => $title) { | 
					
						
							| 
									
										
										
										
											2017-01-04 19:52:51 +00:00
										 |  |  | 	$fields = $availablePDFFields[$module]; | 
					
						
							| 
									
										
										
										
											2010-12-21 14:30:42 +00:00
										 |  |  | 	if (isset($fields) && is_array($fields) && (sizeof($fields) > 0)) { | 
					
						
							|  |  |  | 		$moduleFields = array(); | 
					
						
							|  |  |  | 		foreach ($fields as $field => $fieldLabel) { | 
					
						
							|  |  |  | 			$moduleFields[$fieldLabel] = $module . "_" . $field; | 
					
						
							|  |  |  | 		} | 
					
						
							|  |  |  | 		$newFieldFieldElements[$title] = $moduleFields; | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | // structure name
 | 
					
						
							|  |  |  | $structureName = ''; | 
					
						
							|  |  |  | if (isset($_GET['edit'])) { | 
					
						
							|  |  |  | 	$structureName = $_GET['edit']; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | else if (isset($_POST['pdfname'])) { | 
					
						
							|  |  |  | 	$structureName = $_POST['pdfname']; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | // headline
 | 
					
						
							| 
									
										
										
										
											2017-07-01 07:50:49 +00:00
										 |  |  | $headline = $_SESSION['currentPDFStructure']->getTitle(); | 
					
						
							| 
									
										
										
										
											2010-12-21 14:30:42 +00:00
										 |  |  | // logo
 | 
					
						
							| 
									
										
										
										
											2017-01-04 19:52:51 +00:00
										 |  |  | $logoFiles = \LAM\PDF\getAvailableLogos(); | 
					
						
							| 
									
										
										
										
											2010-12-21 14:30:42 +00:00
										 |  |  | $logos = array(_('No logo') => 'none'); | 
					
						
							|  |  |  | foreach($logoFiles as $logoFile) { | 
					
						
							| 
									
										
										
										
											2016-12-26 09:26:26 +00:00
										 |  |  | 	$logos[$logoFile['filename'] . ' (' . $logoFile['infos'][0] . ' x ' . $logoFile['infos'][1] . ")"] = $logoFile['filename']; | 
					
						
							| 
									
										
										
										
											2010-12-21 14:30:42 +00:00
										 |  |  | } | 
					
						
							|  |  |  | $selectedLogo = array('printLogo.jpg'); | 
					
						
							| 
									
										
										
										
											2017-06-25 13:19:11 +00:00
										 |  |  | if (isset($_SESSION['currentPDFStructure'])) { | 
					
						
							|  |  |  | 	$selectedLogo = array($_SESSION['currentPDFStructure']->getLogo()); | 
					
						
							| 
									
										
										
										
											2010-12-21 14:30:42 +00:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2004-05-30 13:43:42 +00:00
										 |  |  | ?>
 | 
					
						
							| 
									
										
										
										
											2013-07-24 19:58:49 +00:00
										 |  |  | 	<form id="inputForm" action="pdfpage.php" method="post" onSubmit="saveScrollPosition('inputForm')"> | 
					
						
							| 
									
										
										
										
											2004-05-30 13:43:42 +00:00
										 |  |  | <?php | 
					
						
							| 
									
										
										
										
											2017-01-04 19:52:51 +00:00
										 |  |  | $sectionElements = array(); | 
					
						
							| 
									
										
										
										
											2010-12-21 14:30:42 +00:00
										 |  |  | $nonTextSectionElements = array(); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | $container = new htmlTable(); | 
					
						
							|  |  |  | $container->addElement(new htmlTitle(_('PDF editor')), true); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | // main content
 | 
					
						
							|  |  |  | $mainContent = new htmlTable(); | 
					
						
							|  |  |  | $structureNameInput = new htmlTableExtendedInputField(_("Structure name"), 'pdfname', $structureName, '360'); | 
					
						
							|  |  |  | $structureNameInput->setRequired(true); | 
					
						
							|  |  |  | $mainContent->addElement($structureNameInput, true); | 
					
						
							|  |  |  | $mainContent->addElement(new htmlTableExtendedInputField(_('Headline'), 'headline', $headline), true); | 
					
						
							|  |  |  | $logoSelect = new htmlTableExtendedSelect('logoFile', $logos, $selectedLogo, _('Logo')); | 
					
						
							|  |  |  | $logoSelect->setHasDescriptiveElements(true); | 
					
						
							|  |  |  | $mainContent->addElement($logoSelect, true); | 
					
						
							| 
									
										
										
										
											2013-03-16 13:39:33 +00:00
										 |  |  | $foldingMarks = 'no'; | 
					
						
							| 
									
										
										
										
											2017-06-25 13:19:11 +00:00
										 |  |  | if (isset($_SESSION['currentPDFStructure'])) { | 
					
						
							|  |  |  | 	$foldingMarks = $_SESSION['currentPDFStructure']->getFoldingMarks(); | 
					
						
							| 
									
										
										
										
											2013-03-16 13:39:33 +00:00
										 |  |  | } | 
					
						
							|  |  |  | $possibleFoldingMarks = array(_('No') => 'no', _('Yes') => 'standard'); | 
					
						
							|  |  |  | $foldingMarksSelect = new htmlTableExtendedSelect('foldingmarks', $possibleFoldingMarks, array($foldingMarks), _('Folding marks')); | 
					
						
							|  |  |  | $foldingMarksSelect->setHasDescriptiveElements(true); | 
					
						
							|  |  |  | $mainContent->addElement($foldingMarksSelect, true); | 
					
						
							| 
									
										
										
										
											2010-12-21 14:30:42 +00:00
										 |  |  | $mainContent->addElement(new htmlSpacer(null, '30px'), true); | 
					
						
							|  |  |  | // PDF structure
 | 
					
						
							| 
									
										
										
										
											2017-06-25 13:19:11 +00:00
										 |  |  | $structure = $_SESSION['currentPDFStructure']; | 
					
						
							| 
									
										
										
										
											2010-12-21 14:30:42 +00:00
										 |  |  | // print every entry in the current structure
 | 
					
						
							|  |  |  | $structureContent = new htmlTable(); | 
					
						
							| 
									
										
										
										
											2017-06-25 13:19:11 +00:00
										 |  |  | $sections = $structure->getSections(); | 
					
						
							|  |  |  | for ($key = 0; $key < sizeof($sections); $key++) { | 
					
						
							|  |  |  | 	$section = $sections[$key]; | 
					
						
							| 
									
										
										
										
											2010-12-21 14:30:42 +00:00
										 |  |  | 	// create the up/down/remove links
 | 
					
						
							| 
									
										
										
										
											2017-07-01 07:50:49 +00:00
										 |  |  | 	$linkUp = new htmlButton('up_section_' . $key, 'up.gif', true); | 
					
						
							| 
									
										
										
										
											2010-12-21 14:30:42 +00:00
										 |  |  | 	$linkUp->setTitle(_("Up")); | 
					
						
							| 
									
										
										
										
											2017-07-01 07:50:49 +00:00
										 |  |  | 	$linkDown = new htmlButton('down_section_' . $key, 'down.gif', true); | 
					
						
							| 
									
										
										
										
											2010-12-21 14:30:42 +00:00
										 |  |  | 	$linkDown->setTitle(_("Down")); | 
					
						
							| 
									
										
										
										
											2017-07-01 07:50:49 +00:00
										 |  |  | 	$linkRemove = new htmlButton('remove_section_' . $key, 'delete.gif', true); | 
					
						
							| 
									
										
										
										
											2010-12-21 14:30:42 +00:00
										 |  |  | 	$linkRemove->setTitle(_("Remove")); | 
					
						
							| 
									
										
										
										
											2013-07-30 19:48:34 +00:00
										 |  |  | 	$emptyBox = new htmlOutputText(''); | 
					
						
							| 
									
										
										
										
											2004-05-30 13:43:42 +00:00
										 |  |  | 	// We have a new section to start
 | 
					
						
							| 
									
										
										
										
											2017-06-25 13:19:11 +00:00
										 |  |  | 	if($section instanceof PDFEntrySection) { | 
					
						
							|  |  |  | 		if($section->isAttributeTitle()) { | 
					
						
							|  |  |  | 			$section_headline = translateFieldIDToName($section->getPdfKey(), $type->getScope(), $availablePDFFields); | 
					
						
							| 
									
										
										
										
											2008-03-23 10:57:34 +00:00
										 |  |  | 		} | 
					
						
							|  |  |  | 		else { | 
					
						
							| 
									
										
										
										
											2017-06-25 13:19:11 +00:00
										 |  |  | 			$section_headline = $section->getTitle(); | 
					
						
							| 
									
										
										
										
											2008-03-23 10:57:34 +00:00
										 |  |  | 		} | 
					
						
							| 
									
										
										
										
											2010-12-21 14:30:42 +00:00
										 |  |  | 		$nonTextSectionElements[$section_headline] = $key; | 
					
						
							|  |  |  | 		$sectionElements[$section_headline] = $key; | 
					
						
							|  |  |  | 		$structureContent->addElement(new htmlSpacer(null, '15px'), true); | 
					
						
							| 
									
										
										
										
											2004-06-03 14:26:48 +00:00
										 |  |  | 		// Section headline is a value entry
 | 
					
						
							| 
									
										
										
										
											2017-06-25 13:19:11 +00:00
										 |  |  | 		if($section->isAttributeTitle()) { | 
					
						
							| 
									
										
										
										
											2010-12-21 14:30:42 +00:00
										 |  |  | 			$headlineElements = array(); | 
					
						
							| 
									
										
										
										
											2004-06-03 14:26:48 +00:00
										 |  |  | 			foreach($section_items_array as $item) { | 
					
						
							| 
									
										
										
										
											2017-01-04 19:52:51 +00:00
										 |  |  | 				$headlineElements[translateFieldIDToName($item, $type->getScope(), $availablePDFFields)] = '_' . $item; | 
					
						
							| 
									
										
										
										
											2004-06-03 14:26:48 +00:00
										 |  |  | 			} | 
					
						
							| 
									
										
										
										
											2017-06-25 13:19:11 +00:00
										 |  |  | 			$sectionHeadlineSelect = new htmlSelect('section_' . $key, $headlineElements, array('_' . $section->getPdfKey())); | 
					
						
							| 
									
										
										
										
											2010-12-21 14:30:42 +00:00
										 |  |  | 			$sectionHeadlineSelect->setHasDescriptiveElements(true); | 
					
						
							|  |  |  | 			$sectionHeadlineGroup = new htmlGroup(); | 
					
						
							|  |  |  | 			$sectionHeadlineGroup->addElement($sectionHeadlineSelect); | 
					
						
							|  |  |  | 			$sectionHeadlineGroup->colspan = 2; | 
					
						
							|  |  |  | 			$structureContent->addElement($sectionHeadlineGroup); | 
					
						
							| 
									
										
										
										
											2004-06-03 14:26:48 +00:00
										 |  |  | 		} | 
					
						
							|  |  |  | 		// Section headline is a user text
 | 
					
						
							|  |  |  | 		else { | 
					
						
							| 
									
										
										
										
											2010-12-21 14:30:42 +00:00
										 |  |  | 			$sectionHeadlineInput = new htmlInputField('section_' . $key, $section_headline); | 
					
						
							|  |  |  | 			$sectionHeadlineGroup = new htmlGroup(); | 
					
						
							|  |  |  | 			$sectionHeadlineGroup->addElement($sectionHeadlineInput); | 
					
						
							|  |  |  | 			$sectionHeadlineGroup->colspan = 2; | 
					
						
							|  |  |  | 			$structureContent->addElement($sectionHeadlineGroup); | 
					
						
							| 
									
										
										
										
											2004-06-03 14:26:48 +00:00
										 |  |  | 		} | 
					
						
							| 
									
										
										
										
											2013-07-30 19:48:34 +00:00
										 |  |  | 		if ($key != 0) { | 
					
						
							|  |  |  | 			$structureContent->addElement($linkUp); | 
					
						
							|  |  |  | 		} | 
					
						
							|  |  |  | 		else { | 
					
						
							|  |  |  | 			$structureContent->addElement($emptyBox); | 
					
						
							|  |  |  | 		} | 
					
						
							| 
									
										
										
										
											2017-06-25 13:19:11 +00:00
										 |  |  | 		$hasAdditionalSections = $key < (sizeof($sections) - 1); | 
					
						
							| 
									
										
										
										
											2013-07-30 19:48:34 +00:00
										 |  |  | 		if ($hasAdditionalSections) { | 
					
						
							|  |  |  | 			$structureContent->addElement($linkDown); | 
					
						
							|  |  |  | 		} | 
					
						
							|  |  |  | 		else { | 
					
						
							|  |  |  | 			$structureContent->addElement($emptyBox); | 
					
						
							|  |  |  | 		} | 
					
						
							| 
									
										
										
										
											2010-12-21 14:30:42 +00:00
										 |  |  | 		$structureContent->addElement($linkRemove, true); | 
					
						
							| 
									
										
										
										
											2017-06-25 13:19:11 +00:00
										 |  |  | 		// add section entries
 | 
					
						
							|  |  |  | 		$sectionEntries = $section->getEntries(); | 
					
						
							|  |  |  | 		for ($e = 0; $e < sizeof($sectionEntries); $e++) { | 
					
						
							|  |  |  | 			$sectionEntry = $sectionEntries[$e]; | 
					
						
							|  |  |  | 			$structureContent->addElement(new htmlSpacer('10px', null)); | 
					
						
							|  |  |  | 			$fieldOutput = new htmlOutputText(translateFieldIDToName($sectionEntry->getKey(), $type->getScope(), $availablePDFFields)); | 
					
						
							|  |  |  | 			$structureContent->addElement($fieldOutput); | 
					
						
							|  |  |  | 			if ($e != 0) { | 
					
						
							| 
									
										
										
										
											2017-07-01 07:50:49 +00:00
										 |  |  | 				$entryLinkUp = new htmlButton('up_entry_' . $key . '_' . $e, 'up.gif', true); | 
					
						
							|  |  |  | 				$entryLinkUp->setTitle(_("Up")); | 
					
						
							|  |  |  | 				$structureContent->addElement($entryLinkUp); | 
					
						
							| 
									
										
										
										
											2017-06-25 13:19:11 +00:00
										 |  |  | 			} | 
					
						
							|  |  |  | 			else { | 
					
						
							|  |  |  | 				$structureContent->addElement($emptyBox); | 
					
						
							|  |  |  | 			} | 
					
						
							|  |  |  | 			if ($e < (sizeof($sectionEntries) - 1)) { | 
					
						
							| 
									
										
										
										
											2017-07-01 07:50:49 +00:00
										 |  |  | 				$linkDown = new htmlButton('down_entry_' . $key . '_' . $e, 'down.gif', true); | 
					
						
							|  |  |  | 				$linkDown->setTitle(_("Down")); | 
					
						
							| 
									
										
										
										
											2017-06-25 13:19:11 +00:00
										 |  |  | 				$structureContent->addElement($linkDown); | 
					
						
							|  |  |  | 			} | 
					
						
							|  |  |  | 			else { | 
					
						
							|  |  |  | 				$structureContent->addElement($emptyBox); | 
					
						
							|  |  |  | 			} | 
					
						
							| 
									
										
										
										
											2017-07-01 07:50:49 +00:00
										 |  |  | 			$entryLinkRemove = new htmlButton('remove_entry_' . $key . '_' . $e, 'delete.gif', true); | 
					
						
							|  |  |  | 			$entryLinkRemove->setTitle(_("Remove")); | 
					
						
							|  |  |  | 			$structureContent->addElement($entryLinkRemove, true); | 
					
						
							| 
									
										
										
										
											2017-06-25 13:19:11 +00:00
										 |  |  | 		} | 
					
						
							| 
									
										
										
										
											2004-05-30 13:43:42 +00:00
										 |  |  | 	} | 
					
						
							|  |  |  | 	// We have to include a static text.
 | 
					
						
							| 
									
										
										
										
											2017-06-25 13:19:11 +00:00
										 |  |  | 	elseif($section instanceof PDFTextSection) { | 
					
						
							| 
									
										
										
										
											2004-06-03 14:26:48 +00:00
										 |  |  | 		// Add current satic text for dropdown box needed for the position when inserting a new
 | 
					
						
							|  |  |  | 		// section or static text entry
 | 
					
						
							| 
									
										
										
										
											2017-07-01 07:50:49 +00:00
										 |  |  | 		$textSnippet = $section->getText(); | 
					
						
							|  |  |  | 		$textSnippet = str_replace(array("\n", "\r"), array(" ", " "), $textSnippet); | 
					
						
							|  |  |  | 		$textSnippet = trim($textSnippet); | 
					
						
							|  |  |  | 		if (strlen($textSnippet) > 15) { | 
					
						
							|  |  |  | 			$textSnippet = substr($textSnippet, 0, 15) . '...'; | 
					
						
							|  |  |  | 		} | 
					
						
							|  |  |  | 		$textSnippet = htmlspecialchars($textSnippet); | 
					
						
							|  |  |  | 		$sectionElements[_('Static text') . ': ' . $textSnippet] = $key; | 
					
						
							| 
									
										
										
										
											2010-12-21 14:30:42 +00:00
										 |  |  | 		$structureContent->addElement(new htmlSpacer(null, '15px'), true); | 
					
						
							|  |  |  | 		$sectionHeadlineOutput = new htmlOutputText(_('Static text')); | 
					
						
							|  |  |  | 		$sectionHeadlineOutput->colspan = 2; | 
					
						
							|  |  |  | 		$structureContent->addElement($sectionHeadlineOutput); | 
					
						
							| 
									
										
										
										
											2013-07-30 19:48:34 +00:00
										 |  |  | 		if ($key != 0) { | 
					
						
							|  |  |  | 			$structureContent->addElement($linkUp); | 
					
						
							|  |  |  | 		} | 
					
						
							|  |  |  | 		else { | 
					
						
							|  |  |  | 			$structureContent->addElement($emptyBox); | 
					
						
							|  |  |  | 		} | 
					
						
							| 
									
										
										
										
											2017-07-01 07:50:49 +00:00
										 |  |  | 		if ($key != sizeof($sections) - 1) { | 
					
						
							| 
									
										
										
										
											2013-07-30 19:48:34 +00:00
										 |  |  | 			$structureContent->addElement($linkDown); | 
					
						
							|  |  |  | 		} | 
					
						
							|  |  |  | 		else { | 
					
						
							|  |  |  | 			$structureContent->addElement($emptyBox); | 
					
						
							|  |  |  | 		} | 
					
						
							| 
									
										
										
										
											2010-12-21 14:30:42 +00:00
										 |  |  | 		$structureContent->addElement($linkRemove, true); | 
					
						
							|  |  |  | 		$structureContent->addElement(new htmlSpacer('10px', null)); | 
					
						
							| 
									
										
										
										
											2017-06-25 13:19:11 +00:00
										 |  |  | 		$staticTextOutput = new htmlOutputText($section->getText()); | 
					
						
							| 
									
										
										
										
											2017-06-25 07:47:32 +00:00
										 |  |  | 		$staticTextOutput->setPreformatted(); | 
					
						
							| 
									
										
										
										
											2010-12-21 14:30:42 +00:00
										 |  |  | 		$structureContent->addElement($staticTextOutput, true); | 
					
						
							| 
									
										
										
										
											2004-05-30 13:43:42 +00:00
										 |  |  | 	} | 
					
						
							|  |  |  | } | 
					
						
							| 
									
										
										
										
											2017-06-25 13:19:11 +00:00
										 |  |  | $sectionElements[_('End')] = sizeof($structure->getSections()); | 
					
						
							| 
									
										
										
										
											2010-12-21 14:30:42 +00:00
										 |  |  | $structureContent->colspan = 3; | 
					
						
							|  |  |  | $mainContent->addElement($structureContent); | 
					
						
							|  |  |  | $container->addElement(new htmlFieldset($mainContent), true); | 
					
						
							|  |  |  | $container->addElement(new htmlSpacer(null, '15px'), true); | 
					
						
							| 
									
										
										
										
											2010-04-05 10:13:37 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-12-21 14:30:42 +00:00
										 |  |  | // new section
 | 
					
						
							|  |  |  | $container->addElement(new htmlSubTitle(_('New section')), true); | 
					
						
							|  |  |  | $newSectionContent = new htmlTable(); | 
					
						
							|  |  |  | // add new section with text title
 | 
					
						
							| 
									
										
										
										
											2013-07-30 19:48:34 +00:00
										 |  |  | $newSectionContent->addElement(new htmlTableExtendedInputField(_("Headline"), 'new_section_text')); | 
					
						
							| 
									
										
										
										
											2010-12-21 14:30:42 +00:00
										 |  |  | $newSectionPositionSelect1 = new htmlTableExtendedSelect('add_sectionText_position', $sectionElements, array(), _('Position')); | 
					
						
							|  |  |  | $newSectionPositionSelect1->setHasDescriptiveElements(true); | 
					
						
							|  |  |  | $newSectionPositionSelect1->setSortElements(false); | 
					
						
							|  |  |  | $newSectionContent->addElement($newSectionPositionSelect1); | 
					
						
							|  |  |  | $newSectionContent->addElement(new htmlButton('add_sectionText', _('Add')), true); | 
					
						
							|  |  |  | // add new section with field title
 | 
					
						
							| 
									
										
										
										
											2013-07-30 19:48:34 +00:00
										 |  |  | $newSectionFieldSelect = new htmlTableExtendedSelect('new_section_item', $newFieldFieldElements, array(), _("Headline")); | 
					
						
							| 
									
										
										
										
											2010-12-21 14:30:42 +00:00
										 |  |  | $newSectionFieldSelect->setHasDescriptiveElements(true); | 
					
						
							|  |  |  | $newSectionFieldSelect->setContainsOptgroups(true); | 
					
						
							|  |  |  | $newSectionContent->addElement($newSectionFieldSelect); | 
					
						
							|  |  |  | $newSectionPositionSelect2 = new htmlTableExtendedSelect('add_section_position', $sectionElements, array(), _('Position')); | 
					
						
							|  |  |  | $newSectionPositionSelect2->setHasDescriptiveElements(true); | 
					
						
							|  |  |  | $newSectionPositionSelect2->setSortElements(false); | 
					
						
							|  |  |  | $newSectionContent->addElement($newSectionPositionSelect2); | 
					
						
							|  |  |  | $newSectionContent->addElement(new htmlButton('add_section', _('Add'))); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | $container->addElement(new htmlFieldset($newSectionContent, _("Section")), true); | 
					
						
							|  |  |  | $container->addElement(new htmlSpacer(null, '10px'), true); | 
					
						
							|  |  |  | $newTextFieldContent = new htmlTable(); | 
					
						
							|  |  |  | $newTextFieldContent->addElement(new htmlInputTextarea('text_text', '', 40, 3)); | 
					
						
							|  |  |  | $newTextFieldPositionSelect = new htmlTableExtendedSelect('add_text_position', $sectionElements, array(), _('Position')); | 
					
						
							|  |  |  | $newTextFieldPositionSelect->setHasDescriptiveElements(true); | 
					
						
							|  |  |  | $newTextFieldPositionSelect->setSortElements(false); | 
					
						
							|  |  |  | $newTextFieldContent->addElement($newTextFieldPositionSelect); | 
					
						
							|  |  |  | $newTextFieldContent->addElement(new htmlButton('add_text', _('Add'))); | 
					
						
							|  |  |  | $container->addElement(new htmlFieldset($newTextFieldContent, _("Text field")), true); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | // new field
 | 
					
						
							| 
									
										
										
										
											2017-01-04 19:52:51 +00:00
										 |  |  | if (!empty($nonTextSectionElements)) { | 
					
						
							|  |  |  | 	$container->addElement(new htmlSubTitle(_('New field')), true); | 
					
						
							|  |  |  | 	$newFieldContainer = new htmlTable(); | 
					
						
							|  |  |  | 	$newFieldFieldSelect = new htmlSelect('new_field', $newFieldFieldElements); | 
					
						
							|  |  |  | 	$newFieldFieldSelect->setHasDescriptiveElements(true); | 
					
						
							|  |  |  | 	$newFieldFieldSelect->setContainsOptgroups(true); | 
					
						
							|  |  |  | 	$newFieldContainer->addElement($newFieldFieldSelect); | 
					
						
							|  |  |  | 	$newFieldContainer->addElement(new htmlSpacer('10px', null)); | 
					
						
							|  |  |  | 	$newFieldSectionSelect = new htmlTableExtendedSelect('add_field_position', $nonTextSectionElements, array(), _('Position')); | 
					
						
							|  |  |  | 	$newFieldSectionSelect->setHasDescriptiveElements(true); | 
					
						
							|  |  |  | 	$newFieldContainer->addElement($newFieldSectionSelect); | 
					
						
							|  |  |  | 	$newFieldContainer->addElement(new htmlButton('add_new_field', _('Add'))); | 
					
						
							|  |  |  | 	$container->addElement(new htmlFieldset($newFieldContainer), true); | 
					
						
							|  |  |  | 	$container->addElement(new htmlSpacer(null, '20px'), true); | 
					
						
							|  |  |  | } | 
					
						
							| 
									
										
										
										
											2010-12-21 14:30:42 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | // buttons
 | 
					
						
							|  |  |  | $buttonContainer = new htmlTable(); | 
					
						
							|  |  |  | $saveButton = new htmlButton('submit', _("Save")); | 
					
						
							|  |  |  | $saveButton->setIconClass('saveButton'); | 
					
						
							|  |  |  | $cancelButton = new htmlButton('abort', _("Cancel")); | 
					
						
							|  |  |  | $cancelButton->setIconClass('cancelButton'); | 
					
						
							|  |  |  | $buttonContainer->addElement($saveButton); | 
					
						
							|  |  |  | $buttonContainer->addElement($cancelButton); | 
					
						
							|  |  |  | $buttonContainer->addElement(new htmlHiddenInput('modules', $modules)); | 
					
						
							| 
									
										
										
										
											2016-12-26 09:26:26 +00:00
										 |  |  | $buttonContainer->addElement(new htmlHiddenInput('type', $type->getId())); | 
					
						
							| 
									
										
										
										
											2017-07-01 07:50:49 +00:00
										 |  |  | $buttonContainer->addElement(new htmlHiddenInput('form_submit', 'true')); | 
					
						
							| 
									
										
										
										
											2010-12-21 14:30:42 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | $container->addElement($buttonContainer, true); | 
					
						
							| 
									
										
										
										
											2015-05-15 19:16:46 +00:00
										 |  |  | addSecurityTokenToMetaHTML($container); | 
					
						
							| 
									
										
										
										
											2010-12-21 14:30:42 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | $tabindex = 1; | 
					
						
							| 
									
										
										
										
											2016-12-26 09:26:26 +00:00
										 |  |  | parseHtml(null, $container, array(), false, $tabindex, $type->getScope()); | 
					
						
							| 
									
										
										
										
											2010-12-21 14:30:42 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-07-24 19:58:49 +00:00
										 |  |  | if ((sizeof($saveErrors) == 0) && isset($_POST['scrollPositionTop']) && isset($_POST['scrollPositionLeft'])) { | 
					
						
							|  |  |  | 	// scroll to last position
 | 
					
						
							|  |  |  | 	echo '<script type="text/javascript"> | 
					
						
							|  |  |  | 		jQuery(document).ready(function() { | 
					
						
							|  |  |  | 			jQuery(window).scrollTop(' . $_POST['scrollPositionTop'] . '); | 
					
						
							|  |  |  | 			jQuery(window).scrollLeft('. $_POST['scrollPositionLeft'] . '); | 
					
						
							|  |  |  | 	}); | 
					
						
							|  |  |  | 	</script>'; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-12-21 14:30:42 +00:00
										 |  |  | echo '</form>'; | 
					
						
							| 
									
										
										
										
											2010-08-21 09:43:52 +00:00
										 |  |  | include '../main_footer.php'; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-04-05 10:13:37 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | /** | 
					
						
							|  |  |  |  * Translates a given field ID (e.g. inetOrgPerson_givenName) to its descriptive name. | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * @param String $id field ID | 
					
						
							|  |  |  |  * @param String $scope account type | 
					
						
							| 
									
										
										
										
											2017-01-04 19:52:51 +00:00
										 |  |  |  * @param array $availablePDFFields available PDF fields | 
					
						
							| 
									
										
										
										
											2010-04-05 10:13:37 +00:00
										 |  |  |  */ | 
					
						
							| 
									
										
										
										
											2017-01-04 19:52:51 +00:00
										 |  |  | function translateFieldIDToName($id, $scope, $availablePDFFields) { | 
					
						
							|  |  |  | 	foreach ($availablePDFFields as $module => $fields) { | 
					
						
							| 
									
										
										
										
											2010-04-05 10:13:37 +00:00
										 |  |  | 		if (!(strpos($id, $module . '_') === 0)) { | 
					
						
							|  |  |  | 			continue; | 
					
						
							|  |  |  | 		} | 
					
						
							|  |  |  | 		foreach ($fields as $name => $label) { | 
					
						
							|  |  |  | 			if ($id == $module . '_' . $name) { | 
					
						
							|  |  |  | 				if ($module == 'main') { | 
					
						
							|  |  |  | 					return _('Main') . ': ' . $label; | 
					
						
							|  |  |  | 				} | 
					
						
							|  |  |  | 				else  { | 
					
						
							|  |  |  | 					return getModuleAlias($module, $scope) . ': ' . $label; | 
					
						
							|  |  |  | 				} | 
					
						
							|  |  |  | 			} | 
					
						
							|  |  |  | 		} | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | 	return $id; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-07-01 07:50:49 +00:00
										 |  |  | /** | 
					
						
							|  |  |  |  * Updates basic settings such as logo and head line. | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * @param PDFStructure $structure | 
					
						
							|  |  |  |  */ | 
					
						
							|  |  |  | function updateBasicSettings(&$structure) { | 
					
						
							|  |  |  | 	// set headline
 | 
					
						
							|  |  |  | 	if (isset($_POST['headline'])) { | 
					
						
							|  |  |  | 		$structure->setTitle(str_replace('<', '', str_replace('>', '', $_POST['headline']))); | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | 	// set logo
 | 
					
						
							|  |  |  | 	if (isset($_POST['logoFile'])) { | 
					
						
							|  |  |  | 		$structure->setLogo($_POST['logoFile']); | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | 	// set folding marks
 | 
					
						
							|  |  |  | 	if (isset($_POST['foldingmarks'])) { | 
					
						
							|  |  |  | 		$structure->setFoldingMarks($_POST['foldingmarks']); | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /** | 
					
						
							|  |  |  |  * Updates section titles. | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * @param PDFStructure $structure | 
					
						
							|  |  |  |  */ | 
					
						
							|  |  |  | function updateSectionTitles(&$structure) { | 
					
						
							|  |  |  | 	$sections = $structure->getSections(); | 
					
						
							|  |  |  | 	foreach ($_POST as $key => $value) { | 
					
						
							|  |  |  | 		if (strpos($key, 'section_') === 0) { | 
					
						
							|  |  |  | 			$pos = substr($key, strlen('section_')); | 
					
						
							|  |  |  | 			$sections[$pos]->setTitle($value); | 
					
						
							|  |  |  | 		} | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /** | 
					
						
							|  |  |  |  * Adds a new section if requested. | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * @param PDFStructure $structure | 
					
						
							|  |  |  |  */ | 
					
						
							|  |  |  | function addSection(&$structure) { | 
					
						
							|  |  |  | 	$sections = $structure->getSections(); | 
					
						
							|  |  |  | 	// add a new text field
 | 
					
						
							|  |  |  | 	if(isset($_POST['add_text'])) { | 
					
						
							|  |  |  | 		// Check if text for static text field is specified
 | 
					
						
							|  |  |  | 		if(empty($_POST['text_text'])) { | 
					
						
							|  |  |  | 			StatusMessage('ERROR',_('No static text specified'),_('The static text must contain at least one character.')); | 
					
						
							|  |  |  | 		} | 
					
						
							|  |  |  | 		else { | 
					
						
							|  |  |  | 			$section = new PDFTextSection(str_replace("\r", "", $_POST['text_text'])); | 
					
						
							|  |  |  | 			array_splice($sections, $_POST['add_text_position'], 0, array($section)); | 
					
						
							|  |  |  | 			$structure->setSections($sections); | 
					
						
							|  |  |  | 		} | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | 	// add a new section with text headline
 | 
					
						
							|  |  |  | 	elseif(isset($_POST['add_sectionText'])) { | 
					
						
							|  |  |  | 		// Check if name for new section is specified when needed
 | 
					
						
							|  |  |  | 		if(empty($_POST['new_section_text'])) { | 
					
						
							|  |  |  | 			StatusMessage('ERROR',_('No section text specified'),_('The headline for a new section must contain at least one character.')); | 
					
						
							|  |  |  | 		} | 
					
						
							|  |  |  | 		else { | 
					
						
							|  |  |  | 			$section = new PDFEntrySection($_POST['new_section_text']); | 
					
						
							| 
									
										
										
										
											2017-08-24 18:29:55 +00:00
										 |  |  | 			array_splice($sections, $_POST['add_sectionText_position'], 0, array($section)); | 
					
						
							| 
									
										
										
										
											2017-07-01 07:50:49 +00:00
										 |  |  | 			$structure->setSections($sections); | 
					
						
							|  |  |  | 		} | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | 	// Add a new section with item as headline
 | 
					
						
							|  |  |  | 	elseif(isset($_POST['add_section'])) { | 
					
						
							|  |  |  | 		$section = new PDFEntrySection('_' . $_POST['new_section_item']); | 
					
						
							| 
									
										
										
										
											2017-08-24 18:29:55 +00:00
										 |  |  | 		array_splice($sections, $_POST['add_section_position'], 0, array($section)); | 
					
						
							| 
									
										
										
										
											2017-07-01 07:50:49 +00:00
										 |  |  | 		$structure->setSections($sections); | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-07-01 07:59:51 +00:00
										 |  |  | /** | 
					
						
							|  |  |  |  * Adds a new entry to a section if requested. | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * @param PDFStructure $structure | 
					
						
							|  |  |  |  */ | 
					
						
							|  |  |  | function addSectionEntry(&$structure) { | 
					
						
							|  |  |  | 	if(isset($_POST['add_new_field'])) { | 
					
						
							|  |  |  | 		$field = new PDFSectionEntry($_POST['new_field']); | 
					
						
							|  |  |  | 		$sections = $structure->getSections(); | 
					
						
							|  |  |  | 		$pos = $_POST['add_field_position']; | 
					
						
							|  |  |  | 		$entries = $sections[$pos]->getEntries(); | 
					
						
							|  |  |  | 		$entries[] = $field; | 
					
						
							|  |  |  | 		$sections[$pos]->setEntries($entries); | 
					
						
							|  |  |  | 		$structure->setSections($sections); | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-07-01 09:21:53 +00:00
										 |  |  | /** | 
					
						
							|  |  |  |  * Removes a section or entry if requested. | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * @param PDFStructure $structure | 
					
						
							|  |  |  |  */ | 
					
						
							|  |  |  | function removeItem(&$structure) { | 
					
						
							|  |  |  | 	$sections = $structure->getSections(); | 
					
						
							|  |  |  | 	foreach ($_POST as $key => $value) { | 
					
						
							|  |  |  | 		// remove section
 | 
					
						
							|  |  |  | 		if (strpos($key, 'remove_section_') === 0) { | 
					
						
							|  |  |  | 			$pos = substr($key, strlen('remove_section_')); | 
					
						
							|  |  |  | 			unset($sections[$pos]); | 
					
						
							|  |  |  | 			$sections = array_values($sections); | 
					
						
							|  |  |  | 			$structure->setSections($sections); | 
					
						
							|  |  |  | 		} | 
					
						
							|  |  |  | 		// remove section entry
 | 
					
						
							|  |  |  | 		if (strpos($key, 'remove_entry_') === 0) { | 
					
						
							|  |  |  | 			$parts = substr($key, strlen('remove_entry_')); | 
					
						
							|  |  |  | 			$parts = explode('_', $parts); | 
					
						
							|  |  |  | 			$sectionPos = $parts[0]; | 
					
						
							|  |  |  | 			$entryPos = $parts[1]; | 
					
						
							|  |  |  | 			$entries = $sections[$sectionPos]->getEntries(); | 
					
						
							|  |  |  | 			unset($entries[$entryPos]); | 
					
						
							|  |  |  | 			$entries = array_values($entries); | 
					
						
							|  |  |  | 			$sections[$sectionPos]->setEntries($entries); | 
					
						
							|  |  |  | 			$structure->setSections($sections); | 
					
						
							|  |  |  | 		} | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-07-02 07:00:14 +00:00
										 |  |  | /** | 
					
						
							|  |  |  |  * Moves up a section or entry if requested. | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * @param PDFStructure $structure | 
					
						
							|  |  |  |  */ | 
					
						
							|  |  |  | function moveUp(&$structure) { | 
					
						
							|  |  |  | 	$sections = $structure->getSections(); | 
					
						
							|  |  |  | 	foreach ($_POST as $key => $value) { | 
					
						
							|  |  |  | 		// move section
 | 
					
						
							|  |  |  | 		if (strpos($key, 'up_section_') === 0) { | 
					
						
							|  |  |  | 			$pos = substr($key, strlen('up_section_')); | 
					
						
							|  |  |  | 			$sectionTmp = $sections[$pos - 1]; | 
					
						
							|  |  |  | 			$sections[$pos - 1] = $sections[$pos]; | 
					
						
							|  |  |  | 			$sections[$pos] = $sectionTmp; | 
					
						
							|  |  |  | 			$structure->setSections($sections); | 
					
						
							|  |  |  | 		} | 
					
						
							|  |  |  | 		// move section entry
 | 
					
						
							|  |  |  | 		if (strpos($key, 'up_entry_') === 0) { | 
					
						
							|  |  |  | 			$parts = substr($key, strlen('up_entry_')); | 
					
						
							|  |  |  | 			$parts = explode('_', $parts); | 
					
						
							|  |  |  | 			$sectionPos = $parts[0]; | 
					
						
							|  |  |  | 			$entryPos = $parts[1]; | 
					
						
							|  |  |  | 			$entries = $sections[$sectionPos]->getEntries(); | 
					
						
							|  |  |  | 			$entryTmp = $entries[$entryPos - 1]; | 
					
						
							|  |  |  | 			$entries[$entryPos - 1] = $entries[$entryPos]; | 
					
						
							|  |  |  | 			$entries[$entryPos] = $entryTmp; | 
					
						
							|  |  |  | 			$sections[$sectionPos]->setEntries($entries); | 
					
						
							|  |  |  | 			$structure->setSections($sections); | 
					
						
							|  |  |  | 		} | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /** | 
					
						
							|  |  |  |  * Moves down a section or entry if requested. | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * @param PDFStructure $structure | 
					
						
							|  |  |  |  */ | 
					
						
							|  |  |  | function moveDown(&$structure) { | 
					
						
							|  |  |  | 	$sections = $structure->getSections(); | 
					
						
							|  |  |  | 	foreach ($_POST as $key => $value) { | 
					
						
							|  |  |  | 		// move section
 | 
					
						
							|  |  |  | 		if (strpos($key, 'down_section_') === 0) { | 
					
						
							|  |  |  | 			$pos = substr($key, strlen('down_section_')); | 
					
						
							|  |  |  | 			$sectionTmp = $sections[$pos + 1]; | 
					
						
							|  |  |  | 			$sections[$pos + 1] = $sections[$pos]; | 
					
						
							|  |  |  | 			$sections[$pos] = $sectionTmp; | 
					
						
							|  |  |  | 			$structure->setSections($sections); | 
					
						
							|  |  |  | 		} | 
					
						
							|  |  |  | 		// move section entry
 | 
					
						
							|  |  |  | 		if (strpos($key, 'down_entry_') === 0) { | 
					
						
							|  |  |  | 			$parts = substr($key, strlen('down_entry_')); | 
					
						
							|  |  |  | 			$parts = explode('_', $parts); | 
					
						
							|  |  |  | 			$sectionPos = $parts[0]; | 
					
						
							|  |  |  | 			$entryPos = $parts[1]; | 
					
						
							|  |  |  | 			$entries = $sections[$sectionPos]->getEntries(); | 
					
						
							|  |  |  | 			$entries = $sections[$sectionPos]->getEntries(); | 
					
						
							|  |  |  | 			$entryTmp = $entries[$entryPos + 1]; | 
					
						
							|  |  |  | 			$entries[$entryPos + 1] = $entries[$entryPos]; | 
					
						
							|  |  |  | 			$entries[$entryPos] = $entryTmp; | 
					
						
							|  |  |  | 			$sections[$sectionPos]->setEntries($entries); | 
					
						
							|  |  |  | 			$structure->setSections($sections); | 
					
						
							|  |  |  | 		} | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-04-05 10:13:37 +00:00
										 |  |  | ?>
 |