From 3696e365d5eb10e34a92d0ff528abfda3b1457d1 Mon Sep 17 00:00:00 2001
From: "Committo,Ergo:sum" <esj@rezo.net>
Date: Tue, 10 Jan 2006 14:59:38 +0000
Subject: [PATCH] basculement de spip_redirect vers spip_action, en conservant
 le premier sous une forme adaptee pour assurer la continuite du service

---
 .gitattributes                      |  1 +
 ecrire/inc_mail.php3                |  6 +---
 ecrire/inc_presentation.php3        |  4 +--
 ecrire/inc_signatures.php3          |  3 +-
 ecrire/inc_spip_action_ical.php     |  1 -
 ecrire/inc_spip_action_redirect.php | 56 +++++++++++++++++++++++++++++
 ecrire/inc_urls.php3                | 14 ++++----
 inc-urls-propres.php3               |  2 +-
 spip_redirect.php3                  | 41 ++-------------------
 9 files changed, 71 insertions(+), 57 deletions(-)
 create mode 100644 ecrire/inc_spip_action_redirect.php

diff --git a/.gitattributes b/.gitattributes
index 658ca5d0f4..a84496f75d 100644
--- a/.gitattributes
+++ b/.gitattributes
@@ -320,6 +320,7 @@ ecrire/inc_spip_action_ical.php -text
 ecrire/inc_spip_action_iconifier.php -text
 ecrire/inc_spip_action_joindre.php -text
 ecrire/inc_spip_action_purger.php -text
+ecrire/inc_spip_action_redirect.php -text
 ecrire/inc_spip_action_supprimer.php -text
 ecrire/inc_spip_action_test_dirs.php -text
 ecrire/inc_spip_action_tester.php -text
diff --git a/ecrire/inc_mail.php3 b/ecrire/inc_mail.php3
index 00f1d179af..07b3c253f5 100644
--- a/ecrire/inc_mail.php3
+++ b/ecrire/inc_mail.php3
@@ -10,12 +10,8 @@
  *  Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne.   *
 \***************************************************************************/
 
-
-//
 if (!defined("_ECRIRE_INC_VERSION")) return;
 
-
-
 //
 // Infos de mails sur l'hebergeur (tout ca est assez sale)
 //
@@ -192,7 +188,7 @@ function extrait_article($row) {
 	$extrait .= "\n\n".textebrut(propre(couper_intro("$chapo<p>$texte", 700)))."\n\n";
 	if ($statut == 'publie') 
 		$extrait .= "-> ".
-		  generer_url_public('spip_redirect', "id_article=$id_article") .
+		  generer_url_public('spip_action.php', "action=redirect&id_article=$id_article") .
 		  "\n\n";
 	return $extrait;
 }
diff --git a/ecrire/inc_presentation.php3 b/ecrire/inc_presentation.php3
index d3cdfc352a..66ed06a415 100644
--- a/ecrire/inc_presentation.php3
+++ b/ecrire/inc_presentation.php3
@@ -3261,7 +3261,7 @@ function fin_page($credits='') {
 	    "</a></div>";
 	} else {
 	  echo '<div style="text-align: right; font-family: Verdana; font-size: 8pt">',
-	    info_copyright(), "<br />"._T('info_copyright_doc'),'</div>' ;
+	    info_copyright(), "<br />",_T('info_copyright_doc'),'</div>' ;
 	}
 
 	fin_grand_cadre();
@@ -3386,7 +3386,7 @@ function voir_en_ligne ($type, $id, $statut=false, $image='racine-24.gif') {
 	}
 
 	if ($message)
-		icone_horizontale($message, generer_url_public('spip_redirect',"id_$type=$id&var_mode=$en_ligne"), $image, "rien.gif");
+		icone_horizontale($message, generer_url_public('spip_action.php', "action=redirect&id_$type=$id&var_mode=$en_ligne"), $image, "rien.gif");
 }
 
 
diff --git a/ecrire/inc_signatures.php3 b/ecrire/inc_signatures.php3
index 517810bd2d..4405d55f20 100644
--- a/ecrire/inc_signatures.php3
+++ b/ecrire/inc_signatures.php3
@@ -11,7 +11,6 @@
 \***************************************************************************/
 
 
-//
 if (!defined("_ECRIRE_INC_VERSION")) return;
 
 include_ecrire('inc_urls');
