/** * @see parent::store() */ function store() { if ($this->_id && $this->_duplicate) { $this->_duplicate = null; return $this->duplicate(); } if ($msg = $this->check()) { return $msg; } $is_new = !$this->_id; if ($is_new) { if ($msg = parent::store()) { return $msg; } // Groupe par défaut if (!$this->_dont_create_default_group) { $ex_group = new CExClassFieldGroup(); $ex_group->name = "Groupe général"; $ex_group->ex_class_id = $this->_id; $ex_group->store(); } $table_name = $this->getTableName(); $query = "CREATE TABLE `{$table_name}` (\n `ex_object_id` INT(11) UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,\n `group_id` INT(11) UNSIGNED NOT NULL,\n \n `object_id` INT(11) UNSIGNED NOT NULL,\n `object_class` VARCHAR(80) NOT NULL,\n \n `reference_id` INT(11) UNSIGNED NOT NULL,\n `reference_class` VARCHAR(80) NOT NULL,\n \n `reference2_id` INT(11) UNSIGNED NOT NULL,\n `reference2_class` VARCHAR(80) NOT NULL,\n\n `additional_id` INT (11) UNSIGNED,\n `additional_class` VARCHAR(80),\n\n `datetime_create` DATETIME,\n `datetime_edit` DATETIME,\n `owner_id` INT(11) UNSIGNED,\n \n INDEX ( `group_id` ),\n INDEX `object` ( `object_class`, `object_id` ),\n INDEX `reference1` ( `reference_class`, `reference_id` ),\n INDEX `reference2` ( `reference2_class`, `reference2_id` ),\n INDEX `additional` ( `additional_class`, `additional_id` ),\n INDEX ( `owner_id` ),\n INDEX ( `datetime_create` )\n ) /*! ENGINE=MyISAM */;"; $ds = $this->_spec->ds; if (!$ds->query($query)) { return "La table '{$table_name}' n'a pas pu être créée (" . $ds->error() . ")"; } } return parent::store(); }
if (!$current_class->_id) { CAppUI::setMsg("Ligne {$line_number} : formulaire non trouvé ({$class})", UI_MSG_WARNING); } continue; } // EX CLASS FIELD GROUP if (!empty($line["group_1"]) && !empty($current_class->_id)) { $current_group = new CExClassFieldGroup(); $group_name = $line["group_1"]; $ds = $current_group->_spec->ds; $where = array("ex_class_id" => $ds->prepare("=%", $current_class->_id), "name" => $ds->prepare("=%", $group_name)); $current_group->loadObject($where); if (!$current_group->_id) { $current_group->name = $group_name; $current_group->ex_class_id = $current_class->_id; if ($msg = $current_group->store()) { CAppUI::setMsg("Ligne {$line_number} : {$msg}", UI_MSG_WARNING); continue; } else { CAppUI::setMsg("{$current_group->_class}-msg-create", UI_MSG_OK); } } } if (empty($current_class->_id) || empty($current_group->_id)) { continue; } $field = new CExClassField(); $field_name = $line["field_name"]; $ds = $field->_spec->ds; $where = array("ex_class_field_translation.std" => $ds->prepare("=%", $field_name), "ex_class.ex_class_id" => $ds->prepare("=%", $current_class->_id)); $ljoin = array("ex_class_field_translation" => "ex_class_field_translation.ex_class_field_id = ex_class_field.ex_class_field_id", "ex_class_field_group" => "ex_class_field_group.ex_class_field_group_id = ex_class_field.ex_group_id", "ex_class" => "ex_class.ex_class_id = ex_class_field_group.ex_class_id");