user_has_rights() ) { if( $_SESSION[$_PAGE_INFO['id']]['recall_counter'] ) { // Return from call } else if( is_valid_action("changelog_new") ) { // new item: generated temporary identifier as index in the array $t = gettimeofday(TRUE); $_SESSION[$_PAGE_INFO['id']]['changelog_id'] = "tmp_" . sprintf("%u%06u", $t, ($t - floor($t)) * 1000); $_SESSION[$_PAGE_INFO['id']]['changelog_doc'] = array(); $_SESSION[$_PAGE_INFO['id']]['changelog_info'] = array(); // save the version identifier from version entry page, or the search screen if( is_valid_call("version_new","version_duplicate","version_change") ) { $_SESSION[$_PAGE_INFO['id']]['changelog_info']['versie'] = $_SESSION[$_PAGE_INFO['id']]['version_id']; $_SESSION[$_PAGE_INFO['id']]['changelog_info']['volgorde'] = array_max($_SESSION[$_PAGE_INFO['id']]['version_info']['changelog'], "volgorde", 0) + 1; // link device types and system components from the version info $_SESSION[$_PAGE_INFO['id']]['changelog_info']['device'] = $_SESSION[$_PAGE_INFO['id']]['version_info']['device']; $_SESSION[$_PAGE_INFO['id']]['changelog_info']['syscomp'] = $_SESSION[$_PAGE_INFO['id']]['version_info']['syscomp']; } else { $_SESSION[$_PAGE_INFO['id']]['changelog_info']['versie'] = $_SESSION[$_PAGE_INFO['id']]['search']['s&o']['version_id']; $_SESSION[$_PAGE_INFO['id']]['changelog_info']['volgorde'] = 0; } } else if( is_valid_action("changelog_info","changelog_change","changelog_duplicate") ) { if( isset($_GET['changelog_id']) ) { // set change log identifier from the URL $_SESSION[$_PAGE_INFO['id']]['changelog_id'] = decrypt($_GET['changelog_id'], "changelog_id_" . $_SESSION[$_PAGE_INFO['id']]['login']['user']['id']); } else { // set change log identifier from the search screen $_SESSION[$_PAGE_INFO['id']]['changelog_id'] = $_SESSION[$_PAGE_INFO['id']]['search']['s&o']['changelog_id']; } if( isset($_SESSION[$_PAGE_INFO['id']]['changelog_id']) ) { if( is_array($_SESSION[$_PAGE_INFO['id']]['version_changelog'][$_SESSION[$_PAGE_INFO['id']]['changelog_id']]) ) { // change log item is stored in the version info array $_SESSION[$_PAGE_INFO['id']]['changelog_info'] = $_SESSION[$_PAGE_INFO['id']]['version_changelog'][$_SESSION[$_PAGE_INFO['id']]['changelog_id']]; } else { // read the change log items and its documents $_SESSION[$_PAGE_INFO['id']]['changelog_info'] = db_fetch_version_change($_SESSION[$_PAGE_INFO['id']]['changelog_id']); } if( is_array($_SESSION[$_PAGE_INFO['id']]['version_changelog_doc'][$_SESSION[$_PAGE_INFO['id']]['changelog_id']]) ) { // change log item is stored in the version info array $_SESSION[$_PAGE_INFO['id']]['changelog_doc'] = $_SESSION[$_PAGE_INFO['id']]['version_changelog_doc'][$_SESSION[$_PAGE_INFO['id']]['changelog_id']]; } else { // read the change log items and its documents $_SESSION[$_PAGE_INFO['id']]['changelog_doc'] = db_fetch_files($_SESSION[$_PAGE_INFO['id']]['changelog_id'], "changelog_versie_change_documenten", FALSE, "ASC"); } // invalidate the identifier when duplicating an item if( is_valid_action("changelog_duplicate") ) { $_SESSION[$_PAGE_INFO['id']]['changelog_id'] = "tmp_copy_" . $_SESSION[$_PAGE_INFO['id']]['changelog_id']; // copy the documents $documents = $_SESSION[$_PAGE_INFO['id']]['changelog_doc']; $_SESSION[$_PAGE_INFO['id']]['changelog_doc'] = array(); foreach( $documents as $doc ) { $_SESSION[$_PAGE_INFO['id']]['changelog_doc'][] = db_duplicate_file($doc); } // clean up unset($documents); } } else { // wrong call; redirect back to login page force_logout(_("No valid rights"), "Change log id not set"); } } // the change log is closely linked to a version; fetch the version info // if not set (when this page is called bypassing 'version_info') if( !is_valid_call("version*") ) { $_SESSION[$_PAGE_INFO['id']]['version_info'] = db_fetch_system_version($_SESSION[$_PAGE_INFO['id']]['changelog_info']['versie']); } // as well as to the system component; fetch it if not set (when this page is called bypassing 'syscomp_info') if( !is_valid_call("system_component*") ) { $_SESSION[$_PAGE_INFO['id']]['syscomp_info'] = db_fetch_system_component($_SESSION[$_PAGE_INFO['id']]['version_info']['syscomp']); } // Nested call? if( !$_SESSION[$_PAGE_INFO['id']]['recall_counter'] ) { $_SESSION[$_PAGE_INFO['id']]['changelog_info']['return_action'] = $_SESSION[$_PAGE_INFO['id']]['return_action']; } // Add calendar to header $extra_header_HTML = "\n"; // Show page header $y_position = (isset($_SESSION[$_PAGE_INFO['id']]['changelog_info']['y_position'])) ? ($_SESSION[$_PAGE_INFO['id']]['changelog_info']['y_position']) : 0; print_xml_header($y_position, $extra_header_HTML); // Include info content include("menu_changelog_info_content.php"); // Show page footer print_page_footer(); } else { // Redirect page back to login page force_logout(_("No valid rights"), "No rights for menu " . $page->menu . ": " . $page->rights); } ?>