@@ -88,7 +87,7 @@ function controle_signatures($script, $id, $debut, $where, $order, $limit=10) {
 		
 		echo "<a href='",
 		  (($statut == 'publie') ? 
-		   generer_url_public('spip_redirect', "id_article=$id_article") :
+		   generer_url_public('spip_action.php', "action=redirect&id_article=$id_article") :
 		   generer_url_ecrire('articles', "id_article=$id_article")),
 		  "'>",
 		  typo($titre),
diff --git a/ecrire/inc_spip_action_ical.php b/ecrire/inc_spip_action_ical.php
index f87c387d5d..0955930c2f 100644
--- a/ecrire/inc_spip_action_ical.php
+++ b/ecrire/inc_spip_action_ical.php
@@ -27,7 +27,6 @@ function ligne ($texte) {
 function spip_action_ical_dist()
 {
 	global $id_auteur, $arg, $action;
-	spip_log("fonction spipcal $id_auteur, $arg, $action");
 	if (verifier_low_sec($id_auteur, $arg, $action)) {
 		$result = spip_query("SELECT * FROM spip_auteurs WHERE id_auteur=" . intval($id_auteur));
 
diff --git a/ecrire/inc_spip_action_redirect.php b/ecrire/inc_spip_action_redirect.php
new file mode 100644
index 0000000000..c2e1713388
--- /dev/null
+++ b/ecrire/inc_spip_action_redirect.php
@@ -0,0 +1,56 @@
+<?php
+
+/***************************************************************************\
+ *  SPIP, Systeme de publication pour l'internet                           *
+ *                                                                         *
+ *  Copyright (c) 2001-2006                                                *
+ *  Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James  *
+ *                                                                         *
+ *  Ce programme est un logiciel libre distribue sous licence GNU/GPL.     *
+ *  Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne.   *
+\***************************************************************************/
+
+// pour rediriger vers l'URL canonique de l'article,
+// en indiquant recalcul et previsu
+
+if (!defined("_ECRIRE_INC_VERSION")) return;
+
+charger_generer_url();
+
+function spip_action_redirect_dist()
+{
+  global $id_article, $id_auteur, $id_breve, $id_forum, $id_mot, $id_rubrique, $id_site, $id_syndic, $var_mode;
+
+
+  if ($id_article = intval($id_article)) {
+	$url = generer_url_article($id_article);
+}
+  else if ($id_breve = intval($id_breve)) {
+	$url = generer_url_breve($id_breve);
+}
+  else if ($id_forum = intval($id_forum)) {
+	$url = generer_url_forum($id_forum);
+}
+  else if ($id_rubrique = intval($id_rubrique)) {
+	$url = generer_url_rubrique($id_rubrique);
+}
+  else if ($id_mot = intval($id_mot)) {
+	$url = generer_url_mot($id_mot);
+}
+  else if ($id_auteur = intval($id_auteur)) {
+	$url = generer_url_auteur($id_auteur);
+}
+  else if ($id_syndic = intval($id_syndic) OR $id_syndic = intval($id_site)) {
+	$url = generer_url_site($id_syndic);
+}
+else {
+	$url = _DIR_RESTREINT_ABS;
+}
+
+// Ne pas masquer cette eventuelle erreur (aide a detecter des lignes vides
+// dans inc-urls ou mes_fonctions/mes_options)
+ header("Location: " . (!$var_mode ?  $url : ($url . (strpos($url,'?') ? '&' : '?') ."var_mode=" . $var_mode)));
+}
+
+
+?>
diff --git a/ecrire/inc_urls.php3 b/ecrire/inc_urls.php3
index f52be37de3..0d0909dfb1 100644
--- a/ecrire/inc_urls.php3
+++ b/ecrire/inc_urls.php3
@@ -19,7 +19,7 @@ function generer_url_article($id_article) {
 	if (($row = spip_fetch_array(spip_query(
 	"SELECT statut FROM spip_articles WHERE id_article=$id_article"
 	))) AND ($row['statut'] == 'publie'))
-		return generer_url_public('spip_redirect',"id_article=$id_article");
+		return generer_url_public('spip_action.php', "action=redirect&id_article=$id_article");
 	else	return generer_url_ecrire('articles',"id_article=$id_article");
 }
 
@@ -27,7 +27,7 @@ function generer_url_rubrique($id_rubrique) {
 	if (($row = spip_fetch_array(spip_query(
 	"SELECT statut FROM spip_rubriques WHERE id_rubrique=$id_rubrique"
 	))) AND ($row['statut'] == 'publie'))
-		return generer_url_public('spip_redirect',"id_rubrique=$id_rubrique");
+		return generer_url_public('spip_action.php', "action=redirect&id_rubrique=$id_rubrique");
 	else
 	  return generer_url_ecrire('naviguer',"id_rubrique=$id_rubrique");
 }
@@ -36,25 +36,25 @@ function generer_url_breve($id_breve) {
 	if (($row = spip_fetch_array(spip_query(
 	"SELECT statut FROM spip_breves WHERE id_breve=$id_breve"
 	))) AND ($row['statut'] == 'publie'))
-		return generer_url_public('spip_redirect',"id_breve=$id_breve");
+		return generer_url_public('spip_action.php', "action=redirect&id_breve=$id_breve");
 	else
 		return generer_url_ecrire('breves_voir',"id_breve=$id_breve");
 }
 
 function generer_url_forum($id_forum) {
-	return generer_url_public('spip_redirect',"id_forum=$id_forum");
+	return generer_url_public('spip_action.php', "action=redirect&id_forum=$id_forum");
 }
 
 function generer_url_mot($id_mot) {
-	return  generer_url_public('spip_redirect',"id_mot=$id_mot");
+	return  generer_url_public('spip_action.php', "action=redirect&id_mot=$id_mot");
 }
 
 function generer_url_site($id_syndic) {
-	return  generer_url_public('spip_redirect',"id_syndic=$id_syndic");
+	return  generer_url_public('spip_action.php', "action=redirect&id_syndic=$id_syndic");
 }
 
 function generer_url_auteur($id_auteur) {
-	return generer_url_public('spip_redirect',"id_auteur=$id_auteur");
+	return generer_url_public('spip_action.php', "action=redirect&id_auteur=$id_auteur");
 }
 
 function generer_url_document($id_document) {
diff --git a/inc-urls-propres.php3 b/inc-urls-propres.php3
index 49ac134659..2024152c0a 100644
--- a/inc-urls-propres.php3
+++ b/inc-urls-propres.php3
@@ -74,7 +74,7 @@ function _generer_url_propre($type, $id_objet) {
 	// 1) il n'existe pas, ou
 	// 2) l'objet n'est pas 'publie' et on est admin connecte, ou
 	// 3) on le demande explicitement (preview) et on est admin connecte
-	if (defined('_SPIP_REDIRECT') AND
+	if (function_exists('spip_action_redirect_dist') AND
 	($GLOBALS['preview'] OR ($row['statut'] <> 'publie'))
 	AND $GLOBALS['auteur_session']['statut'] == '0minirezo')
 		$modif_url_propre = true;
diff --git a/spip_redirect.php3 b/spip_redirect.php3
index 61ad160495..924151722d 100644
--- a/spip_redirect.php3
+++ b/spip_redirect.php3
@@ -10,47 +10,10 @@
  *  Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne.   *
 \***************************************************************************/
 
-// redirige vers l'URL canonique de l'article,
-// en indiquant recalcul et previsu
+// pour compatibilite. Remplacer par spip_action.php?action=redirect + args
 
 define ('_SPIP_REDIRECT', 1);
 include ("ecrire/inc_version.php3");
-charger_generer_url();
-
-function spip_action_redirect_dist()
-{
-  global $id_article, $id_auteur, $id_breve, $id_forum, $id_mot, $id_rubrique, $id_site, $id_syndic, $var_mode;
-
-
-  if ($id_article = intval($id_article)) {
-	$url = generer_url_article($id_article);
-}
-  else if ($id_breve = intval($id_breve)) {
-	$url = generer_url_breve($id_breve);
-}
-  else if ($id_forum = intval($id_forum)) {
-	$url = generer_url_forum($id_forum);
-}
-  else if ($id_rubrique = intval($id_rubrique)) {
-	$url = generer_url_rubrique($id_rubrique);
-}
-  else if ($id_mot = intval($id_mot)) {
-	$url = generer_url_mot($id_mot);
-}
-  else if ($id_auteur = intval($id_auteur)) {
-	$url = generer_url_auteur($id_auteur);
-}
-  else if ($id_syndic = intval($id_syndic) OR $id_syndic = intval($id_site)) {
-	$url = generer_url_site($id_syndic);
-}
-else {
-	$url = _DIR_RESTREINT_ABS;
-}
-
-// Ne pas masquer cette eventuelle erreur (aide a detecter des lignes vides
-// dans inc-urls ou mes_fonctions/mes_options)
- header("Location: " . (!$var_mode ?  $url : ($url . (strpos($url,'?') ? '&' : '?') ."var_mode=" . $var_mode)));
-}
-
+include_ecrire("inc_spip_action_redirect.php");
 spip_action_redirect_dist();
 ?>
-- 
GitLab