Subversion Repositories eFlore/Applications.cel

Compare Revisions

Ignore whitespace Rev 1353 → Rev 1354

/trunk/jrest/services/CelWidgetSaisie.php
144,7 → 144,9
}
}
}
$this->taguerObs($obs_a_taguer_ordres);
$obs_a_taguer_ids = $this->obtenirIdsObsPourTableauOrdres($this->utilisateur_id, $obs_a_taguer_ordres);
$this->taguerObs($obs_a_taguer_ids);
$this->taguerImg($img_a_taguer_ids);
} else {
$this->messages[] = "Un nouveau numéro d'ordre d'observation n'a pu être généré.";
210,11 → 212,11
return $dateMysql;
}
 
private function taguerObs($obs_a_taguer_ordres) {
if (count($obs_a_taguer_ordres) > 0) {
private function taguerObs($obs_a_taguer_ids) {
if (count($obs_a_taguer_ids) > 0) {
foreach ($this->tagsObs as $hierarchieTag) {
$tagsALier = explode('>', $hierarchieTag);
$liaisonOk = $this->lierObsAMotsCles($obs_a_taguer_ordres, $tagsALier);
$liaisonOk = $this->lierObsAMotsCles($obs_a_taguer_ids, $tagsALier);
if ($liaisonOk === false) {
$e = "Toutes les observations n'ont pas pu être liées aux mots-clés : $hierarchieTag";
$this->messages[] = $e;
223,20 → 225,20
}
}
 
private function lierObsAMotsCles($observations_ordres, $tags) {
private function lierObsAMotsCles($observations_ids, $tags) {
$idTagParent = self::OBS_RACINE_ID;
$listeIdsTags = array();
foreach ($tags as $tag) {
$tag = $this->nettoyerTag($tag);
//if ($tag != '') {
if ($tag != '') {
$id_mot_cle = $this->ajouterMotCleObs($this->utilisateur_id, $tag, $idTagParent);
/*if ($id_mot_cle !== false) {
if ($id_mot_cle !== false) {
$listeIdsTags[] = $id_mot_cle;
$idTagParent = $id_mot_cle;
}*/
//}
}
}
}
$liaison_ok = true;//$this->lierMotCleObs($this->utilisateur_id, $listeIdsTags, $observations_ordres);
$liaison_ok = $this->lierMotCleObs($this->utilisateur_id, $listeIdsTags, $observations_ids);
return $liaison_ok;
}
 
259,15 → 261,15
$listeIdsTags = array();
foreach ($tags as $tag) {
$tag = $this->nettoyerTag($tag);
//if ($tag != '') {
if ($tag != '') {
$id_mot_cle = $this->ajouterMotCleImg($this->utilisateur_id, $tag, $idTagParent);
/*if ($id_mot_cle !== false) {
if ($id_mot_cle !== false) {
$listeIdsTags[] = $id_mot_cle;
$idTagParent = $id_mot_cle;
}*/
//}
}
}
}
$liaison_ok = true;//$this->lierMotCleImg($this->utilisateur_id, $listeIdsTags, $images_ids);
$liaison_ok = $this->lierMotCleImg($this->utilisateur_id, $listeIdsTags, $images_ids);
return $liaison_ok;
}
 
333,6 → 335,23
$id_obs = (count($resultat) > 0) ? $resultat[0]['id_observation'] : false;
return $id_obs;
}
private function obtenirIdsObsPourTableauOrdres($id_utilisateur, $ordres) {
$id_utilisateur = $this->proteger($id_utilisateur);
$ordres = array_map(array($this,'proteger'), $ordres);
$requete = 'SELECT id_observation '.
'FROM cel_obs '.
"WHERE ce_utilisateur = $id_utilisateur ".
" AND ordre IN (".implode(',',$ordres).") ";
$resultat = $this->executerRequete($requete);
$ids = array();
foreach($resultat as $id) {
$ids[] = $id['id_observation'];
}
return $ids;
}
 
public function nettoyerImagesUploades() {
$dossierStockage = $this->config['cel']['chemin_stockage_temp'].'/';
/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;
}