protected function createObject() { // Проверяем обязательность полей reset($this->fields); while (list($fname, $field) = each($this->fields)) { if ($field['f_required'] && $field['f_relation'] == 2) { if (empty($this->new_parents) && !$this->issetParents()) { $this->newError(40, 'Поле "' . $field['f_name'] . '" обязательно для заполнения!', $fname); } } else { if (($field['f_type'] == 40 || $field['f_type'] == 45) && isset($this->new_prop[$fname]) && empty($this->new_prop[$fname])) { $this->new_prop[$fname] = 0; } else { if ($field['f_required'] && empty($this->new_prop[$fname]) && (empty($this->cur_prop[$fname]) || isset($this->new_prop[$fname]))) { $this->newError(40, 'Поле "' . $field['f_name'] . '" обязательно для заполнения!', $fname); } } } } if ($this->issetErrors() > 0) { return false; } // Основные характеристики объекта $sql = 'INSERT INTO <<objects>> SET o_class_id = "' . $this->class->id() . '", o_name = "' . $this->name . '", o_change_date = "' . date('Y-m-d H:i:s') . '", o_create_date = "' . date('Y-m-d H:i:s') . '";'; $this->id = db::q($sql); if ($this->id === false) { $this->newError(42, 'Ошибка в SQL запросе, при добавлении объекта!'); return false; } // Изменяем данные объекта $fields = ''; if (!empty($this->new_prop)) { while (list($key, $value) = each($this->new_prop)) { if (!$this->isPageField($key) && $key != 'name') { if ($this->fields[$key]['f_type'] != 105) { $fields .= $this->procValue($key, $value); } else { tags::changeTags($value, $this->id); } } } } $fields = substr($fields, 0, strlen($fields) - 2); if (!empty($fields)) { $fields = ', ' . $fields; } $sql = 'INSERT INTO <<__' . $this->class->getSName() . '>> SET obj_id = "' . $this->id . '"' . $fields . ';'; if (db::q($sql) !== false) { /* if (!empty($this->new_prop)) while (list($key, $value) = each ($this->new_prop)) $this->procValue($key, $value); */ while (list($key, $field_id) = each($this->subject)) { $form = new ormMultiForm('subject_list_' . $field_id); $form->process('save_subject', $this->id); } $this->next_prinud = true; $this->changeParents(false); return $this->id; } else { $this->newError(42, 'Ошибка в SQL запросе, при добавлении данных объекта!'); return false; } }