Changeset 113579 in spip-zone


Ignore:
Timestamp:
Jan 23, 2019, 4:30:17 PM (3 months ago)
Author:
tcharlss@…
Message:

Suite r111953 : broutilles, commentaires pour s'y retrouver

Location:
_plugins_/multidomaines/branches/nettoyage
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/multidomaines/branches/nettoyage/paquet.xml

    r111953 r113579  
    22        prefix="multidomaines"
    33        categorie="maintenance"
    4         version="3.1.9"
     4        version="3.1.10"
    55        etat="stable"
    66        compatibilite="[3.0.0;3.2.*]"
  • _plugins_/multidomaines/branches/nettoyage/urls/arbo_multidomaines.php

    r111953 r113579  
    277277                unset($contexte['id_parent']);
    278278        }
    279         // Si pas de parent ou si son URL est vide, on ne renvoit que l'URL de l'objet en court
    280         // MODIF : on ne va pas jusqu'à $parent=0, on s'arrête au niveau supérieur sinon on retrouve la rubrique du site dans l'URL finale... ce qu'on ne veut pas.
     279
     280        // Retrouver le parent et son URL
     281        // [Multidomaines] Il faut exclure le secteur.
     282        // On ne va pas jusqu'à $parent=0, on s'arrête au niveau supérieur.
    281283        $niveau_superieur = $parent;
    282284        if ($type == 'rubrique') {
     
    292294                }
    293295        }
    294         if ($niveau_superieur == 0 or !($url_parent = declarer_url_arbo_multidomaines($type_parent ? $type_parent : 'rubrique', $parent, $contexte))) {
     296        $no_parent = ($niveau_superieur == 0 or !($url_parent = declarer_url_arbo_multidomaines($type_parent ? $type_parent : 'rubrique', $parent, $contexte, $options)));
     297        // Si pas de parent ou si son URL est vide, on ne renvoit que l'URL de l'objet en court
     298        if ($no_parent) {
    295299                return rtrim($url, '/');
    296300        } // Sinon on renvoit l'URL de l'objet concaténée avec celle du parent
     
    298302                return rtrim($url_parent, '/') . '/' . rtrim($url, '/');
    299303        }
     304
    300305}
    301306
     
    498503                and $u['id_parent'] == $u['parent']
    499504        ) {
    500                 return declarer_url_arbo_multidomaines_rec($url_propre, $type, $u['parent'], $u['type_parent'], $contexte);
     505                return declarer_url_arbo_multidomaines_rec(
     506                        $url_propre,
     507                        $type,
     508                        $u['parent'],
     509                        $u['type_parent'],
     510                        $contexte
     511                );
    501512        }
    502513
     
    651662 */
    652663function urls_arbo_multidomaines_dist($i, $entite, $args = '', $ancre = '') {
     664
    653665        if (is_numeric($i)) {
    654666                return _generer_url_arbo_multidomaines($entite, $i, $args, $ancre);
    655667        }
    656668
     669        // Ne pas travailler directement sur la globale
     670        $profondeur_url = $GLOBALS['profondeur_url'];
     671
    657672        // traiter les injections du type domaine.org/spip.php/cestnimportequoi/ou/encore/plus/rubrique23
    658         if ($GLOBALS['profondeur_url'] > 0 and $entite == 'sommaire') {
     673        if ($profondeur_url > 0 and $entite == 'sommaire') {
    659674                $entite = 'type_urls';
    660675        }
     
    674689        // Migration depuis anciennes URLs ?
    675690        // traiter les injections domain.tld/spip.php/n/importe/quoi/rubrique23
    676         if ($GLOBALS['profondeur_url'] <= 0
     691        if ($profondeur_url <= 0
    677692                and $_SERVER['REQUEST_METHOD'] != 'POST'
    678693        ) {
     
    739754
    740755                // [Multidomaines]
    741                 // Si on se trouve dans un des domaines configurés, ajouter son URL au début
    742                 // afin de détecter le bon secteur quand on parse les segments
     756                // Si on se trouve dans un des domaines configurés,
     757                // ajouter l'URL du secteur comme premier segment afin de retrouver le bon contexte par la suite
    743758                $url_propre_originale = $url_propre;
    744759                $host = $_SERVER['HTTP_HOST'];
     
    763778                                ) {
    764779                                        $url_propre = $url_domaine . '/' . $url_propre;
    765                                         $GLOBALS['profondeur_url'] =+ 1;
     780                                        $profondeur_url =+ 1;
    766781                                        break;
    767782                                }
     
    779794                $objet_segments = 0;
    780795
     796                // Gestion de la langue
    781797                $langue = '';
    782798                if (_url_arbo_multilang === true) {
     
    800816                }
    801817
     818                // Retrouver le contexte (objet/id_objet)
     819                // On parse les segments, en cherchant les URLs correspondantes
    802820                while (count($url_arbo) > 0) {
    803821                        $type = null;
     
    880898                }
    881899
     900                // Définir la redirection éventuelle
    882901                if (count($url_arbo_new)) {
    883902                        $caller = debug_backtrace();
     
    900919
    901920                                // [Multidomaines]
    902                                 // Retirer le segment du domaine (le 1er)
     921                                // Retirer le segment correspondant au domaine (le 1er)
    903922                                foreach ($url_arbo_new as $k => $o) {
    904923                                        if ($url_domaine) {
     
    907926                                }
    908927
     928                                // Gibolinage mystérieux
    909929                                foreach ($url_arbo_new as $k => $o) {
    910930                                        $c = array( 'langue' => $langue );
     
    919939                                }
    920940                                $url_arbo_new = ltrim(implode('/', $url_arbo_new), '/');
     941
     942                                // [Multidomaines]
     943                                // Rustine : s'assurer de ne pas avoir le secteur dans l'URL
     944                                // (à ce niveau, le cas ne devrait jamais se présenter normalement)
     945                                if ($url_domaine) {
     946                                        $url_arbo_new = preg_replace('#'.$url_domaine.'\/#', '', $url_arbo_new);
     947                                }
     948
     949                                // Rustine Nginx
     950                                // les segments de l'URL arbo sont ajoutés en query_string q=truc/machin
     951                                // On la retire si c'est le cas
     952                                if (
     953                                        isset($contexte['q'])
     954                                        and preg_match('#\/?'.$url_arbo_new.'\/?#', $contexte['q'])
     955                                ) {
     956                                        unset($contexte['q']);
     957                                }
     958
    921959                                if ($langue and _url_arbo_multilang === true) {
    922960                                        $url_arbo_new = "$langue/" . $url_arbo_new;
     
    927965                                        }
    928966                                }
     967                                // Si l'URL a changé, on redirige
    929968                                if ($url_arbo_new !== $url_propre_originale) {
    930969                                        $url_redirect = _debut_urls_arbo
     
    9651004                // remettre la profondeur initiale
    9661005                if ($url_domaine) {
    967                         $GLOBALS['profondeur_url'] =- 1;
     1006                        $profondeur_url =- 1;
    9681007                }
    9691008
    9701009                // gerer le retour depuis des urls propres
    9711010                if (($entite == '' or $entite == 'type_urls')
    972                         and $GLOBALS['profondeur_url'] <= 0
     1011                        and $profondeur_url <= 0
    9731012                ) {
    9741013                        $urls_anciennes = charger_fonction('propres', 'urls');
     
    9931032        }
    9941033
    995         //var_dump($contexte, $entite, $url_redirect);
    996         //die();
     1034        //var_dump($contexte, $url_redirect);
     1035        //die('debug');
    9971036
    9981037        return array($contexte, $entite, $url_redirect, null);
Note: See TracChangeset for help on using the changeset viewer.