function tableinfo($db, $realname = false, $id = false) { global $_GET; if ($id) { $r = $db->Execute("SELECT id,shortname,tablename,real_tablename,table_desc_name,label FROM tableoftables WHERE id='{$id}'"); } elseif ($realname) { $r = $db->Execute("SELECT id,shortname,tablename,real_tablename,table_desc_name,label FROM tableoftables WHERE real_tablename='{$realname}'"); } else { $stmt = 'SELECT id, shortname, tablename, real_tablename, table_desc_name, label FROM tableoftables WHERE tablename=?'; $r = $db->Execute($stmt, array($_GET['tablename'])); } $this->id = $r->fields['id']; $this->short = $r->fields['shortname']; $this->realname = $r->fields['real_tablename']; $this->name = $r->fields['tablename']; $this->htmlname = str_replace(' ', '%20', htmlentities($r->fields['tablename'])); $this->label = $r->fields['label']; $this->desname = $r->fields['table_desc_name']; $this->fields = comma_array_SQL($db, $this->desname, 'columnname'); }
/** * * * return a single entry for a report * */ function test_report($db, $offset, $tablename) { global $_POST, $_GET, $system_settings; $_GET['tablename'] = $tablename; $tableinfo = new tableinfo($db); $real_tablename = get_cell($db, "tableoftables", "real_tablename", "tablename", $tablename); $reportid = $_POST["report_id"][$offset]; $r = $db->Execute("SELECT * FROM {$real_tablename}"); $fields = comma_array_SQL($db, $tableinfo->desname, "columnname"); $Allfields = getvalues($db, $tableinfo, $fields, "id", $r->fields["id"]); $tp = @fopen($system_settings["templatedir"] . "/{$reportid}.tpl", "r"); if ($tp) { while (!feof($tp)) { $template .= fgets($tp, 64000); } fclose($tp); } require './includes/report_inc.php'; $report = make_report($db, $template, $Allfields, $tableinfo, 1); return $report; }
if (!$fp) { echo "<h3 align='center'>Failed to open <i>{$outfile}</i> for output</h3>\n"; printfooter($db, $USER); } $ff = fopen($filetable, 'w'); if (!$ff) { echo "<h3 align='center'>Failed to open <i>{$filetable}</i> for output</h3>\n"; printfooter($db, $USER); } // write the column headers for the temp file table fwrite($ff, "id\tname\tmime\tsize\ttype\n"); if (!$fields) { if ($_GET['fields']) { $fields = 'id,' . $_GET['fields']; } else { $fields = 'id,' . comma_array_SQL($db, $tableinfo->desname, 'columnname'); } } else { $fields = 'id,' . $fields; } // we might have accidentaly added an extra id, delete that here: $fields = preg_replace('/,id/', '', $fields); $headers = getvalues($db, $tableinfo, $fields); if ($_GET['valuesOnly']) { $valuesOnly = true; } foreach ($headers as $header) { if ($header['label']) { fwrite($fp, $pre_seperator . $header['label'] . $post_seperator); } else { fwrite($fp, $pre_seperator . 'id' . $post_seperator);
$viewid = $USER['settings']['view']["{$tableinfo->name}"]; } if (isset($_GET['viewid']) && is_numeric($_GET['viewid'])) { $viewid = $_GET['viewid']; } elseif (isset($_POST['viewid']) && is_numeric($_POST['viewid'])) { $viewid = $_POST['viewid']; } // Activate selected view or default if ($viewid) { // get list from preferences in table tableviews $Fieldscomma = viewlist($db, $tableinfo, $viewid); // write viewid back to user preferences $USER['settings']['view'][$tableinfo->name] = $viewid; } else { // read all fields in from the description file $Fieldscomma = comma_array_SQL($db, $tableinfo->desname, columnname, "WHERE display_table='Y'"); // release viewid we remembered if (isset($USER['settings']['view'][$tableinfo->name])) { unset($USER['settings']['view'][$tableinfo->name]); } } // some browsers (Safari!!) do not return GET variables from a form using method='GET' // but they return them as POST!!! // I added the GET variable copyPOST to the form to try to work around this browser bug // this penalizes server execution time for browsers (Firefox) that play fair if (array_key_exists('copyPOST', $_GET) && $_GET['copyPOST']) { foreach ($_POST as $key => $value) { $_GET[$key] = $value; } } // Activate selected report output or default