Subversion Repositories eFlore/Applications.cel

Compare Revisions

Ignore whitespace Rev 2055 → Rev 2056

/trunk/jrest/lib/GestionMotsClesChemin.php
57,16 → 57,31
return $ids_enfants;
}
public function insererParChemin($mot_cle, $chemin_parent, $id_utilisateur) {
public function insererParCheminSiInexistant($mot_cle, $chemin_parent, $id_utilisateur) {
$chemin_mot_cle = self::getCheminHarmonise($chemin_parent, $mot_cle);
$requete_mot_cle_existe = "SELECT id_mot_cle FROM ".$this->table_mots_cles." ".
"WHERE chemin = ".Cel::db()->proteger($chemin_mot_cle)." AND ".
"id_utilisateur = ".Cel::db()->proteger($id_utilisateur);
$requete = "INSERT IGNORE INTO ".$this->table_mots_cles." (chemin, id_utilisateur, tag) ".
$infos_mot_cle = Cel::db()->executerRequete($requete_mot_cle_existe.' -- '.__FILE__.':'.__LINE__);
 
if(!empty($infos_mot_cle)) {
$id_mot_cle = $infos_mot_cle[0]['id_mot_cle'];
} else {
$id_mot_cle = $this->insererParChemin($mot_cle, $chemin_parent, $id_utilisateur);
}
return $id_mot_cle;
}
public function insererParChemin($mot_cle, $chemin_parent, $id_utilisateur) {
$chemin_mot_cle = self::getCheminHarmonise($chemin_parent, $mot_cle);
$requete = "INSERT INTO ".$this->table_mots_cles." (chemin, id_utilisateur, mot_cle) ".
"VALUES (".
Cel::db()->proteger($chemin_mot_cle).", ".
Cel::db()->proteger($id_utilisateur).", ".
Cel::db()->proteger($mot_cle)." ".
")";
 
") ";
$insertion = Cel::db()->executer($requete.' -- '.__FILE__.':'.__LINE__);
$resultat = false;
if($insertion !== false) {
151,7 → 166,7
implode(',', $combinaisons).' '.
"ON DUPLICATE KEY UPDATE id_element_lie = id_element_lie ";
$liaison = Cel::db()->executer($requete.' -- '.__FILE__.':'.__LINE__);
return $liaison;
}
348,6 → 363,19
}
public function obtenirIdsMotClesPourMotsCles($mots_cles, $id_utilisateur) {
$mots_cles_p = array();
foreach($mots_cles as $mot_cle) {
$mots_cles_p[] = Cel::db()->proteger($mot_cle);
}
$requete = "SELECT id_mot_cle, mot_cle FROM ".$this->table_mots_cles." ".
"WHERE mot_cle IN (".implode(',', $mots_cles_p).") ".
"AND id_utilisateur = ".Cel::db()->proteger($id_utilisateur);
 
return Cel::db()->executer($requete.' -- '.__FILE__.':'.__LINE__);
}
public function obtenirIdElementsLiesPourChemins($chemins, $id_utilisateur) {
foreach($chemins as &$chemin) {
$chemin = Cel::db()->proteger(self::harmoniserChemin($chemin));
450,27 → 478,6
static public function simplifier($text)
{
return trim(str_replace(array('\\','/'), '', $text));
// replace non letter or digits by -
$text = preg_replace('~[^\\pL\d]+~u', '-', $text);
// trim
$text = trim($text, '-');
// transliterate
$text = iconv('utf-8', 'us-ascii//TRANSLIT', $text);
// lowercase
$text = strtolower($text);
// remove unwanted characters
$text = preg_replace('~[^-\w]+~', '', $text);
if (empty($text))
{
return 'n-a';
}
return $text;
}
static public function startsWith($haystack, $needle) {
/trunk/jrest/services/CelMotCle.php
File deleted
\ No newline at end of file
/trunk/jrest/services/CelWidgetSaisie.php
14,7 → 14,7
* @version $Id$
* @copyright © 2011, Jean-Pascal MILCENT
*/
class CelWidgetSaisie extends CelMotCle {
class CelWidgetSaisie extends Cel {
 
private $projet = null;
private $projetTags = array();
26,6 → 26,8
const ARRET_SERVICE = false;// Permet de bloquer le service en cas de problème sur le serveur
 
private $correspondanceIdImgTags = array();
private $gestionMotsClesObs = null;
private $gestionMotsClesImages = null;
 
public function createElement($requeteDonnees) {
if (self::ARRET_SERVICE) {
147,6 → 149,9
$img_a_taguer_ids = $this->stockerImagesEtLierAObs($img, $id_utilisateur, $utilisateur);
}
}
$this->gestionMotsClesObs = new GestionMotsClesChemin($this->config,'obs');
$this->gestionMotsClesImages = new GestionMotsClesChemin($this->config,'images');
 
$obs_a_taguer_ids = $this->obtenirIdsObsPourTableauOrdres($this->utilisateur_id, $obs_a_taguer_ordres);
$this->taguerObs($obs_a_taguer_ids);
375,20 → 380,20
}
 
private function lierObsAMotsCles($observations_ids, $tags) {
$idTagParent = self::OBS_RACINE_ID;
$chemin_parent = "/";
$listeIdsTags = array();
foreach ($tags as $tag) {
$tag = $this->nettoyerTag($tag);
if ($tag != '') {
$id_mot_cle = $this->ajouterMotCleObs($this->utilisateur_id, $tag, $idTagParent);
$id_mot_cle = $this->gestionMotsClesObs->insererParCheminSiInexistant($tag, $chemin_parent, $this->utilisateur_id);
if ($id_mot_cle !== false) {
$listeIdsTags[] = $id_mot_cle;
$idTagParent = $id_mot_cle;
$chemin_parent .= $tag."/";
}
}
}
 
$liaison_ok = $this->lierMotCleObs($this->utilisateur_id, $listeIdsTags, $observations_ids);
$liaison_ok = $this->gestionMotsClesObs->lierParTableaux($listeIdsTags, $observations_ids, $this->utilisateur_id);
return $liaison_ok;
}
 
415,19 → 420,19
}
 
private function lierImgAMotsCles($images_ids, $tags) {
$idTagParent = self::IMG_RACINE_ID;
$chemin_parent = "/";
$listeIdsTags = array();
foreach ($tags as $tag) {
$tag = $this->nettoyerTag($tag);
if ($tag != '') {
$id_mot_cle = $this->ajouterMotCleImg($this->utilisateur_id, $tag, $idTagParent);
if ($tag != '') {
$id_mot_cle = $this->gestionMotsClesImages->insererParCheminSiInexistant($tag, $chemin_parent, $this->utilisateur_id);
if ($id_mot_cle !== false) {
$listeIdsTags[] = $id_mot_cle;
$idTagParent = $id_mot_cle;
$chemin_parent .= $tag."/";
}
}
}
$liaison_ok = $this->lierMotCleImg($this->utilisateur_id, $listeIdsTags, $images_ids);
$liaison_ok = $this->gestionMotsClesObs->lierParTableaux($listeIdsTags, $images_ids, $this->utilisateur_id);
return $liaison_ok;
}