/** * Insertion dans le pipeline formulaire_traiter (SPIP) * * Traitement du champ date_depublie du formulaire dater * * @param array $flux * @return array $flux */ function depublie_formulaire_traiter($flux) { if ($flux['args']['form'] == 'dater' && _request('changer')) { //récupère les arguments objet/id_objet $objet = $flux['args']['args'][0]; $id_objet = $flux['args']['args'][1]; //on teste si il y a déjà une entrée dans spip_depublies $possedeDateDepublie = sql_getfetsel('date_depublie', "spip_depublies", 'id_objet=' . intval($id_objet) . ' AND objet=' . sql_quote($objet)); $set = array(); $set['statut'] = lire_config('depublie/statut_depublie', 'prepa'); $set['objet'] = $objet; $set['id_objet'] = $id_objet; if ($objet && intval($id_objet)) { if (_request('date_depublie_jour') && !_request('sans_depublie')) { $d = dater_recuperer_date_saisie(_request('date_depublie_jour')); if (!($h = dater_recuperer_heure_saisie(_request('date_depublie_heure')))) { $h = array(0, 0); } $set['date_depublie'] = sql_format_date($d[0], $d[1], $d[2], $h[0], $h[1]); //update ou insert if ($possedeDateDepublie) { sql_updateq('spip_depublies', $set, 'id_objet=' . intval($id_objet) . ' AND objet=' . sql_quote($objet)); } else { sql_insertq('spip_depublies', $set); } } else { if ($possedeDateDepublie) { sql_delete('spip_depublies', 'id_objet=' . intval($id_objet) . ' AND objet=' . sql_quote($objet)); } } } } return $flux; }
/** * Traitement du formulaire d'édition d'une date * * @param string $objet * Type d'objet * @param int $id_objet * Identifiant de l'objet * @param string $retour * URL de redirection après le traitement * @param array|string $options * Options. * @return Array * Retours des traitements */ function formulaires_dater_traiter_dist($objet, $id_objet, $retour = '', $options = array()) { $res = array('editable' => ' '); if (_request('changer')) { $_id_objet = id_table_objet($objet); $table = table_objet($objet); $trouver_table = charger_fonction('trouver_table', 'base'); $desc = $trouver_table($table); if (!$desc) { return array('message_erreur' => _L('erreur')); } #impossible en principe $champ_date = $desc['date'] ? $desc['date'] : 'date'; $set = array(); $charger = charger_fonction("charger", "formulaires/dater/"); $v = $charger($objet, $id_objet, $retour, $options); if ($v['_editer_date']) { if (!($d = dater_recuperer_date_saisie(_request('date_jour')))) { $d = array(date('Y'), date('m'), date('d')); } if (!($h = dater_recuperer_heure_saisie(_request('date_heure')))) { $h = array(0, 0); } $set[$champ_date] = sql_format_date($d[0], $d[1], $d[2], $h[0], $h[1]); } if (isset($desc['field']['date_redac']) and $v['_editer_date_anterieure']) { if (!_request('date_redac_jour') or _request('sans_redac')) { $set['date_redac'] = sql_format_date(0, 0, 0, 0, 0, 0); } else { if (!($d = dater_recuperer_date_saisie(_request('date_redac_jour'), "date_redac"))) { $d = array(date('Y'), date('m'), date('d')); } if (!($h = dater_recuperer_heure_saisie(_request('date_redac_heure')))) { $h = array(0, 0); } $set['date_redac'] = sql_format_date($d[0], $d[1], $d[2], $h[0], $h[1]); } } if (count($set)) { $publie_avant = objet_test_si_publie($objet, $id_objet); include_spip('action/editer_objet'); objet_modifier($objet, $id_objet, $set); $publie_apres = objet_test_si_publie($objet, $id_objet); if ($publie_avant !== $publie_apres) { // on refuse ajax pour forcer le rechargement de la page ici // on refera traiter une 2eme fois, mais c'est sans consequence refuser_traiter_formulaire_ajax(); } } } if ($retour) { $res['redirect'] = $retour; } set_request('date_jour'); set_request('date_redac_jour'); set_request('date_heure'); set_request('date_redac_heure'); return $res; }
/** * Traitement * * @param string $objet * @param integer $id_objet * @param string $retour * @return Array */ function formulaires_dater_traiter_dist($objet, $id_objet, $retour = '') { $res = array('editable' => ' '); if (_request('changer')) { $_id_objet = id_table_objet($objet); $table = table_objet($objet); $trouver_table = charger_fonction('trouver_table', 'base'); $desc = $trouver_table($table); if (!$desc) { return array('message_erreur' => _L('erreur')); } #impossible en principe $champ_date = $desc['date'] ? $desc['date'] : 'date'; $set = array(); if (!($d = dater_recuperer_date_saisie(_request('date_jour')))) { $d = array(date('Y'), date('m'), date('d')); } if (!($h = dater_recuperer_heure_saisie(_request('date_heure')))) { $h = array(0, 0); } $set[$champ_date] = sql_format_date($d[0], $d[1], $d[2], $h[0], $h[1]); if (isset($desc['field']['date_redac'])) { if (!_request('date_redac_jour') or _request('sans_redac')) { $set['date_redac'] = sql_format_date(0, 0, 0, 0, 0, 0); } else { if (!($d = dater_recuperer_date_saisie(_request('date_redac_jour'), "date_redac"))) { $d = array(date('Y'), date('m'), date('d')); } if (!($h = dater_recuperer_heure_saisie(_request('date_redac_heure')))) { $h = array(0, 0); } $set['date_redac'] = sql_format_date($d[0], $d[1], $d[2], $h[0], $h[1]); } } include_spip('action/editer_objet'); objet_modifier($objet, $id_objet, $set); } if ($retour) { $res['redirect'] = $retour; } set_request('date_jour'); set_request('date_redac_jour'); set_request('date_heure'); set_request('date_redac_heure'); return $res; }