gamuform/formulaires/editer_gamuform.php
tofulm 8fe52051d3 On continue la refonte, on utilise la cle gamutable pour avoir les
champs et pouvoir separer les saisies de l'affichage
2022-04-15 15:53:40 +02:00

111 lines
2.6 KiB
PHP

<?php
if (!defined('_ECRIRE_INC_VERSION')) {
return;
}
function formulaires_editer_gamuform_saisies_dist($id_objet = 0, $objet = '', $redirect = '') {
$saisies = false;
if (gamuform_objet_autoriser($objet)) {
$saisies = gamuform_recup_tableau_objet($objet, false);
}
return $saisies;
}
function formulaires_editer_gamuform_charger_dist($id_objet = 0, $objet = '', $redirect = '') {
$table = table_objet_sql($objet);
$id = id_table_objet($objet);
$s = gamuform_recup_champs_saisies($objet);
if (intval($id_objet)) {
$valeurs = sql_fetsel($s, $table, "$id=".intval($id_objet));
} else {
foreach ($s as $c) {
$valeurs[$c] = '';
}
}
return $valeurs;
}
function formulaires_editer_gamuform_verifier_dist($id_objet = 0, $objet = '', $redirect = '') {
$erreurs = array();
if (!gamuform_objet_autoriser($objet)) {
$erreurs['message_erreur'] = "Pb d'objet";
}
return $erreurs;
}
function formulaires_editer_gamuform_traiter_dist($id_objet = 0, $objet = '', $redirect = '') {
$saisies = gamuform_recup_tableau_objet($objet, false);
$table = table_objet_sql($objet);
$id = id_table_objet($objet);
$update = true;
if (!intval($id_objet)) {
$id_objet = sql_insertq($table, []);
$update = false;
}
$set = [];
if (!empty($saisies)) {
foreach ($saisies as $saisie) {
$champ = $saisie['options']['nom'];
if (
isset($saisies['options']['fonction'])
and $f = $saisies['options']['fonction']
) {
$f($id_objet, $objet, $champ, _request($champ));
} elseif (
isset($saisies['options']['modifier'])
and $m = $saisies['options']['modifier']
) {
$set[$champ] = $m($champ, _request($champ));
} else {
if ($saisie['saisie'] === 'date') {
$date = _request($champ);
$verifier = charger_fonction('verifier', 'inc/');
$verifier($date, 'date', ['normaliser' => 'datetime'], $date);
$set[$champ] = $date;
} else {
$set[$champ] = _requests($champ);
}
}
}
if (count($set)) {
$set = pipeline(
'pre_edition',
array(
'args' => array(
'table' => $table,
'id_objet' => $id_objet,
'action' => 'gamuform',
'update' => $update
),
'data' => $set
)
);
sql_updateq($table, $set, "$id=".intval($id_objet));
}
}
include_spip('inc/invalideur');
suivre_invalideur("id='"."$id_objet"."/1");
$retour = [];
if ($redirect === 'gamutable') {
$retour['redirect'] = '';
if ($update) {
$retour['message_ok'] = gamutable_fermer_modalbox($id_objet);
} else {
$retour['message_ok'] = gamutable_fermer_modalbox();
}
} else if ($redirect) {
$retour['redirect'] = $redirect;
}
return $retour;
}