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;
     }
 }
Beispiel #2
0
 public function getCampaignRoot(EiCampaign $ei_campaign)
 {
     $this->ei_campaign_root = $ei_campaign->getRootCampaign();
 }