pdf editor improved;
things working: - add/remove fields/sections - remove static text - move up/down fields inside a section things todo: - add static text - save pdf structure - move up/down section/static text - implement real getAvailablePDFFields functions
This commit is contained in:
		
							parent
							
								
									54b0177a0c
								
							
						
					
					
						commit
						f56f816f94
					
				|  | @ -39,7 +39,6 @@ if (!$_SESSION['ldap'] || !$_SESSION['ldap']->server()) { | |||
| 	exit; | ||||
| } | ||||
| 
 | ||||
| 
 | ||||
| // check if user has pressed submit or abort button
 | ||||
| if ($_POST['forward'] == "yes") { | ||||
| 	// on abort go back to main page
 | ||||
|  |  | |||
|  | @ -23,10 +23,10 @@ $Id$ | |||
| 
 | ||||
| */ | ||||
| 
 | ||||
| include_once("../../lib/pdfstruct.inc"); | ||||
| include_once("../../lib/ldap.inc"); | ||||
| include_once("../../lib/config.inc"); | ||||
| include_once("../../lib/modules.inc"); | ||||
| include_once('../../lib/pdfstruct.inc'); | ||||
| include_once('../../lib/ldap.inc'); | ||||
| include_once('../../lib/config.inc'); | ||||
| include_once('../../lib/modules.inc'); | ||||
| include_once('../../lib/xml_parser.inc'); | ||||
| 
 | ||||
| // start session
 | ||||
|  | @ -41,14 +41,141 @@ if (!$_SESSION['ldap'] || !$_SESSION['ldap']->server()) { | |||
| 	exit; | ||||
| } | ||||
| 
 | ||||
| if($_GET['edit']) { | ||||
| 	$currentStructure = loadPDFStructureDefinitions($_GET['type'],$_GET['edit']); | ||||
| } | ||||
| else { | ||||
| 	$currentStructure = loadPDFStructureDefinitions($_GET['type']); | ||||
| if(isset($_POST['type'])) { | ||||
| 	$_GET = $_POST; | ||||
| } | ||||
| 
 | ||||
| $availableFields = getAvailablePDFFields($_GET['type']); | ||||
| if(isset($_GET['abort'])) { | ||||
| 	unset($_SESSION['currentPDFStructure']); | ||||
| 	unset($_SESSION['availablePDFFields']); | ||||
| 	session_unregister('currentPDFStructure'); | ||||
| 	session_unregister('availablePDFFields'); | ||||
| 	metarefresh('pdfmain.php'); | ||||
| 	exit; | ||||
| } | ||||
| elseif(isset($_GET['submit'])) { | ||||
| 	// TODO implement save of PDF structure
 | ||||
| 	unset($_SESSION['currentPDFStructure']); | ||||
| 	unset($_SESSION['availablePDFFields']); | ||||
| 	session_unregister('currentPDFStructure'); | ||||
| 	session_unregister('availablePDFFields'); | ||||
| 	metarefresh('pdfmain.php'); | ||||
| 	exit; | ||||
| } | ||||
| elseif(isset($_GET['add_section'])) { | ||||
| 	$attributes = array(); | ||||
| 	if($_GET['section_type'] == 'text') { | ||||
| 		$attributes['NAME'] = $_GET['section_text']; | ||||
| 	} | ||||
| 	elseif($_GET['section_type'] == 'item') { | ||||
| 		$attributes['NAME'] = '_' . $_GET['section_item']; | ||||
| 	} | ||||
| 	$newSectionStart = array('tag' => 'SECTION','type' => 'open','level' => '2','attributes' => $attributes); | ||||
| 	$newSectionEnd = array('tag' => 'SECTION','type' => 'close','level' => '2'); | ||||
| 	$_SESSION['currentPDFStructure'][] = $newSectionStart; | ||||
| 	$_SESSION['currentPDFStructure'][] = $newSectionEnd; | ||||
| } | ||||
| elseif(isset($_GET['add_field'])) { | ||||
| 	$modules = explode(',',$_GET['modules']); | ||||
| 	$fields = array(); | ||||
| 	foreach($modules as $module) { | ||||
| 		if(isset($_GET[$module])) { | ||||
| 			foreach($_GET[$module] as $field) { | ||||
| 				$fields[] = array('tag' => 'ENTRY','type' => 'complete','level' => '3','attributes' => array('NAME' => $module . '_' . $field)); | ||||
| 			} | ||||
| 		} | ||||
| 	} | ||||
| 	if(count($fields) > 0) { | ||||
| 		$pos = 0; | ||||
| 		while($pos < $_GET['section']) { | ||||
| 			next($_SESSION['currentPDFStructure']); | ||||
| 			$pos++; | ||||
| 		} | ||||
| 		$current = next($_SESSION['currentPDFStructure']); | ||||
| 		$pos++; | ||||
| 		while($current && $current['tag'] != 'SECTION' && $current['type'] != 'close') { | ||||
| 			$current = next($_SESSION['currentPDFStructure']); | ||||
| 			$pos++; | ||||
| 		} | ||||
| 		array_splice($_SESSION['currentPDFStructure'],$pos,0,$fields); | ||||
| 	} | ||||
| } | ||||
| elseif(isset($_GET['remove'])) { | ||||
| 	$start = 0; | ||||
| 	while($start < $_GET['remove']) { | ||||
| 		next($_SESSION['currentPDFStructure']); | ||||
| 		$start++; | ||||
| 	} | ||||
| 	$remove = current($_SESSION['currentPDFStructure']); | ||||
| 	if($remove['tag'] == "SECTION") { | ||||
| 		$end = $start; | ||||
| 		$current = next($_SESSION['currentPDFStructure']); | ||||
| 		$end++; | ||||
| 		while($current && $current['tag'] != 'SECTION' && $current['type'] != 'close') { | ||||
| 			$current = next($_SESSION['currentPDFStructure']); | ||||
| 			$end++; | ||||
| 		} | ||||
| 		echo "start: $start\nend: $end\n"; | ||||
| 		array_splice($_SESSION['currentPDFStructure'],$start,$end - $start + 1); | ||||
| 	} | ||||
| 	elseif($remove['tag'] == "ENTRY") { | ||||
| 		array_splice($_SESSION['currentPDFStructure'],$start,1); | ||||
| 	} | ||||
| 	elseif($remove['tag'] == "TEXT") { | ||||
| 		array_splice($_SESSION['currentPDFStructure'],$start,1); | ||||
| 	} | ||||
| } | ||||
| elseif(isset($_GET['up'])) { | ||||
| 	$tmp = $_SESSION['currentPDFStructure'][$_GET['up']]; | ||||
| 	$prev = $_SESSION['currentPDFStructure'][$_GET['up'] - 1]; | ||||
| 	if($tmp['tag'] == 'SECTION') { | ||||
| 		 | ||||
| 	} | ||||
| 	elseif($tmp['tag'] == 'ENTRY' && $prev['tag'] == 'ENTRY') { | ||||
| 		$_SESSION['currentPDFStructure'][$_GET['up']] = $_SESSION['currentPDFStructure'][$_GET['up'] - 1]; | ||||
| 		$_SESSION['currentPDFStructure'][$_GET['up'] - 1] = $tmp; | ||||
| 	} | ||||
| 	elseif($tmp['tag'] == 'TEXT') { | ||||
| 		 | ||||
| 	} | ||||
| } | ||||
| elseif(isset($_GET['down'])) { | ||||
| 	$tmp = $_SESSION['currentPDFStructure'][$_GET['down']]; | ||||
| 	$next = $_SESSION['currentPDFStructure'][$_GET['down'] + 1]; | ||||
| 	if($tmp['tag'] == 'SECTION') { | ||||
| 		 | ||||
| 	} | ||||
| 	elseif($tmp['tag'] == 'ENTRY' && $next['tag'] == 'ENTRY') { | ||||
| 		$_SESSION['currentPDFStructure'][$_GET['down']] = $_SESSION['currentPDFStructure'][$_GET['down'] + 1]; | ||||
| 		$_SESSION['currentPDFStructure'][$_GET['down'] + 1] = $tmp; | ||||
| 	} | ||||
| 	elseif($tmp['tag'] == 'TEXT') { | ||||
| 		 | ||||
| 	} | ||||
| } | ||||
| 
 | ||||
| if(!isset($_SESSION['currentPDFStructure'])) { | ||||
| 	if($_GET['edit']) { | ||||
| 		$_SESSION['currentPDFStructure'] = loadPDFStructureDefinitions($_GET['type'],$_GET['edit']); | ||||
| 	} | ||||
| 	else { | ||||
| 		$_SESSION['currentPDFStructure'] = loadPDFStructureDefinitions($_GET['type']); | ||||
| 	} | ||||
| } | ||||
| 
 | ||||
| if(!isset($_SESSION['availablePDFFields'])) { | ||||
| 	$_SESSION['availablePDFFields'] = getAvailablePDFFields($_GET['type']); | ||||
| } | ||||
| 
 | ||||
| $modules = array(); | ||||
| $section_items = ''; | ||||
| foreach($_SESSION['availablePDFFields'] as $module => $values) { | ||||
| 	$modules[] = $module; | ||||
| 	foreach($values as $attribute) { | ||||
| 		$section_items .= "\t\t\t\t\t\t\t\t\t\t\t\t<option>" . $module . '_' . $attribute . "</option>\n"; | ||||
| 	} | ||||
| } | ||||
| $modules = join(',',$modules); | ||||
| 
 | ||||
| // print header
 | ||||
| echo $_SESSION['header']; | ||||
|  | @ -65,13 +192,12 @@ echo $_SESSION['header']; | |||
| 					<td width="45%" align="center"> | ||||
| 						<fieldset> | ||||
| 							<legend> | ||||
| 								<b><?php echo _("Current PDF structure"); ?></b>
 | ||||
| 								<b><?php echo (($_GET['edit']) ? substr($_GET['edit'],0,strlen($GET['edit']) - 4) : _('New') . ' ' . $_GET['type']) . ' ' . _("PDF structure"); ?></b>
 | ||||
| 							</legend> | ||||
| 							<table> | ||||
| <?php | ||||
| $i = 0; | ||||
| foreach($currentStructure as $entry) { | ||||
| 	$links = "\t\t\t\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t\t\t\t<a href=\"pdfpage.php?type=" . $_GET['type'] . "&up=" . $i . (($_GET['edit']) ? 'edit=' . $_GET['edit'] : '') . "\">" . _('Up') . "</a>\n\t\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t\t\t<td width=\"10\">\n\t\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t\t\t\t<a href=\"pdfpage.php?type=" . $_GET['type'] . "&down=" . $i . (($_GET['edit']) ? 'edit=' . $_GET['edit'] : '') . "\">" . _('Down') . "</a>\n\t\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t\t\t<td width=\"10\">\n\t\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t\t\t\t<a href=\"pdfpage.php?type=" . $_GET['type'] . "&remove=" . $i . (($_GET['edit']) ? 'edit=' . $_GET['edit'] : '') . "\">" . _('Remove') . "</a>\n\t\t\t\t\t\t\t\t\t</td>\n"; | ||||
| foreach($_SESSION['currentPDFStructure'] as $key => $entry) { | ||||
| 	$links = "\t\t\t\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t\t\t\t<a href=\"pdfpage.php?type=" . $_GET['type'] . "&up=" . $key . (($_GET['edit']) ? 'edit=' . $_GET['edit'] : '') . "\">" . _('Up') . "</a>\n\t\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t\t\t<td width=\"10\">\n\t\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t\t\t\t<a href=\"pdfpage.php?type=" . $_GET['type'] . "&down=" . $key . (($_GET['edit']) ? 'edit=' . $_GET['edit'] : '') . "\">" . _('Down') . "</a>\n\t\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t\t\t<td width=\"10\">\n\t\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t\t\t\t<a href=\"pdfpage.php?type=" . $_GET['type'] . "&remove=" . $key . (($_GET['edit']) ? 'edit=' . $_GET['edit'] : '') . "\">" . _('Remove') . "</a>\n\t\t\t\t\t\t\t\t\t</td>\n"; | ||||
| 	$uplink = 'pdfpage.php?type=' . $_GET['type'] . '&up=' . $i . (($_GET['edit']) ? 'edit=' . $_GET['edit'] : ''); | ||||
| 	$downlink = 'pdfpage.php?type=' . $_GET['type'] . '&down=' . urlencode($entry['tag']) . (($_GET['edit']) ? 'edit=' . $_GET['edit'] : ''); | ||||
| 	// We have a new section to start
 | ||||
|  | @ -86,21 +212,13 @@ foreach($currentStructure as $entry) { | |||
| 		?>
 | ||||
| 								<tr> | ||||
| 									<td width="20" align="left"> | ||||
| 										<input type="radio" name="section"> | ||||
| 										<input type="radio" name="section" value="<?php echo $key;?>"> | ||||
| 									</td> | ||||
| 									<td colspan="2"> | ||||
| 										<b><?php echo $section_headline;?></b>
 | ||||
| 									</td> | ||||
| 									<td width="20"> | ||||
| 									</td> | ||||
| 									<!-- <td> | ||||
| 										<a href="<?php echo $uplink;?>"><?php echo _('Up');?></a>
 | ||||
| 									</td> | ||||
| 									<td width="10"> | ||||
| 									</td> | ||||
| 									<td> | ||||
| 										<a href="<?php echo $downlink;?>"><?php echo _('Down');?></a>
 | ||||
| 									</td> --> | ||||
| 									<?php echo $links;?>
 | ||||
| 								</tr> | ||||
| 		<?php | ||||
|  | @ -127,14 +245,6 @@ foreach($currentStructure as $entry) { | |||
| 									</td> | ||||
| 									<td width="20"> | ||||
| 									</td> | ||||
| 									<!-- <td> | ||||
| 										<a href="<?php echo $uplink;?>"><?php echo _('Up');?></a>
 | ||||
| 									</td> | ||||
| 									<td width="10"> | ||||
| 									</td> | ||||
| 									<td> | ||||
| 										<a href="<?php echo $downlink;?>"><?php echo _('Down');?></a>
 | ||||
| 									</td> --> | ||||
| 									<?php echo $links;?>
 | ||||
| 								</tr> | ||||
| 								<tr> | ||||
|  | @ -158,14 +268,6 @@ foreach($currentStructure as $entry) { | |||
| 									</td> | ||||
| 									<td width="20"> | ||||
| 									</td> | ||||
| 									<!-- <td> | ||||
| 										<a href="<?php echo $uplink;?>"><?php echo _('Up');?></a>
 | ||||
| 									</td> | ||||
| 									<td width="10"> | ||||
| 									</td> | ||||
| 									<td> | ||||
| 										<a href="<?php echo $downlink;?>"><?php echo _('Down');?></a>
 | ||||
| 									</td> --> | ||||
| 									<?php echo $links;?>
 | ||||
| 								</tr> | ||||
| 								<tr> | ||||
|  | @ -197,27 +299,83 @@ foreach($currentStructure as $entry) { | |||
| 									</td> | ||||
| 									<td width="20"> | ||||
| 									</td> | ||||
| 									<!-- <td> | ||||
| 										<a href="<?php echo $uplink;?>"><?php echo _('Up');?></a>
 | ||||
| 									</td> | ||||
| 									<td width="10"> | ||||
| 									</td> | ||||
| 									<td> | ||||
| 										<a href="<?php echo $downlink;?>"><?php echo _('Down');?></a>
 | ||||
| 									</td> --> | ||||
| 									<?php echo $links;?>
 | ||||
| 								</tr> | ||||
| 		<?php | ||||
| 	} | ||||
| 	$i++; | ||||
| } | ||||
| ?>
 | ||||
| 							</table> | ||||
| 							<fieldset> | ||||
| 								<legend> | ||||
| 									<b><?php echo _("Add new section"); ?></b>
 | ||||
| 								</legend> | ||||
|  								<table align="left">  | ||||
| 									<tr> | ||||
| 										<td> | ||||
| 											<input type="radio" name="section_type" value="text" checked> | ||||
| 										</td> | ||||
| 										<td colspan="2"> | ||||
| 											<input type="text" name="section_text"> | ||||
| 										</td> | ||||
| 										<td colspan="6" rowspan="2" align="left"> | ||||
| 											<input type="submit" name="add_section" value="<?php echo _('Add');?>"> | ||||
| 										</td> | ||||
| 									</tr> | ||||
| 									<tr> | ||||
| 										<td> | ||||
| 											<input type="radio" name="section_type" value="item"> | ||||
| 										</td> | ||||
| 										<td> | ||||
| 											<select name="section_item"> | ||||
| 												<?php echo $section_items;?>
 | ||||
| 											</select> | ||||
| 										</td> | ||||
| 									</tr> | ||||
| 								</table> | ||||
| 							</fieldset> | ||||
| 						</fieldset> | ||||
| 						<p> </p> | ||||
| 						<fieldset> | ||||
| 							<legend> | ||||
| 								<b><?php echo _("Submit"); ?></b>
 | ||||
| 							</legend> | ||||
| 							<table border="0" align="left"> | ||||
| 								<tr> | ||||
| 									<td> | ||||
| 										<b><?php echo _("Structure name"); ?>:</b>
 | ||||
| 									</td> | ||||
| 									<td> | ||||
| 										<input type="text" name="pdfname" value="<?php echo substr($_GET['edit'],0,strlen($_GET['edit']) -4);?>"> | ||||
| 									</td> | ||||
| 									<td> | ||||
| 										<a href="../help.php?HelpNumber=360" target="lamhelp"><?php echo _("Help");?></a>
 | ||||
| 									</td> | ||||
| 								</tr> | ||||
| 								<tr> | ||||
| 									<td colspan="3"> | ||||
| 										  | ||||
| 									</td> | ||||
| 								</tr> | ||||
| 								<tr> | ||||
| 									<td> | ||||
| 										<input type="submit" name="submit" value="<?php echo _("Save");?>"> | ||||
| 									</td> | ||||
| 									<td> | ||||
| 										<input type="submit" name="abort" value="<?php echo _("Abort");?>"> | ||||
| 									</td> | ||||
| 									<td> | ||||
| 										  | ||||
| 									</td> | ||||
| 								</tr> | ||||
| 							</table> | ||||
| 						</fieldset> | ||||
| 					</td> | ||||
| 					 | ||||
| 					<td width="10%" align="center"> | ||||
| 						<input type="button" name="add" value="<="> | ||||
| 						<input type="submit" name="add_field" value="<="> | ||||
| 					</td> | ||||
| 					 | ||||
| 					<!-- print available fields sorted by modul --> | ||||
| 					<td width="45%" align="center"> | ||||
| 						<fieldset> | ||||
|  | @ -226,7 +384,7 @@ foreach($currentStructure as $entry) { | |||
| 							</legend> | ||||
| 							<table> | ||||
| <?php | ||||
| foreach($availableFields as $module => $fields) { | ||||
| foreach($_SESSION['availablePDFFields'] as $module => $fields) { | ||||
| 	?>
 | ||||
| 								<tr> | ||||
| 									<td colspan="2"> | ||||
|  | @ -261,38 +419,8 @@ foreach($availableFields as $module => $fields) { | |||
| 					</td> | ||||
| 				</tr> | ||||
| 			</table> | ||||
| 			<p> </p> | ||||
| 			<table border="0"> | ||||
| 			<tr> | ||||
| 				<td> | ||||
| 					<b><?php echo _("Structure name"); ?>:</b>
 | ||||
| 				</td> | ||||
| 				<td> | ||||
| 					<input type="text" name="profname" value="<?php echo $_GET['edit'];?>"> | ||||
| 				</td> | ||||
| 				<td> | ||||
| 					<a href="../help.php?HelpNumber=360" target="lamhelp"><?php echo _("Help");?></a>
 | ||||
| 				</td> | ||||
| 			</tr> | ||||
| 			<tr> | ||||
| 				<td colspan=3> | ||||
| 					  | ||||
| 				</td> | ||||
| 			</tr> | ||||
| 			<tr> | ||||
| 				<td> | ||||
| 					<input type="submit" name="submit" value="<?php echo _("Save");?>"> | ||||
| 				</td> | ||||
| 				<td> | ||||
| 					<input type="reset" name="reset" value="<?php echo _("Reset");?>"> | ||||
| 					<input type="submit" name="abort" value="<?php echo _("Abort");?>"> | ||||
| 				</td> | ||||
| 				<td> | ||||
| 					  | ||||
| 				</td> | ||||
| 			</tr> | ||||
| 		</table> | ||||
| 		<input type="hidden" name="accounttype" value="<?php echo $type;?>"> | ||||
| 		<input type="hidden" name="modules" value="<?php echo $modules;?>"> | ||||
| 		<input type="hidden" name="type" value="<?php echo $_GET['type'];?>"> | ||||
| 	</form> | ||||
| 	</body> | ||||
| </html> | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue