19,23 → 19,23 |
* out=utf8 |
* |
*/ |
class GestionChampsTags extends Cel { |
class GestionChampsEtendus extends Cel { |
|
private $mode = null; |
private $table_tags = null; |
private $table_champs_etendus = null; |
private $champ_id = null; |
|
public function GestionChampsTags($config, $mode) { |
public function GestionChampsEtendus($config, $mode) { |
parent::__construct($config); |
$this->mode = $mode; |
|
if($this->mode == 'obs') { |
$this->mode = 'obs'; |
$this->table_tags = 'cel_obs_tags'; |
$this->table_champs_etendus = 'cel_obs_etendues'; |
$this->champ_id = 'id_observation'; |
} else if($this->mode == 'image') { |
$this->mode = 'image'; |
$this->table_tags = 'cel_images_tags'; |
$this->table_champs_etendus = 'cel_images_etendues'; |
$this->champ_id = 'id_image'; |
} else { |
throw new Exception('Mode inconnu, les modes autorisés sont "obs" et "image"'); |
51,8 → 51,8 |
* @param string $valeur |
* @return bool |
*/ |
public function tagExistePourElement($id_element_lie, $cle) { |
$requete = "SELECT COUNT(*) >= 1 as existe FROM ".$this->table_tags." ". |
public function champEtenduExistePourElement($id_element_lie, $cle) { |
$requete = "SELECT COUNT(*) >= 1 as existe FROM ".$this->table_champs_etendus." ". |
"WHERE ".$this->champ_id." = ".$this->proteger($id_element_lie)." ". |
"AND cle = ".$this->proteger($cle); |
|
61,13 → 61,13 |
} |
|
/** |
* Renvoie tous les champs taggés associé à l'élément passé en paramètre |
* Renvoie tous les champs étendus associé à l'élément passé en paramètre |
* |
* @param int $id_element_lie |
* @return array |
*/ |
public function obtenirTagsPourElement($id_element_lie) { |
$requete = "SELECT * FROM ".$this->table_tags." ". |
public function obtenirChampsEtendusPourElement($id_element_lie) { |
$requete = "SELECT * FROM ".$this->table_champs_etendus." ". |
"WHERE ".$this->champ_id." = ".$this->proteger($id_element_lie)." "; |
|
$resultat = $this->executerRequete($requete); |
75,36 → 75,36 |
} |
|
/** |
* Renvoie tous les champs taggés associé aux éléments passés en paramètre |
* Renvoie tous les champs étendus associés aux éléments passés en paramètre |
* Sous forme tableau de tableaux associatifs clé valeur regroupé par id d'élement |
* |
* @param array $ids_element_lies |
* @return array |
*/ |
public function obtenirTagsPourElementsMultiples($ids_element_lies) { |
public function obtenirChampsEtendusPourElementsMultiples($ids_element_lies) { |
|
$ids_element_lies = array_map(array($this, 'proteger'),$ids_element_lies); |
|
$requete = "SELECT * FROM ".$this->table_tags." ". |
$requete = "SELECT * FROM ".$this->table_champs_etendus." ". |
"WHERE ".$this->champ_id." IN (".implode(',',$ids_element_lies).") "; |
|
$resultats = $this->executerRequete($requete); |
|
$champs_tagges_par_element = array(); |
$champs_etendus_par_element = array(); |
|
foreach ($resultats as &$ligne) { |
$id_element = $ligne[$this->champ_id]; |
if(!isset($champs_tagges_par_element[$id_element])) { |
$champs_tagges_par_element[$id_element] = array(); |
if(!isset($champs_etendus_par_element[$id_element])) { |
$champs_etendus_par_element[$id_element] = array(); |
} |
$champs_tagges_par_element[$id_element][$ligne['cle']] = $ligne['valeur']; |
$champs_etendus_par_element[$id_element][$ligne['cle']] = $ligne['valeur']; |
} |
|
return $champs_tagges_par_element; |
return $champs_etendus_par_element; |
} |
|
/** |
* Ajoute un champ taggé à l'élément passé en paramètre, |
* Ajoute un champ étendu à l'élément passé en paramètre, |
* si la clé existe déjà, seule valeur du champ est mise à jour |
* |
* @param int $id_element_lie |
112,8 → 112,8 |
* @param string $valeur |
* @return bool |
*/ |
public function ajouterTag($id_element_lie, $cle, $valeur) { |
$requete = "INSERT INTO ".$this->table_tags." ". |
public function ajouterChampEtendu($id_element_lie, $cle, $valeur) { |
$requete = "INSERT INTO ".$this->table_champs_etendus." ". |
"(".$this->champ_id.", cle, valeur) ". |
"VALUES (".$this->proteger($id_element_lie).",".$this->proteger($cle).",".$this->proteger($valeur).") ". |
"ON DUPLICATE KEY UPDATE valeur = VALUES(valeur)"; |
125,7 → 125,7 |
} |
|
/** |
* Ajoute des champs taggés à l'élément passé en paramètre, |
* Ajoute des champs étendus à l'élément passé en paramètre, |
* si la clé existe déjà, seule la valeur du champ est mise à jour |
* |
* @param int $id_element_lie |
132,7 → 132,7 |
* @param array $cles_valeurs tableau de clés => valeurs à associer à l'élément |
* @return bool |
*/ |
public function ajouterTagsMultiples($id_element_lie, $cles_valeurs) { |
public function ajouterChampsEtendusMultiples($id_element_lie, $cles_valeurs) { |
|
$lignes = array(); |
foreach($cles_valeurs as $cle => $valeur) { |
139,7 → 139,7 |
$lignes[] = "(".$this->proteger($id_element_lie).",".$this->proteger($cle).",".$this->proteger($valeur).")"; |
} |
|
$requete = "INSERT INTO ".$this->table_tags." ". |
$requete = "INSERT INTO ".$this->table_champs_etendus." ". |
"(".$this->champ_id.", cle, valeur) ". |
"VALUES ".implode(',', $lignes)." ". |
"ON DUPLICATE KEY UPDATE valeur = VALUES(valeur)"; |
151,13 → 151,13 |
} |
|
/** |
* Ajoute des champs taggés aux éléments passés en paramètre, |
* Ajoute des champs étendus aux éléments passés en paramètre, |
* si la clé existe déjà, seule la valeur du champ est mise à jour |
* |
* @param array $elements_cles_valeurs tableau associatif de la forme id, cle, valeur |
* @return bool |
*/ |
public function ajouterTagsMultiplesAElementsMultiples($elements_cles_valeurs) { |
public function ajouterChampsEtendusMultiplesAElementsMultiples($elements_cles_valeurs) { |
|
$lignes = array(); |
foreach($elements_cles_valeurs as &$element) { |
164,7 → 164,7 |
$lignes[] = "(".$this->proteger($element['id']).",".$this->proteger($element['cle']).",".$this->proteger($element['valeur']).")"; |
} |
|
$requete = "INSERT INTO ".$this->table_tags." ". |
$requete = "INSERT INTO ".$this->table_champs_etendus." ". |
"(".$this->champ_id.", cle, valeur) ". |
"VALUES ".implode(',', $lignes)." ". |
"ON DUPLICATE KEY UPDATE valeur = VALUES(valeur)"; |
176,7 → 176,7 |
} |
|
/** |
* Modifie un champ taggé associé à l'élément passé en paramètre |
* Modifie un champ étendu associé à l'élément passé en paramètre |
* |
* @param int $id_element_lie |
* @param string $cle |
183,8 → 183,8 |
* @param string $valeur |
* @return bool |
*/ |
public function modifierTag($id_element_lie, $cle, $valeur) { |
$requete = "UPDATE ".$this->table_tags." ". |
public function modifierChampEtendu($id_element_lie, $cle, $valeur) { |
$requete = "UPDATE ".$this->table_champs_etendus." ". |
"SET valeur = ".$this->proteger($valeur)." ". |
"WHERE cle = ".$this->proteger($cle)." AND ". |
$this->champ_id." = ".$this->proteger($id_element_lie); |
194,14 → 194,14 |
} |
|
/** |
* Supprime le champ taggé associé à l'élément et au nom de clé passés en paramètre |
* Supprime le champ champ étendu associé à l'élément et au nom de clé passés en paramètre |
* |
* @param int $id_element_lie |
* @param string $cle |
* @return bool |
*/ |
public function supprimerTag($id_element_lie, $cle) { |
$requete = "DELETE FROM ".$this->table_tags." ". |
public function supprimerChampEtendu($id_element_lie, $cle) { |
$requete = "DELETE FROM ".$this->table_champs_etendus." ". |
"WHERE cle = ".$this->proteger($cle)." AND ". |
$this->champ_id." = ".$this->proteger($id_element_lie); |
|
210,13 → 210,13 |
} |
|
/** |
* Supprime tous les champs taggé associés à l'élément passés en paramètre |
* Supprime tous les champs champ étendu associés à l'élément passés en paramètre |
* |
* @param int $id_element_lie |
* @return bool |
*/ |
public function supprimerTagsAElement($id_element_lie) { |
$requete = "DELETE FROM ".$this->table_tags." ". |
public function supprimerChampsEtendusAElement($id_element_lie) { |
$requete = "DELETE FROM ".$this->table_champs_etendus." ". |
"WHERE ".$this->champ_id." = ".$this->proteger($id_element_lie); |
|
$suppr = $this->executerRequeteSimple($requete); |