[SPIP] ~maj 3.0.13 -> 3.0.14
[ptitvelo/web/www.git] / www / plugins-dist / urls_etendues / urls / arbo.php
index 8a91e56..4d7aac2 100644 (file)
@@ -3,7 +3,7 @@
 /***************************************************************************\
  *  SPIP, Systeme de publication pour l'internet                           *
  *                                                                         *
- *  Copyright (c) 2001-2013                                                *
+ *  Copyright (c) 2001-2014                                                *
  *  Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James  *
  *                                                                         *
  *  Ce programme est un logiciel libre distribue sous licence GNU/GPL.     *
@@ -214,10 +214,12 @@ function declarer_url_arbo_rec($url,$type,$parent,$type_parent){
        if (is_null($parent)){
                return $url;
        }
-       if($parent==0)
+       // Si pas de parent ou si son URL est vide, on ne renvoit que l'URL de l'objet en court
+       if ($parent==0 or !($url_parent = declarer_url_arbo($type_parent?$type_parent:'rubrique',$parent))){
                return rtrim($url,'/');
+       }
+       // Sinon on renvoit l'URL de l'objet concaténée avec celle du parent
        else {
-               $url_parent = declarer_url_arbo($type_parent?$type_parent:'rubrique',$parent);
                return rtrim($url_parent,'/') . '/' . rtrim($url,'/');
        }
 }
@@ -344,7 +346,8 @@ function declarer_url_arbo($type, $id_objet) {
        if ($modifier_url
                AND CONFIRMER_MODIFIER_URL
                AND $url_propre
-               AND $url != preg_replace('/,.*/', '', $url_propre))
+               // on essaye pas de regenerer une url en -xxx (suffixe id anti collision)
+               AND $url != preg_replace('/'.preg_quote(_url_propres_sep_id,'/').'.*/', '', $url_propre))
                $confirmer = true;
        else
                $confirmer = false;