From b256c480cb1a4f70ca0c7e18f0dc3fb42e183a42 Mon Sep 17 00:00:00 2001 From: "Committo,Ergo:sum" <esj@rezo.net> Date: Tue, 18 Sep 2007 09:41:41 +0000 Subject: [PATCH] =?UTF-8?q?Multi-base:=20les=20liens=20des=20raccourcis=20?= =?UTF-8?q?({{{=20[titre->rub1]=20}}}=20etc)=20d'une=20base=20externe=20so?= =?UTF-8?q?nt=20=C3=A0=20pr=C3=A9sent=20correctement=20construits.=20Ces?= =?UTF-8?q?=20liens=20ont=20finalement=20la=20forme=20{{{=C2=A0site=5Floca?= =?UTF-8?q?l=3F}}}''objet''{{{&connect=3D}}}''base''=20ce=20qui=20permet?= =?UTF-8?q?=20de=20naviguer=20dans=20l'interpr=C3=A9tation=20du=20site=20e?= =?UTF-8?q?xterne=20par=20les=20squelettes=20du=20site=20local,=20=C3=A7a?= =?UTF-8?q?=20semble=20plus=20utile=20que=20de=20reproduire=20le=20site=20?= =?UTF-8?q?distant=20=C3=A0=20l'identique=20(autant=20y=20aller=20alors).?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cette stratégie met fin au suspense de [10313]. Ses modifications de action/redirect et inc/urls ne sont finalement pas utiles, mais sont laissées car elles pourront servir: si l'on veut agir en écriture sur la base externe, il faut justement transmettre le paramètre {{{ $connect }}} aux scripts de {{{ action/}}}, le modèle est donc en place. Dans la foulée, on tempère le refus des balises dynamiques sur base externe: plutot qu'un message d'erreur envoyé au client, le code produit est vide, comme si l'option n'était pas disponible, et on notifie seulement dans {{{spip.log}}}. --- ecrire/inc/texte.php | 9 ++++----- ecrire/public/references.php | 6 ++++-- 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/ecrire/inc/texte.php b/ecrire/inc/texte.php index b047c11863..bb0ad6079c 100644 --- a/ecrire/inc/texte.php +++ b/ecrire/inc/texte.php @@ -615,11 +615,10 @@ function calculer_url ($lien, $texte='', $pour='url', $connect='') { @list($f,,$id,,$param,,$ancre) = $match; $res = ''; if ($connect) { - include_spip('inc/urls'); - $g = 'generer_url_ecrire_' . $f; - $param .= ($param ? '&' : '') . "connect=" . $connect; - if (function_exists($g)) - $res = $g($id, $param, $ancre, 'publie', $connect); + $id_type = ($f != 'site') ? "id_$f" : 'id_syndic'; + $res = get_spip_script('./') + . "?page=$f&$id_type=$id&connect=$connect" + . (!$params ? '' : "&$param"); } else { charger_generer_url(); $g = 'generer_url_' . $f; diff --git a/ecrire/public/references.php b/ecrire/public/references.php index 490d7c9bb1..d5614b76bb 100644 --- a/ecrire/public/references.php +++ b/ecrire/public/references.php @@ -260,7 +260,7 @@ print $p->code."\n<hr/>\n"; // http://doc.spip.org/@calculer_balise_dynamique function calculer_balise_dynamique($p, $nom, $l) { - balise_distante_interdite($p); + if (!balise_distante_interdite($p)) return $p; $param = ""; if ($a = $p->param) { $c = array_shift($a); @@ -307,8 +307,10 @@ function collecter_balise_dynamique($l, &$p, $nom) { function balise_distante_interdite($p) { $nom = $p->id_boucle; if ($nom AND $p->boucles[$nom]->sql_serveur) { - erreur_squelette($p->nom_champ .' '._T('zbug_distant_interdit'), $nom); + spip__log( $nom .':' . $p->nom_champ .' '._T('zbug_distant_interdit')); + return false; } + return true; } -- GitLab