$var) { $newvars[$name]["id"] = $var; if (!empty($type[$name]) && (($type[$name]=="INDI") || ($type[$name]=="FAM") || ($type[$name]=="SOUR"))) { $gedcom = find_gedcom_record($var, WT_GED_ID); if (empty($gedcom)) { $action="setup"; } if ($type[$name]=="FAM") { if (preg_match("/0 @.*@ INDI/", $gedcom)>0) { $fams = find_sfamily_ids($var); if (!empty($fams[0])) { $gedcom = find_family_record($fams[0], WT_GED_ID); if (!empty($gedcom)) { $vars[$name] = $fams[0]; } else { $action="setup"; } } } } $newvars[$name]["gedcom"] = $gedcom; } } $vars = $newvars; unset($newvars); foreach ($varnames as $indexval => $name) { if (!isset($vars[$name])) { $vars[$name]["id"] = ""; } } $reports=array(); foreach (WT_Module::getActiveReports() as $rep) { foreach ($rep->getReportMenus() as $menu) { if (preg_match('/report=(modules\/[a-z0-9_]+\/[a-z0-9_]+\.xml)/', $menu->link, $match)) { $reports[$match[1]]=$menu->label; } } } if (!empty($report)) { if (!array_key_exists($report, $reports)) { $action = "choose"; } } //-- choose a report to run if ($action=="choose") { print_header(i18n::translate('Choose a report to run')); echo "

\n
\n"; echo "\n"; echo "\n"; echo ""; echo ""; echo ""; echo "\n"; echo ""; echo "
", i18n::translate('Choose a report to run'), "
", i18n::translate('Select report'), "
\n

\n"; print_footer(); } //-- setup report to run elseif ($action=="setup") { print_header(i18n::translate('Enter report values')); if ($ENABLE_AUTOCOMPLETE) { require_once WT_ROOT."js/autocomplete.js.htm"; } //-- make sure the report exists if (!file_exists($report)) { echo "", i18n::translate('File not found.'), " ", $report, "\n"; } else { require_once WT_ROOT."includes/reportheader.php"; $report_array = array(); //-- start the sax parser $xml_parser = xml_parser_create(); //-- make sure everything is case sensitive xml_parser_set_option($xml_parser, XML_OPTION_CASE_FOLDING, false); //-- set the main element handler functions xml_set_element_handler($xml_parser, "startElement", "endElement"); //-- set the character data handler xml_set_character_data_handler($xml_parser, "characterData"); //-- open the file if (!($fp = fopen($report, "r"))) { die("could not open XML input"); } //-- read the file and parse it 4kb at a time while (($data = fread($fp, 4096))) { if (!xml_parse($xml_parser, $data, feof($fp))) { die(sprintf($data."\nXML error: %s at line %d", xml_error_string(xml_get_error_code($xml_parser)), xml_get_current_line_number($xml_parser))); } } xml_parser_free($xml_parser); // Paste Found ID from a pop-up window echo WT_JS_START; ?> var pastefield; function paste_id(value) { pastefield.value=value; } \n"; echo "\n"; echo "\n"; echo ""; echo ""; echo "\n"; $doctitle = trim($report_array["title"]); if (!isset($report_array["inputs"])) { $report_array["inputs"] = array(); } foreach ($report_array["inputs"] as $indexval => $input) { if ($input["name"] == "sources" || $input["name"] != "sources") { if ($input["name"] != "photos" || $MULTI_MEDIA) { // url forced default value ? if (isset($_REQUEST[$input["name"]])) { $input["default"]=$_REQUEST[$input["name"]]; // update doc title for bookmarking $doctitle .= " "; if (strpos($input["name"],"date2")!==false) { $doctitle .= "-"; } $doctitle .= $input["default"]; if (strpos($input["name"],"date1")!==false) { $doctitle .= "-"; } } echo "\n"; } } } ?>
", i18n::translate('Enter report values'), "
", i18n::translate('Selected Report'), "", $report_array["title"], "
\n"; echo "\n"; echo i18n::translate($input["value"]), ""; if (!isset($input["type"])) { $input["type"] = "text"; } if (!isset($input["default"])) { $input["default"] = ""; } if (isset($input["lookup"])) { if ($input["lookup"]=="INDI") { if (!empty($pid)) { $input["default"] = $pid; } else { $input["default"] = check_rootid($input["default"]); } } if ($input["lookup"]=="FAM") { if (!empty($famid)) { $input["default"] = $famid; } else { $famid = find_sfamily_ids(check_rootid($input["default"])); if (empty($famid)) { $famid = find_family_ids(check_rootid($input["default"])); } if (isset($famid[0])) { $input["default"] = $famid[0]; } } } if ($input["lookup"]=="SOUR") { if (!empty($sid)) { $input["default"] = $sid; } } } if ($input["type"]=="text") { echo ""; } if ($input["type"]=="checkbox") { echo ""; } if ($input["type"]=="select") { echo "\n"; } if (isset($input["lookup"])) { echo ""; if ($input["lookup"]=="INDI") { print_findindi_link("pid",""); } elseif ($input["lookup"]=="PLAC") { print_findplace_link($input["name"]); } elseif ($input["lookup"]=="FAM") { print_findfamily_link("famid"); } elseif ($input["lookup"]=="SOUR") { print_findsource_link($input["name"]); } elseif ($input["lookup"]=="DATE") { $text = i18n::translate('Select a date'); if (isset($WT_IMAGES["button_calendar"])) { $Link = "\"".$text."\""; } else { $Link = $text; } ?> " onclick="cal_toggleDate('div_', ''); return false;">
" style="position:absolute;visibility:hidden;background-color:white;layer-background-color:white;">
" alt="PDF" title="PDF" /> " alt="HTML" title="HTML" />
/>
"; echo " "; echo " "; echo "


\n"; echo WT_JS_START, "document.title = \"", $doctitle, "\"", WT_JS_END; } print_footer(); } //-- run the report elseif ($action=="run") { if (strstr($report, "report_singlepage.xml")!==false) { $DEBUG=false; $pedigree=new ReportPedigree(); exit; } //-- load the report generator switch ($output) { case "HTML": header('Content-type: text/html; charset=UTF-8'); require_once WT_ROOT."includes/classes/class_reporthtml.php"; break; case "PDF": default: require_once WT_ROOT."includes/classes/class_reportpdf.php"; break; } //-- start the sax parser $xml_parser = xml_parser_create(); //-- make sure everything is case sensitive xml_parser_set_option($xml_parser, XML_OPTION_CASE_FOLDING, false); //-- set the main element handler functions xml_set_element_handler($xml_parser, "startElement", "endElement"); //-- set the character data handler xml_set_character_data_handler($xml_parser, "characterData"); //-- open the file if (!($fp = fopen($report, "r"))) { die("could not open XML input"); } //-- read the file and parse it 4kb at a time while (($data = fread($fp, 4096))) { if (!xml_parse($xml_parser, $data, feof($fp))) { die(sprintf($data."\nXML error: %s at line %d", xml_error_string(xml_get_error_code($xml_parser)), xml_get_current_line_number($xml_parser))); } } xml_parser_free($xml_parser); }