Subversion Repositories eFlore/Applications.cel

Compare Revisions

Ignore whitespace Rev 1895 → Rev 1896

/trunk/jrest/services/CelMotCle.php
44,13 → 44,13
$this->utilisateur_id = $utilisateur_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, $ids);
}
 
/**
* Lie un mot-clé à une ou plusieurs images ou obs suivant le suffixe en cours.
*
62,7 → 62,7
$retour = false;
 
if ($this->contenirNbresEntiers($ids)) {
 
$champ_objet_lie = ($this->suffix == self::OBS_TABLE_SUFFIXE) ? 'id_observation' : 'id_image';
$champ_mot_cle = ($this->suffix == self::OBS_TABLE_SUFFIXE) ? 'id_mot_cle_obs' : 'id_mot_cle_image';
 
69,9 → 69,9
// le mot clé ignore est spécifique mysql, mais il est utilisé ici pour des raisons
// de performance, à remplacer par un test sur les mots clés déjà existant si ça gène
$requete = "INSERT IGNORE INTO cel{$this->suffix}_mots_cles ".
'('.$champ_objet_lie.', '.$champ_mot_cle.') '.
'VALUES ';
'('.$champ_objet_lie.', '.$champ_mot_cle.') '.
'VALUES ';
 
foreach($ids as $id) {
foreach($mots_cles_ids as $mot) {
$requete .= '('.$id.','.Cel::db()->proteger($mot).'),';
79,7 → 79,7
}
$requete = rtrim($requete,',');
$resultat = Cel::db()->executer($requete);
 
// J'en suis ici
if ($resultat) {
$retour = true;
121,13 → 121,13
 
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').' = '.Cel::db()->proteger($id_image_ou_obs).
')';
'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').' = '.Cel::db()->proteger($id_image_ou_obs).
')';
 
$resultats = Cel::db()->requeter($requete);
return $resultats;
144,8 → 144,14
private function concatenerMotsCles(Array $mots_cles) {
$mot_cles_concatenes = '';
if (count($mots_cles) > 0) {
$dedoublonage = array();
foreach ($mots_cles as $mot_cle) {
$mot_cles_concatenes .= $mot_cle['mot_cle'].self::SEPARATEUR_MOT_CLE_TEXTE;
if (array_key_exists($mot_cle['mot_cle'], $dedoublonage) === false) {
$dedoublonage[$mot_cle['mot_cle']] = 1;
$mot_cles_concatenes .= $mot_cle['mot_cle'].self::SEPARATEUR_MOT_CLE_TEXTE;
} else {
$dedoublonage[$mot_cle['mot_cle']]++;
}
}
}
$mot_cles_concatenes = rtrim($mot_cles_concatenes, self::SEPARATEUR_MOT_CLE_TEXTE);