public function createRootFolderIfNew(Doctrine_Connection $conn = null) { if ($conn == null) { $conn = Doctrine_Manager::connection(); } try { $conn->beginTransaction(); $root_folder = new EiFolder(); $root_folder->setProjectId($this->getProjectId()); $root_folder->setProjectRef($this->getRefId()); $root_folder->setName('Root'); $root_folder->save($conn); $root_node = new EiNode(); $root_node->setProjectId($this->getProjectId()); $root_node->setProjectRef($this->getRefId()); $root_node->setObjId($root_folder->getId()); $root_node->setName('Root'); $root_node->setType('EiFolder'); $root_node->setPosition(1); $root_node->setIsRoot(true); $root_node->setIsShortcut(false); $root_node->setRootId(Null); $root_node->save($conn); $conn->commit(); } catch (Exception $e) { $conn->rollback(); throw $e; } }
/** * Copie le noeud du scenario. * @param EiScenario $copie * @param type $conn * @throws Exception */ private function createNodeCopie(EiScenario $copie, $conn) { try { $root_folder = $this->getNode(); $ei_node = new EiNode(); $ei_node->setProjectId($this->getProjectId()); $ei_node->setProjectRef($this->getProjectRef()); $ei_node->setName($copie->getNomScenario()); $ei_node->setPosition(Doctrine_Core::getTable('EiNode')->getLastPositionInNode($this->getProjectId(), $this->getProjectRef(), $root_folder->getRootId())); $ei_node->setIsRoot(false); $ei_node->setIsShortcut(false); $ei_node->setRootId($root_folder->getRootId()); $ei_node->setType("EiScenario"); $copie->setEiNode($ei_node); $copie->save($conn, true); //$copie->createDefaultEiDataSetFolder($conn); $ei_node->setObjId($copie->getId()); $copie->save($conn, true); } catch (Exception $e) { throw $e; } }