2004-05-30 13:43:42 +00:00
< ? php
/*
$Id $
This code is part of LDAP Account Manager ( http :// www . sourceforge . net / projects / lam )
2006-03-03 17:30:35 +00:00
Copyright ( C ) 2003 - 2006 Michael D<EFBFBD> rgner
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 .
*
* @ author Michael D<EFBFBD> rgner
* @ 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' );
2005-07-27 18:06:55 +00:00
/** XML functions */
2004-05-30 13:43:42 +00:00
include_once ( '../../lib/xml_parser.inc' );
// start session
2006-03-26 17:51:25 +00:00
startSecureSession ();
2004-05-30 13:43:42 +00:00
setlanguage ();
// 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
2004-05-31 09:38:59 +00:00
if ( isset ( $_POST [ 'type' ])) {
$_GET = $_POST ;
2004-08-03 19:07:31 +00:00
if ( $_POST [ 'pdfname' ] == '' ) {
unset ( $_GET [ 'pdfname' ]);
}
2004-05-30 13:43:42 +00:00
}
2004-05-31 09:38:59 +00:00
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
// set new logo and headline
if (( isset ( $_GET [ 'headline' ])) && ( $_GET [ 'logoFile' ] != $_SESSION [ 'currentPageDefinitions' ][ 'filename' ])) {
$_SESSION [ 'currentPageDefinitions' ][ 'filename' ] = $_GET [ 'logoFile' ];
}
if (( isset ( $_GET [ 'headline' ])) && ( $_GET [ 'headline' ] != $_SESSION [ 'currentPageDefinitions' ][ 'headline' ])) {
$_SESSION [ 'currentPageDefinitions' ][ 'headline' ] = str_replace ( '<' , '' , str_replace ( '>' , '' , $_GET [ 'headline' ]));
}
if ( isset ( $_POST [ 'defaults' ])) {
foreach ( $_POST [ 'defaults' ] as $default ) {
switch ( $default ) {
case 'logoFile' :
unset ( $_SESSION [ 'currentPageDefinitions' ][ 'filename' ]);
break ;
case 'headline' :
unset ( $_SESSION [ 'currentPageDefinitions' ][ 'headline' ]);
break ;
default :
break ;
}
}
}
2004-06-03 14:26:48 +00:00
// Check if pdfname is valid, then save current structure to file and go to
// main pdf structure page
2005-07-06 13:48:55 +00:00
if ( isset ( $_GET [ 'submit' ])) {
2005-07-27 18:06:55 +00:00
echo $_SESSION [ 'header' ];
echo " <title>LDAP Account Manager</title> " ;
echo " <link rel= \" stylesheet \" type= \" text/css \" href= \" ../../style/layout.css \" > " ;
echo " </head> " ;
echo " <body> " ;
2005-07-27 18:27:24 +00:00
if ( ! isset ( $_GET [ 'pdfname' ]) || ! preg_match ( '/[a-zA-Z0-9\-\_]+/' , $_GET [ 'pdfname' ])) {
2005-07-27 18:06:55 +00:00
StatusMessage ( 'ERROR' , _ ( 'PDF-structure name not valid' ), _ ( 'The name for that PDF-structure you submitted is not valid. A valid name must constist at least of one of the following characters \'a-z\',\'A-Z\',\'0-9\',\'_\',\'-\',\'.\'.' ));
2004-06-03 14:26:48 +00:00
}
else {
2005-07-27 18:06:55 +00:00
$return = savePDFStructureDefinitions ( $_GET [ 'type' ], $_GET [ 'pdfname' ]);
if ( $return == 'ok' ) {
StatusMessage ( 'INFO' , _ ( " PDF structure was successfully saved. " ), $_GET [ 'pdfname' ]);
}
elseif ( $return == 'no perms' ){
StatusMessage ( 'ERROR' , _ ( " Could not save PDF profile, access denied. " ), $_GET [ 'pdfname' ]);
}
2004-06-03 14:26:48 +00:00
}
2005-07-27 18:06:55 +00:00
echo " </body></html> " ;
exit ;
2004-05-31 09:38:59 +00:00
}
2004-06-03 14:26:48 +00:00
// Add a new section or static text
elseif ( isset ( $_GET [ 'add' ])) {
// Check if name for new section is specified when needed
2005-06-21 20:58:32 +00:00
if ( $_GET [ 'section_type' ] == 'text' && ( ! isset ( $_GET [ 'section_text' ]) || $_GET [ 'section_text' ] == '' )) {
2004-06-03 14:26:48 +00:00
StatusMessage ( 'ERROR' , _ ( 'No section text specified' ), _ ( 'The headline for a new section must contain at least one character.' ));
2004-05-31 09:38:59 +00:00
}
2004-06-03 14:26:48 +00:00
// Check if text for static text field is specified
2005-06-21 20:58:32 +00:00
elseif ( $_GET [ 'section_type' ] == 'textbox' && ( ! isset ( $_GET [ 'text_text' ]) || $_GET [ 'text_text' ] == '' )) {
2004-06-03 14:26:48 +00:00
StatusMessage ( 'ERROR' , _ ( 'No static text specified' ), _ ( 'The static text must contain at least one character.' ));
}
else {
// Add a new section
2005-06-21 20:58:32 +00:00
if (( $_GET [ 'section_type' ] == 'item' ) || ( $_GET [ 'section_type' ] == 'text' )) {
2004-06-03 14:26:48 +00:00
$attributes = array ();
// Add a new section with user headline
if ( $_GET [ 'section_type' ] == 'text' ) {
$attributes [ 'NAME' ] = $_GET [ 'section_text' ];
}
// Add a new section with a module value headline
elseif ( $_GET [ 'section_type' ] == 'item' ) {
$attributes [ 'NAME' ] = '_' . $_GET [ 'section_item' ];
}
$entry = array ( array ( 'tag' => 'SECTION' , 'type' => 'open' , 'level' => '2' , 'attributes' => $attributes ), array ( 'tag' => 'SECTION' , 'type' => 'close' , 'level' => '2' ));
}
// Add new static text field
2005-06-21 20:58:32 +00:00
elseif ( $_GET [ 'section_type' ] == 'textbox' ) {
2004-06-03 14:26:48 +00:00
$entry = array ( array ( 'tag' => 'TEXT' , 'type' => 'complete' , 'level' => '2' , 'value' => $_GET [ 'text_text' ]));
}
// Insert new field in structure
array_splice ( $_SESSION [ 'currentPDFStructure' ], $_GET [ 'add_position' ], 0 , $entry );
2004-05-31 09:38:59 +00:00
}
}
2004-06-03 14:26:48 +00:00
// Add a new value field
2004-05-31 09:38:59 +00:00
elseif ( isset ( $_GET [ 'add_field' ])) {
2004-06-03 14:26:48 +00:00
// Get available modules
2004-05-31 09:38:59 +00:00
$modules = explode ( ',' , $_GET [ 'modules' ]);
$fields = array ();
2004-06-03 14:26:48 +00:00
// Search each module for selected values
2004-05-31 09:38:59 +00:00
foreach ( $modules as $module ) {
if ( isset ( $_GET [ $module ])) {
foreach ( $_GET [ $module ] as $field ) {
2004-06-03 14:26:48 +00:00
// Create ne value entry
2004-05-31 09:38:59 +00:00
$fields [] = array ( 'tag' => 'ENTRY' , 'type' => 'complete' , 'level' => '3' , 'attributes' => array ( 'NAME' => $module . '_' . $field ));
}
}
}
if ( count ( $fields ) > 0 ) {
$pos = 0 ;
2004-06-03 14:26:48 +00:00
// Find begin section to insert into
2004-05-31 09:38:59 +00:00
while ( $pos < $_GET [ 'section' ]) {
next ( $_SESSION [ 'currentPDFStructure' ]);
$pos ++ ;
}
$current = next ( $_SESSION [ 'currentPDFStructure' ]);
$pos ++ ;
2004-06-03 14:26:48 +00:00
// End of section to insert into
2004-05-31 09:38:59 +00:00
while ( $current && $current [ 'tag' ] != 'SECTION' && $current [ 'type' ] != 'close' ) {
$current = next ( $_SESSION [ 'currentPDFStructure' ]);
$pos ++ ;
}
2004-06-03 14:26:48 +00:00
// Insert new entry before closing section tag
2004-05-31 09:38:59 +00:00
array_splice ( $_SESSION [ 'currentPDFStructure' ], $pos , 0 , $fields );
}
}
2004-06-03 14:26:48 +00:00
// Change section headline
elseif ( isset ( $_GET [ 'change' ])) {
$alter = explode ( '_' , $_GET [ 'change' ]);
$newvalue = $_GET [ 'section_' . $alter [ 0 ]];
if ( $alter [ 1 ] == 'item' ) {
$newvalue = '_' . $newvalue ;
}
$_SESSION [ 'currentPDFStructure' ][ $alter [ 0 ]][ 'attributes' ][ 'NAME' ] = $newvalue ;
}
// Remove section, static text or value entry from structure
2004-05-31 09:38:59 +00:00
elseif ( isset ( $_GET [ 'remove' ])) {
$start = 0 ;
2004-06-03 14:26:48 +00:00
// Find element to remove
2004-05-31 09:38:59 +00:00
while ( $start < $_GET [ 'remove' ]) {
next ( $_SESSION [ 'currentPDFStructure' ]);
$start ++ ;
}
$remove = current ( $_SESSION [ 'currentPDFStructure' ]);
2004-06-03 14:26:48 +00:00
// We have a section to remove
2004-05-31 09:38:59 +00:00
if ( $remove [ 'tag' ] == " SECTION " ) {
$end = $start ;
$current = next ( $_SESSION [ 'currentPDFStructure' ]);
$end ++ ;
2004-06-03 14:26:48 +00:00
// Find end of section to remove
2004-05-31 09:38:59 +00:00
while ( $current && $current [ 'tag' ] != 'SECTION' && $current [ 'type' ] != 'close' ) {
$current = next ( $_SESSION [ 'currentPDFStructure' ]);
$end ++ ;
}
2004-06-03 14:26:48 +00:00
// Remove complete section with all value entries in it from structure
2004-05-31 09:38:59 +00:00
array_splice ( $_SESSION [ 'currentPDFStructure' ], $start , $end - $start + 1 );
}
2004-06-03 14:26:48 +00:00
// We have a value entry to remove
2004-05-31 09:38:59 +00:00
elseif ( $remove [ 'tag' ] == " ENTRY " ) {
array_splice ( $_SESSION [ 'currentPDFStructure' ], $start , 1 );
}
2004-06-03 14:26:48 +00:00
// We hava a static text to remove
2004-05-31 09:38:59 +00:00
elseif ( $remove [ 'tag' ] == " TEXT " ) {
array_splice ( $_SESSION [ 'currentPDFStructure' ], $start , 1 );
}
}
2004-06-03 14:26:48 +00:00
// Move a section, static text or value entry upwards
2004-05-31 09:38:59 +00:00
elseif ( isset ( $_GET [ 'up' ])) {
$tmp = $_SESSION [ 'currentPDFStructure' ][ $_GET [ 'up' ]];
$prev = $_SESSION [ 'currentPDFStructure' ][ $_GET [ 'up' ] - 1 ];
2004-06-03 14:26:48 +00:00
// We have a section or static text to move
if ( $tmp [ 'tag' ] == 'SECTION' || $tmp [ 'tag' ] == 'TEXT' ) {
2004-05-31 12:19:42 +00:00
$pos = 0 ;
$borders = array ();
$current = current ( $_SESSION [ 'currentPDFStructure' ]);
2004-06-03 14:26:48 +00:00
// Add borders of sections and static text entry to array
2004-05-31 12:19:42 +00:00
if ( $current [ 'tag' ] == 'SECTION' ) {
$borders [ $current [ 'type' ]][] = $pos ;
}
2004-06-03 14:26:48 +00:00
elseif ( $current [ 'tag' ] == 'TEXT' ) {
$borders [ 'open' ][] = $pos ;
$borders [ 'close' ][] = $pos ;
}
// Find all sections and statci text fields before the section or static
// text entry to move upwards
2004-05-31 12:19:42 +00:00
while ( $pos < $_GET [ 'up' ]) {
$current = next ( $_SESSION [ 'currentPDFStructure' ]);
$pos ++ ;
if ( $current [ 'tag' ] == 'SECTION' ) {
$borders [ $current [ 'type' ]][] = $pos ;
}
2004-06-03 14:26:48 +00:00
elseif ( $current [ 'tag' ] == 'TEXT' ) {
$borders [ 'open' ][] = $pos ;
$borders [ 'close' ][] = $pos ;
}
2004-05-31 12:19:42 +00:00
}
2004-06-03 14:26:48 +00:00
// Move only when not topmost element
2004-05-31 12:19:42 +00:00
if ( count ( $borders [ 'close' ]) > 0 ) {
2004-06-03 14:26:48 +00:00
// We have a section to move up
if ( $current [ 'tag' ] == 'SECTION' ) {
2004-05-31 12:19:42 +00:00
$current = next ( $_SESSION [ 'currentPDFStructure' ]);
$pos ++ ;
2004-06-03 14:26:48 +00:00
// Find end of section to move
while ( $current && $current [ 'tag' ] != 'SECTION' && $current [ 'type' ] != 'close' ) {
$current = next ( $_SESSION [ 'currentPDFStructure' ]);
$pos ++ ;
}
$borders [ 'close' ][] = $pos ;
2004-05-31 12:19:42 +00:00
}
2004-06-03 14:26:48 +00:00
// Calculate the entries to move and move them
2004-05-31 12:19:42 +00:00
$cut_start = $borders [ 'open' ][ count ( $borders [ 'open' ]) - 1 ];
$cut_count = $borders [ 'close' ][ count ( $borders [ 'close' ]) - 1 ] - $borders [ 'open' ][ count ( $borders [ 'open' ]) - 1 ] + 1 ;
$insert_pos = $borders [ 'open' ][ count ( $borders [ 'open' ]) - 2 ];
$tomove = array_splice ( $_SESSION [ 'currentPDFStructure' ], $cut_start , $cut_count );
array_splice ( $_SESSION [ 'currentPDFStructure' ], $insert_pos , 0 , $tomove );
}
2004-05-31 09:38:59 +00:00
}
2004-06-03 14:26:48 +00:00
// We have a value entry to move; move it only if its not the topmost
// entry in this section
2004-05-31 09:38:59 +00:00
elseif ( $tmp [ 'tag' ] == 'ENTRY' && $prev [ 'tag' ] == 'ENTRY' ) {
2004-06-03 14:26:48 +00:00
$_SESSION [ 'currentPDFStructure' ][ $_GET [ 'up' ]] = $prev ;
2004-05-31 09:38:59 +00:00
$_SESSION [ 'currentPDFStructure' ][ $_GET [ 'up' ] - 1 ] = $tmp ;
}
}
2004-06-03 14:26:48 +00:00
// Move a section, static text field or value entry downwards
2004-05-31 09:38:59 +00:00
elseif ( isset ( $_GET [ 'down' ])) {
$tmp = $_SESSION [ 'currentPDFStructure' ][ $_GET [ 'down' ]];
$next = $_SESSION [ 'currentPDFStructure' ][ $_GET [ 'down' ] + 1 ];
2004-06-03 14:26:48 +00:00
// We have a section or static text to move
if ( $tmp [ 'tag' ] == 'SECTION' || $tmp [ 'tag' ] == 'TEXT' ) {
2004-05-31 12:19:42 +00:00
$pos = 0 ;
$current = current ( $_SESSION [ 'currentPDFStructure' ]);
2004-06-03 14:26:48 +00:00
// Find section or static text entry to move
2004-05-31 12:19:42 +00:00
while ( $pos < $_GET [ 'down' ]) {
$current = next ( $_SESSION [ 'currentPDFStructure' ]);
$pos ++ ;
}
$borders = array ();
2004-06-03 14:26:48 +00:00
// We have a section to move
if ( $current [ 'tag' ] == 'SECTION' ){
$borders [ $current [ 'type' ]][] = $pos ;
2004-05-31 12:19:42 +00:00
$current = next ( $_SESSION [ 'currentPDFStructure' ]);
$pos ++ ;
2004-06-03 14:26:48 +00:00
// Find end of section to move
while ( $current && $current [ 'tag' ] != 'SECTION' && $current [ 'type' ] != 'close' ) {
$current = next ( $_SESSION [ 'currentPDFStructure' ]);
$pos ++ ;
}
$borders [ 'close' ][] = $pos ;
}
// We have a static text entry to move
elseif ( $current [ 'tag' ] == 'TEXT' ) {
$borders [ 'open' ][] = $pos ;
$borders [ 'close' ][] = $pos ;
2004-05-31 12:19:42 +00:00
}
$current = next ( $_SESSION [ 'currentPDFStructure' ]);
$pos ++ ;
2004-06-03 14:26:48 +00:00
// Find next section or static text entry in structure
2004-05-31 12:19:42 +00:00
if ( $current ) {
2004-06-03 14:26:48 +00:00
// Next is a section
if ( $current [ 'tag' ] == 'SECTION' ) {
$borders [ $current [ 'type' ]][] = $pos ;
2004-05-31 12:19:42 +00:00
$current = next ( $_SESSION [ 'currentPDFStructure' ]);
$pos ++ ;
2004-06-03 14:26:48 +00:00
// Find end of this section
while ( $current && $current [ 'tag' ] != 'SECTION' && $current [ 'type' ] != 'close' ) {
if ( $current [ 'tag' ] == 'SECTION' ) {
$borders [ $current [ 'type' ]][] = $pos ;
}
$current = next ( $_SESSION [ 'currentPDFStructure' ]);
$pos ++ ;
}
}
// Next is static text entry
elseif ( $current [ 'tag' ] == 'TEXT' ) {
$borders [ 'open' ][] = $pos ;
2004-05-31 12:19:42 +00:00
}
$borders [ 'close' ][] = $pos ;
}
2004-06-03 14:26:48 +00:00
// Move only downwars if not bottenmost element of this structure
2004-05-31 12:19:42 +00:00
if ( count ( $borders [ 'open' ]) > 1 ) {
2004-06-03 14:26:48 +00:00
// Calculate entries to move and move them
2004-05-31 12:19:42 +00:00
$cut_start = $borders [ 'open' ][ count ( $borders [ 'open' ]) - 1 ];
$cut_count = $borders [ 'close' ][ count ( $borders [ 'close' ]) - 1 ] - $borders [ 'open' ][ count ( $borders [ 'open' ]) - 1 ] + 1 ;
$insert_pos = $borders [ 'open' ][ count ( $borders [ 'open' ]) - 2 ];
$tomove = array_splice ( $_SESSION [ 'currentPDFStructure' ], $cut_start , $cut_count );
array_splice ( $_SESSION [ 'currentPDFStructure' ], $insert_pos , 0 , $tomove );
}
2004-05-31 09:38:59 +00:00
}
2004-06-03 14:26:48 +00:00
// We have a value entry to move; move it only if it is not the bottmmost
// element of this section.
2004-05-31 09:38:59 +00:00
elseif ( $tmp [ 'tag' ] == 'ENTRY' && $next [ 'tag' ] == 'ENTRY' ) {
$_SESSION [ 'currentPDFStructure' ][ $_GET [ 'down' ]] = $_SESSION [ 'currentPDFStructure' ][ $_GET [ 'down' ] + 1 ];
$_SESSION [ 'currentPDFStructure' ][ $_GET [ 'down' ] + 1 ] = $tmp ;
}
2004-05-30 13:43:42 +00:00
}
2005-06-21 20:58:32 +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
2004-05-31 09:38:59 +00:00
if ( $_GET [ 'edit' ]) {
2004-08-03 19:07:31 +00:00
$load = loadPDFStructureDefinitions ( $_GET [ 'type' ], $_GET [ 'edit' ]);
$_SESSION [ 'currentPDFStructure' ] = $load [ 'structure' ];
$_SESSION [ 'currentPageDefinitions' ] = $load [ 'page_definitions' ];
2005-07-27 18:06:55 +00:00
$_GET [ 'pdfname' ] = $_GET [ 'edit' ];
2004-05-31 09:38:59 +00:00
}
2004-06-03 14:26:48 +00:00
// Load default structure file when creating a new one
2004-05-31 09:38:59 +00:00
else {
2004-08-03 19:07:31 +00:00
$load = loadPDFStructureDefinitions ( $_GET [ 'type' ]);
$_SESSION [ 'currentPDFStructure' ] = $load [ 'structure' ];
$_SESSION [ 'currentPageDefinitions' ] = $load [ 'page_definitions' ];
2004-05-31 09:38:59 +00:00
}
}
2004-06-03 14:26:48 +00:00
// Load available fields from modules when not set in session
2004-05-31 09:38:59 +00:00
if ( ! isset ( $_SESSION [ 'availablePDFFields' ])) {
$_SESSION [ 'availablePDFFields' ] = getAvailablePDFFields ( $_GET [ 'type' ]);
}
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 = '' ;
foreach ( $_SESSION [ 'availablePDFFields' ] as $module => $values ) {
$modules [] = $module ;
foreach ( $values as $attribute ) {
2004-06-03 14:26:48 +00:00
$section_items_array [] = $module . '_' . $attribute ;
2005-06-21 20:58:32 +00:00
$section_items .= " <option> " . $module . '_' . $attribute . " </option> \n " ;
2004-05-31 09:38:59 +00:00
}
}
$modules = join ( ',' , $modules );
2004-05-30 13:43:42 +00:00
2004-08-03 19:07:31 +00:00
$logoFiles = getAvailableLogos ();
$logos = '<option value="none"' . (( $_SESSION [ 'currentPageDefinitions' ][ 'filename' ] == 'none' ) ? ' selected="selected"' : '' ) . '>' . _ ( 'No logo' ) . " </option> \n " ;
foreach ( $logoFiles as $logoFile ) {
2005-06-21 20:58:32 +00:00
$logos .= " <option value= \" " . $logoFile [ 'filename' ] . " \" " . (( $_SESSION [ 'currentPageDefinitions' ][ 'filename' ] == $logoFile [ 'filename' ] || ( ! isset ( $_SESSION [ 'currentPageDefinitions' ][ 'filename' ]) && $logoFile [ 'filename' ] == 'printLogo.jpg' )) ? ' selected="selected"' : '' ) . '>' . $logoFile [ 'filename' ] . ' (' . $logoFile [ 'infos' ][ 0 ] . ' x ' . $logoFile [ 'infos' ][ 1 ] . " )</option> \n " ;
2004-08-03 19:07:31 +00:00
}
2004-05-30 13:43:42 +00:00
// print header
echo $_SESSION [ 'header' ];
2004-08-03 19:07:31 +00:00
// TODO Change enctype of form
2004-05-30 13:43:42 +00:00
?>
< title > LDAP Account Manager </ title >
< link rel = " stylesheet " type = " text/css " href = " ../../style/layout.css " >
</ head >
< body >
< br >
< form action = " pdfpage.php " method = " post " >
2005-06-21 20:58:32 +00:00
< table >
2004-08-03 19:07:31 +00:00
< tr >
2005-06-21 20:58:32 +00:00
< td width = " 100% " colspan = " 3 " align = " left " >
2004-08-03 19:07:31 +00:00
< fieldset >
< legend >
2004-11-06 13:05:34 +00:00
< b >< ? php echo _ ( 'Page settings' ); ?> </b>
2004-08-03 19:07:31 +00:00
</ legend >
2005-06-21 20:58:32 +00:00
< table border = " 0 " >
2004-08-03 19:07:31 +00:00
< tr >
< td >
2005-06-21 20:58:32 +00:00
< b >< ? php echo _ ( 'Headline' ); ?> :</b>
2004-08-03 19:07:31 +00:00
</ td >
< td >
2005-06-21 20:58:32 +00:00
< input type = " text " name = " headline " value = " <?php echo ((isset( $_SESSION['currentPageDefinitions'] ['headline'])) ? $_SESSION['currentPageDefinitions'] ['headline'] : 'LDAP Account Manager'); ?> " >
2004-08-03 19:07:31 +00:00
</ td >
< td >
2005-06-21 20:58:32 +00:00
< ? php echo _ ( 'Use default' ) ?> <input type="checkbox" name="defaults[]" value="headline">
2004-08-03 19:07:31 +00:00
</ td >
</ tr >
< tr >
< td >
2005-06-21 20:58:32 +00:00
< b >< ? php echo _ ( 'Logo' ); ?> :</b>
2004-08-03 19:07:31 +00:00
</ td >
< td >
2005-06-21 20:58:32 +00:00
< select name = " logoFile " size = " 1 " >
< ? php echo $logos ; ?>
</ select >
2004-08-03 19:07:31 +00:00
</ td >
< td >
2005-06-21 20:58:32 +00:00
< ? php echo _ ( 'Use default' ) ?> <input type="checkbox" name="defaults[]" value="logoFile">
2004-08-03 19:07:31 +00:00
</ td >
</ tr >
</ table >
</ fieldset >
</ td >
</ tr >
< tr >
< td colspan = " 3 " >
< br >
</ td >
</ tr >
2004-05-30 13:43:42 +00:00
< tr >
<!-- print current structure -->
2005-06-21 20:58:32 +00:00
< td align = " left " valign = " top " >
2004-05-30 13:43:42 +00:00
< fieldset >
< legend >
2004-08-03 19:07:31 +00:00
< b >< ? php echo _ ( " PDF structure " ); ?> </b>
2004-05-30 13:43:42 +00:00
</ legend >
< table >
< ? php
2004-06-03 14:26:48 +00:00
$sections = '<option value="0">' . _ ( 'Beginning' ) . " </option> \n " ;
// Print every entry in the current structure
2004-05-31 09:38:59 +00:00
foreach ( $_SESSION [ 'currentPDFStructure' ] as $key => $entry ) {
2004-06-03 14:26:48 +00:00
// Create the up/down/remove links
2005-06-21 20:58:32 +00:00
$links = " <td> \n <a href= \" pdfpage.php?type= " . $_GET [ 'type' ] . " &up= " . $key .
(( $_GET [ 'pdfname' ]) ? '&pdfname=' . $_GET [ 'pdfname' ] : '' ) .
(( $_GET [ 'headline' ]) ? '&headline=' . $_GET [ 'headline' ] : '' ) .
(( $_GET [ 'logoFile' ]) ? '&logoFile=' . $_GET [ 'logoFile' ] : '' ) . " \" > " .
" <img src= \" ../../graphics/up.gif \" alt= \" " . _ ( " Up " ) . " \" border= \" 0 \" ></a> \n </td> \n " .
" <td width= \" 10 \" > \n </td> \n " .
" <td> \n <a href= \" pdfpage.php?type= " . $_GET [ 'type' ] . " &down= " . $key .
(( $_GET [ 'pdfname' ]) ? '&pdfname=' . $_GET [ 'pdfname' ] : '' ) .
(( $_GET [ 'headline' ]) ? '&headline=' . $_GET [ 'headline' ] : '' ) .
(( $_GET [ 'logoFile' ]) ? '&logoFile=' . $_GET [ 'logoFile' ] : '' ) . " \" > " .
" <img src= \" ../../graphics/down.gif \" alt= \" " . _ ( " Down " ) . " \" border= \" 0 \" ></a> \n </td> \n " .
" <td width= \" 10 \" > \n </td> \n " .
" <td> \n <a href= \" pdfpage.php?type= " . $_GET [ 'type' ] . " &remove= " . $key .
(( $_GET [ 'pdfname' ]) ? '&pdfname=' . $_GET [ 'pdfname' ] : '' ) .
(( $_GET [ 'headline' ]) ? '&headline=' . $_GET [ 'headline' ] : '' ) .
(( $_GET [ 'logoFile' ]) ? '&logoFile=' . $_GET [ 'logoFile' ] : '' ) . " \" > " .
" <img src= \" ../../graphics/delete.gif \" alt= \" " . _ ( " Remove " ) . " \" border= \" 0 \" ></a> \n </td> \n " ;
2004-05-30 13:43:42 +00:00
// We have a new section to start
if ( $entry [ 'tag' ] == " SECTION " && $entry [ 'type' ] == " open " ) {
$name = $entry [ 'attributes' ][ 'NAME' ];
?>
< tr >
< td width = " 20 " align = " left " >
2004-05-31 09:38:59 +00:00
< input type = " radio " name = " section " value = " <?php echo $key ;?> " >
2004-05-30 13:43:42 +00:00
</ td >
< td colspan = " 2 " >
2004-06-03 14:26:48 +00:00
< ? php
// Section headline is a value entry
if ( preg_match ( " /^ \ _[a-zA-Z \ _]+/ " , $name )) {
?>
< select name = " section_<?php echo $key ;?> " >
<!-- < ? php echo $section_items ; ?> -->
< ? php
foreach ( $section_items_array as $item ) {
?>
< option value = " _<?php echo $item ;?> " < ? php echo (( substr ( $name , 1 ) == $item ) ? ' selected' : '' ); ?> ><?php echo $item;?></option>
< ? php
}
?>
</ select >
< button type = " submit " name = " change " value = " <?php echo $key ;?>_item " >< ? php echo _ ( 'Change' ); ?> </button>
< ? php
}
// Section headline is a user text
else {
?>
< input type = " text " name = " section_<?php echo $key ;?> " value = " <?php echo $name ;?> " >& nbsp ; & nbsp ; < button type = " submit " name = " change " value = " <?php echo $key ;?> " >< ? php echo _ ( 'Change' ); ?> </button>
< ? php
}
?>
2004-05-30 13:43:42 +00:00
</ td >
< td width = " 20 " >
</ td >
< ? php echo $links ; ?>
</ tr >
< ? php
}
// We have a section to end
elseif ( $entry [ 'tag' ] == " SECTION " && $entry [ 'type' ] == " close " ) {
2004-06-03 14:26:48 +00:00
if ( preg_match ( " /^ \ _[a-zA-Z \ _]+/ " , $name )) {
$section_headline = substr ( $name , 1 );
}
else {
$section_headline = $name ;
}
// Add current section for dropdown box needed for the position when inserting a new
// section or static text entry
$sections .= '<option value="' . ( $key + 1 ) . '">' . $section_headline . " </option> \n " ;
2004-05-30 13:43:42 +00:00
?>
< tr >
< td colspan = " 9 " >
< br >
</ td >
</ tr >
< ? php
}
// We have to include a static text.
elseif ( $entry [ 'tag' ] == " TEXT " ) {
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
$sections .= '<option value="' . ( $key + 1 ) . '">' . _ ( 'Static text' ) . " </option> \n " ;
?>
2004-05-30 13:43:42 +00:00
< tr >
< td >
</ td >
< td colspan = " 2 " >
< b >< ? php echo _ ( 'Static text' ); ?> </b>
</ td >
< td width = " 20 " >
</ td >
< ? php echo $links ; ?>
</ tr >
< tr >
2004-05-31 12:19:42 +00:00
< td colspan = " 2 " >
2004-05-30 13:43:42 +00:00
</ td >
< td >
2004-05-31 12:19:42 +00:00
< ? php echo $entry [ 'value' ]; ?>
2004-05-30 13:43:42 +00:00
</ td >
< td colspan = " 6 " >
</ td >
</ tr >
2004-05-31 12:19:42 +00:00
< tr >
< td colspan = " 9 " >
< br >
</ td >
</ tr >
< ? php
2004-05-30 13:43:42 +00:00
}
// We have to include an entry from the account
elseif ( $entry [ 'tag' ] == " ENTRY " ) {
// Get name of current entry
$name = $entry [ 'attributes' ][ 'NAME' ];
?>
< tr >
< td >
</ td >
< td width = " 20 " >
</ td >
< td >
< ? php echo $name ; ?>
</ td >
< td width = " 20 " >
</ td >
< ? php echo $links ; ?>
</ tr >
< ? php
}
}
2004-06-03 14:26:48 +00:00
// Print the boxes for adding new sections and static text entries
// Print save and abort buttons
2004-05-30 13:43:42 +00:00
?>
</ table >
2005-06-21 20:58:32 +00:00
</ fieldset >
< p >& nbsp ; </ p >
</ td >
< td align = " center " >
< input type = " submit " name = " add_field " value = " <= " >
</ td >
<!-- print available fields sorted by modul -->
< td align = " left " valign = " top " >
< fieldset >
< legend >
< b >< ? php echo _ ( " Available PDF fields " ); ?> </b>
</ legend >
< table >
< ? php
// Print all available modules with the value fieds
foreach ( $_SESSION [ 'availablePDFFields' ] as $module => $fields ) {
?>
< tr >
< td colspan = " 2 " >
< b >< ? php
if ( $module != 'main' ) {
echo getModuleAlias ( $module , $_GET [ 'type' ]);
}
else {
echo _ ( 'Main' );
}
?> </b>
</ td >
</ tr >
< tr >
< td width = " 20 " >
</ td >
< td >
< select name = " <?php echo $module ?>[] " size = " 7 " multiple >
< ? php
// Print each value field
foreach ( $fields as $field ) {
?>
< option >< ? php echo $field ; ?> </option>
< ? php
}
?>
</ select >
</ td >
</ tr >
< tr >
< td colspan = " 2 " >
< br >
</ td >
</ tr >
< ? php
}
?>
</ table >
</ fieldset >
</ td >
</ tr >
< tr >
< td colspan = " 3 " >
2004-05-31 09:38:59 +00:00
< fieldset >
< legend >
2004-06-03 14:26:48 +00:00
< b >< ? php echo _ ( 'Add section or static text' ); ?> </b>
2005-06-21 20:58:32 +00:00
</ legend >
< table >
2004-05-31 09:38:59 +00:00
< tr >
< td >
2004-06-03 14:26:48 +00:00
< fieldset >
2004-05-31 12:19:42 +00:00
< legend >
2004-06-03 14:26:48 +00:00
< b >< ? php echo _ ( " Section " ); ?> </b>
2004-05-31 12:19:42 +00:00
</ legend >
2004-06-03 14:26:48 +00:00
< table align = " left " width = " 100% " >
2004-05-31 12:19:42 +00:00
< tr >
< td >
2004-06-03 14:26:48 +00:00
< input type = " radio " name = " section_type " value = " text " checked >
2004-05-31 12:19:42 +00:00
</ td >
2004-06-03 14:26:48 +00:00
< td colspan = " 2 " >
2005-06-21 20:58:32 +00:00
< ? php echo _ ( " Name " ); ?> : <input type="text" name="section_text">
2004-05-31 12:19:42 +00:00
</ td >
2004-06-03 14:26:48 +00:00
</ tr >
< tr >
2004-05-31 12:19:42 +00:00
< td >
2004-06-03 14:26:48 +00:00
< input type = " radio " name = " section_type " value = " item " >
2004-05-31 12:19:42 +00:00
</ td >
2004-06-03 14:26:48 +00:00
< td >
< select name = " section_item " >
< ? php echo $section_items ; ?>
</ select >
2004-05-31 12:19:42 +00:00
</ td >
</ tr >
</ table >
</ fieldset >
</ td >
2004-06-03 14:26:48 +00:00
</ tr >
< tr >
< td colspan = " 2 " >
< br />
2004-05-31 12:19:42 +00:00
</ td >
</ tr >
< tr >
< td >
< fieldset >
< legend >
2004-06-03 14:26:48 +00:00
< b >< ? php echo _ ( " Static text " ); ?> </b>
2004-05-31 12:19:42 +00:00
</ legend >
< table width = " 100% " >
< tr >
2004-06-03 14:26:48 +00:00
< td width = " 10 " >
2005-06-21 20:58:32 +00:00
< input type = " radio " name = " section_type " value = " textbox " >
2004-05-31 12:19:42 +00:00
</ td >
< td >
2005-06-21 20:58:32 +00:00
< textarea name = " text_text " rows = " 3 " cols = " 40 " ></ textarea >
2004-05-31 12:19:42 +00:00
</ td >
</ tr >
</ table >
</ fieldset >
</ td >
</ tr >
2005-06-21 20:58:32 +00:00
< tr >
< td >
< B >< ? php echo _ ( 'Position' ); ?> : </B>
< select name = " add_position " >
< ? php echo $sections ; ?>
</ select >
< td >
</ tr >
< tr >
< td colspan = " 2 " >
< br >
</ td >
</ tr >
< TR >
< td >
< input type = " submit " name = " add " value = " <?php echo _('Add');?> " >
</ td >
</ TR >
2004-05-31 12:19:42 +00:00
</ table >
</ fieldset >
2005-06-21 20:58:32 +00:00
</ td >
</ tr >
< tr >
< td colspan = " 3 " >
2004-05-31 09:38:59 +00:00
< fieldset >
< legend >
2006-03-04 10:49:55 +00:00
< b >< ? php echo _ ( " Save " ); ?> </b>
2004-05-31 09:38:59 +00:00
</ legend >
< table border = " 0 " align = " left " >
2004-07-16 06:33:37 +00:00
< ? php
if ( ! isset ( $_GET [ 'pdfname' ])) {
?>
2004-05-31 09:38:59 +00:00
< tr >
< td >
< b >< ? php echo _ ( " Structure name " ); ?> :</b>
</ td >
< td >
2005-07-27 18:06:55 +00:00
< input type = " text " name = " pdfname " value = " <?php echo $_GET['edit'] ;?> " >
2004-05-31 09:38:59 +00:00
</ td >
< td >
< a href = " ../help.php?HelpNumber=360 " target = " lamhelp " >< ? php echo _ ( " Help " ); ?> </a>
</ td >
</ tr >
< tr >
< td colspan = " 3 " >
& nbsp
</ td >
</ tr >
2004-07-16 06:33:37 +00:00
< ? php
}
?>
2004-05-31 09:38:59 +00:00
< tr >
< td >
2004-07-16 06:33:37 +00:00
< ? php
if ( isset ( $_GET [ 'pdfname' ])) {
?>
< input type = " hidden " name = " pdfname " value = " <?php echo $_GET['pdfname'] ; ?> " >
< ? php
}
?>
2004-05-31 09:38:59 +00:00
< input type = " submit " name = " submit " value = " <?php echo _( " Save " );?> " >
</ td >
< td >
2006-03-04 10:49:55 +00:00
< input type = " submit " name = " abort " value = " <?php echo _( " Cancel " );?> " >
2004-05-31 09:38:59 +00:00
</ td >
< td >
& nbsp
</ td >
</ tr >
</ table >
2004-05-30 13:43:42 +00:00
</ fieldset >
</ td >
</ tr >
</ table >
2004-05-31 09:38:59 +00:00
< input type = " hidden " name = " modules " value = " <?php echo $modules ;?> " >
< input type = " hidden " name = " type " value = " <?php echo $_GET['type'] ;?> " >
2004-05-30 13:43:42 +00:00
</ form >
</ body >
</ html >
< ? php
?>