/**
  * 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.");
 }
 public function addWhere($field, $operator, $value)
 {
     if ($operator != "IN") {
         $value = $this->connection->quote($value);
     }
     $field = $this->enableFilter($field);
     $field = $this->getAliasedTableFromDQL($field);
     $this->currentQuery->andWhere("{$field} {$operator} {$value}");
     AppKitLogger::verbose("Query after addWhere (%s %s %s) %s ", $field, $operator, $value, $this->currentQuery->getSqlQuery());
 }
 /**
  * @access private
  * Formats the value in this Filter and adds quotes if necessary
  *
  * @author Jannis Moßhammer <*****@*****.**>
  **/
 private function formatValues(Doctrine_Connection $c)
 {
     $value = array();
     if (is_array($this->value)) {
         foreach ($this->value as $v) {
             if (!is_numeric($v)) {
                 $v = $c->quote($v, "string");
             }
             $value[] = $c->quote($v, "decimal");
         }
         return $value;
     } else {
         return $c->quote($this->value, "string");
     }
 }
 private function proceedStep1_5($exists = false)
 {
     if ($exists == true) {
         $this->displayResultStep("Récupération des noeuds fils restant à créer.");
         // Requête SQL permettant de récupérer les noeuds fils à créer.
         $reqSQL = "SELECT en.* FROM ei_node en WHERE type = 'EiDataSetTemplate' AND (SELECT COUNT(*) FROM ei_node WHERE root_id = en.id) = 0;";
         $results = $this->connexion->execute($reqSQL);
         $noeudsFils = $results->fetchAll();
         $this->displayResultStep("Il y a " . count($noeudsFils) . " noeuds fils à créer.");
         // Requête SQL permettant de récupérer les noeuds fils à créer.
         $reqSQL = "SELECT * FROM " . self::$TABLE_TEMPLATES;
         $results = $this->connexion->execute($reqSQL);
         $templatesResults = $results->fetchAll();
         $templates = array();
         foreach ($templatesResults as $templateResult) {
             $templates[$templateResult["ei_data_set_ref_id"]] = $templateResult["id"];
         }
         $this->displayResultStep("Création des noeuds fils.");
         $requeteToInsert = "INSERT INTO ei_node (name, type, obj_id, project_id, project_ref, position, root_id, created_at, updated_at) " . "VALUES (#{NAME}, 'EiDataSet', #{OBJ_ID}, #{PROJECT_ID}, #{PROJECT_REF}, 1, #{ROOT_ID}, NOW(), NOW());";
         $requeteToUpdate = "UPDATE ei_node SET obj_id = #{OBJ_ID} WHERE id = #{EI_NODE_ID};";
         $requeteToUpdate .= "UPDATE ei_data_set SET ei_data_set_template_id = #{TEMPLATE_ID} WHERE id = #{DATA_SET_ID};";
         $requeteGlobale = array();
         foreach ($noeudsFils as $template) {
             if (isset($templates[$template["obj_id"]])) {
                 // Remplacement NODE ID.
                 $tmpRequete = str_replace("#{EI_NODE_ID}", $template["id"], $requeteToUpdate);
                 // Remplacement OBJ ID.
                 $tmpRequete = str_replace("#{OBJ_ID}", $templates[$template["obj_id"]], $tmpRequete);
                 // Remplacement PROJECT ID.
                 $tmpRequete = str_replace("#{PROJECT_ID}", $template["project_id"], $tmpRequete);
                 // Remplacement PROJECT REF.
                 $tmpRequete = str_replace("#{PROJECT_REF}", $template["project_ref"], $tmpRequete);
                 // Remplacement TEMPLATE ID.
                 $tmpRequete = str_replace("#{TEMPLATE_ID}", $templates[$template["obj_id"]], $tmpRequete);
                 // Remplacement DATA SET ID.
                 $tmpRequete = str_replace("#{DATA_SET_ID}", $template["obj_id"], $tmpRequete);
                 // Ajout dans la requête globale.
                 $requeteGlobale[] = $tmpRequete;
                 // Remplacement NODE ID.
                 $tmpRequete = str_replace("#{NAME}", $this->connexion->quote($template["name"]), $requeteToInsert);
                 // Remplacement OBJ ID.
                 $tmpRequete = str_replace("#{OBJ_ID}", $template["obj_id"], $tmpRequete);
                 // Remplacement ROOT ID.
                 $tmpRequete = str_replace("#{ROOT_ID}", $template["id"], $tmpRequete);
                 // Remplacement PROJECT ID.
                 $tmpRequete = str_replace("#{PROJECT_ID}", $template["project_id"], $tmpRequete);
                 // Remplacement PROJECT REF.
                 $tmpRequete = str_replace("#{PROJECT_REF}", $template["project_ref"], $tmpRequete);
                 // Ajout dans la requête globale.
                 $requeteGlobale[] = $tmpRequete;
             } else {
                 $this->displayResultStep("*** Anomalie : Le template n'existe pas pour le jeu de données N°" . $template["obj_id"] . " ***");
             }
         }
         // 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->beginTransaction();
             try {
                 while (count($requeteGlobale) > 0) {
                     $sousRequeteGlobale = array_slice($requeteGlobale, 0, 5);
                     $sousRequete = implode(" ", $sousRequeteGlobale);
                     $this->connexion->execute($sousRequete);
                     array_splice($requeteGlobale, 0, 5);
                 }
                 $this->connexion->commit();
             } catch (Exception $exc) {
                 $this->connexion->rollback();
                 throw $exc;
             }
         }
         // Fin.
         $this->displayResultStep("Processus terminé avec succès.");
     } else {
         $this->displayResultStep("Création des noeuds fils omise.");
     }
     return false;
 }