Subversion Repositories eFlore/Applications.cel

Compare Revisions

Ignore whitespace Rev 1353 → Rev 1354

/trunk/jrest/services/CelMotCle.php
42,13 → 42,13
public function lierMotCleObs($utilisateur_id, Array $mots_cles_ids, Array $ids) {
$this->suffix = self::OBS_TABLE_SUFFIXE;
$this->utilisateur_id = $utilisateur_id;
return $this->lierMotCle($utilisateur_id, $mots_cles_ids, $id);
return $this->lierMotCle($utilisateur_id, $mots_cles_ids, $ids);
}
public function lierMotCleImg($utilisateur_id, Array $mots_cles_ids, Array $ids) {
$this->suffix = self::IMG_TABLE_SUFFIXE;
$this->utilisateur_id = $utilisateur_id;
return $this->lierMotCle($utilisateur_id, $mots_cles_ids, $id);
return $this->lierMotCle($utilisateur_id, $mots_cles_ids, $ids);
}
/**
94,7 → 94,6
$this->logger('CEL_bugs', $e);
$this->messages[] = $e;
}
 
} else {
$this->messages[] = "Le tableau des ordres des obs ne contenait pas que des nombres entiers.";
}
114,49 → 113,26
 
private function regenererIndexTexteMotCle($id) {
$ok = false;
$mots_cles_ids = $this->obtenirIdsMotsClesConcatenes($id);
if ($mots_cles_ids) {
$mots_cles = $this->obtenirMotClesTexte($mots_cles_ids);
$mots_cles_concatenes = $this->concatenerMotsCles($mots_cles);
$ok = $this->mettreAJourMotsClesConcatenes($mots_cles_concatenes, $id);
}
$mots_cles = $this->obtenirMotsClesTexte($id);
$mots_cles_concatenes = $this->concatenerMotsCles($mots_cles);
$ok = $this->mettreAJourMotsClesConcatenes($mots_cles_concatenes, $id);
return $ok;
}
 
private function obtenirIdsMotsClesConcatenes($id) {
$utilisateur_id = $this->proteger($this->utilisateur_id);
private function obtenirMotsClesTexte($id_image_ou_obs) {
$requete = 'SELECT mot_cle '.
'FROM '.'cel_mots_cles'.$this->suffix.' '.
'WHERE id_mot_cle_'.(($this->suffix == self::OBS_TABLE_SUFFIXE) ? 'obs' : 'image').' IN '.
'('.
'SELECT id_mot_cle_'.(($this->suffix == self::OBS_TABLE_SUFFIXE) ? 'obs' : 'image').' '.
'FROM cel'.$this->suffix.'_mots_cles '.
'WHERE '.(($this->suffix == self::OBS_TABLE_SUFFIXE) ? 'id_observation' : 'id_image').' = '.$this->proteger($id_image_ou_obs).
')';
 
$requete = 'SELECT mots_cles '.
'FROM cel_inventory '.
"WHERE ordre = $ordre ".
" AND identifiant = $utilisateur_id ";
$resultat = $this->recupererResultat($requete);
 
$mots_cles_ids = false;
if ($resultat) {
$mots_cles_ids = $resultat['mots_cles'];
}
return $mots_cles_ids;
$resultats = $this->requeter($requete);
return $resultats;
}
 
private function obtenirMotClesTexte($mot_cle_ids) {
$mot_cle_ids_in = $this->formaterIdsMotClePourClauseInSql($mot_cle_ids);
$utilisateur_id = $this->proteger($this->utilisateur_id);
 
$requete = 'SELECT mot_cle '.
'FROM cel_mots_cles_obs '.
"WHERE cmc_id_mot_cle_utilisateur IN ($mot_cle_ids_in) ".
" AND id_utilisateur = $utilisateur_id ";
$resultats = $this->recupererResultats($requete);
$mots_cles = array();
if ($resultats) {
foreach ($resultats as $mot_cle) {
$mots_cles[] = $mot_cle['mot_cle'];
}
}
return $mots_cles;
}
 
private function formaterIdsMotClePourClauseInSql($mot_cle_ids) {
$mot_cle_ids = $this->nettoyerMotsCles($mot_cle_ids);
$mot_cle_ids = str_replace(self::SEPARATEUR_MOT_CLE_ID_OBS, ',', $mot_cle_ids);
165,44 → 141,25
return $mot_cle_ids_proteges;
}
 
private function concatenerMotsClesIdsObs(Array $mots_cles_ids) {
return $this->concatenerMotsClesIds($mots_cles_ids, self::SEPARATEUR_MOT_CLE_ID_OBS);
}
 
private function concatenerMotsClesIdsImg(Array $mots_cles_ids) {
return $this->concatenerMotsClesIds($mots_cles_ids, self::SEPARATEUR_MOT_CLE_ID_IMG);
}
 
private function concatenerMotsClesIds(Array $mots_cles_ids, $separateur) {
$mots_cles_ids_concatenes = '';
if (count($mots_cles_ids) > 0) {
foreach ($mots_cles_ids as $mot_cle_id) {
$mots_cles_ids_concatenes .= $this->nettoyerMotsCles($mot_cle_id).$separateur;
}
}
return $mots_cles_ids_concatenes;
}
 
private function concatenerMotsCles(Array $mots_cles) {
$mot_cles_concatenes = '';
if (count($mots_cles) > 0) {
foreach ($mots_cles as $mot_cle) {
$mot_cles_concatenes .= $mot_cle.self::SEPARATEUR_MOT_CLE_TEXTE;
$mot_cles_concatenes .= $mot_cle['mot_cle'].self::SEPARATEUR_MOT_CLE_TEXTE;
}
}
$mot_cles_concatenes = rtrim($mot_cles_concatenes, self::SEPARATEUR_MOT_CLE_TEXTE);
 
return $mot_cles_concatenes;
}
 
private function mettreAJourMotsClesConcatenes($mots_cles, $ordre) {
private function mettreAJourMotsClesConcatenes($mots_cles, $id) {
$mots_cles = $this->proteger($mots_cles);
$utilisateur_id = $this->proteger($this->utilisateur_id);
 
$requete = 'UPDATE cel_inventory '.
$requete = 'UPDATE cel'.$this->suffix." ".
"SET mots_cles_texte = $mots_cles ".
"WHERE ordre = $ordre ".
" AND identifiant = $utilisateur_id ";
"WHERE id_".(($this->suffix == self::OBS_TABLE_SUFFIXE) ? 'observation' : 'image')." = $id ";
 
$ok = $this->executer($requete) ? true : false;
return $ok;
}