Exemplo n.º 1
0
 /**
  * Publish path
  * Create all needed Entities from JSON structure created by the Editor
  * @param  \Innova\PathBundle\Entity\Path\Path $path
  * @throws \Exception
  * @return boolean
  */
 public function publish(Path $path)
 {
     // We need to publish all linked resources to have a full working Path
     // Start Publishing
     $this->start($path);
     // Store existing steps to remove steps which no longer exist
     $existingSteps = $path->getSteps()->toArray();
     // Publish steps for this path
     $toProcess = !empty($this->pathStructure->steps) ? $this->pathStructure->steps : array();
     /*//echo "JSON steps : <br>\n";var_dump($this->pathStructure->steps);*/
     $publishedSteps = $this->publishSteps(0, null, $toProcess);
     // Clean steps to remove
     $this->cleanSteps($publishedSteps, $existingSteps);
     // flush all steps
     $this->om->flush();
     // replace ids
     $json = $this->replaceStepIds();
     $json = $this->replaceStepConditionId($json);
     $json = $this->replaceCriteriagroupId($json);
     $json = $this->replaceCriteriaId($json);
     //echo "json final :".$json;
     // Re encode updated structure and update Path
     $this->path->setStructure($json);
     // Manage rights
     $this->manageRights();
     // Mark Path as published
     $this->path->setPublished(true);
     $this->path->setModified(false);
     // Persist data
     $this->om->persist($this->path);
     $this->om->flush();
     // End Publishing
     $this->end();
     return true;
 }
Exemplo n.º 2
0
 /**
  * Publish path
  * Create all needed Entities from JSON structure created by the Editor.
  *
  * @param \Innova\PathBundle\Entity\Path\Path $path
  *
  * @throws \Exception
  *
  * @return bool
  */
 public function publish(Path $path)
 {
     // We need to publish all linked resources to have a full working Path
     // Start Publishing
     $this->start($path);
     // Store existing steps to remove steps which no longer exist
     $existingSteps = $path->getSteps()->toArray();
     // Publish steps for this path
     $toProcess = !empty($this->pathStructure->steps) ? $this->pathStructure->steps : [];
     $publishedSteps = $this->publishSteps(0, null, $toProcess);
     // Clean steps to remove
     $this->cleanSteps($publishedSteps, $existingSteps);
     // Flush all created Entities in order to generate their IDs (needed to update the JSON structure of the Path)
     $this->om->flush();
     // Mark Path as published and not modified
     $this->path->setPublished(true);
     $this->path->setModified(false);
     // Re encode updated structure and update Path
     // When the Path is published, the structure is built from generated Entities
     // So we want to do this now to inject Entities IDs into the JSON structure
     $updatedStructure = $this->path->getStructure();
     $this->path->setStructure($updatedStructure);
     // Manage rights
     $this->manageRights();
     // Persist data
     $this->om->persist($this->path);
     $this->om->flush();
     // End Publishing
     $this->end();
     return true;
 }