Subversion Repositories eFlore/Applications.cel

Rev

Rev 3857 | Blame | Compare with Previous | Last modification | View Log | RSS feed

<?php
// declare(encoding='UTF-8');
/**
 * Service de liaisons de mots clés à des observations.
 * Le service lie une ou plusieurs mots clés à une ou plusieurs observations.
 *
 * @internal   Mininum PHP version : 5.2
 * @category   CEL
 * @package    Services
 * @subpackage Images
 * @version    0.1
 * @author     Mathias CHOUET <mathias@tela-botanica.org>
 * @author     Jean-Pascal MILCENT <jpm@tela-botanica.org>
 * @author     Aurelien PERONNET <aurelien@tela-botanica.org>
 * @license    GPL v3 <http://www.gnu.org/licenses/gpl.txt>
 * @license    CECILL v2 <http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt>
 * @copyright  1999-2014 Tela Botanica <accueil@tela-botanica.org>
 */
class InventoryKeyWordObsLink extends Cel {

        public function getElement($uid) { }

        public function createElement($pairs) {
                // Controle detournement utilisateur
                $this->controleUtilisateur($pairs['ce_utilisateur']);

                if (!isset($pairs['mots_cles']) || !isset($pairs['observations']) || !isset($pairs['ce_utilisateur'])) {
                        return;
                }

                $ids_obs = explode(',',$pairs['observations']);
                $ids_mots_cles = explode(',',$pairs['mots_cles']);

                $gestion_mots_cles = new GestionMotsClesChemin($this->config,'obs');
                $liaison_mot_cle = $gestion_mots_cles->modifierLiaisonParTableaux($ids_mots_cles, $ids_obs, false);

                foreach ($ids_obs as $id_element_lie) {
                        GestionMotsClesChemin::regenererIndexTexteMotCle($id_element_lie, 'obs');
                }
                return $liaison_mot_cle;
        }

        public function deleteElement($uid){
                // Controle detournement utilisateur
                $this->controleUtilisateur($uid[0]);

                if (!isset($uid[0]) || !isset($uid[1]) || !isset($uid[2])) {
                        return false;
                }

                $id_utilisateur = $uid[0];
                $ids_obs = explode(',', $uid[1]);
                $ids_mots_cles = explode(',', GestionMotsClesChemin::nettoyerMotsClesAvantSuppression($uid[2]));

                $gestion_mots_cles = new GestionMotsClesChemin($this->config, 'obs');
                $suppression_liaisons = $gestion_mots_cles->supprimerLiaisonsMotsCles($ids_mots_cles, $ids_obs, $id_utilisateur);
                foreach($ids_obs as $id_element_lie) {
                        GestionMotsClesChemin::regenererIndexTexteMotCle($id_element_lie, 'obs');
                }
        }
}