if ($values === null) $values = $this->p();
if (!is_array($values)) $values = [$values];
+ $fct = $this->db()->conf_type('html_edit_row');
+
if (!$add) {
- if ($fct = $this->db()->conf_type('html_edit_row')) {
- } else {
+ if (!$fct) {
$fct = function (&$table,&$values) use ($add) {
$sql = $table->_html_edit_sql($values,$add);
$st = $table->db()->conn->prepare($sql);
return $row;
};
}
- $row = $fct($this,$values,$add);
+ } else {
+ if (!$fct) $fct = function() { return []; };
}
+ $row = $fct($this,$values,$add);
+
// Params
$form_hidden = '';
$url_params = [
// Form
echo '<form class="db edit form-table" method="post" action="'.$form_action.'">'.NB_EOL;
echo '<div class="fields">'.NB_EOL;
- if ( $add or $row) {
+ if ($add or $row) {
if (!empty($row)) $this->db()->table_row_decrypt($this,$row);
# NB 08.01.18 if ($add and !preg_match('/^(null|.*\(.*)?$/',strtolower($field->default))) {
# NB 08.01.18 $row[$name] = $field->default;
+#debug([$name,$row[$name]]);
if ($add) {
$row[$name] = $field->default2str();
return $r;
},
'html_edit_row' => function(&$table,&$values,$add) {
- bye($add);
- $table->db()->ldap->prepare([
- 'base' => $values['dn'],
- ]);
- $row = $table->db()->ldap->fetch();
+ #bye($add);
+
+ # Get row
+ $row = [];
+ if ($add) {
+ foreach (array_keys($table->fields()) as $v) $row[$v] = '';
+ preg_match_all('/objectClass=(\w+)/',$table->sql,$m);
+ $row['objectClass'] = [];
+ foreach ($m[1] as $v) {
+ $row['objectClass'][] = $v;
+ }
+ #debug($row);
+ } else {
+ $table->db()->ldap->prepare([
+ 'base' => $values['dn'],
+ ]);
+ $row = $table->db()->ldap->fetch();
+ }
+
+ # Sort fields
$fields = [];
foreach ($row as $k=>$v) $fields[$k] = 99;
$i = 9; foreach ($table->fields() as $f) {
$fields[$f->name] = $i++;
}
- $fields['dn'] = 0;
- $fields['objectClass'] = 1;
- if ($add) bye($row);
#debug($fields);
+ $fields['objectClass'] = 0;
+ $fields['dn'] = 1;
uksort($row,function ($a,$b) use($fields) { return $fields[$a] >= $fields[$b]; });
- #bye($row);
$table->replace_fields(array_keys($row));
+
+ #if ($add) bye($row);
return $row;
},
'insert' => function(&$table,&$values) {