| version 1.77, 2003/04/26 22:13:31 |
version 1.78, 2003/04/28 22:18:36 |
|
|
| * http://www.platon.sk/projects/phpMyEdit/ |
* http://www.platon.sk/projects/phpMyEdit/ |
| */ |
*/ |
| |
|
| /* $Platon: phpMyEdit/phpMyEdit.class.php,v 1.76 2003/04/20 21:39:16 nepto Exp $ */ |
/* $Platon: phpMyEdit/phpMyEdit.class.php,v 1.77 2003/04/26 22:13:31 nepto Exp $ */ |
| |
|
| /* This is a generic table editing program. The table and fields to be |
/* This is a generic table editing program. The table and fields to be |
| edited are defined in the calling program. |
edited are defined in the calling program. |
|
|
| function col_has_values($k) { return isset($this->fdd[$k]['values']) || isset($this->fdd[$k]['values2']); } |
function col_has_values($k) { return isset($this->fdd[$k]['values']) || isset($this->fdd[$k]['values2']); } |
| function col_has_URL($k) { return isset($this->fdd[$k]['URL']) |
function col_has_URL($k) { return isset($this->fdd[$k]['URL']) |
| || isset($this->fdd[$k]['URLprefix']) || isset($this->fdd[$k]['URLpostfix']); } |
|| isset($this->fdd[$k]['URLprefix']) || isset($this->fdd[$k]['URLpostfix']); } |
| |
function col_has_multiple_select($k) |
| |
{ return $this->fdd[$k]['select'] == 'M' && ! $this->fdd[$k]['values']['table']; } |
| |
|
| /* |
/* |
| * functions for indicating whether navigation style is enabled |
* functions for indicating whether navigation style is enabled |
|
|
| } |
} |
| $where[] = '('.join(' OR ', $tmp_where).')'; |
$where[] = '('.join(' OR ', $tmp_where).')'; |
| } else { |
} else { |
| $where[] = sprintf('%s %s %s', $field, $ov['oper'], $ov['value']); |
if (is_array($ov['value'])) { |
| |
$tmp_ov_val = ''; |
| |
foreach ($ov['value'] as $ov_val) { |
| |
strlen($tmp_ov_val) > 0 && $tmp_ov_val .= ' OR '; |
| |
$tmp_ov_val .= sprintf('FIND_IN_SET("%s",%s)', $ov_val, $field); |
| |
} |
| |
$where[] = "($tmp_ov_val)"; |
| |
} else { |
| |
$where[] = sprintf('%s %s %s', $field, $ov['oper'], $ov['value']); |
| |
} |
| } |
} |
| } |
} |
| // Add any coder specified filters |
// Add any coder specified filters |
|
|
| if (in_array('*', $m)) { |
if (in_array('*', $m)) { |
| continue; |
continue; |
| } |
} |
| $qf_op = ''; |
if ($this->col_has_values($k) && $this->col_has_multiple_select($k)) { |
| foreach (array_keys($m) as $key) { |
foreach (array_keys($m) as $key) { |
| if ($qf_op == '') { |
$m[$key] = addslashes($m[$key]); |
| $qf_op = 'IN'; |
} |
| $qf_val = '"'.addslashes($m[$key]).'"'; |
$qo[$this->fqn($k)] = array('value' => $m); |
| $afilter = ' IN ("'.addslashes($m[$key]).'"'; // ) |
} else { |
| } else { |
$qf_op = ''; |
| $afilter = $afilter.',"'.addslashes($m[$key]).'"'; |
foreach (array_keys($m) as $key) { |
| $qf_val .= ',"'.addslashes($m[$key]).'"'; |
if ($qf_op == '') { |
| |
$qf_op = 'IN'; |
| |
$qf_val = '"'.addslashes($m[$key]).'"'; |
| |
$afilter = ' IN ("'.addslashes($m[$key]).'"'; // ) |
| |
} else { |
| |
$afilter = $afilter.',"'.addslashes($m[$key]).'"'; |
| |
$qf_val .= ',"'.addslashes($m[$key]).'"'; |
| |
} |
| |
$this->qfn .= '&'.$l.'['.rawurlencode($key).']='.rawurlencode($m[$key]); |
| } |
} |
| $this->qfn .= '&'.$l.'['.rawurlencode($key).']='.rawurlencode($m[$key]); |
$afilter = $afilter.')'; |
| |
// XXX: $dont_desc and $dont_cols hack |
| |
$dont_desc = isset($this->fdd[$k]['values']['description']); |
| |
$dont_cols = isset($this->fdd[$k]['values']['column']); |
| |
$qo[$this->fqn($k, false, $dont_desc, $dont_cols)] = |
| |
array('oper' => $qf_op, 'value' => "($qf_val)"); // ) |
| } |
} |
| $afilter = $afilter.')'; |
|
| // XXX: $dont_desc and $dont_cols hack |
|
| $dont_desc = isset($this->fdd[$k]['values']['description']); |
|
| $dont_cols = isset($this->fdd[$k]['values']['column']); |
|
| $qo[$this->fqn($k, false, $dont_desc, $dont_cols)] = |
|
| array('oper' => $qf_op, 'value' => "($qf_val)"); // ) |
|
| } else if (isset($mi)) { |
} else if (isset($mi)) { |
| if ($mi == '*') { |
if ($mi == '*') { |
| continue; |
continue; |
| Line 693 function phpMyEdit_form_control(theForm) |
|
| Line 711 function phpMyEdit_form_control(theForm) |
|
| foreach ($required_ar as $field_num) { |
foreach ($required_ar as $field_num) { |
| if ($this->col_has_values($field_num)) { |
if ($this->col_has_values($field_num)) { |
| $condition = 'theForm.%s.selectedIndex == -1'; |
$condition = 'theForm.%s.selectedIndex == -1'; |
| $multiple = $this->fdd[$field_num]['select'] == 'M' |
$multiple = $this->col_has_multiple_select($field_num); |
| && ! $this->fdd[$k]['values']['table']; |
|
| } else { |
} else { |
| $condition = 'phpMyEdit_trim(theForm.%s.value) == ""'; |
$condition = 'phpMyEdit_trim(theForm.%s.value) == ""'; |
| $multiple = false; |
$multiple = false; |
| Line 766 function phpMyEdit_form_control(theForm) |
|
| Line 783 function phpMyEdit_form_control(theForm) |
|
| if ($this->col_has_values($k)) { |
if ($this->col_has_values($k)) { |
| $vals = $this->set_values($k); |
$vals = $this->set_values($k); |
| $selected = @$this->fdd[$k]['default']; |
$selected = @$this->fdd[$k]['default']; |
| $multiple = $this->fdd[$k]['select'] == 'M' && ! $this->fdd[$k]['values']['table']; |
$multiple = $this->col_has_multiple_select($k); |
| $readonly = $this->readonly($k); |
$readonly = $this->readonly($k); |
| $strip_tags = true; |
$strip_tags = true; |
| $escape = true; |
$escape = true; |
| Line 887 function phpMyEdit_form_control(theForm) |
|
| Line 904 function phpMyEdit_form_control(theForm) |
|
| echo '<td class="',$this->getCSSclass('value', null, true, $css_postfix),'">',"\n"; |
echo '<td class="',$this->getCSSclass('value', null, true, $css_postfix),'">',"\n"; |
| if ($this->col_has_values($k)) { |
if ($this->col_has_values($k)) { |
| $vals = $this->set_values($k); |
$vals = $this->set_values($k); |
| $multiple = $this->fdd[$k]['select'] == 'M' && ! $this->fdd[$k]['values']['table']; |
$multiple = $this->col_has_multiple_select($k); |
| $readonly = $this->readonly($k); |
$readonly = $this->readonly($k); |
| $strip_tags = true; |
$strip_tags = true; |
| $escape = true; |
$escape = true; |
| Line 1720 function phpMyEdit_form_control(theForm) |
|
| Line 1737 function phpMyEdit_form_control(theForm) |
|
| } else if ($this->fdd[$fd]['select'] == 'D' || $this->fdd[$fd]['select'] == 'M') { |
} else if ($this->fdd[$fd]['select'] == 'D' || $this->fdd[$fd]['select'] == 'M') { |
| // Multiple fields processing |
// Multiple fields processing |
| // Default size is 2 and array required for values. |
// Default size is 2 and array required for values. |
| $vals = $this->set_values($k, array('*' => '*'), null, true); |
$from_table = ! $this->col_has_values($k) || isset($this->fdd[$k]['values']['table']); |
| |
$vals = $this->set_values($k, array('*' => '*'), null, $from_table); |
| $selected = $mi; |
$selected = $mi; |
| $multiple = $this->fdd[$fd]['select'] == 'M'; |
$multiple = $this->col_has_multiple_select($k); |
| |
$multiple |= $this->fdd[$fd]['select'] == 'M'; |
| $readonly = false; |
$readonly = false; |
| $strip_tags = true; |
$strip_tags = true; |
| $escape = true; |
$escape = true; |