[SPIP Zone] [Pour info] SPIP 10863 casse certaines boucles avec le plugin Accès restreint

Bonsoir,

Accès restreint + http://trac.rezo.net/trac/spip/changeset/10863
casse cette boucle :
<BOUCLE_RubriqueColoreeArticle(HIERARCHIE){id_rubrique}{tout}{type_mot=_CouleurRubrique}{inverse} {0,1}>
#ID_RUBRIQUE
</BOUCLE_RubriqueColoreeArticle>

Avec cette erreur :
<BOUCLE_RubriqueColoreeArticle>()
Erreur SQL
rubriques.id_rubrique, rubriques.id_rubrique, rubriques.lang FROM spip_rubriques AS `rubriques` INNER JOIN spip_mots AS L2 ON L1.id_mot=L2.id_mot WHERE (L2.type = '_CouleurRubrique') AND (rubriques.id_rubrique IN (1)) GROUP BY rubriques.id_rubrique ORDER BY FIELD(rubriques.id_rubrique, 1) DESC LIMIT 0,1
Unknown column 'L1.id_mot' in 'on clause'
</BOUCLE_RubriqueColoreeArticle>

Aucune idée de comment réparer ça :frowning:

--
RealET

* RealET tapuscrivait, le 27/11/2007 22:33:

Bonsoir,

Accès restreint + http://trac.rezo.net/trac/spip/changeset/10863
casse cette boucle :
<BOUCLE_RubriqueColoreeArticle(HIERARCHIE){id_rubrique}{tout}{type_mot=_CouleurRubrique}{inverse} {0,1}>
#ID_RUBRIQUE
</BOUCLE_RubriqueColoreeArticle>

Avec cette erreur :
<BOUCLE_RubriqueColoreeArticle>()
Erreur SQL
rubriques.id_rubrique, rubriques.id_rubrique, rubriques.lang FROM spip_rubriques AS `rubriques` INNER JOIN spip_mots AS L2 ON L1.id_mot=L2.id_mot WHERE (L2.type = '_CouleurRubrique') AND (rubriques.id_rubrique IN (1)) GROUP BY rubriques.id_rubrique ORDER BY FIELD(rubriques.id_rubrique, 1) DESC LIMIT 0,1
Unknown column 'L1.id_mot' in 'on clause'
</BOUCLE_RubriqueColoreeArticle>

Aucune idée de comment réparer ça :frowning:

Si dans acces_restreint.php ligne 109 je remplace :
function boucle_HIERARCHIE($id_boucle, &$boucles) {
  $boucle = &$boucles[$id_boucle];
  if (!isset($boucle->modificateur['tout_voir'])){
- $t = $boucle->id_table . '.' . $boucle->primary;
+ $t = 'L1' . '.' . $boucle->primary;
    $boucle->select = array_merge($boucle->select, array($t));
    $boucle->where = 'AccesRestreint_rubriques_accessibles_where("'.$t.'")';
  }
  return boucle_HIERARCHIE_dist($id_boucle, $boucles);
}

Alors, ça a l'air de bien se passer.
Mais je me doute bien que c'est pas pérenne...

--
RealET

Je viens de franchir le cap de 10863 pour atteindre spip10896 et accès restreint provoque une erreur aussi sur les boucles rubriques et articles.
Apparemment celles où est utilisé le critère id_groupe=xx et/ou doublons yyy

exemple d'erreur qui disparaissent avec la dépublication du seul et unique contenu de la zone restreinte :
<BOUCLE_liste-marque>()
SQL error
rubriques.id_rubrique, FIELD(rubriques.id_secteur,1,4) AS cpt7, rubriques.titre, rubriques.id_rubrique, rubriques.lang FROM spip_rubriques AS `rubriques` INNER JOIN spip_mots AS L2 ON L1.id_mot=L2.id_mot WHERE (FIELD(rubriques.id_secteur,1,4) <> 0) AND (L2.id_groupe = '1') AND ((rubriques.id_rubrique NOT IN (0))) AND (rubriques.statut = 'publie') GROUP BY rubriques.id_rubrique ORDER BY rubriques.titre
Unknown column 'L1.id_mot' in 'on clause'
</BOUCLE_liste-marque>

au cas où ça ferait avancer le sujet.

Le 30 nov. 07 à 19:22, RealET a écrit :

* RealET tapuscrivait, le 27/11/2007 22:33:

Bonsoir,

Accès restreint + http://trac.rezo.net/trac/spip/changeset/10863
casse cette boucle :
<BOUCLE_RubriqueColoreeArticle(HIERARCHIE){id_rubrique}{tout}{type_mot=_CouleurRubrique}{inverse}
{0,1}>
#ID_RUBRIQUE
</BOUCLE_RubriqueColoreeArticle>

Avec cette erreur :
<BOUCLE_RubriqueColoreeArticle>()
Erreur SQL
rubriques.id_rubrique, rubriques.id_rubrique, rubriques.lang FROM
spip_rubriques AS `rubriques` INNER JOIN spip_mots AS L2 ON
L1.id_mot=L2.id_mot WHERE (L2.type = '_CouleurRubrique') AND
(rubriques.id_rubrique IN (1)) GROUP BY rubriques.id_rubrique ORDER BY
FIELD(rubriques.id_rubrique, 1) DESC LIMIT 0,1
Unknown column 'L1.id_mot' in 'on clause'
</BOUCLE_RubriqueColoreeArticle>

Aucune idée de comment réparer ça :frowning:

Si dans acces_restreint.php ligne 109 je remplace :
function boucle_HIERARCHIE($id_boucle, &$boucles) {
  $boucle = &$boucles[$id_boucle];
  if (!isset($boucle->modificateur['tout_voir'])){
- $t = $boucle->id_table . '.' . $boucle->primary;
+ $t = 'L1' . '.' . $boucle->primary;
    $boucle->select = array_merge($boucle->select, array($t));
    $boucle->where = 'AccesRestreint_rubriques_accessibles_where("'.$t.'")';
  }
  return boucle_HIERARCHIE_dist($id_boucle, $boucles);
}

Alors, ça a l'air de bien se passer.
Mais je me doute bien que c'est pas pérenne...

--
RealET

_______________________________________________
spip-zone@rezo.net - http://listes.rezo.net/mailman/listinfo/spip-zone

Pierre Fiches
09 50 72 86 94
06 30 34 79 32

* RealET tapuscrivait, le 27/11/2007 22:33:

Bonsoir,

Accès restreint + http://trac.rezo.net/trac/spip/changeset/10863
casse cette boucle :
<BOUCLE_RubriqueColoreeArticle(HIERARCHIE){id_rubrique}{tout}{type_mot=_CouleurRubrique}{inverse} {0,1}>
#ID_RUBRIQUE
</BOUCLE_RubriqueColoreeArticle>

Avec cette erreur :
<BOUCLE_RubriqueColoreeArticle>()
Erreur SQL
rubriques.id_rubrique, rubriques.id_rubrique, rubriques.lang FROM spip_rubriques AS `rubriques` INNER JOIN spip_mots AS L2 ON L1.id_mot=L2.id_mot WHERE (L2.type = '_CouleurRubrique') AND (rubriques.id_rubrique IN (1)) GROUP BY rubriques.id_rubrique ORDER BY FIELD(rubriques.id_rubrique, 1) DESC LIMIT 0,1
Unknown column 'L1.id_mot' in 'on clause'
</BOUCLE_RubriqueColoreeArticle>

Aucune idée de comment réparer ça :frowning:

Et 10909 répare ça :wink:

--
RealET