/** * Function set_project_environment * * Analyses configuration and current session to identify which project area * is to be used. * If a project is specified in the HTTP parameters then that is used, otherwise * the current SESSION * "reports" project is used */ function set_project_environment($initial_project = false, $project_folder = "projects", $admin_project_folder = "projects" ) { global $g_project; global $g_projpath; global $g_language; global $g_translations; global $g_menu; global $g_menu_title; global $g_dropdown_menu; global $g_report_desc; global $g_included_config; $target_menu = ""; $project = ""; $last_project = ""; if ( isset_reportico_session_param("project") ) if ( get_reportico_session_param("project") ) $last_project = get_reportico_session_param("project"); if ( !$project && array_key_exists("submit_delete_project", $_REQUEST) ) { $project = get_request_item("jump_to_delete_project", ""); $_REQUEST["xmlin"] = "deleteproject.xml"; set_reportico_session_param("project",$project); } if ( !$project && array_key_exists("submit_configure_project", $_REQUEST) ) { $project = get_request_item("jump_to_configure_project", ""); $_REQUEST["xmlin"] = "configureproject.xml"; set_reportico_session_param("project",$project); } if ( !$project && array_key_exists("submit_menu_project", $_REQUEST) ) { $project = get_request_item("jump_to_menu_project", ""); set_reportico_session_param("project",$project); } if ( !$project && array_key_exists("submit_design_project", $_REQUEST) ) { $project = get_request_item("jump_to_design_project", ""); set_reportico_session_param("project",$project); } if ( $initial_project ) { $project = $initial_project; set_reportico_session_param("project",$project); } if ( !$project ) $project = session_request_item("project", "admin"); if ( !$target_menu ) $target_menu = session_request_item("target_menu", ""); $menu = false; $menu_title = "Set Menu Title"; if ( $project == "admin" ) $project_folder = $admin_project_folder; // Now we now the project include the relevant config.php $projpath = $project_folder."/".$project; $configfile = $projpath."/config.php"; $configtemplatefile = $projpath."/adminconfig.template"; $menufile = $projpath."/menu.php"; if ( $target_menu != "" ) $menufile = $projpath."/menu_".$target_menu.".php"; if ( !is_file($projpath) ) { find_file_to_include($projpath, $projpath); } set_reportico_session_param("project_path", $projpath); $this->reports_path = $projpath; if ( !$projpath ) { find_file_to_include("config.php", $configfile); if ( $g_included_config && $g_included_config != $configfile ) handle_error("Cannot load two different instances on a single page from different projects.", E_USER_ERROR); else { $g_included_config = $configfile; include_once($configfile); } $g_projpath = false; $g_project = false; $g_menu = false; $g_menu_title = ""; $g_dropdown_menu = false; $old_error_handler = set_error_handler("ErrorHandler"); handle_error("Project Directory $project not found. Check INCLUDE_PATH or project name"); return; } $g_projpath = $projpath; if ( !is_file($configfile) ) find_file_to_include($configfile, $configfile); if ( !is_file($menufile) ) find_file_to_include($menufile, $menufile); if ( $project == "admin" && !is_file($configfile)) { find_file_to_include($configtemplatefile, $configfile); } if ( $configfile ) { if ( !is_file($configfile) ) { handle_error("Config file $menufile not found in project $project", E_USER_WARNING); } if ( $g_included_config && $g_included_config != $configfile ) handle_error("Cannot load two different instances on a single page from different projects.", E_USER_ERROR); else { include_once($configfile); $g_included_config = $configfile; } if ( is_file($menufile) ) include($menufile); else handle_error("Menu Definition file $menufile not found in project $project", E_USER_WARNING); } else { find_file_to_include("config.php", $configfile); if ( $configfile ) { if ( $g_included_config && $g_included_config != $configfile ) handle_error("Cannot load two different instances on a single page from different projects.", E_USER_ERROR); else { include_once($configfile); $g_included_config = $configfile; } } $g_project = false; $g_projpath = false; $g_menu = false; $g_menu_title = ""; $g_dropdown_menu = false; $old_error_handler = set_error_handler("ErrorHandler"); handle_error("Configuration Definition file config.php not found in project $project", E_USER_ERROR); } // Ensure a Database and Output Character Set Encoding is set if ( !defined("SW_DB_ENCODING" ) ) define("SW_DB_ENCODING", "UTF8"); if ( !defined("SW_OUTPUT_ENCODING" ) ) define("SW_OUTPUT_ENCODING", "UTF8"); // Ensure a language is set if ( !defined("SW_LANGUAGE" ) ) define("SW_LANGUAGE", "en_gb"); $g_project = $project; if ( !defined('SW_PROJECT') ) define('SW_PROJECT', $g_project); $language = "en_gb"; // Default language to first language in avaible_languages $langs = available_languages(); if ( count($langs) > 0 ) { $language = $langs[0]["value"]; } if ( defined('SW_LANGUAGE') && SW_LANGUAGE && SW_LANGUAGE != "PROMPT" ) $language = session_request_item("reportico_language", SW_LANGUAGE); else $language = session_request_item("reportico_language", "en_gb"); // language not found the default to first $found = false; foreach ( $langs as $k => $v ) { if ( $v["value"] == $language ) { $found = true; break; } } if ( !$found && count($langs) > 0 ) $language = $langs[0]["value"]; // If project has change then change to default project language // Ignore for now as want to use chosen Administrator language if set //if ( $last_project && ( $last_project != $project ) ) //{ //$language = SW_LANGUAGE; //set_reportico_session_param("language",$language); //} if ( array_key_exists("submit_language", $_REQUEST) ) { $language = $_REQUEST["jump_to_language"]; set_reportico_session_param("reportico_language",$language); } $g_language = $language; $g_menu = $menu; $g_menu_title = $menu_title; if ( isset($dropdown_menu ) ) $g_dropdown_menu = $dropdown_menu; // Include project specific language translations load_project_language_pack($project, output_charset_to_php_charset(SW_OUTPUT_ENCODING)); return $project; }
function execute($mode = false, $draw = true) { global $g_system_errors; global $g_system_debug; global $g_code_area; global $g_code_source; global $g_debug_mode; global $g_language; global $g_project; global $g_session_namespace; global $g_session_namespace_key; if ($this->session_namespace) { $g_session_namespace = $this->session_namespace; } if ($g_session_namespace) { $g_session_namespace_key = "reportico_" . $g_session_namespace; } // If a session namespace doesnt exist create one if (!isset($_SESSION[$g_session_namespace_key]) || isset($_REQUEST['clear_session']) || $this->clear_reportico_session) { initialize_reportico_namespace($g_session_namespace_key); } // Work out the mode (ADMIN, PREPARE, MENU, EXECUTE, MAINTAIN based on all parameters ) if (!$mode) { $mode = $this->get_execute_mode(); } $old_error_handler = set_error_handler("ErrorHandler"); set_exception_handler("ExceptionHandler"); // If new session, we need to use initial project, report etc, otherwise ignore them $this->handle_initial_settings(); // Fetch project config set_project_environment($this->initial_project); register_session_param("external_user", $this->external_user); register_session_param("external_param1", $this->external_param1); register_session_param("external_param2", $this->external_param2); register_session_param("external_param3", $this->external_param3); $this->user_parameters = register_session_param("user_parameters", $this->user_parameters); $this->dropdown_menu = register_session_param("dropdown_menu", $this->dropdown_menu); $this->static_menu = register_session_param("static_menu", $this->static_menu); $this->charting_engine = register_session_param("charting_engine", $this->charting_engine); $this->charting_engine_html = register_session_param("charting_engine_html", $this->charting_engine_html); $this->output_template_parameters = register_session_param("output_template_parameters", $this->output_template_parameters); $this->dynamic_grids = register_session_param("dynamic_grids", $this->dynamic_grids); $this->dynamic_grids_sortable = register_session_param("dynamic_grids_sortable", $this->dynamic_grids_sortable); $this->dynamic_grids_searchable = register_session_param("dynamic_grids_searchable", $this->dynamic_grids_searchable); $this->dynamic_grids_paging = register_session_param("dynamic_grids_paging", $this->dynamic_grids_paging); $this->dynamic_grids_page_size = register_session_param("dynamic_grids_page_size", $this->dynamic_grids_page_size); // We are in AJAX mode if it is passed throuh if (isset($_REQUEST["reportico_ajax_called"])) { $this->reportico_ajax_called = $_REQUEST["reportico_ajax_called"]; } //set_reportico_session_param("reportico_ajax_called", $_REQUEST["reportico_ajax_called"] ); // Store whether in framework set_reportico_session_param("framework_parent", $this->framework_parent); // Set access mode to decide whether to allow user to access Design Mode, Menus, Criteria or just run a single report $this->access_mode = session_item("access_mode", $this->access_mode); if ($this->access_mode == "DEMO") { $this->allow_maintain = "DEMO"; } $this->reports_path = "projects/" . $g_project; // Convert input and out charsets into their PHP versions // for later iconv use $this->db_charset = db_charset_to_php_charset('UTF-8'); $this->output_charset = output_charset_to_php_charset('UTF-8'); // Ensure Smarty Template folder exists and is writeable $include_template_dir = "templates_c"; if (!is_dir("templates_c")) { find_file_to_include("templates_c", $include_template_dir, $include_template_dir); } if (!is_dir($include_template_dir)) { echo "Unable to generate output. The <b>{$include_template_dir}</b> folder does not exist within the main reportico area. Please create this folder and ensure it has read, write and execute permissions and then retry."; die; } if (!sw_path_executable($include_template_dir)) { echo "Unable to generate output. The <b>{$include_template_dir}</b> folder does not have read, write and execute permissions. Please correct and retry."; die; } $g_debug_mode = get_request_item("debug_mode", "0", $this->first_criteria_selection); if (!$mode) { $mode = $this->get_execute_mode(); } // If the project is the ADMIN project then the MAin Menu will be the Admin Page if ($g_project == "admin" && $mode == "MENU") { $mode = "ADMIN"; } // If this is PREPARE mode then we want to identify whether user has entered prepare // screen for first time so we know whether to set defaults or not switch ($mode) { case "PREPARE": $this->report_progress("Ready", "READY"); $this->first_criteria_selection = true; // Must find ALternative to THIs for first time in testing!!! if (array_key_exists("target_format", $_REQUEST)) { $this->first_criteria_selection = false; set_reportico_session_param("firstTimeIn", false); } if (!isset_reportico_session_param("firstTimeIn")) { set_reportico_session_param("firstTimeIn", true); } // Default output to HTML in PREPARE mode first time in if (get_reportico_session_param("firstTimeIn") && !isset($_REQUEST["target_format"])) { $this->target_format = "HTML"; set_reportico_session_param("target_format", "HTML"); } // Default style to TABLE in PREPARE mode first time in //if ( get_reportico_session_param("firstTimeIn") && !isset($_REQUEST["target_style"])) //{ //$this->target_format = "TABLE"; //set_reportico_session_param("target_style","TABLE"); //echo "set table "; //} break; case "EXECUTE": // If external page has supplied an initial output format then use it if ($this->initial_output_format) { $_REQUEST["target_format"] = $this->initial_output_format; } // If printable HTML requested force output type to HTML if (get_request_item("printable_html")) { $_REQUEST["target_format"] = "HTML"; } // Prompt user for report destination if target not already set - default to HTML if not set if (!array_key_exists("target_format", $_REQUEST) && $mode == "EXECUTE") { $_REQUEST["target_format"] = "HTML"; } $this->target_format = strtoupper($_REQUEST["target_format"]); if (array_key_exists("submit", $_REQUEST)) { $this->first_criteria_selection = false; } else { $this->first_criteria_selection = true; } if (get_reportico_session_param("awaiting_initial_defaults")) { set_reportico_session_param("firstTimeIn", true); } else { if (get_reportico_session_param("firstTimeIn") && get_request_item("refreshReport", false)) { set_reportico_session_param("firstTimeIn", true); } else { set_reportico_session_param("firstTimeIn", false); } } break; case "MAINTAIN": $this->report_progress("Ready", "READY"); $this->first_criteria_selection = true; set_reportico_session_param("firstTimeIn", true); break; default: //$this->report_progress("Ready", "READY" ); $this->first_criteria_selection = true; set_reportico_session_param("firstTimeIn", true); break; } // If xml file is used to genearate the reportico_query, either by the xmlin session variable // or the xmlin request variable then process this before executing if ($mode == "EXECUTE") { $_REQUEST['execute_mode'] = "{$mode}"; // If executing report then stored the REQUEST parameters unless this // is a refresh of the report in which case we want to keep the ones already there $runfromcriteriascreen = get_request_item("user_criteria_entered", false); $refreshmode = get_request_item("refreshReport", false); if (!get_request_item("printable_html") && ($runfromcriteriascreen || (!isset_reportico_session_param('latestRequest') || !get_reportico_session_param('latestRequest')))) { set_reportico_session_param('latestRequest', $_REQUEST); } else { if (!$runfromcriteriascreen && $refreshmode) { $_REQUEST = get_reportico_session_param('latestRequest'); } } } else { if ($mode != "MODIFY" && array_key_exists('latestRequest', $_SESSION[reportico_namespace()])) { if (get_reportico_session_param('latestRequest')) { $OLD_REQUEST = $_REQUEST; // If a new report is being run dont bother trying to restore previous // run crtieria if (!get_request_item("xmlin")) { $_REQUEST = get_reportico_session_param('latestRequest'); } foreach ($OLD_REQUEST as $k => $v) { if ($k == 'partial_template') { $_REQUEST[$k] = $v; } if (preg_match("/^EXPAND_/", $k)) { $_REQUEST[$k] = $v; } } $_REQUEST['execute_mode'] = "{$mode}"; } } set_reportico_session_param('latestRequest', ""); } // Derive URL call of the calling script so it can be recalled in form actions when not running in AJAX mode if (!$this->url_path_to_calling_script) { $this->url_path_to_calling_script = $_SERVER["SCRIPT_NAME"]; } // Work out we are in AJAX mode $this->derive_ajax_operation(); switch ($mode) { case "MODIFY": require_once "swmodify.php"; $this->initialize_panels($mode); $engine = new reportico_db_engine($this->datasource->ado_connection->_connectionID); $status = $engine->perform_project_modifications($g_project); if ($status["errstat"] != 0) { header("HTTP/1.0 404 Not Found", true); } echo json_encode($status); die; case "ADMIN": $txt = ""; $this->handle_xml_query_input($mode); $this->build_admin_screen(); $text = $this->panels["BODY"]->draw_smarty(); $this->panels["MAIN"]->smarty->debugging = false; $this->panels["MAIN"]->smarty->assign('LANGUAGES', available_languages()); $this->panels["MAIN"]->smarty->assign('CONTENT', $txt); restore_error_handler(); if ($this->user_template) { $this->panels["MAIN"]->smarty->display($this->user_template . '_admin.tpl'); } else { $this->panels["MAIN"]->smarty->display('admin.tpl'); } $old_error_handler = set_error_handler("ErrorHandler"); break; case "MENU": $this->handle_xml_query_input($mode); $this->build_menu(); load_mode_language_pack("languages", $this->output_charset); load_mode_language_pack("menu", $this->output_charset); localise_template_strings($this->panels["MAIN"]->smarty); $text = $this->panels["BODY"]->draw_smarty(); $this->panels["MAIN"]->smarty->debugging = false; $this->panels["MAIN"]->smarty->assign('CONTENT', $text); $this->panels["MAIN"]->smarty->assign('LANGUAGES', available_languages()); restore_error_handler(); if ($this->user_template) { $this->panels["MAIN"]->smarty->display($this->user_template . '_menu.tpl'); } else { $this->panels["MAIN"]->smarty->display('menu.tpl'); } $old_error_handler = set_error_handler("ErrorHandler"); break; case "PREPARE": load_mode_language_pack("languages", $this->output_charset); $this->initialize_panels($mode); $this->handle_xml_query_input($mode); $this->set_request_columns(); global $g_translations; global $g_report_desc; if ($this->xmlinput == "deleteproject.xml" || $this->xmlinput == "configureproject.xml" || $this->xmlinput == "createtutorials.xml" || $this->xmlinput == "createproject.xml") { // If configuring project then use project language strings from admin project // found in projects/admin/lang.php load_project_language_pack("admin", $this->output_charset); } load_mode_language_pack("prepare", $this->output_charset); localise_template_strings($this->panels["MAIN"]->smarty); $text = $this->panels["BODY"]->draw_smarty(); $this->panels["MAIN"]->smarty->debugging = false; $this->panels["MAIN"]->smarty->assign('CONTENT', $text); $reportname = preg_replace("/.xml/", "", $this->xmloutfile . '_prepare.tpl'); restore_error_handler(); if (preg_match("/{$reportname}/", find_best_location_in_include_path("templates/" . $reportname))) { $this->panels["MAIN"]->smarty->display($reportname); } else { if ($this->user_template) { $this->panels["MAIN"]->smarty->display($this->user_template . '_prepare.tpl'); } else { $this->panels["MAIN"]->smarty->display('prepare.tpl'); } } $old_error_handler = set_error_handler("ErrorHandler"); break; case "EXECUTE": load_mode_language_pack("languages", $this->output_charset); $this->initialize_panels($mode); $this->handle_xml_query_input($mode); // Set Grid display options based on report and session defaults if ($this->attributes["gridDisplay"] != ".DEFAULT") { $this->dynamic_grids = $this->attributes["gridDisplay"] == "show"; } if ($this->attributes["gridSortable"] != ".DEFAULT") { $this->dynamic_grids_sortable = $this->attributes["gridSortable"] == "yes"; } if ($this->attributes["gridSearchable"] != ".DEFAULT") { $this->dynamic_grids_searchable = $this->attributes["gridSearchable"] == "yes"; } if ($this->attributes["gridPageable"] != ".DEFAULT") { $this->dynamic_grids_paging = $this->attributes["gridPageable"] == "yes"; } if ($this->attributes["gridPageSize"] != ".DEFAULT" && $this->attributes["gridPageSize"]) { $this->dynamic_grids_page_size = $this->attributes["gridPageSize"]; } $this->panels["MAIN"]->smarty->assign('REPORTICO_DYNAMIC_GRIDS', $this->dynamic_grids); $this->panels["MAIN"]->smarty->assign('REPORTICO_DYNAMIC_GRIDS_SORTABLE', $this->dynamic_grids_sortable); $this->panels["MAIN"]->smarty->assign('REPORTICO_DYNAMIC_GRIDS_SEARCHABLE', $this->dynamic_grids_searchable); $this->panels["MAIN"]->smarty->assign('REPORTICO_DYNAMIC_GRIDS_PAGING', $this->dynamic_grids_paging); $this->panels["MAIN"]->smarty->assign('REPORTICO_DYNAMIC_GRIDS_PAGE_SIZE', $this->dynamic_grids_page_size); $g_code_area = "Main Query"; $this->build_query(false, ""); $g_code_area = false; load_mode_language_pack("execute", $this->output_charset); localise_template_strings($this->panels["MAIN"]->smarty); if ($this->xmlinput == "deleteproject.xml" || $this->xmlinput == "configureproject.xml" || $this->xmlinput == "createtutorials.xml" || $this->xmlinput == "createproject.xml") { // If configuring project then use project language strings from admin project // found in projects/admin/lang.php load_project_language_pack("admin", $this->output_charset); } if (!get_reportico_session_param("loggedin", false)) { $text = "you are not logged in "; } else { $text = $this->execute_query(false); } if ($this->target_format == "SOAP") { close_reportico_session(); return; } // Situtations where we dont want to swithc results page - no data found, debug mode, not logged in if (count($g_system_errors) > 0 || $g_debug_mode || count($g_system_debug) > 0 || !get_reportico_session_param("loggedin")) { // If errors and this is an ajax request return json ajax response for first message $runfromcriteriascreen = get_request_item("user_criteria_entered", false); global $g_no_data; if ($g_no_data && get_request_item("new_reportico_window", false) && !$g_debug_mode && $this->target_format == "HTML" && $runfromcriteriascreen && $this->reportico_ajax_mode && count($g_system_errors) == 1) { header("HTTP/1.0 404 Not Found", true); $response_array = array(); $response_array["errno"] = $g_system_errors[0]["errno"]; $response_array["errmsg"] = $g_system_errors[0]["errstr"]; echo json_encode($response_array); die; } $this->initialize_panels("PREPARE"); $this->set_request_columns(); $text = $this->panels["BODY"]->draw_smarty(); $this->panels["MAIN"]->smarty->debugging = false; $title = sw_translate($this->derive_attribute("ReportTitle", "Unknown")); $this->panels["MAIN"]->smarty->assign('TITLE', $title); $this->panels["MAIN"]->smarty->assign('CONTENT', $text); load_mode_language_pack("languages", $this->output_charset, true); load_mode_language_pack("prepare", $this->output_charset); localise_template_strings($this->panels["MAIN"]->smarty); $reportname = preg_replace("/.xml/", "", $this->xmloutfile . '_prepare.tpl'); restore_error_handler(); if (preg_match("/{$reportname}/", find_best_location_in_include_path("templates/" . $reportname))) { $this->panels["MAIN"]->smarty->display($reportname); } else { if ($this->user_template) { $this->panels["MAIN"]->smarty->display($this->user_template . '_prepare.tpl'); } else { $this->panels["MAIN"]->smarty->display('prepare.tpl'); } } $old_error_handler = set_error_handler("ErrorHandler"); } else { if ($this->target_format != "HTML") { if ($draw) { echo $text; } } else { $title = sw_translate($this->derive_attribute("ReportTitle", "Unknown")); $pagestyle = $this->targets[0]->get_style_tags($this->output_reportbody_styles); $this->panels["MAIN"]->smarty->assign('REPORT_PAGE_STYLE', $pagestyle); $this->panels["MAIN"]->smarty->assign('TITLE', $title); $this->panels["MAIN"]->smarty->assign('CONTENT', $text); $this->panels["MAIN"]->smarty->assign('EMBEDDED_REPORT', $this->embedded_report); // When printing in separate html window make sure we dont treat report as embedded if (get_request_item("new_reportico_window", false)) { $this->panels["MAIN"]->smarty->assign('EMBEDDED_REPORT', false); } if ($this->email_recipients) { $recipients = explode(',', $this->email_recipients); foreach ($recipients as $rec) { load_mode_language_pack("languages", $this->output_charset, true); load_mode_language_pack("execute", $this->output_charset); localise_template_strings($this->panels["MAIN"]->smarty); $mailtext = $this->panels["MAIN"]->smarty->fetch('execute.tpl', NULL, NULL, false); //$boundary = '-----=' . md5( uniqid ( rand() ) ); //$message = "Content-Type: text/html; name=\"my attachment\"\n"; //$message .= "Content-Transfer-Encoding: base64\n"; //$message .= "Content-Transfer-Encoding: quoted-printable\n"; //$message .= "Content-Disposition: attachment; filename=\"report.html\"\n\n"; $content_encode = chunk_split(base64_encode($mailtext)); $message = $mailtext . "\n"; //$message .= $boundary . "\n"; $headers = "From: \"Report Admin\"<*****@*****.**>\n"; $headers .= "MIME-Version: 1.0\n"; $headers .= "Content-Transfer-Encoding: base64\n"; //$headers .= "Content-Type: multipart/mixed; boundary=\"$boundary\""; $headers = "Content-Type: text/html\n"; mail($rec, "{$title}", $message, $headers); } } else { load_mode_language_pack("languages", $this->output_charset, true); load_mode_language_pack("execute", $this->output_charset); localise_template_strings($this->panels["MAIN"]->smarty); $reportname = preg_replace("/.xml/", "", $this->xmloutfile . '_execute.tpl'); restore_error_handler(); if (preg_match("/{$reportname}/", find_best_location_in_include_path("templates/" . $reportname))) { $this->panels["MAIN"]->smarty->display($reportname); } else { if ($this->user_template) { $this->panels["MAIN"]->smarty->display($this->user_template . '_execute.tpl'); } else { $this->panels["MAIN"]->smarty->display('execute.tpl'); } } $old_error_handler = set_error_handler("ErrorHandler"); } } } break; case "MAINTAIN": $this->handle_xml_query_input($mode); if ($this->top_level_query) { $this->initialize_panels($mode); load_mode_language_pack("maintain", $this->output_charset); localise_template_strings($this->panels["MAIN"]->smarty); $this->xmlin->handle_user_entry(); set_reportico_session_param("xmlintext", $this->xmlintext); $text = $this->panels["BODY"]->draw_smarty(); $this->panels["MAIN"]->smarty->assign('CONTENT', $text); $this->panels["MAIN"]->smarty->display('maintain.tpl'); } else { $this->premaintain_query(); } break; case "XMLOUT": $this->handle_xml_query_input($mode); $this->xmlout = new reportico_xml_writer($this); $this->xmlout->prepare_xml_data(); if (array_key_exists("xmlout", $_REQUEST)) { $this->xmlout->write_file($_REQUEST["xmlout"]); } else { $this->xmlout->write(); } break; case "XMLSHOW": $this->handle_xml_query_input($mode); $this->xmlout = new reportico_xml_writer($this); $this->xmlout->prepare_xml_data(); $this->xmlout->write(); break; case "WSDLSHOW": $this->handle_xml_query_input($mode); $this->xmlout = new reportico_xml_writer($this); $this->xmlout->prepare_wsdl_data(); break; case "SOAPSAVE": $this->handle_xml_query_input($mode); $this->xmlout = new reportico_xml_writer($this); $this->xmlout->generate_web_service($this->xmloutfile); break; } $this->handled_initial_settings(); close_reportico_session(); }