/**
 * 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;
}
示例#2
0
文件: dater.php 项目: JLuc/SPIP
/**
 * 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;
}
示例#3
0
文件: dater.php 项目: genma/spip_ynh
/**
 * 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;
}