Subversion Repositories eFlore/Applications.cel

Compare Revisions

Ignore whitespace Rev 3476 → Rev 3477

/trunk/jrest/bibliotheque/GestionChampsEtendus.php
22,21 → 22,12
private $table_champs_etendus = null;
private $champ_id = null;
 
public function __construct($config, $mode) {
public function __construct($config, $mode = 'obs') {
parent::__construct($config);
$this->mode = $mode;
 
if ($this->mode == 'obs') {
$this->mode = 'obs';
$this->table_champs_etendus = 'cel_obs_etendues';
$this->champ_id = 'id_observation';
} else if ($this->mode == 'image') {
$this->mode = 'image';
$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"');
}
$this->table_champs_etendus = 'extended_field_occurrence';
$this->champ_id = 'occurrence_id';
}
 
/**
54,7 → 45,7
$requete = 'SELECT COUNT(*) >= 1 AS existe '.
"FROM {$this->table_champs_etendus} ".
"WHERE {$this->champ_id} = $id ".
" AND cle = $cle ".
" AND extended_field_id = $cle ".
' -- '.__FILE__.':'.__LINE__;;
 
$resultat = Cel::db()->requeter($requete);
101,8 → 92,8
}
$champ_etendu = new ObsEtendue();
$champ_etendu->id = $id_element;
$champ_etendu->cle = $ligne['cle'];
$champ_etendu->valeur = $ligne['valeur'];
$champ_etendu->cle = $ligne['extended_field_id'];
$champ_etendu->valeur = $ligne['value'];
 
$champs_etendus_par_element[$id_element][] = $champ_etendu;
}
123,9 → 114,9
$valeur = Cel::db()->proteger($champ_etendu->valeur);
 
$requete = "INSERT INTO {$this->table_champs_etendus} ".
"( {$this->champ_id}, cle, valeur) ".
"( {$this->champ_id}, extended_field_id, value) ".
"VALUES ($id, $cle, $valeur) ".
"ON DUPLICATE KEY UPDATE valeur = VALUES(valeur) ".
"ON DUPLICATE KEY UPDATE value = VALUES(value) ".
' -- '.__FILE__.':'.__LINE__;
 
// la partie on duplicate key est spécifique mysql mais il sera facile de s'en passer le jour
156,7 → 147,7
// la partie on duplicate key est spécifique mysql mais il sera facile de s'en passer le jour
// où l'on change de sgbd
$ajout = Cel::db()->executer(sprintf(
"INSERT INTO %s (%s, cle, valeur) VALUES %s ON DUPLICATE KEY UPDATE valeur = VALUES(valeur) -- %s:%d",
"INSERT INTO %s (%s, extended_field_id, valeur) VALUES %s ON DUPLICATE KEY UPDATE value = VALUES(valeur) -- %s:%d",
$this->table_champs_etendus,
$this->champ_id,
implode(',', $lignes),
176,8 → 167,8
$valeur = Cel::db()->proteger($champ_etendu->valeur);
 
$requete = "UPDATE {$this->table_champs_etendus} ".
"SET valeur = $valeur ".
"WHERE cle = $cle".
"SET value = $valeur ".
"WHERE extended_field_id = $cle".
" AND {$this->champ_id} = $id ".
' -- '.__FILE__.':'.__LINE__;
$modif = Cel::db()->executer($requete);
195,7 → 186,7
$id = Cel::db()->proteger($id_element_lie);
$cle = Cel::db()->proteger($cle);
$requete = "DELETE FROM {$this->table_champs_etendus} ".
"WHERE cle = $cle ".
"WHERE extended_field_id = $cle ".
"AND {$this->champ_id} = $id ".
' -- '.__FILE__.':'.__LINE__;
$suppr = Cel::db()->executer($requete);
242,7 → 233,7
$cles_fmt = array();
if(!empty($ids_elements_lies)) {
$ids = $this->protegerTableau($ids_elements_lies);
$requete = 'SELECT cle '.
$requete = 'SELECT extended_field_id as cle '.
"FROM {$this->table_champs_etendus} ".
"WHERE {$this->champ_id} IN (".implode(',',$ids).") ".
' -- '.__FILE__.':'.__LINE__;
260,7 → 251,7
*/
public function consulterGroupesChampsEtendusPredefinis($groupe = "", $langue = 'fr') {
$groupes = array();
$requete = "SELECT cc.cle as cle_groupe, cc.label as nom_groupe, ccc.cle as cle_champ, ccc.label as label_champ, ccc.type as type_champ, ccc.valeur as valeur_champ, ccc.invisible, ccc.prive ".
$requete = "SELECT cc.extended_field_id as cle_groupe, cc.label as nom_groupe, ccc.cle as cle_champ, ccc.label as label_champ, ccc.type as type_champ, ccc.valeur as valeur_champ, ccc.invisible, ccc.prive ".
"FROM `cel_catalogue_champs_etendus` cc ".
"INNER JOIN cel_catalogue_champs_etendus_liaison cl ON cc.cle = cl.groupe ".
"INNER JOIN cel_catalogue_champs_etendus ccc ON ccc.cle = cl.champ ".