public function execute($arguments = array(), $options = array())
 {
     $databaseManager = new sfDatabaseManager(sfProjectConfiguration::getApplicationConfiguration('frontend', $options['env'], true));
     $configuration = ProjectConfiguration::getApplicationConfiguration('frontend', $options['env'], true);
     sfContext::createInstance($configuration);
     $conn = Doctrine_Manager::connection();
     // Récupération de toutes les notices.
     $noeuds = $conn->execute("SELECT id, name FROM ei_data_set_structure;");
     $this->log('Récupération des noeuds...OK');
     // Création de la requête permettant
     $this->log('Création de la requête de mise à jour...');
     $requeteToUpdate = "UPDATE ei_data_set_structure SET slug = #{NEW_SLUG} WHERE id = #{NODE_ID};";
     $requeteGlobale = array();
     foreach ($noeuds->fetchAll() as $noeud) {
         // Remplacement SLUG.
         $tmpRequete = str_replace("#{NEW_SLUG}", $conn->quote(MyFunction::sluggifyForXML($noeud["name"])), $requeteToUpdate);
         // Remplacement ID.
         $tmpRequete = str_replace("#{NODE_ID}", $noeud["id"], $tmpRequete);
         // Ajout dans la requête globale.
         $requeteGlobale[] = $tmpRequete;
     }
     // Préparation de la requête.
     $this->log("Préparation de la requête...");
     $requete = implode(" ", $requeteGlobale);
     try {
         // Exécution de la requête.
         $this->log("Exécution de la requête...");
         $conn->execute($requete);
         // Fin.
         $this->log("Processus terminé avec succès.");
     } catch (Exception $exc) {
         $this->log($exc->getMessage());
     }
 }
 /**
  * Permet de définir si le formulaire de paramètre pour les jeux de données est valide ou non.
  *
  * @param type $values
  * @return type
  * @throws sfValidatorErrorSchema 
  */
 protected function doClean($values)
 {
     $errorSchema = new sfValidatorErrorSchema($this);
     $name = MyFunction::sluggifyForXML($values['name']);
     $id = isset($values["id"]) ? $values["id"] : -1;
     if ($this->str->getEiDatasetStructureParentId()) {
         /** @var Doctrine_Collection $existing */
         $existing = Doctrine_Core::getTable('EiDataSetStructure')->findByEiDatasetStructureParentIdAndSlug($this->str->getEiDatasetStructureParentId(), $name);
         /** @var EiDataSetStructure $node */
         foreach ($existing as $key => $node) {
             if ($node->getId() == $id) {
                 $existing->remove($key);
             }
         }
     } else {
         $existing = Doctrine_Core::getTable('EiDataSetStructure')->findByEiDatasetStructureParentIdAndSlug("is null", $name);
     }
     if ($existing->count() > 0 && $this->isNew || $existing->count() >= 1 && !$this->isNew) {
         $errorSchema->addError(new sfValidatorError($this, 'name'), 'name');
     }
     // si l'on a trouvé des erreurs, alors on transmet une exception
     if (count($errorSchema)) {
         throw new sfValidatorErrorSchema($this, $errorSchema);
     }
     return $values;
 }
 /**
  * Permet de définir si le formulaire de paramètre pour les versions est valide ou non
  * @param type $values
  * @return type
  * @throws sfValidatorErrorSchema 
  */
 protected function doClean($values)
 {
     $errorSchema = new sfValidatorErrorSchema($this);
     $name = MyFunction::sluggifyForXML($values['name']);
     try {
         $tag = new DOMElement($name);
     } catch (Exception $e) {
         $errorSchema->addError(new sfValidatorError($this, 'name'), 'name');
     }
     // si l'on a trouvé des erreurs, alors on transmet une exception
     if (count($errorSchema)) {
         throw new sfValidatorErrorSchema($this, $errorSchema);
     }
     return $values;
 }
 /**
  * Permet de définir si le formulaire de paramètre pour les versions est valide ou non
  * @param type $values
  * @return type
  * @throws sfValidatorErrorSchema 
  */
 protected function doClean($values)
 {
     $errorSchema = new sfValidatorErrorSchema($this);
     $name = MyFunction::sluggifyForXML($values['name']);
     $id = isset($values["id"]) ? $values["id"] : -1;
     /** @var EiVersionStructureTable $tableVersionStr */
     $tableVersionStr = Doctrine_Core::getTable("EiVersionStructure");
     if ($this->str->getEiVersionStructureParentId()) {
         $existing = $tableVersionStr->findByEiVersionStructureParentIdAndSlug($this->str->getEiVersionStructureParentId(), $name);
         /** @var Doctrine_Collection $existing */
         if ($existing->count() > 0 && $this->isNew == false) {
             // On retire l'élément si présent dans la liste.
             foreach ($existing as $key => $elt) {
                 if ($elt->getId() == $this->str->getId()) {
                     $existing->remove($key);
                 }
             }
         }
     } else {
         $existing = $tableVersionStr->findByEiVersionStructureParentIdAndSlug("is null", $name);
     }
     $count = $existing->count();
     if ($count > 0 && $this->isNew || $count >= 1 && !$this->isNew) {
         $errorSchema->addError(new sfValidatorError($this, 'name'), 'name');
     }
     // ON VERIFIE S'IL S'AGIT D'UN BLOC FOREACH QU'UN NOEUD SOIT RENSEIGNE.
     if ($this->str instanceof EiBlockForeach) {
         if (isset($values["Iterator"]) && $values["Iterator"] != null && isset($values["Iterator"]["ei_dataset_structure_id"])) {
             $idNode = $values["Iterator"]["ei_dataset_structure_id"];
             /** @var EiNodeDataSet $node */
             $node = Doctrine_Core::getTable("EiNodeDataSet")->find($idNode);
             if (!$node) {
                 $errorSchema->addError(new sfValidatorError($this, 'iterator_invalid'), 'iterator');
             } elseif (!($node->getType() == EiDataSetStructure::$TYPE_NODE && !$node->isRoot())) {
                 $errorSchema->addError(new sfValidatorError($this, 'iterator_type_invalid'), 'iterator');
             }
         } else {
             $errorSchema->addError(new sfValidatorError($this, 'iterator_empty'), 'iterator');
         }
     }
     // si l'on a trouvé des erreurs, alors on transmet une exception
     if (count($errorSchema)) {
         throw new sfValidatorErrorSchema($this, $errorSchema);
     }
     return $values;
 }
