From ce3b905f03eb3f37e477a0a1dedc1a0fc7824a32 Mon Sep 17 00:00:00 2001 From: "Committo,Ergo:sum" <esj@rezo.net> Date: Sun, 15 Oct 2006 16:41:12 +0000 Subject: [PATCH] Couper en 2 fonctions les actions, afin de pouvoir partager le code figurant apres le controle d'acces par hash (a affiner au cas par cas ensuite). --- ecrire/action/dater.php | 30 +++++++++++--------- ecrire/action/documenter.php | 17 ++++++----- ecrire/action/editer_mot.php | 21 ++++++++------ ecrire/action/editer_rubrique.php | 28 ++++++++++-------- ecrire/action/legender.php | 39 ++++++++++++++------------ ecrire/action/legender_auteur.php | 29 ++++++++++--------- ecrire/action/poster.php | 19 +++++++------ ecrire/action/supprimer_traduction.php | 21 ++++++++------ ecrire/action/tourner.php | 6 ++-- ecrire/action/virtualiser.php | 13 +++++---- 10 files changed, 127 insertions(+), 96 deletions(-) diff --git a/ecrire/action/dater.php b/ecrire/action/dater.php index a498447645..93b1acab1a 100644 --- a/ecrire/action/dater.php +++ b/ecrire/action/dater.php @@ -24,15 +24,20 @@ function action_dater_dist() { if (!preg_match(",^\W*(\d+)$,", $arg, $r)) { spip_log("action_dater_dist $arg pas compris"); } + else action_dater_post($r); +} + +function action_dater_post($r) +{ + include_spip('inc/date'); + if (!isset($_REQUEST['avec_redac'])) + + spip_query("UPDATE spip_articles SET date='" . format_mysql_date(_request('annee'), _request('mois'), _request('jour'), _request('heure'), _request('minute')) ."' WHERE id_article=$r[1]"); + else { - include_spip('inc/date'); - if (!isset($_REQUEST['avec_redac'])) - spip_query("UPDATE spip_articles SET date='" . format_mysql_date(_request('annee'), _request('mois'), _request('jour'), _request('heure'), _request('minute')) ."' WHERE id_article=$r[1]"); - else { - - if (_request('avec_redac') == 'non') - $annee_redac = $mois_redac = $jour_redac = $heure_redac = $minute_redac = 0; - else { + if (_request('avec_redac') == 'non') + $annee_redac = $mois_redac = $jour_redac = $heure_redac = $minute_redac = 0; + else { $annee_redac = _request('annee_redac'); $mois_redac = _request('mois_redac'); $jour_redac = _request('jour_redac'); @@ -41,13 +46,12 @@ function action_dater_dist() { if ($annee_redac<>'' AND $annee_redac < 1001) $annee_redac += 9000; - } + } - spip_query("UPDATE spip_articles SET date_redac='" . format_mysql_date($annee_redac, $mois_redac, $jour_redac, $heure_redac, $minute_redac) ."' WHERE id_article=$r[1]"); + spip_query("UPDATE spip_articles SET date_redac='" . format_mysql_date($annee_redac, $mois_redac, $jour_redac, $heure_redac, $minute_redac) ."' WHERE id_article=$r[1]"); - } - include_spip('inc/rubriques'); - calculer_rubriques(); } + include_spip('inc/rubriques'); + calculer_rubriques(); } ?> diff --git a/ecrire/action/documenter.php b/ecrire/action/documenter.php index 4b538dc327..1082348693 100644 --- a/ecrire/action/documenter.php +++ b/ecrire/action/documenter.php @@ -24,22 +24,25 @@ function action_documenter_dist() if (!preg_match(",^(-?)(\d+)\W(\w+)\W?(\d*)$,", $arg, $r)) spip_log("action_documenter $arg pas compris"); - else { - list($x, $sign, $id, $type, $vignette) = $r; - if ($vignette) + else action_documenter_post($r); +} + +function action_documenter_post($r) +{ + list($x, $sign, $id, $type, $vignette) = $r; + if ($vignette) supprimer_document_et_vignette($vignette); - else { + else { if ($sign) $x = spip_query("SELECT docs.id_document FROM spip_documents AS docs, spip_documents_".$type."s AS l, spip_types_documents AS lestypes WHERE l.id_$type=$id AND l.id_document=docs.id_document AND docs.mode='document' AND docs.id_type=lestypes.id_type AND lestypes.extension IN ('gif', 'jpg', 'png')"); else $x = spip_query("SELECT docs.* FROM spip_documents AS docs, spip_documents_".$type."s AS l, spip_types_documents AS lestypes WHERE l.id_$type=$id AND l.id_document=docs.id_document AND docs.mode='document' AND docs.id_type=lestypes.id_type AND lestypes.extension NOT IN ('gif', 'jpg', 'png')"); while($r = spip_fetch_array($x)) { supprimer_document_et_vignette($r['id_document']); } - } - if ($type == 'rubrique') { + } + if ($type == 'rubrique') { include_spip('inc/rubriques'); calculer_rubriques(); - } } } ?> diff --git a/ecrire/action/editer_mot.php b/ecrire/action/editer_mot.php index 8d821177c0..cccf22a91e 100644 --- a/ecrire/action/editer_mot.php +++ b/ecrire/action/editer_mot.php @@ -20,16 +20,20 @@ function action_editer_mot_dist() { $var_f(); $arg = _request('arg'); + // arg = l'eventuel mot a supprimer pour d'eventuelles Row SQL + if (!preg_match(',^(\d*)\D(-?\d*)\W(\w*)\W(\w*)\W(\w*)\W?(\d*)$,', $arg, $r)) + spip_log("action editer_mot: $arg pas compris"); + else action_editer_mot_post($r); +} + +function action_editer_mot_post($r) +{ $redirect = _request('redirect'); $cherche_mot = _request('cherche_mot'); $select_groupe = _request('select_groupe'); - // arg = l'eventuel mot a supprimer pour d'eventuelles Row SQL - if (!preg_match(',^(\d*)\D(-?\d*)\W(\w*)\W(\w*)\W(\w*)\W?(\d*)$,', $arg, $r)) - spip_log("action editer_mot: $arg pas compris"); - else { - list($x, $id_objet, $id_mot, $table, $table_id, $objet, $nouv_mot) = $r; - if ($id_mot) { + list($x, $id_objet, $id_mot, $table, $table_id, $objet, $nouv_mot) = $r; + if ($id_mot) { if ($objet) // desassocier un/des mot d'un objet precis spip_query("DELETE FROM spip_mots_$table WHERE $table_id=$id_objet" . (($id_mot <= 0) ? "" : " AND id_mot=$id_mot")); @@ -41,8 +45,8 @@ function action_editer_mot_dist() { spip_query("DELETE FROM spip_mots_syndic WHERE id_mot=$id_mot"); spip_query("DELETE FROM spip_mots_forum WHERE id_mot=$id_mot"); } - } - if ($nouv_mot ? $nouv_mot : ($nouv_mot = _request('nouv_mot'))) { + } + if ($nouv_mot ? $nouv_mot : ($nouv_mot = _request('nouv_mot'))) { // recopie de: // inserer_mot("spip_mots_$table", $table_id, $id_objet, $nouv_mot); $result = spip_num_rows(spip_query("SELECT id_mot FROM spip_mots_$table WHERE id_mot=$nouv_mot AND $table_id=$id_objet")); @@ -54,7 +58,6 @@ function action_editer_mot_dist() { include_spip("inc/indexation"); marquer_indexer("spip_$table", $id_objet); } - } $redirect = rawurldecode($redirect); diff --git a/ecrire/action/editer_rubrique.php b/ecrire/action/editer_rubrique.php index bea8125ec3..64d45d797c 100644 --- a/ecrire/action/editer_rubrique.php +++ b/ecrire/action/editer_rubrique.php @@ -25,27 +25,31 @@ function action_editer_rubrique_dist() { if (!preg_match(";^(\d+),(\w*),(\d+)$;", $arg, $r)) { spip_log("action_editer_rubrique_dist $arg pas compris"); - } else { + } else action_editer_rubrique_post($r); +} + +function action_editer_rubrique_post($r) +{ - list($x, $old_parent, $new, $id_rubrique) = $r; - $id_parent = intval(_request('id_parent')); - if ($new == 'oui') - $id_rubrique = enregistre_creer_naviguer($id_parent); + list($x, $old_parent, $new, $id_rubrique) = $r; + $id_parent = intval(_request('id_parent')); + if ($new == 'oui') + $id_rubrique = enregistre_creer_naviguer($id_parent); - enregistre_modifier_naviguer($id_rubrique, + enregistre_modifier_naviguer($id_rubrique, $id_parent, _request('titre'), _request('texte'), _request('descriptif'), $old_parent); - calculer_rubriques(); - calculer_langues_rubriques(); + calculer_rubriques(); + calculer_langues_rubriques(); + + // invalider les caches marques de cette rubrique + include_spip('inc/invalideur'); + suivre_invalideur("id='id_rubrique/$id_rubrique'"); - // invalider les caches marques de cette rubrique - include_spip('inc/invalideur'); - suivre_invalideur("id='id_rubrique/$id_rubrique'"); - } $redirect = parametre_url(urldecode(_request('redirect')), 'id_rubrique', $id_rubrique, '&'); redirige_par_entete($redirect); diff --git a/ecrire/action/legender.php b/ecrire/action/legender.php index bf5b0c9d7a..1d6297e7a5 100644 --- a/ecrire/action/legender.php +++ b/ecrire/action/legender.php @@ -30,24 +30,28 @@ function action_legender_dist() { if (!preg_match(",^\W*(\d+)$,", $arg, $r)) { spip_log("action_legender_dist $arg pas compris"); - } else { + } else action_legender_post($r); +} + +function action_legender_post($r) +{ - $id_document = $r[1]; + $id_document = $r[1]; - $titre_document = (corriger_caracteres(_request('titre_document'))); - $descriptif_document = (corriger_caracteres(_request('descriptif_document'))); + $titre_document = (corriger_caracteres(_request('titre_document'))); + $descriptif_document = (corriger_caracteres(_request('descriptif_document'))); - // taille du document (cas des embed) - if ($largeur_document = intval(_request('largeur_document')) - AND $hauteur_document = intval(_request('hauteur_document'))) + // taille du document (cas des embed) + if ($largeur_document = intval(_request('largeur_document')) + AND $hauteur_document = intval(_request('hauteur_document'))) $wh = ", largeur='$largeur_document', hauteur='$hauteur_document'"; - else $wh = ""; + else $wh = ""; // Date du document (uniquement dans les rubriques) - if (!_request('jour_doc')) + if (!_request('jour_doc')) $d = ''; - else { + else { $mois_doc = _request('mois_doc'); $jour_doc = _request('jour_doc'); if (_request('annee_doc') == "0000") @@ -57,20 +61,19 @@ function action_legender_dist() { $date = _request('annee_doc').'-'.$mois_doc.'-'.$jour_doc; if (preg_match('/^[0-9-]+$/', $date)) $d=" date='$date',"; - } + } - spip_query("UPDATE spip_documents SET$d titre=" . spip_abstract_quote($titre_document) . ", descriptif=" . spip_abstract_quote($descriptif_document) . " $wh WHERE id_document=".$id_document); + spip_query("UPDATE spip_documents SET$d titre=" . spip_abstract_quote($titre_document) . ", descriptif=" . spip_abstract_quote($descriptif_document) . " $wh WHERE id_document=".$id_document); - if ($date) { + if ($date) { include_spip('inc/rubriques'); // Changement de date, ce qui nous oblige a : calculer_rubriques(); - } - - // Demander l'indexation du document - include_spip('inc/indexation'); - marquer_indexer('spip_documents', $id_document); } + + // Demander l'indexation du document + include_spip('inc/indexation'); + marquer_indexer('spip_documents', $id_document); } ?> diff --git a/ecrire/action/legender_auteur.php b/ecrire/action/legender_auteur.php index 61955dbdde..53a625382a 100644 --- a/ecrire/action/legender_auteur.php +++ b/ecrire/action/legender_auteur.php @@ -19,6 +19,21 @@ include_spip('base/abstract_sql'); // http://doc.spip.org/@action_legender_auteur function action_legender_auteur() +{ + $var_f = charger_fonction('controler_action_auteur', 'inc'); + $var_f(); + + $arg = _request('arg'); + + $echec = array(); + + if (!preg_match(",^(\d+)\D(\d*)(\D?)(.*)$,", $arg, $r)) { + $r = "action_legender_auteur_dist $arg pas compris"; + spip_log($r); + } else action_legender_post($r); +} + +function action_legender_post($r) { global $auteur_session, $bio, $champs_extra, @@ -36,19 +51,6 @@ function action_legender_auteur() $statut, $url_site; - $var_f = charger_fonction('controler_action_auteur', 'inc'); - $var_f(); - - $arg = _request('arg'); - - $echec = array(); - - if (!preg_match(",^(\d+)\D(\d*)(\D?)(.*)$,", $arg, $r)) { - $r = "action_legender_auteur_dist $arg pas compris"; - spip_log($r); - $echec[]=$r; - } else { - list($tout, $id_auteur, $ajouter_id_article,$s, $n) = $r; // // si id_auteur est hors table, c'est une creation sinon une modif @@ -187,7 +189,6 @@ function action_legender_auteur() // ..et mettre a jour les fichiers .htpasswd et .htpasswd-admin ecrire_acces(); } - } if ($echec) $echec = '&echec=' . join('@@@', $echec); diff --git a/ecrire/action/poster.php b/ecrire/action/poster.php index 71dfc40660..4f36f63845 100644 --- a/ecrire/action/poster.php +++ b/ecrire/action/poster.php @@ -25,16 +25,19 @@ function action_poster_dist() if (!preg_match(",^\W*(\d+)$,", $arg, $r)) { spip_log("action_poster_dist $arg pas compris"); - } else { - $id_article = $r[1]; - $statut = _request('change_accepter_forum'); - spip_query("UPDATE spip_articles SET accepter_forum='$statut' WHERE id_article=". $id_article); - if ($statut == 'abo') { + } else action_poster_post($r); +} + +function action_poster_post($r) +{ + $id_article = $r[1]; + $statut = _request('change_accepter_forum'); + spip_query("UPDATE spip_articles SET accepter_forum='$statut' WHERE id_article=". $id_article); + if ($statut == 'abo') { ecrire_meta('accepter_visiteurs', 'oui'); ecrire_metas(); - } - include_spip('inc/invalideur'); - suivre_invalideur("id='id_forum/a$id_article'"); } + include_spip('inc/invalideur'); + suivre_invalideur("id='id_forum/a$id_article'"); } ?> diff --git a/ecrire/action/supprimer_traduction.php b/ecrire/action/supprimer_traduction.php index 8f82b552d5..6b09f9699c 100644 --- a/ecrire/action/supprimer_traduction.php +++ b/ecrire/action/supprimer_traduction.php @@ -23,13 +23,18 @@ function action_supprimer_traduction_dist() { if (!preg_match(",^(\d+)\D(\d+)$,", $arg, $r)) spip_log("action supprimer_traduction: $arg pas compris"); - else { - spip_query("UPDATE spip_articles SET id_trad=0 WHERE id_article=" . $r[1]); - // Verifier si l'ancien groupe ne comporte plus qu'un seul article. Alors mettre a zero. - $cpt = spip_fetch_array(spip_query("SELECT COUNT(*) AS n FROM spip_articles WHERE id_trad=" . $r[2])); - - if ($cpt['n'] == 1) - spip_query("UPDATE spip_articles SET id_trad = 0 WHERE id_trad=" . $r[2]); - } + else action_supprimer_traduction_post($r); +} + +function action_supprimer_traduction_post($r) +{ + spip_query("UPDATE spip_articles SET id_trad=0 WHERE id_article=" . $r[1]); + // Si l'ancien groupe ne comporte plus qu'un seul article + // mettre a zero. + + $cpt = spip_fetch_array(spip_query("SELECT COUNT(*) AS n FROM spip_articles WHERE id_trad=" . $r[2])); + + if ($cpt['n'] == 1) + spip_query("UPDATE spip_articles SET id_trad = 0 WHERE id_trad=" . $r[2]); } ?> diff --git a/ecrire/action/tourner.php b/ecrire/action/tourner.php index 9f06119b89..d82856a901 100644 --- a/ecrire/action/tourner.php +++ b/ecrire/action/tourner.php @@ -29,9 +29,11 @@ function action_tourner_dist() { if (!preg_match(",^\W*(\d+)\W?(-?\d+)$,", $arg, $r)) { spip_log("action_tourner_dist $arg pas compris"); - return; - } + } else action_tourner_post($r); +} +function action_tourner_post($r) +{ $arg = $r[1]; $result = spip_query("SELECT fichier FROM spip_documents WHERE id_document=$arg"); diff --git a/ecrire/action/virtualiser.php b/ecrire/action/virtualiser.php index db13775646..ffcddec86a 100644 --- a/ecrire/action/virtualiser.php +++ b/ecrire/action/virtualiser.php @@ -28,10 +28,13 @@ function action_virtualiser_dist() { if (!preg_match(",^\W*(\d+)$,", $arg, $r)) { spip_log("action_virtualiser_dist $arg $url pas compris"); - } else { - $url = eregi_replace("^ *https?://$", "", rtrim($url)); - if ($url) $url = corriger_caracteres("=$url"); - spip_query("UPDATE spip_articles SET chapo=" . spip_abstract_quote($url) . ", date_modif=NOW() WHERE id_article=" . $r[1]); - } + } else action_virtualiser_post($r); +} + +function action_virtualiser_post($r) +{ + $url = eregi_replace("^ *https?://$", "", rtrim($url)); + if ($url) $url = corriger_caracteres("=$url"); + spip_query("UPDATE spip_articles SET chapo=" . spip_abstract_quote($url) . ", date_modif=NOW() WHERE id_article=" . $r[1]); } ?> -- GitLab