public function save(Doctrine_Connection $conn = null, $is_clone = null) { if ($conn == null) { $conn = Doctrine_Manager::connection(); } $conn->beginTransaction(); if ($this->isNew()) { if ($this->project_id != null) { $this->nb_joue = 0; } //mise à jour du projet try { $ret = parent::save($conn); $ei_project = $this->updateProject($conn); if ($is_clone == null) { //Si ce n'est pas un clone alors on crée les versions par défaut $ei_version_id = $this->createDefaultVersion($this->getEiUserDefaultPackage(), $conn); $this->saveProfilsForVersions($ei_project, $ei_version_id, $conn); $this->createDefaultEiDataSetFolder($conn); // Création du bloc racine du jeu de données. $rootDataSetStructure = new EiNodeDataSet(); $rootDataSetStructure->setName("Root"); $rootDataSetStructure->setEiScenario($this); $rootDataSetStructure->setProjectId($this->project_id); $rootDataSetStructure->setProjectRef($this->project_ref); $rootDataSetStructure->save($conn); $treeObject = Doctrine_Core::getTable("EiDataSetStructure")->getTree(); $treeObject->createRoot($rootDataSetStructure); } $conn->commit(); } catch (Exception $e) { $conn->rollback(); throw $e; } } else { try { $ret = parent::save($conn); $node = $this->getNode(); $node->setName($this->getNomScenario()); $node->save($conn); $this->ei_node_id = $node->getId(); //$this->createDefaultEiDataSetFolder($conn); $conn->commit(); } catch (Exception $e) { $conn->rollback(); throw $e; } } return $ret; }