public function createStepAsRoot(EiCampaign $current_campaign, EiCampaignGraph $new_root, Doctrine_Connection $conn = null) { if ($conn == null) { $conn = Doctrine_Manager::connection(); } try { $conn->beginTransaction(); //throw new Exception($current_campaign->getId()); if (!$new_root->isNew()) { $new_root1 = $new_root->copy(); $new_root->delete($conn); $new_root = $new_root1; } $ei_campaign_root = $current_campaign->getRootCampaign(); //Si la campagne a déjà un root , on le change , sinn on l'ajoute if ($ei_campaign_root instanceof EiCampaignGraph) { //Le root existe, on le change $new_root->save($conn); //Ajout de la relation père-fils $new_relation = new EiCampaignGraphHasGraph(); $new_relation->setParentId($new_root->getId()); $new_relation->setChildId($ei_campaign_root->getId()); $new_relation->setCampaignId($current_campaign->getId()); $new_relation->save($conn); $conn->commit(); return $new_root; } else { //On crèe le noeud comme root if ($ei_campaign_root == null) { $new_root->save($conn); $conn->commit(); return $new_root; } $conn->close(); return null; } } catch (Exception $e) { $conn->rollback(); throw $e; } }
public function getCampaignRoot(EiCampaign $ei_campaign) { $this->ei_campaign_root = $ei_campaign->getRootCampaign(); }