[spip-dev] Url propres

Bonjour,

En activant les urls propres sur un SPip 2, j'ai un plantage sur une requête SQL :

$row = sql_fetsel("U.url, U.date, O.$champ_titre", "$table AS O LEFT JOIN spip_urls AS U ON (U.type='$type' AND U.id_objet=O.$col_id)", "O.$col_id=$id_objet", '', 'U.date DESC', 1);

La variable champ_titre était vide donc la requête échoue.

J'ai donc rechercher où était située cette requête.
Cette requête se trouve dans 2 fichiers :
  • ecrire/urls/arbo.php
  • ecrire/urls/propres.php

En regardant de plus près, dans arbo.php, il y a ce code pour s'assurer que la variable titre n'est jamais vide

// Auteurs : on prend le nom
    if ($type == 'auteur')
      $champ_titre = 'nom AS titre';
    else if ($type == 'site' OR $type=='syndic')
      $champ_titre = 'nom_site AS titre';
    else
      $champ_titre = 'titre';

or ce code n'y est pas dans propres.php (ligne 160).
J'ai donc mis ce code en place et la je n'ai plus d'erreur.

Peut-etre faudrait -il intégrer la correction dans le core de Spip. Je ne veux pas le faire sans votre accord.

merci d'avance,

REDONDO Julien

Bonjour,

Je te conseille plutôt de mettre a jour ta version de SPIP, car il semble que tu aie un vieux fichier :
http://trac.rezo.net/trac/spip/browser/tags/spip-2.0.8/ecrire/urls/arbo.php#L240

Cédric

Bonjour,

Je suis bien en 2.0.8. J'ai bien les modifications que tu précises.

Par contre, c'est dans propres.php que ce bout de code n'existe pas.
et c'est là que le plantage se produit.

Donc dans arbo.php, c'est OK mais pas dans propres.php.

Je ne sais pas si c'est cela la solution mais là, le problème est corrigé en faisant ce que j'ai décrit plus bas.

Mais peut-être n'est ce pas la meilleure solution ?
Normalement, la fonction desc_table devrait renvoyer les champs de la table............

Merci d'avance,

@+

Au temps pour moi.
Mais en fait, la lecture comparée me fait penser que code propre est générique est bien celui de propres.php et non celui de arbo.php.
Donc je crois que la vrai bonne correction est celle là :
http://trac.rezo.net/trac/spip/changeset/14123

Pour vérifier, il te faut enlever ton patch, et faire un ?var_mode=recalcul sur une page apres avoir corrigé comme 14123
Cédric