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; }
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."); }
/** * Retourne le nom de l'objet sous-forme de tag XML. * * @return mixed */ public function getXMLTag() { return MyFunction::sluggifyForXML($this->getName()); }
/** * @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); }