--- phpMyEdit.class.php 2004-04-16 20:29:24.797955200 +0200 +++ phpMyEdit.class.notices.php 2004-04-17 11:38:23.084467200 +0200 @@ -199,10 +199,10 @@ function view_enabled() { return stristr($this->options, 'V'); } function copy_enabled() { return stristr($this->options, 'P') && $this->add_enabled(); } function tabs_enabled() { return $this->display['tabs'] && count($this->tabs) > 0; } - function hidden($k) { return stristr($this->fdd[$k]['input'],'H'); } - function password($k) { return stristr($this->fdd[$k]['input'],'W'); } - function readonly($k) { return stristr($this->fdd[$k]['input'],'R') || $this->virtual($k); } - function virtual($k) { return stristr($this->fdd[$k]['input'],'V') && $this->col_has_sql($k); } + function hidden($k) { return isset($this->fdd[$k]['input']) && stristr($this->fdd[$k]['input'],'H'); } + function password($k) { return isset($this->fdd[$k]['input']) && stristr($this->fdd[$k]['input'],'W'); } + function readonly($k) { return isset($this->fdd[$k]['input']) && stristr($this->fdd[$k]['input'],'R') || $this->virtual($k); } + function virtual($k) { return isset($this->fdd[$k]['input']) && stristr($this->fdd[$k]['input'],'V') && $this->col_has_sql($k); } function add_operation() { return $this->operation == $this->labels['Add'] && $this->add_enabled(); } function change_operation() { return $this->operation == $this->labels['Change'] && $this->change_enabled(); } @@ -339,7 +339,8 @@ function set_values($field_num, $prepend = null, $append = null, $strict = false) /* {{{ */ { - return (array) $prepend + (array) $this->fdd[$field_num]['values2'] + return (array) $prepend + + (array) (isset($this->fdd[$field_num]['values2']) ? $this->fdd[$field_num]['values2'] : Array()) + (isset($this->fdd[$field_num]['values']['table']) || $strict ? $this->set_values_from_table($field_num, $strict) : array()) @@ -385,8 +386,8 @@ } //$qparts['from'] = "$db.$table.$sel; $qparts['from'] = "$db.$table"; - $qparts['where'] = $this->fdd[$field_num]['values']['filters']; - if ($this->fdd[$field_num]['values']['orderby']) { + $qparts['where'] = isset($this->fdd[$field_num]['values']['filters']) ? $this->fdd[$field_num]['values']['filters'] : ''; + if (isset($this->fdd[$field_num]['values']['orderby']) && $this->fdd[$field_num]['values']['orderby']) { $qparts['orderby'] = $this->fdd[$field_num]['values']['orderby']; } } else { /* simple value extraction */ @@ -416,7 +417,7 @@ || $this->change_operation()) { $ret = 'PMEtable0.'.$this->fds[$field]; } else { - if ($this->fdd[$this->fds[$field]]['values']['description'] && ! $dont_desc) { + if (isset($this->fdd[$this->fds[$field]]['values']['description']) && ! $dont_desc) { $desc = &$this->fdd[$this->fds[$field]]['values']['description']; if (is_array($desc) && is_array($desc['columns'])) { $ret = 'CONCAT('; // ) @@ -445,9 +446,6 @@ } else { $ret = 'PMEtable0.'.$this->fds[$field]; } - // TODO: not neccessary, remove me! - if (is_array($this->fdd[$this->fds[$field]]['values2'])) { - } } return $ret; } /* }}} */ @@ -478,27 +476,27 @@ switch ($parts['type']) { case 'select': $ret = 'SELECT '; - if ($parts['DISTINCT']) + if (isset($parts['DISTINCT']) && $parts['DISTINCT']) $ret .= 'DISTINCT '; $ret .= $parts['select']; $ret .= ' FROM '.$parts['from']; - if ($parts['where'] != '') + if (isset($parts['where']) && $parts['where'] != '') $ret .= ' WHERE '.$parts['where']; - if ($parts['groupby'] != '') + if (isset($parts['groupby']) && $parts['groupby'] != '') $ret .= ' GROUP BY '.$parts['groupby']; - if ($parts['having'] != '') + if (isset($parts['having']) && $parts['having'] != '') $ret .= ' HAVING '.$parts['having']; - if ($parts['orderby'] != '') + if (isset($parts['orderby']) && $parts['orderby'] != '') $ret .= ' ORDER BY '.$parts['orderby']; - if ($parts['limit'] != '') + if (isset($parts['limit']) && $parts['limit'] != '') $ret .= ' LIMIT '.$parts['limit']; - if ($parts['procedure'] != '') + if (isset($parts['procedure']) && $parts['procedure'] != '') $ret .= ' PROCEDURE '.$parts['procedure']; break; case 'update': $ret = 'UPDATE '.$parts['table']; $ret .= ' SET '.$parts['fields']; - if ($parts['where'] != '') + if (isset($parts['where']) && $parts['where'] != '') $ret .= ' WHERE '.$parts['where']; break; case 'insert': @@ -507,7 +505,7 @@ break; case 'delete': $ret = 'DELETE FROM '.$parts['table']; - if ($parts['where'] != '') + if (isset($parts['where']) && $parts['where'] != '') $ret .= ' WHERE '.$parts['where']; break; default: @@ -524,7 +522,7 @@ $join_clause = $this->tb." AS $main_table"; for ($k = 0, $numfds = sizeof($this->fds); $k < $numfds; $k++) { $main_column = $this->fds[$k]; - if($this->fdd[$main_column]['values']['db']) { + if(isset($this->fdd[$main_column]['values']['db'])) { $db = $this->fdd[$main_column]['values']['db']; } else { $db = $this->db; @@ -673,7 +671,7 @@ $ids = array(); $ar = array(); $ar[$this->fqn($k)] = array('oper' => 'LIKE', 'value' => "'$afilter'"); - if (is_array($this->fdd[$k]['values2'])) { + if (isset($this->fdd[$k]['values2']) && is_array($this->fdd[$k]['values2'])) { foreach ($this->fdd[$k]['values2'] as $key => $val) { if (strlen($m) > 0 && stristr($val, $m)) { $ids[] = '"'.addslashes($key).'"'; @@ -756,8 +754,8 @@ if ($this->add_operation() || $this->change_operation() || $this->copy_operation()) { $first_required = true; for ($k = 0; $k < $this->num_fds; $k++) { - if ($this->displayed[$k] && ! $this->readonly($k) && ! $this->hidden($k) - && ($this->fdd[$k]['js']['required'] || isset($this->fdd[$k]['js']['regexp']))) { + if ($this->displayed[$k] && ! $this->readonly($k) && ! $this->hidden($k) && isset($this->fdd[$k]['js']) + && ((isset($this->fdd[$k]['js']['required']) && $this->fdd[$k]['js']['required']) || isset($this->fdd[$k]['js']['regexp']))) { if ($first_required) { $first_required = false; echo '