Subversion Repositories eFlore/Applications.cel

Compare Revisions

Ignore whitespace Rev 2044 → Rev 2045

/trunk/jrest/services/InventoryKeywordTree.php
49,7 → 49,7
$this->controleUtilisateur($pairs['identifiant']);
$mode = $pairs['mode'];
if($mode != 'obs' && $mode != 'image') {
if($mode != 'obs' && $mode != 'images') {
return;
}
/trunk/jrest/services/InventoryKeyWordImageLink.php
12,14 → 12,8
* Le service lie une ou plusieurs mots clés à une ou plusieurs images
*/
 
require_once('InventoryKeyWordObsLink.php');
 
class InventoryKeyWordImageLink extends Cel {
public function getElement($uid) {
}
public function createElement($pairs) {
// Controle detournement utilisateur
35,8 → 29,12
// Pour le moment on ne peut que supprimer les mots clés et ajouter les nouveaux à cause du fonctionnement
// de l'arbre de mots clés des images
$gestionnaire_mots_cles = new LiaisonMotsCles($this->config,'images');
$suppression_liaison_mot_cle = $gestionnaire_mots_cles->supprimerToutesLiaisonsPourIdImageOuObs($pairs['ce_utilisateur'], $id_images);
return $gestionnaire_mots_cles->ajouterLiaisonMotsCles($pairs['ce_utilisateur'],$id_images, $mots_cles);
$suppression_liaison_mot_cle = $gestionnaire_mots_cles->supprimerToutesLiaisonsPourIdsElementsLies($pairs['ce_utilisateur'], $id_images);
$liaison = true;
if(!empty($mots_cles)) {
$liaison = $gestionnaire_mots_cles->ajouterLiaisonMotsCles($pairs['ce_utilisateur'],$id_images, $mots_cles);
}
return $liaison;
}
 
public function deleteElement($uid){
43,10 → 41,14
// Controle detournement utilisateur
$this->controleUtilisateur($uid[0]);
if (!isset($uid[0]) || !isset($uid[1]) || !isset($uid[2]) || ! InventoryKeyWordObsLink::estUnIdentifiantMotCle($uid[2])) {
if (!isset($uid[0]) || !isset($uid[1]) || !isset($uid[2])) {
return FALSE;
}
 
return InventoryKeyWordObsLink::unlinkKeyword($this->config, 'images', explode(',',$uid[1]), $uid[0], $uid[2]);
$gestionnaire_mots_cles = new LiaisonMotsCles($this->config, 'images');
$mots_cles = explode(',', LiaisonMotsCles::nettoyerMotsCles($uid[2]));
$ids_images = explode(',',$uid[1]);
return $gestionnaire_mots_cles->supprimerLiaisonsMotsClesEtRegenererIndexTexte($uid[0], $ids_images, $mots_cles);
}
}
?>
/trunk/jrest/services/InventoryKeyWordObsLink.php
13,8 → 13,7
public function getElement($uid) { }
public function createElement($pairs) {
public function createElement($pairs) {
// Controle detournement utilisateur
$this->controleUtilisateur($pairs['ce_utilisateur']);
23,10 → 22,10
}
$ids_obs = explode(',',$pairs['observations']);
$mots_cles = explode(',',$pairs['mots_cles']);
$ids_mots_cles = explode(',',$pairs['mots_cles']);
$gestionnaire_mots_cles = new LiaisonMotsCles($this->config,'obs');
$liaison_mot_cle = $gestionnaire_mots_cles->ajouterLiaisonMotsCles($pairs['ce_utilisateur'],$ids_obs, $mots_cles);
$liaison_mot_cle = $gestionnaire_mots_cles->ajouterLiaisonMotsCles($pairs['ce_utilisateur'], $ids_obs, $ids_mots_cles);
return $liaison_mot_cle;
}
35,22 → 34,13
// Controle detournement utilisateur
$this->controleUtilisateur($uid[0]);
if (!isset($uid[0]) || !isset($uid[1]) || !isset($uid[2]) || ! self::estUnIdentifiantMotCle($uid[2])) {
if (!isset($uid[0]) || !isset($uid[1]) || !isset($uid[2])) {
return FALSE;
}
return self::unlinkKeyword($this->config, 'obs', explode(',',$uid[1]), $uid[0], $uid[2]);
}
 
static function unlinkKeyword($config, $type /* = obs|images */, Array $obsIds, $uid, $keywordIds /* comma-separated string */) {
if($type != 'obs' && $type != 'images') return FALSE;
$gestionnaire_mots_cles = new LiaisonMotsCles($config, $type);
$mots_cles = explode(',', LiaisonMotsCles::nettoyerMotsCles($keywordIds));
return $gestionnaire_mots_cles->supprimerLiaisonMotsClesEtRegenererIndexTexte($uid, $obsIds, $mots_cles);
$gestionnaire_mots_cles = new LiaisonMotsCles($this->config, 'obs');
$mots_cles = explode(',', LiaisonMotsCles::nettoyerMotsCles($uid[2]));
$ids_obs = explode(',',$uid[1]);
return $gestionnaire_mots_cles->supprimerLiaisonsMotsClesEtRegenererIndexTexte($uid[0], $ids_obs, $mots_cles);
}
 
static function estUnIdentifiantMotCle($chaine) {
return trim($chaine) != '' && preg_match('/[0-9A-Z]+\.[0-9A-Z]+/i', $chaine);
}
 
}
/trunk/jrest/lib/LiaisonMotsCles.php
69,10 → 69,15
return $retour;
}
public function supprimerToutesLiaisonsPourIdsElementsLies($id_utilisateur, $ids_elements_lie) {
public function supprimerToutesLiaisonsPourIdsElementsLies($id_utilisateur, $ids_elements_lies) {
$gestion_mots_cles = new GestionMotsClesChemin($this->config, $this->mode);
$suppression_mot_cles = $gestion_mots_cles->supprimerToutesLiaisonsPourIdsElementsLies($ids_elements_lie, $id_utilisateur);
$suppression_mot_cles = $gestion_mots_cles->supprimerToutesLiaisonsPourIdsElementsLies($ids_elements_lies, $id_utilisateur);
foreach($ids_elements_lies as $id_element_lie) {
self::regenererIndexTexteMotCle($id_element_lie, $this->mode);
}
if ($suppression_mot_cles !== false) {
return TRUE;
}
/trunk/jrest/lib/GestionMotsClesChemin.php
142,7 → 142,7
Cel::db()->proteger($id_utilisateur).", ".
Cel::db()->proteger($mot_cle)." ".
")";
 
$insertion = Cel::db()->executer($requete.' -- '.__FILE__.':'.__LINE__);
if($insertion !== false) {
186,8 → 186,7
}
public function lierParTableaux($ids_mots_cles, $ids_elements_lies, $id_utilisateur) {
foreach($ids_mots_cles as $id_mot_cle) {
foreach($ids_elements_lies as $id_element_lie) {
$combinaisons[] = '('.
225,7 → 224,6
}
public function supprimerToutesLiaisonsPourIdsElementsLies($ids_elements_lies, $id_utilisateur) {
foreach($ids_elements_lies as &$id_element_lie) {
$id_element_lie = Cel::db()->proteger($id_element_lie);
}
279,6 → 277,11
$this->renommerChemin($ancien_chemin, $nouveau_chemin, $id_utilisateur);
$ids_elements_lies = $this->obtenirIdElementsLiesPourIds(array($id_mot_cle));
foreach($ids_elements_lies as $id_element_lie) {
self::regenererIndexTexteMotCle($id_element_lie['id_element_lie'], $this->mode);
}
return $renommage;
}
365,11 → 368,13
$chemin = Cel::db()->requeter($selection_chemin.' -- '.__FILE__.':'.__LINE__);
$suppression = true;
if(!empty($chemin)) {
// vérification pour empecher la suppression accidentelle de tout l'arbre, cas qui ne devrait arriver
if(!empty($chemin) && $chemin != "/") {
$chemin = $chemin[0]['chemin'];
$requete = "DELETE FROM ".$this->table_mots_cles." WHERE chemin LIKE ".
Cel::db()->proteger($chemin.'%')." ".
"AND id_utilisateur =".Cel::db()->proteger($id_utilisateur);
$suppression = Cel::db()->executer($requete.' -- '.__FILE__.':'.__LINE__);
}