X-Git-Url: http://git.cyclocoop.org/?p=velocampus%2Fweb%2Fwww.git;a=blobdiff_plain;f=www%2Fecrire%2Fbalise%2Furl_.php;fp=www%2Fecrire%2Fbalise%2Furl_.php;h=4b419bcf5e1516ab27945d0959570977069c67f4;hp=b83912b9f4fd4e6aaefa644e8cf76ec98f99307f;hb=e99f0878011913365e49b30d90e496c24c301393;hpb=80b4d3e85f78d402ed2e73f8f5d1bf4c19962eed diff --git a/www/ecrire/balise/url_.php b/www/ecrire/balise/url_.php index b83912b..4b419bc 100644 --- a/www/ecrire/balise/url_.php +++ b/www/ecrire/balise/url_.php @@ -3,7 +3,7 @@ /***************************************************************************\ * SPIP, Systeme de publication pour l'internet * * * - * Copyright (c) 2001-2011 * + * Copyright (c) 2001-2014 * * Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James * * * * Ce programme est un logiciel libre distribue sous licence GNU/GPL. * @@ -142,19 +142,15 @@ function balise_URL_PAGE_dist($p) { $s = !$p->id_boucle ? '' : $p->boucles[$p->id_boucle]->sql_serveur; if ($s) { - if (!$GLOBALS['connexions'][strtolower($s)]['spip_connect_version']) { - $code = "404"; - } else { - // si une fonction de generation des url a ete definie pour ce connect l'utiliser - // elle devra aussi traiter le cas derogatoire type=page - if (function_exists($f = 'generer_generer_url_'.$s)){ + // si une fonction de generation des url a ete definie pour ce connect l'utiliser + // elle devra aussi traiter le cas derogatoire type=page + if (function_exists($f = 'generer_generer_url_'.$s)){ if ($args) $code .= ", $args"; $code = $f('page', $code, $s); return $p; - } - $s = 'connect=' . addslashes($s); - $args = $args ? "$args . '&$s'" : "'$s'"; } + $s = 'connect=' . addslashes($s); + $args = $args ? "$args . '&$s'" : "'$s'"; } if (!$code) { $noentities = $p->etoile ? "'&'" : ''; @@ -171,7 +167,7 @@ function balise_URL_PAGE_dist($p) { // // #URL_ECRIRE{naviguer} -> ecrire/?exec=naviguer -// +// #URL_ECRIRE* meme chose, mais sans convertir les & en & // http://doc.spip.org/@balise_URL_ECRIRE_dist function balise_URL_ECRIRE_dist($p) { @@ -183,8 +179,10 @@ function balise_URL_ECRIRE_dist($p) { $fonc = $code; else {$code = "(\$f = $code)"; $fonc = '$f';} $args = interprete_argument_balise(2,$p); - if ($args != "''" && $args!==NULL) - $fonc .= ',' . $args; + if ($args === NULL) $args = "''"; + $noentities = $p->etoile ? ", true" : ''; + if (($args != "''") OR $noentities) + $fonc .= ",$args$noentities"; } $p->code = 'generer_url_ecrire(' . $fonc .')'; if ($code) @@ -200,20 +198,22 @@ function balise_URL_ECRIRE_dist($p) { function balise_URL_ACTION_AUTEUR_dist($p) { $p->descr['session'] = true; - if ($p->boucles[$p->id_boucle]->sql_serveur) { - $p->code = 'generer_url_public("404")'; - return $p; + $script = interprete_argument_balise(1,$p); + if (!$script OR $script == "''") { + $msg = array('zbug_balise_sans_argument', + array('balise' => ' URL_ACTION_AUTEUR')); + erreur_squelette($msg, $p); + } else { + $args = interprete_argument_balise(2,$p); + if (!$args) $args = "''"; + $redirect = interprete_argument_balise(3,$p); + // cas d'un appel (squelette) avec '' comme valeur de redirection + if ($redirect == "''") + $redirect = ""; + if ($redirect) + $redirect = ",$redirect"; + $p->code = "generer_action_auteur($script,$args$redirect)"; } - - $p->code = interprete_argument_balise(1,$p); - $args = interprete_argument_balise(2,$p); - if ($args != "''" && $args!==NULL) - $p->code .= ",".$args; - $redirect = interprete_argument_balise(3,$p); - if ($redirect != "''" && $redirect!==NULL) - $p->code .= ",".$redirect; - - $p->code = "generer_action_auteur(" . $p->code . ")"; $p->interdire_scripts = false; return $p; }