listDef = $liste;
$this->module = $module;
return true;
}
function getSearchSQL($sql_where = "") {
global $db;
// Hole Config Variablen
$list_name = $this->listDef["name"];
$search_prefix = $this->listDef["search_prefix"];
// speichere Suchanfrage
foreach($this->listDef["item"] as $i) {
$field = $i["field"];
// hat sich die suche geändert
if(isset($_REQUEST[$search_prefix.$field]) and $_REQUEST[$search_prefix.$field] != $_SESSION["search"][$list_name][$search_prefix.$field]) $this->searchChanged = 1;
// suchfeld in session speichern.
if(isset($_REQUEST[$search_prefix.$field])) $_SESSION["search"][$list_name][$search_prefix.$field] = $_REQUEST[$search_prefix.$field];
if($i["formtype"] == "SELECT") {
if(is_array($i['value'])) {
$out = '';
foreach($i['value'] as $k => $v) {
$selected = ($k == $_SESSION["search"][$list_name][$search_prefix.$field])?' SELECTED':'';
$out .= "\r\n";
}
}
$this->searchValues[$search_prefix.$field] = $out;
} else {
$this->searchValues[$search_prefix.$field] = $_SESSION["search"][$list_name][$search_prefix.$field];
}
}
// Speichere Variablen in Objekt zum späteren einparsen in Template
// $this->searchValues = $_SESSION["search"][$list_name];
foreach($this->listDef["item"] as $i) {
$field = $i["field"];
if($_REQUEST[$search_prefix.$field] != '') $sql_where .= " $field ".$i["op"]." '".$i["prefix"].$_REQUEST[$search_prefix.$field].$i["suffix"]."' and";
}
if($sql_where != '') {
$sql_where = substr($sql_where,0,-3);
} else {
$sql_where = "1";
}
return $sql_where;
}
function getPagingSQL($sql_where = "1") {
global $app, $conf;
// Hole Config Variablen
$list_name = $this->listDef["name"];
$search_prefix = $this->listDef["search_prefix"];
$records_per_page = $this->listDef["records_per_page"];
$table = $this->listDef["table"];
// setze page auf null, wenn in session nicht gesetzt
if($_SESSION["search"][$list_name]["page"] == '') $_SESSION["search"][$list_name]["page"] = 0;
// setze page auf wert der request variablen "page"
if(isset($_REQUEST["page"])) $_SESSION["search"][$list_name]["page"] = $_REQUEST["page"];
// page auf 0 setzen, wenn suche sich geändert hat.
if($this->searchChanged == 1) $_SESSION["search"][$list_name]["page"] = 0;
$sql_von = $_SESSION["search"][$list_name]["page"] * $records_per_page;
$record_count = $app->db->queryOneRecord("SELECT count(*) AS anzahl FROM $table WHERE $sql_where");
$pages = intval($record_count["anzahl"] / $records_per_page);
$vars["list_file"] = $this->listDef["file"];
$vars["page"] = $_SESSION["search"][$list_name]["page"];
$vars["last_page"] = $_SESSION["search"][$list_name]["page"] - 1;
$vars["next_page"] = $_SESSION["search"][$list_name]["page"] + 1;
$vars["pages"] = $pages;
$vars["max_pages"] = $pages + 1;
$vars["records_gesamt"] = $record_count["anzahl"];
$vars["page_params"] = $this->listDef["page_params"];
if($_SESSION["search"][$list_name]["page"] > 0) $vars["show_page_back"] = 1;
if($_SESSION["search"][$list_name]["page"] <= $seiten - 1) $vars["show_page_next"] = 1;
$this->pagingValues = $vars;
$this->pagingHTML = $this->getPagingHTML($vars);
$limit_sql = "LIMIT $sql_von, $records_per_page";
return $limit_sql;
}
function getPagingHTML($vars) {
global $app;
$content = '[ |<< ]';
if($vars["show_page_back"] == 1) $content .= '[<< '.$app->lng('Back').'] ';
$content .= ' '.$app->lng('Page').' '.$vars["next_page"].' '.$app->lng('of').' '.$vars["max_pages"].' ';
if($vars["show_page_next"] == 1) $content .= '['.$app->lng('Next').' >>] ';
$content .= '[ >>| ]';
return $content;
}
function getSortSQL() {
global $app, $conf;
// Hole Config Variablen
$sort_field = $this->listDef["sort_field"];
$sort_direction = $this->listDef["sort_direction"];
$sql_sort = '';
if($sort_field != '' && $sort_direction != '') {
$sql_sort = "ORDER BY $sort_field $sort_direction";
}
return $sql_sort;
}
function decode($record) {
if(is_array($record)) {
foreach($this->listDef["item"] as $field) {
$key = $field["field"];
switch ($field['datatype']) {
case 'VARCHAR':
$record[$key] = stripslashes($record[$key]);
break;
case 'TEXT':
$record[$key] = stripslashes($record[$key]);
break;
case 'DATE':
if($val > 0) {
$record[$key] = date($this->dateformat,$record[$key]);
}
break;
case 'INTEGER':
$record[$key] = intval($record[$key]);
break;
case 'DOUBLE':
$record[$key] = $record[$key];
break;
case 'CURRENCY':
$record[$key] = number_format($record[$key], 2, ',', '');
break;
default:
$record[$key] = stripslashes($record[$key]);
}
}
}
return $record;
}
function encode($record) {
if(is_array($record)) {
foreach($this->listDef["item"] as $field) {
$key = $field["field"];
switch ($field['datatype']) {
case 'VARCHAR':
if(!is_array($record[$key])) {
$record[$key] = addslashes($record[$key]);
} else {
$record[$key] = implode($this->tableDef[$key]['separator'],$record[$key]);
}
break;
case 'TEXT':
if(!is_array($record[$key])) {
$record[$key] = addslashes($record[$key]);
} else {
$record[$key] = implode($this->tableDef[$key]['separator'],$record[$key]);
}
break;
case 'DATE':
if($record[$key] > 0) {
list($tag,$monat,$jahr) = explode('.',$record[$key]);
$record[$key] = mktime(0,0,0,$monat,$tag,$jahr);
}
break;
case 'INTEGER':
$record[$key] = intval($record[$key]);
break;
case 'DOUBLE':
$record[$key] = addslashes($record[$key]);
break;
case 'CURRENCY':
$record[$key] = str_replace(",",".",$record[$key]);
break;
}
}
}
return $record;
}
}
?>