[spip-dev] type_url not found en arborescent + patch (bidouille?)

Salut,

J'ai un comportement vraiment très bizarre avec les URL arbo sur 1 site (chez OVH).

=> Avec l'install de base, les rubriques ne fonctionnent pas, j'obtiens le message d'erreur "squelette type_url n'existe pas". Sur les articles, nickel.

=> Cela vient du slash final des URL de rubriques:

Avec un slash, ça déconne:
http://www.xxx.fr/francais/recherche-et-formation/

Sans le slash, ça fonctionne:
http://www.xxx.fr/francais/recherche-et-formation

=> Pour résoudre ça, j'ai modifié «urls/arbo.php» en ajoutant une ligne ainsi:

Martin Arnaud a écrit :

    $url = ereg_replace("\/$", "", $url);

Pour la même chose en moins gourmand, je présume :
$url = rtrim($url,'/');

Pour le reste, aucune idée :wink:

Martin Arnaud a écrit :

    $url = ereg_replace("\/$", "", $url);

Pour la même chose en moins gourmand, je présume :
$url = rtrim($url,'/');

Pour le reste, aucune idée :wink:

S'lt

Si je ne m'abuse cela plutot pouvoir se regler dans le .htaccess ça
serait encore moins gourmand.

km

J'ai un comportement vraiment très bizarre avec les URL arbo sur 1 site (chez OVH).
=> Avec l'install de base, les rubriques ne fonctionnent pas, j'obtiens le message d'erreur "squelette type_url n'existe pas". Sur les articles, nickel.

Ca m'est arrivé plusieurs fois, mais c'est parti sans que je comprenne d'où ça venait...

=> Cela vient du slash final des URL de rubriques:

Avec un slash, ça déconne:
http://www.xxx.fr/francais/recherche-et-formation/

Sans le slash, ça fonctionne:
http://www.xxx.fr/francais/recherche-et-formation

=> Pour résoudre ça, j'ai modifié «urls/arbo.php» en ajoutant une ligne ainsi:
[...]
Avec cette ligne supplémentaire, je vire «à la dure» le slash final, et du coup je retrouve le fonctionne normal.

Personnellement, je préfère largement avoir un "/" final sur les URL de rubriques et groupes de mots clefs, ces "/" étant interprétés par la plupart des internautes comme la marque d'un conteneur d'un ensemble de contenus, à l'image des dossiers système.

J'ai déjà fait un patch permettant de personnaliser la fin des URL de mots clefs :
http://trac.rezo.net/trac/spip/ticket/1537

Il serait peut-être carrément plus intéressant de pouvoir spécifier les terminaisons des URL par type, plutôt qu'avec une simple constante _terminaison_urls_arbo.

Par exemple, mettre ceci dans mes_options.php :

$GLOBALS['url_arbo_terminaisons']=array(
   'article' => '.html',
   'rubrique' => '/',
   'breve' => '.html',
   'site' => '.html',
   'mot' => '',
   'groupe_mots' => '/',
   'auteur' => '.html');

Qu'en dites-vous ?

-Nicolas

Nicolas Hoizey a écrit :

$GLOBALS['url_arbo_terminaisons']=array(
  'article' => '.html',
  'rubrique' => '/',
  'breve' => '.html',
  'site' => '.html',
  'mot' => '',
  'groupe_mots' => '/',
  'auteur' => '.html');

Qu'en dites-vous ?

Très chouette oui !

JL

=> Pour résoudre ça, j'ai modifié «urls/arbo.php» en ajoutant une ligne
ainsi:

-----------
function urls_arbo_dist($i, &$entite, $args='', $ancre='') {
       global $contexte;

       if (is_numeric($i))
               return _generer_url_arbo($entite, $i, $args, $ancre);

       $url = $i;

       $url = ereg_replace("\/$", "", $url);
-----------------

Avec cette ligne supplémentaire, je vire «à la dure» le slash final, et du
coup je retrouve le fonctionne normal.

Chez moi ton patch 12816 casse la home page, qui me donne alors une
rubrique (la 15, va savoir pourquoi)

-- Fil

J'ai déjà fait un patch permettant de personnaliser la fin des URL de mots
clefs :
http://trac.rezo.net/trac/spip/ticket/1537

Il serait peut-être carrément plus intéressant de pouvoir spécifier les
terminaisons des URL par type, plutôt qu'avec une simple constante
_terminaison_urls_arbo.

Par exemple, mettre ceci dans mes_options.php :

$GLOBALS['url_arbo_terminaisons']=array(
'article' => '.html',
'rubrique' => '/',
'breve' => '.html',
'site' => '.html',
'mot' => '',
'groupe_mots' => '/',
'auteur' => '.html');

Oui ça pourrait résoudre le problème d'arno sans tout planter :stuck_out_tongue:
Tu peux mettre à jour le patch sur trac stp ?

-- Fil

Chez moi ton patch 12816 casse la home page, qui me donne alors une
rubrique (la 15, va savoir pourquoi)

Ah ben si. La rubrique 15 s'appelle 'spip', et la home page est
http://localhost/spip/

Je suis dessus, mais j'ai encore un soucis pour la reconnaissance de l'URL dans le cas où elle ne se termine ni par '/' ni par '.html'.

Sinon, c'est opérationnel et bien configurable, donc dès que je résout le problème, je propose le patch.

-Nicolas

Ah non, en fait j'ai toujours le problème déjà signalé plusieurs fois et par plusieurs personnes, de message d'erreur « Aucun squelette 'groupes_mot' n'est disponible... » sur la page d'un mot avec la dist. Le mot est bien reconnu par les URL, le bouton me permettant de le modifier étant proposé avec le bon id, mais j'ai une erreur 404.

Ce n'est pas le cas sur les urls "propres", mais ça l'est avec les urls "arbo" actuelles et je ne trouve pas d'où ça vient.

-Nicolas

Ah non, en fait j'ai toujours le problème déjà signalé plusieurs fois et par plusieurs personnes, de message d'erreur « Aucun squelette 'groupes_mot' n'est disponible... » sur la page d'un mot avec la dist. Le mot est bien reconnu par les URL, le bouton me permettant de le modifier étant proposé avec le bon id, mais j'ai une erreur 404.
Ce n'est pas le cas sur les urls "propres", mais ça l'est avec les urls "arbo" actuelles et je ne trouve pas d'où ça vient.

Je progresse à pas de fourmi :

Toujours en url "arbo" telles que fournies dans SPIP et non p, l'URL suivante est reconnue mais donne un 404 avec l'erreur sus-citée :
http://spip-svn.local/tags/google.html

Par contre, si je change le '.html' en '/', l'URL est toujours reconnue, mais surtout ne me fait plus d'erreur et m'affiche bien le contenu du mot :
http://spip-svn.local/tags/google/

Cédric, une idée d'où ton code pourrait induire cette erreur ?

-Nicolas