[spip-dev] Problème avec prévisualisation

Bonjour,

Je pense que notre site a le même problème que spip.net pour la prévisualisation des articles qui ne sont pas encore publiés.

Un lien comme :
http://www.spip.net/ecrire/?exec=articles&action=redirect&type=article&id=3796&var_mode=preview

est traduit en :
http://www.spip.net/fr_article3796.html

ce qui donne une page blanche.

Comme j'utilise le même système d'URLs, je m'intéresse à la solution !
Mais je pense que les URLs de spip.net n'ont pas été mis avec le squelette dans trac ?

Paolo

Je confirme. Et il y a un bug supplémentaire sur spip.net, une fois
qu'on clique sur "Prévisualisation" :

<BOUCLE_archives_rub>()
Erreur SQL
L1.id_rubrique FROM spip_mots_rubriques AS `L1` WHERE (L1.id_mot = 9)
AND (id_secteur NOT IN (324))
Unknown column 'id_secteur' in 'where clause'
</BOUCLE_archives_rub>

Ce n’est pas un bug du compilateur, c’est dans le mes_fonctions spécifique de spipnet qu’on fait ce truc faux:

// hack pour ne jamais afficher les secteurs d’aide en ligne
// sauf evidemment dans le cas de l’aide en ligne, ou dans l’espace prive
define(‘secteurs_aide’, ‘324’);
if (!defined(‘aide_en_ligne’)
AND !_DIR_RACINE) {
function boucle_ARTICLES($id_boucle, &$boucles) {
$boucles[$id_boucle]->where[] = array("‘NOT IN’", “‘id_secteur’”, ‘"(’.secteurs_aide.’)"’);
return boucle_ARTICLES_dist($id_boucle, $boucles);
}
idem pour RUBRIQUES etc.

Le pb est que l’optimiseur voit passer “FROM spip_rubriques LEFT JOIN spip_mots_rubrique” et regarde si spip_rubriques est vraiment utile.
Dans le mode non preview, la réponse est oui car il y a “rubriques.statut=‘publie’” dans la clause Where.
Dans le mode preview, statut n’est pas là, et id_secteur n’est pas préfixé par “rubriques.” d’où erreur.

Committo,Ergo:Sum

Les 2 bugs sont corrigés ici:

http://zone.spip.org/trac/spip-zone/changeset/23764

Committo,Ergo:Sum

Committo,Ergo:sum wrote:

Les 2 bugs sont corrigés ici:
Connexion · GitLab

Merci bcp ! Cela me corrige le site ici aussi.

Paolo

Maintenant en prévisualisation sur
http://www.spip.net/fr_article3796.html?var_mode=preview on a 4
messages d'erreur du type :

<BOUCLE_article_principal>()
Erreur SQL
articles.id_trad, articles.id_article, articles.lang, articles.titre,
articles.texte, articles.chapo, articles.descriptif,
articles.id_rubrique, articles.id_secteur, articles.surtitre,
articles.soustitre, articles.date, articles.date_modif, articles.ps
FROM spip_articles AS `articles` WHERE (articles.statut IN
('publie','prop')) AND (articles.id_article = 3796) AND
(rubriques.id_secteur NOT IN (324))
Unknown table 'rubriques' in where clause
</BOUCLE_article_principal>

ok:

http://zone.spip.org/trac/spip-zone/changeset/23767

mais pourquoi ne pas avoir fait la modif que j'indiquais ?
J'ai du réécrire tout le htacces pour pouvoir tester.

Committo,Ergo:Sum

mais pourquoi ne pas avoir fait la modif que j'indiquais ?

quelle modif ?

-- Fil

mais pourquoi ne pas avoir fait la modif que j'indiquais ?

quelle modif ?

dans mon mail parlant de ce code je disais:

id_secteur n'est pas préfixé par "rubriques." d'où erreur.

et évidemment il fallait extrapoler pour les autres tables, mieux que je ne l'ai fait au premier coup.

Committo,Ergo:Sum