Subversion Repositories eFlore/Applications.cel

Compare Revisions

Ignore whitespace Rev 2046 → Rev 2045

/trunk/jrest/lib/LiaisonMotsCles.php
89,7 → 89,7
public function supprimerToutesLiaisonsPourChemins($id_utilisateur, $chemins) {
$gestion_mots_cles = new GestionMotsClesChemin($this->config, $this->mode);
$ids_elements_lies = $gestion_mots_cles->obtenirIdElementsLiesPourChemins($chemins, $id_utilisateur);
$ids_elements_lies = $gestion_mots_cles->obtenirIdElementsLiesPourChemins($chemins);
foreach($ids_elements_lies as $id_element_lie) {
self::regenererIndexTexteMotCle($id_element_lie['id_element_lie'], $this->mode);
/trunk/jrest/lib/GestionMotsClesChemin.php
32,7 → 32,57
$this->table_mots_cles = 'cel_arbre_mots_cles_images';
}
}
public function construireRequeteOr($mots_cles) {
return $this->construireRequete($mots_cles, 'OR');
}
public function construireRequeteCheminOr($mots_cles) {
return $this->construireRequeteChemin($mots_cles, 'OR');
}
public function construireRequeteAnd($mots_cles) {
return $this->construireRequete($mots_cles, 'AND');
}
public function construireRequeteCheminAnd($mots_cles) {
return $this->construireRequeteChemin($mots_cles, 'AND');
}
public function construireRequete($mots_cles, $operateur = 'AND') {
$criteres = array();
$premier = array_pop($mots_cles);
$requete = "SELECT * FROM ".$this->table_liaison." lmc ".
"INNER JOIN ".$this->table_mots_cles." mc ".
"ON mc.tag = ".Cel::db()->proteger($premier)." AND lmc.id_mot_cle = mc.id_mot_cle ";
foreach ($mots_cles as $mot_cle) {
$requete .= " ".$operateur." id_element_lie IN (SELECT id_element_lie FROM ".$this->table_liaison." lmc ".
"INNER JOIN ".$this->table_mots_cles." mc ".
"ON mc.tag = ".Cel::db()->proteger($mot_cle)." AND lmc.id_mot_cle = mc.id_mot_cle ".
") ";
}
 
$images = Cel::db()->requeter($requete);
return $images;
}
private function construireRequeteChemin($mots_cles, $operateur = 'AND') {
$criteres = array();
$premier = array_pop($mots_cles);
$requete = "SELECT * FROM ".$this->table_liaison." lmc ".
"INNER JOIN ".$this->table_mots_cles." mc ".
"ON mc.chemin LIKE ".Cel::db()->proteger('%'.$premier.'%')." AND lmc.id_mot_cle = mc.id_mot_cle ";
foreach ($mots_cles as $mot_cle) {
$requete .= " ".$operateur." id_element_lie IN (SELECT id_element_lie FROM ".$this->table_liaison." lmc ".
"INNER JOIN ".$this->table_mots_cles." mc ".
"ON mc.chemin LIKE ".Cel::db()->proteger('%'.$mot_cle.'%')." AND lmc.id_mot_cle = mc.id_mot_cle ".
") ";
}
$images = Cel::db()->requeter($requete);
return $images;
}
public function obtenirArbre($id_utilisateur, $chemin = "/") {
$requete = "SELECT * FROM ".$this->table_mots_cles." ".
"WHERE id_utilisateur = ".Cel::db()->proteger($id_utilisateur)." AND ".
203,22 → 253,6
return $suppression;
}
public function supprimerLiaisonPourMotCleEtIdElementLie($mot_cle, $id_element_lie, $id_utilisateur) {
// supprime toutes les laisons pour un utilisateur et un mot clé (au sens textuel) donnés
$requete = "DELETE FROM ".$this->table_liaison." ".
"WHERE id_element_lie = ".Cel::db()->proteger($id_element_lie)." ".
"AND id_mot_cle IN (".
"SELECT id_mot_cle FROM ".$this->table_mots_cles." ".
"WHERE mot_cle = ".Cel::db()->proteger($mot_cle)." ".
"AND id_utilisateur = ".Cel::db()->proteger($id_utilisateur)." ".
")";
 
$suppression_liaison = Cel::db()->executerRequeteSimple($requete.' -- '.__FILE__.':'.__LINE__);
$suppression_liaison = ($suppression_liaison !== false);
 
return $suppression_liaison;
}
public function renommerMotCle($id_mot_cle, $nouveau_nom) {
$requete_ancien_chemin = 'SELECT chemin, id_utilisateur FROM '.$this->table_mots_cles.' '.
348,7 → 382,7
}
public function obtenirIdElementsLiesPourChemins($chemins, $id_utilisateur) {
public function obtenirIdElementsLiesPourChemins($chemins) {
foreach($chemins as &$chemin) {
$chemin = Cel::db()->proteger(self::harmoniserChemin($chemin));
}
355,8 → 389,7
$requete = 'SELECT id_element_lie FROM '.$this->table_liaison.' cl '.
'INNER JOIN '.$this->table_mots_cles.' cm '.
'ON cm.id_mot_cle = cl.id_mot_cle AND chemin IN ('.implode(',', $chemin).') '.
' AND cm.id_utilisateur = '.Cel::db()->proteger($id_utilisateur);
'ON cm.id_mot_cle = cl.id_mot_cle AND chemin IN ('.implode(',', $chemin).')';
$ids_pour_chemin = Cel::db()->executer($requete.' -- '.__FILE__.':'.__LINE__);
/trunk/jrest/services/CelValidationObservation.php
49,10 → 49,11
 
$modification = $gestion_observation->modifierObservationPublique($utilisateur, $id, $pairs);
if($modification) {
$gestion_mots_cles = new GestionMotsClesChemin($this->config, 'obs');
// supression des éventuelles liaison de l'obs avec le mot clé contenu dans obsKeywordDelete
$supp_liaison_mot_cle = $gestion_mots_cles->supprimerLiaisonPourMotCleEtIdElementLie($obsKeywordDelete, $id, $utilisateur);
// TODO : quel impact de la valeur de retour ?
// quel impact de ces valeurs de retour ?
if($kid = InventoryKeyWordList::getMotsClefId($utilisateur, 'obs', $obsKeywordDelete))
InventoryKeyWordObsLink::unlinkKeyword($this->config, 'obs', explode(',', $id), $utilisateur, $kid);
/* if($kid = InventoryKeyWordList::getMotsClefId($utilisateur, 'images', $imgKeywordDelete))
InventoryKeyWordObsLink::unlinkKeyword($this->config, 'obs', explode(',', $id), $utilisateur, $kid); */
header("Content-Type: text/plain; charset=utf-8");
die("OK"); // attention, compatibilité avec ValiderDetermination.php de DEL !
}