Exemplo n.º 5
0
 public function save(Doctrine_Connection $conn = null)
 {
     $this->setSlug(MyFunction::sluggifyForXML($this->getName()));
     parent::save($conn);
     // TODO: Change the autogenerated stub
 }
 /**
  * Création des SLUGs.
  */
 private function proceedStep2_5()
 {
     // Récupération de toutes les notices.
     $noeuds = $this->connexion->execute("SELECT id, name FROM ei_version_structure WHERE type != '" . EiVersionStructure::$TYPE_FONCTION . "';")->fetchAll();
     $this->displayResultStep('Récupération des ' . count($noeuds) . ' éléments de versions de structures.');
     // Création de la requête permettant
     $this->displayResultStep('Création de la requête de mise à jour...');
     $requeteToUpdate = "UPDATE ei_version_structure SET slug = #{NEW_SLUG} WHERE id = #{NODE_ID};";
     $requeteGlobale = array();
     foreach ($noeuds as $noeud) {
         // Remplacement SLUG.
         $tmpRequete = str_replace("#{NEW_SLUG}", $this->connexion->quote(MyFunction::sluggifyForXML($noeud["name"])), $requeteToUpdate);
         // Remplacement ID.
         $tmpRequete = str_replace("#{NODE_ID}", $noeud["id"], $tmpRequete);
         // Ajout dans la requête globale.
         $requeteGlobale[] = $tmpRequete;
     }
     // Préparation de la requête.
     $this->displayResultStep("Préparation de la requête...");
     $requete = implode(" ", $requeteGlobale);
     // Exécution de la requête.
     $this->displayResultStep("Exécution de la requête...");
     if (strlen($requete) > 5) {
         $this->connexion->execute($requete);
     }
     // Fin.
     $this->displayResultStep("Processus terminé avec succès.");
 }
Exemplo n.º 7
0
 /**
  * Retourne le nom de l'objet sous-forme de tag XML.
  *
  * @return mixed
  */
 public function getXMLTag()
 {
     return MyFunction::sluggifyForXML($this->getName());
 }
Exemplo n.º 8
0
 /**
  * @param Doctrine_Connection $conn
  */
 public function save(Doctrine_Connection $conn = null)
 {
     // On détermine le slug de l'élément.
     $this->setSlug(MyFunction::sluggifyForXML($this->getName()));
     // On sauvegarde le block.
     parent::save($conn);
 }