Exemplo n.º 1
0
 /**
  * @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();
 }
Exemplo n.º 2
0
     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");