113 lines
2.7 KiB
PHP
113 lines
2.7 KiB
PHP
<?php
|
|
if (!defined('_ECRIRE_INC_VERSION')) {
|
|
return;
|
|
}
|
|
|
|
|
|
function formulaires_editer_gamuform_saisies_dist($id_objet = 0, $objet = '', $options = [], $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 = '', $options = [], $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] = null;
|
|
}
|
|
}
|
|
|
|
return $valeurs;
|
|
}
|
|
|
|
function formulaires_editer_gamuform_verifier_dist($id_objet = 0, $objet = '', $options = [], $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 = '', $options = [], $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,
|
|
'objet' => $objet,
|
|
'action' => 'gamuform',
|
|
'update' => $update,
|
|
'options' => $options
|
|
),
|
|
'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;
|
|
}
|