1,18 → 1,28 |
<?php |
// declare(encoding='UTF-8'); |
/** |
* Service permettant de récupérer toutes les informations d'une observation publique. |
* Encodage en entrée : utf8 |
* Encodage en sortie : utf8 |
* Service générique de modification des observations. |
* |
* Cas d'utilisation : |
* GET /CelObs/[id] : oû id est l'identifiant d'une observation publique |
* POST /CelObs/[id] : oû id est l'identifiant d'une observation publique |
* si les data du POST contienent : |
* - 1 données : |
* - 'transmission' : publier ou dépublier une obs |
* - 3 données : |
* - 'id_observation', 'nom_sel_nn', 'nom_referentiel' : permet d'accepter une proposition (DEL) |
* |
* @author Jean-Pascal MILCENT <jpm@clapas.org> |
* @license GPL v3 <http://www.gnu.org/licenses/gpl.txt> |
* @license CECILL v2 <http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt> |
* @version $Id$ |
* @copyright © 2013, Jean-Pascal MILCENT |
* @internal Mininum PHP version : 5.2 |
* @category CEL |
* @package Services |
* @subpackage Observations |
* @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 CelObs extends Cel { |
private $rechercheObs = null; |
34,7 → 44,7 |
} |
} |
|
function getElement($ressources){ |
public function getElement($ressources){ |
$retour = false; |
$idObs = $ressources[0]; |
if (isset($idObs) && preg_match('/^[0-9]+$/', $idObs)) { |
127,6 → 137,7 |
$donneesObligatoires = array('transmission'); |
if ($this->verifierDonneesObligatoires($donneesObligatoires)) { |
$this->depublierObs($idObs); |
$this->depublierImg($idObs); |
} |
} else if (count($this->donnees) == 3) { |
$donneesObligatoires = array('id_observation', 'nom_sel_nn', 'nom_referentiel'); |
167,11 → 178,20 |
$gestionnaireObs = new GestionObservation($this->config); |
$depublication = $gestionnaireObs->modifierTransmissionObservation($idObs, false); |
if ($depublication === false) { |
$msg = "Un problème est survenu (voir log). Les observations n'ont pas pu être dépubliées."; |
$msg = "Un problème est survenu (voir log). L'observation « $idObs » n'a pas pu être dépubliée."; |
$this->envoyerMessageErreur(304, $msg); |
} |
} |
|
private function depublierImg($idObs) { |
$gestionnaireImg = new GestionImage($this->config); |
$depublication = $gestionnaireImg->modifierTransmissionParObs($idObs, false); |
if ($depublication === false) { |
$msg = "Un problème est survenu (voir log). Les images liées à l'obs « $idObs » n'ont pas pu être dépubliées."; |
$this->envoyerMessageErreur(304, $msg); |
} |
} |
|
/** |
* Modifie une observation aveec les infos d'une proposition : |
* Nous complétons les données de la proposition acceptée ici car: |
196,9 → 216,9 |
|
if ($modification) { |
// TODO: en modifiant bien la classe de gestion mots clés, on aurait peut être pas besoin de l'id |
// utilisateur (car l'id de l'obs est déjà sans ambiguité) |
// utilisateur (car l'id de l'obs est déjà sans ambiguité) |
$idUtilisateur = $this->rechercheObs->obtenirIdUtilisateurPourIdObs($idObs); |
|
|
// supression des éventuelles liaison de l'obs avec le mot clé contenu dans obsKeywordDelete |
$gestionMotsClesObs = new GestionMotsClesChemin($this->config, 'obs'); |
$supp_liaison_mot_cle = $gestionMotsClesObs->supprimerLiaisonPourMotCleEtIdElementLie('aDeterminer', $idObs, $idUtilisateur); |