assign('selected_table', $selected_table = get_select_1($sql, __LINE__, __FILE__)); //todo tree-type table (dhtmlxtree) //sorting if (@$rewrite[1] == 'sort') { $desc = false; if ($rewrite[3] == 'desc') $desc = true; if ($selected_table['at_sortby'] == $rewrite[2]) $desc = true; $desc = $desc ? ' DESC' : ''; $sql = "UPDATE __admin_tables SET at_sortby = '" . addslashes(@$rewrite[2]) . "$desc' WHERE at_name = '$table_name' LIMIT 1"; executesql($sql, __LINE__, __FILE__); redirect($_SERVER['HTTP_REFERER']); } //showing all columns? if (@$rewrite[1] == 'show') { switch (@$rewrite[2]) { case 'basic': case 'all': $session['columns_show'] = $rewrite[2]; break; } redirect($_SERVER['HTTP_REFERER']); } //get columns for this table $sql = "SELECT * FROM __admin_columns WHERE ac_at_name = '$table_name' ORDER BY ac_order"; $all_columns = get_select($sql, __LINE__, __FILE__); $smarty->assign('all_columns', $all_columns); //if searching $where = array(); $joins = array(); foreach ($all_columns as $k => $v) { $lenam = $v['ac_name']; if (!empty($_GET['search_' . $lenam])) { $liked = addslashes($_GET['search_' . $lenam]); //todo just alphanumeric please if (substr($lenam, -3) != '_id') { //if it is the text $where[] = "$lenam LIKE '$liked%'"; } else { //link the table, search in linked $joins[] = "INNER JOIN {$v['ac_belongs']} ON {$v['ac_at_name']}.{$v['ac_name']} = {$v['ac_belongs']}." . table_prefix($v['ac_belongs']) . 'id'; $where[] = table_rendercolumn($v['ac_belongs']) . " LIKE '$liked%'"; } } } //filtering by url addresses (coming from related items) foreach ($all_columns as $k => $v) { foreach ($rewrite as $kr => $vr) { if ($v['ac_name'] == $vr) { $where[] = "$vr = '" . addslashes($rewrite[$kr + 1]) . "'"; $smarty->assign('filtered_records', true); } } } if (isset($session['searchall']) && (@$_GET['ajax'] != 'true')) { unset($session['searchall']); } //check for search in session - so that pagination follows the search terms if ((!isset($_GET['searchall'])) && (isset($session['searchall']))) { $_GET['searchall'] = $session['searchall']; } //if one field for all searches if (isset($_GET['searchall'])) { $session['searchall'] = $_GET['searchall']; $where2 = array(); foreach ($all_columns as $k => $v) { $lenam = $v['ac_name']; $liked = addslashes($_GET['searchall']); if (substr($lenam, -3) != '_id') { //if it is the text $where2[] = "$lenam LIKE '$liked%'"; } else { //link the table, search in linked $joins[] = "LEFT JOIN {$v['ac_belongs']} ON {$v['ac_at_name']}.{$v['ac_name']} = {$v['ac_belongs']}." . table_prefix($v['ac_belongs']) . 'id'; $where2[] = table_rendercolumn($v['ac_belongs']) . " LIKE '$liked%'"; } } $where[] = '(' . implode(') OR (', $where2) . ')'; } savesession(); if (intval(@$rewrite[1]) > 0) { //show only a specific row $where[] = table_prefix($table_name) . "id = '" . intval(@$rewrite[1]) . "'"; $smarty->assign('only_one_record', true); //get related columns [for reverse links] $sql = "SELECT * FROM __admin_columns LEFT JOIN __admin_tables ON at_name = ac_at_name WHERE ac_belongs = '$table_name'"; $smarty->assign('related_tables', get_select($sql, __LINE__, __FILE__)); } if (sizeof($where) > 0) { $where = 'WHERE (' . implode(') AND (', $where) . ')'; } else { $where = ''; } $joins = implode(' ', $joins); if (!empty($selected_table['at_sortby'])) { $order = "ORDER BY " . $selected_table['at_sortby']; } else { $order = "ORDER BY " . $selected_table['at_display']; } $sql = "SELECT * FROM $table_name $joins $where $order"; //todo:nu merge search pe users pt ca se joineaza de users si da duplicate name/alias if ($table_name == 'products') { paginate($sql, 99);} else { paginate($sql, 20); } //hardcoded $data = get_select($sql, __LINE__, __FILE__); //highlight search foreach ($all_columns as $k => $v) { $lenam = $v['ac_name']; if (!empty($_GET['search_' . $lenam])) { foreach ($data as $k2 => $v2) { $liked = addslashes($_GET['search_' . $lenam]); //todo just alphanumeric please if (substr($lenam, -3) != '_id') { //if it is the text $kto = $v['ac_name']; $data[$k2][$kto] = '' . substr($v2[$kto], 0, strlen($liked)) . '' . substr($v2[$kto], strlen($liked)); } else { //link the table, search in linked $rc = table_rendercolumn($v['ac_belongs']); $data[$k2][$rc] = '' . substr($v2[$rc], 0, strlen($liked)) . '' . substr($v2[$rc], strlen($liked)); //todo: nu se updateaza highlightul din cauza ca re-iau datele din smarty prin {expand... } } } } $smarty->assign('data', $data); ?>