Matthieu Marcillaud | 1 Jan 13:43 2011
Picon

Re: Champs Extra 2 -Erreur sql

Hello,

Merci du signalement.

Je pense que la correction 
http://zone.spip.org/trac/spip-zone/changeset/43287 devrait soulager ce 
genre d'erreur qui n'empêchaient pas le fonctionnement général normalement.

À vérifier avec les plugins si un problème survient malgré ma vigilence :)

Matthieu.

On 31/12/2010 12:28, Pierrick / Free wrote:
> Bonjour,
>
> En consultant les fichiers temporaires de mon site, je m'aperçois que
> j'ai une erreur qui apparaît dans prive_mysql.log à chaque création d'un
> nouvel article, nouvelle rubrique, nouveau mot...
>
> "Dec 31 10:31:41 89.84.84.163 (pid 30594) Table
> 'db1035917_jdnv45612Ztxa_biz.article' doesn't exist - SHOW CREATE TABLE
> `article`
> "
>
> J'ai désactivé mes plugins un à un et il semble que l'erreur provienne
> de Champs Extras 2 Interface.
>
> Quelqu'un peut-il me donner une piste pour corriger ? je ne comprends
> pas bien comment fonctionne ce plugin.
>
(Continue reading)

George Kandalaft | 1 Jan 14:29 2011
Picon

Re: Champs Extra 2 -Erreur sql

Hi

Avec ce nouveau commit, les champs extras sont ont disparu des 
formulaires (auteur et evenement chez moi) et ils sont apparus en double 
dans la page des champs extras comme le montre la copie d'ecran:

http://www.middleeastwatch.net/shot.gif

Quamd on clique sur "gérer ce champ

<http://intra-dev/sirco/ecrire/?exec=iextras&action=iextras&arg=associer_champ/spip_evenements/artemis&hash=228d533279f7921d33ad7ad994b13edaa99978ff&redirect=.%2F%3Fexec%3Diextras>" 
dans le panneau du bas les champs sont pris en compte dans les 
formulaires mais ils restent dedoubles sur cette page (spip 2.1.5).

George

On 01/01/2011 13:43, Matthieu Marcillaud wrote:
> Hello,
>
> Merci du signalement.
>
> Je pense que la correction 
> http://zone.spip.org/trac/spip-zone/changeset/43287 devrait soulager 
> ce genre d'erreur qui n'empêchaient pas le fonctionnement général 
> normalement.
>
> À vérifier avec les plugins si un problème survient malgré ma 
> vigilence :)
>
> Matthieu.
(Continue reading)

Matthieu Marcillaud | 1 Jan 18:52 2011
Picon

Re: Champs Extra 2 -Erreur sql

Bonsoir Georges et merci de ce retour,

Je vais être désolé d'annoncer... qu'on ne va pas pouvoir revenir en 
arrière et qu'il va te falloir reconfigurer tes champs en erreur. Ce 
n'est pas sorcier :
1) «associer ce champ» dans le formulaire en bas
2) «desassocier ce champ» dans le formulaire en haut, mais désassocier 
celui que tu ne souhaites pas garder s'il est en double.
3) éventuellement éditer et valider les champs extras en question.
Le champs ne devrait alors plus apparaitre en double en dessous.

Normalement tout doit rentrer dans l'ordre.

Pour information, voilà ce qui se passe (je suppose) :
- la fonction cextras_objets_valides() ne renvoyait pas toujours le type 
d'objet correcte, car avait «'type' => objet_type($objet)» au lieu de 
«'type' => objet_type(table_objet($objet)),» et faisait râler la 
fonction trouver_table() de SPIP au passage (ici et à d'autres endroits).
- dans la meta qui stocke les informations des champs extras, les 
informations de tables que je stocke maintenant dans la classe des 
champs extras ne sont pas forcément présentes si je comprends bien (si 
le champs a été créé avant la nouvelle version de ce matin (pourtant je 
n'avais pas eu de problème avec les miens...). J'espère que 
http://zone.spip.org/trac/spip-zone/changeset/43291 va arranger un peu 
ce point précis.

Matthieu.

On 01/01/2011 14:29, George Kandalaft wrote:
> Hi
(Continue reading)

Pierre KUHN | 1 Jan 19:44 2011
Picon

test les url des sites syndiques

Bonjour et bonne année

Je tente de reprendre ce script pour le passer sur les derniere version de SPIP: http://www.spip-contrib.net/IMG/txt/test_sites.txt mais dans ce fichier il faisais l'include de "inc.php3" pour récupéré notamment la fonction $fp mais je sais pas où retrouver cette fonction dans les dernières version SPIP.

Est ce que quelqu'un aurais une idée ?

Merci
Pierre

<div><p>Bonjour et bonne ann&eacute;e<br><br>Je tente de reprendre ce script pour le passer sur les derniere version de SPIP: <a href="http://www.spip-contrib.net/IMG/txt/test_sites.txt">http://www.spip-contrib.net/IMG/txt/test_sites.txt</a> mais dans ce fichier il faisais l'include de "inc.php3" pour r&eacute;cup&eacute;r&eacute; notamment la fonction $fp mais je sais pas o&ugrave; retrouver cette fonction dans les derni&egrave;res version SPIP.<br><br>Est ce que quelqu'un aurais une id&eacute;e ?<br><br>Merci<br>Pierre<br></p></div>
arnaud cordier | 1 Jan 22:56 2011

Extension statistique: le bouton de popularité apparait tout le temps

Bonsoir,

Avec spip 2.3.0-dev dans les boutons admin de l'espace public le bouton "popularites et visites" apparait constamment.

Le coupable est clairement dans le fichier stats_pipelines.php ligne 73 (
http://zone.spip.org/trac/spip-zone/browser/_core_/plugins/statistiques/stats_pipelines.php#L73
) :

L'assignation :
AND $objet = 'article'

Au lieu du test :
AND $objet == 'article'

Salutations,
ArnAud.
davux | 1 Jan 23:31 2011
Picon

Re: Extension statistique: le bouton de popularité apparait tout le temps

01/01/11, arnaud:
> Le coupable est clairement dans le fichier stats_pipelines.php ligne
> 73
> (
http://zone.spip.org/trac/spip-zone/browser/_core_/plugins/statistiques/stats_pipelines.php#L73
) :
> 
> L'assignation :
> AND $objet = 'article'
> 
> Au lieu du test :
> AND $objet == 'article'

N'hésite pas à corriger le plugin si tu as un compte sur la zone (sinon
tu peux en demander un).

-- 
davux
01/01/11, arnaud:
> Le coupable est clairement dans le fichier stats_pipelines.php ligne
> 73
> (
http://zone.spip.org/trac/spip-zone/browser/_core_/plugins/statistiques/stats_pipelines.php#L73
) :
> 
> L'assignation :
> AND $objet = 'article'
> 
> Au lieu du test :
> AND $objet == 'article'

N'hésite pas à corriger le plugin si tu as un compte sur la zone (sinon
tu peux en demander un).

--

-- 
davux
davux | 1 Jan 23:50 2011
Picon

Re: La boucle LDAP needs YOU

28/12/10, Fil:
> je n'y connais rien en LDAP, et je n'ai pas de serveur de test ; mais
> si quelqu'un veut créer l'itérateur correspondant, je suis prêt à
> aider. Je crois qu'il serait facile d'obtenir une
> <BOUCLE_ldap (DATA){datasource
> ldap://host:port/dn?attributes?scope?filter?extensions,ldap} >
> 
> pour cela il faudrait créer la fonction ldap_to_array($u) prenant en
> entrée l'URL ldap ainsi formée, et retournant la liste des résultats
> sous forme de tableau (array php).

En plus d'une boucle DATA, est-ce qu'il serait techniquement possible
de faire une boucle LDAP dédiée ? De mon côté je connais un peu LDAP
mais pas les possibilités et limitations du compilateur de SPIP.

Un exemple de boucle "idéale" :

BOUCLE_albert_alex(LDAP){objectClass=person}{displayName=Al*}

Cette boucle ferait une recherche avec ce filtre :
  &(objectClass=person)(displayName=Al*)

Autre exemple :

BOUCLE_al_ou_bob(LDAP){|(displayName=Al*)(displayName=Bob*)}

Le filtre serait cette fois, évidemment:
  |(displayName=Al*)(displayName=Bob*)

Autrement dit, tous les critères de boucles seraient juxtaposés avec
un opérateur "et" (&). Si jamais on veut un filtre plus compliqué,
dans le cas précédent un "ou", on le passe en critère unique. Ce
fonctionnement permettrait de garder la logique des critères des
boucles actuelles, en permettant quand même tous types de filtres de
recherche.

Ensuite, sachant que les objectClass de LDAP sont un peu comparables aux
tables SQL, on pourrait imaginer un truc du genre :

BOUCLE_albis(LDAP:person){displayName=Al*}

Avoir un BOUCLE_albis(PERSON) semble emcore mieux, mais compliqué car
alors, comment faire la différence avec les boucles SQL ?

Autre point : une fois dans le corps de la boucle, on s'attendrait à
pouvoir utiliser les champs de l'entrée en cours via par exemple la
balise #DISPLAYNAME. Se pose néanmoins la question des champs
multivalués.

Bon c'est des idées de résultat final, mais comme dit, je ne sais pas
si c'est facile à faire ou même possible niveau langage de SPIP.

En ce qui concerne le host, je pense qu'il est inutile de le mentionner
dans la boucle, il suffit de réutiliser celui qui est configuré pour
l'authentification par exemple. La gestion des serveurs multiples est
même plus simple qu'en SQL car on peut configurer le serveur LDAP
lui-même pour déléguer vers d'autres serveurs, ce qui fait que pour
SPIP un seul serveur LDAP est normalement suffisant.

-- 
davux
28/12/10, Fil:
> je n'y connais rien en LDAP, et je n'ai pas de serveur de test ; mais
> si quelqu'un veut créer l'itérateur correspondant, je suis prêt à
> aider. Je crois qu'il serait facile d'obtenir une
> <BOUCLE_ldap (DATA){datasource
> ldap://host:port/dn?attributes?scope?filter?extensions,ldap} >
> 
> pour cela il faudrait créer la fonction ldap_to_array($u) prenant en
> entrée l'URL ldap ainsi formée, et retournant la liste des résultats
> sous forme de tableau (array php).

En plus d'une boucle DATA, est-ce qu'il serait techniquement possible
de faire une boucle LDAP dédiée ? De mon côté je connais un peu LDAP
mais pas les possibilités et limitations du compilateur de SPIP.

Un exemple de boucle "idéale" :

BOUCLE_albert_alex(LDAP){objectClass=person}{displayName=Al*}

Cette boucle ferait une recherche avec ce filtre :
  &(objectClass=person)(displayName=Al*)

Autre exemple :

BOUCLE_al_ou_bob(LDAP){|(displayName=Al*)(displayName=Bob*)}

Le filtre serait cette fois, évidemment:
  |(displayName=Al*)(displayName=Bob*)

Autrement dit, tous les critères de boucles seraient juxtaposés avec
un opérateur "et" (&). Si jamais on veut un filtre plus compliqué,
dans le cas précédent un "ou", on le passe en critère unique. Ce
fonctionnement permettrait de garder la logique des critères des
boucles actuelles, en permettant quand même tous types de filtres de
recherche.

Ensuite, sachant que les objectClass de LDAP sont un peu comparables aux
tables SQL, on pourrait imaginer un truc du genre :

BOUCLE_albis(LDAP:person){displayName=Al*}

Avoir un BOUCLE_albis(PERSON) semble emcore mieux, mais compliqué car
alors, comment faire la différence avec les boucles SQL ?

Autre point : une fois dans le corps de la boucle, on s'attendrait à
pouvoir utiliser les champs de l'entrée en cours via par exemple la
balise #DISPLAYNAME. Se pose néanmoins la question des champs
multivalués.

Bon c'est des idées de résultat final, mais comme dit, je ne sais pas
si c'est facile à faire ou même possible niveau langage de SPIP.

En ce qui concerne le host, je pense qu'il est inutile de le mentionner
dans la boucle, il suffit de réutiliser celui qui est configuré pour
l'authentification par exemple. La gestion des serveurs multiples est
même plus simple qu'en SQL car on peut configurer le serveur LDAP
lui-même pour déléguer vers d'autres serveurs, ce qui fait que pour
SPIP un seul serveur LDAP est normalement suffisant.

--

-- 
davux
Fil | 2 Jan 00:40 2011
Picon

Re: La boucle LDAP needs YOU

En plus d'une boucle DATA, est-ce qu'il serait techniquement possible
de faire une boucle LDAP dédiée ?

oui certainement, au risque toutefois de devoir faire beaucoup de code, et du code bien complexe ; pour une utilisation ponctuelle ça ne se justifie pas forcément...
 
Un exemple de boucle "idéale" :
BOUCLE_albert_alex(LDAP){objectClass=person}{displayName=Al*}

en quoi serait-ce supérieur à la
<boucle(DATA){datasource ldap: configuration du ldap &objectClass=person&displayName=Al*}> ?
celle-ci ne nécessiterait que très peu de code : simplement celui consistant à envoyer la requete au serveur LDAP et à retituer les résultats sous forme de tableau php.
 
Le filtre serait cette fois, évidemment:
 |(displayName=Al*)(displayName=Bob*)

C'est une notion de OU ? Les critères de SPIP sont des ET... Par ailleurs les {xxx=yyy} sont traités de façon assez spécifique dans le compilo, et c'est difficile d'en sortir.
 
En ce qui concerne le host, je pense qu'il est inutile de le mentionner
dans la boucle, il suffit de réutiliser celui qui est configuré pour
l'authentification par exemple. La gestion des serveurs multiples est
même plus simple qu'en SQL car on peut configurer le serveur LDAP
lui-même pour déléguer vers d'autres serveurs, ce qui fait que pour
SPIP un seul serveur LDAP est normalement suffisant.

Pas vraiment d'accord. Suppose que mon site ait pour seul objectif de publier l'annuaire LDAP de mon association. L'authentification n'a rien à voir avec ça. En revanche mes *données* sont dans un répertoire LDAP, et je veux aller les chercher.

-- Fil
<div>
<div class="gmail_quote">
<blockquote class="gmail_quote">En plus d'une boucle DATA, est-ce qu'il serait techniquement possible<br>
de faire une boucle LDAP d&eacute;di&eacute;e ?</blockquote>
<div><br></div>
<div>oui certainement, au risque toutefois de devoir faire beaucoup de code, et du code bien complexe ; pour une utilisation ponctuelle &ccedil;a ne se justifie pas forc&eacute;ment...</div>

<div>&nbsp;</div>
<blockquote class="gmail_quote">Un exemple de boucle "id&eacute;ale" :<br>
BOUCLE_albert_alex(LDAP){objectClass=person}{displayName=Al*}<br>
</blockquote>
<div><br></div>
<div>en quoi serait-ce sup&eacute;rieur &agrave; la</div>
<div>&lt;boucle(DATA){datasource ldap: configuration du ldap &amp;objectClass=person&amp;displayName=Al*}&gt; ?</div>

<div>celle-ci ne n&eacute;cessiterait que tr&egrave;s peu de code : simplement celui consistant &agrave; envoyer la requete au serveur LDAP et &agrave; retituer les r&eacute;sultats sous forme de tableau php.</div>
<div>&nbsp;</div>
<blockquote class="gmail_quote">

Le filtre serait cette fois, &eacute;videmment:<br>
 &nbsp;|(displayName=Al*)(displayName=Bob*)<br>
</blockquote>
<div><br></div>
<div>C'est une notion de OU ? Les crit&egrave;res de SPIP sont des ET... Par ailleurs les {xxx=yyy} sont trait&eacute;s de fa&ccedil;on assez sp&eacute;cifique dans le compilo, et c'est difficile d'en sortir.</div>

<div>&nbsp;</div>
<blockquote class="gmail_quote">En ce qui concerne le host, je pense qu'il est inutile de le mentionner<br>
dans la boucle, il suffit de r&eacute;utiliser celui qui est configur&eacute; pour<br>
l'authentification par exemple. La gestion des serveurs multiples est<br>
m&ecirc;me plus simple qu'en SQL car on peut configurer le serveur LDAP<br>
lui-m&ecirc;me pour d&eacute;l&eacute;guer vers d'autres serveurs, ce qui fait que pour<br>
SPIP un seul serveur LDAP est normalement suffisant.<br>
</blockquote>
</div>
<div><br></div>Pas vraiment d'accord. Suppose que mon site ait pour seul objectif de publier l'annuaire LDAP de mon association. L'authentification n'a rien &agrave; voir avec &ccedil;a. En revanche mes *donn&eacute;es* sont dans un r&eacute;pertoire LDAP, et je veux aller les chercher.<br clear="all"><br><div>-- Fil<br>
</div>
</div>
davux | 2 Jan 03:31 2011
Picon

Re: La boucle LDAP needs YOU

02/01/11, Fil:
> > Un exemple de boucle "idéale" :
> > BOUCLE_albert_alex(LDAP){objectClass=person}{displayName=Al*}
> >
> 
> en quoi serait-ce supérieur à la
> <boucle(DATA){datasource ldap: configuration du ldap
> &objectClass=person&displayName=Al*}> ?

Fonctionnellement c'est équivalent. Ça serait simplement moins verbeux,
(et peut-être plus rapide). Comme tu le dis, pour une utilisation
ponctuelle c'est équivalent. Pour une utilisation plus intense, par
exemple utiliser le LDAP comme source de données pour plein de choses
du site, ça commencerait à être intéressant d'avoir une boucle native.

> > Le filtre serait cette fois, évidemment:
> >  |(displayName=Al*)(displayName=Bob*)
> >
> 
> C'est une notion de OU ? Les critères de SPIP sont des ET...

Justement, c'est pour ça que dans le cas du OU, toute la condition est
dans un seul critère (regarde bien l'exemple de boucle que j'ai donné).
Seuls les ET peuvent être séparés sur plusieurs critères.

Pour le dire autrement :
 - Le cas général serait : BOUCLE(LDAP){xxx}, où xxx est un filtre LDAP
   complet.
 - Dans le cas où le filtre peut être écrit sous la forme
   &(aaa)(bbb), on _pourrait_ écrire BOUCLE(LDAP){aaa}{bbb}, sans que
   ce soit pour autant obligatoire. Ça serait juste plus pratique à
   l'usage.

> > En ce qui concerne le host, je pense qu'il est inutile de le
> > mentionner dans la boucle, il suffit de réutiliser celui qui est
> > configuré pour l'authentification par exemple. La gestion des
> > serveurs multiples est même plus simple qu'en SQL car on peut
> > configurer le serveur LDAP lui-même pour déléguer vers d'autres
> > serveurs, ce qui fait que pour SPIP un seul serveur LDAP est
> > normalement suffisant.
> >
> 
> Pas vraiment d'accord. Suppose que mon site ait pour seul objectif de
> publier l'annuaire LDAP de mon association. L'authentification n'a
> rien à voir avec ça. En revanche mes *données* sont dans un
> répertoire LDAP, et je veux aller les chercher.

Je mentionnais l'authentification car c'est le seul usage qui est fait
de LDAP dans SPIP actuellement, mais j'aurais dû dire qu'on peut
réutiliser la "source actuelle de définition du LDAP". C'est vraiment
rare qu'on ait à taper dans plusieurs annuaires, et dans ces rares cas,
une boucle DATA prenant une URI complète est toujours possible. Par
ailleurs, OpenLDAP par exemple peut être configuré pour déléguer
certaines branches à des annuaires LDAP externes, ce qui permet de ne
gérer qu'un seul annuaire au niveau de SPIP, tout en tapant en
réalité dans plusieurs annuaires.

Pour éviter tout quiproquo, j'en profite pour rappeler qu'une base LDAP
est une base de données comme une autre (sauf qu'elle n'est pas
relationnelle). On peut donc bien sûr l'utiliser comme annuaire d'asso,
comme source d'authentification, mais aussi pour tout ce qu'on veut,
par exemple pour stocker le contenu complet d'un site (j'ai en tête un
début de schéma LDAP à ce sujet). Il serait donc très intéressant, à
l'instar des bases SQL, de fournir un outil de consultation d'une telle
base de données qui en permette une utilisation intensive simplement,
contrairement à une boucle DATA qui, elle, serait amplement suffisante
pour un usage ponctuel (2 ou 3 boucles dans tout le site).

-- 
davux
02/01/11, Fil:
> > Un exemple de boucle "idéale" :
> > BOUCLE_albert_alex(LDAP){objectClass=person}{displayName=Al*}
> >
> 
> en quoi serait-ce supérieur à la
> <boucle(DATA){datasource ldap: configuration du ldap
> &objectClass=person&displayName=Al*}> ?

Fonctionnellement c'est équivalent. Ça serait simplement moins verbeux,
(et peut-être plus rapide). Comme tu le dis, pour une utilisation
ponctuelle c'est équivalent. Pour une utilisation plus intense, par
exemple utiliser le LDAP comme source de données pour plein de choses
du site, ça commencerait à être intéressant d'avoir une boucle native.

> > Le filtre serait cette fois, évidemment:
> >  |(displayName=Al*)(displayName=Bob*)
> >
> 
> C'est une notion de OU ? Les critères de SPIP sont des ET...

Justement, c'est pour ça que dans le cas du OU, toute la condition est
dans un seul critère (regarde bien l'exemple de boucle que j'ai donné).
Seuls les ET peuvent être séparés sur plusieurs critères.

Pour le dire autrement :
 - Le cas général serait : BOUCLE(LDAP){xxx}, où xxx est un filtre LDAP
   complet.
 - Dans le cas où le filtre peut être écrit sous la forme
   &(aaa)(bbb), on _pourrait_ écrire BOUCLE(LDAP){aaa}{bbb}, sans que
   ce soit pour autant obligatoire. Ça serait juste plus pratique à
   l'usage.

> > En ce qui concerne le host, je pense qu'il est inutile de le
> > mentionner dans la boucle, il suffit de réutiliser celui qui est
> > configuré pour l'authentification par exemple. La gestion des
> > serveurs multiples est même plus simple qu'en SQL car on peut
> > configurer le serveur LDAP lui-même pour déléguer vers d'autres
> > serveurs, ce qui fait que pour SPIP un seul serveur LDAP est
> > normalement suffisant.
> >
> 
> Pas vraiment d'accord. Suppose que mon site ait pour seul objectif de
> publier l'annuaire LDAP de mon association. L'authentification n'a
> rien à voir avec ça. En revanche mes *données* sont dans un
> répertoire LDAP, et je veux aller les chercher.

Je mentionnais l'authentification car c'est le seul usage qui est fait
de LDAP dans SPIP actuellement, mais j'aurais dû dire qu'on peut
réutiliser la "source actuelle de définition du LDAP". C'est vraiment
rare qu'on ait à taper dans plusieurs annuaires, et dans ces rares cas,
une boucle DATA prenant une URI complète est toujours possible. Par
ailleurs, OpenLDAP par exemple peut être configuré pour déléguer
certaines branches à des annuaires LDAP externes, ce qui permet de ne
gérer qu'un seul annuaire au niveau de SPIP, tout en tapant en
réalité dans plusieurs annuaires.

Pour éviter tout quiproquo, j'en profite pour rappeler qu'une base LDAP
est une base de données comme une autre (sauf qu'elle n'est pas
relationnelle). On peut donc bien sûr l'utiliser comme annuaire d'asso,
comme source d'authentification, mais aussi pour tout ce qu'on veut,
par exemple pour stocker le contenu complet d'un site (j'ai en tête un
début de schéma LDAP à ce sujet). Il serait donc très intéressant, à
l'instar des bases SQL, de fournir un outil de consultation d'une telle
base de données qui en permette une utilisation intensive simplement,
contrairement à une boucle DATA qui, elle, serait amplement suffisante
pour un usage ponctuel (2 ou 3 boucles dans tout le site).

--

-- 
davux
George Kandalaft | 2 Jan 11:08 2011
Picon

Re: Champs Extra 2 -Erreur sql

On 01/01/2011 18:52, Matthieu Marcillaud wrote:
> Bonsoir Georges et merci de ce retour,
>
> Je vais être désolé d'annoncer... qu'on ne va pas pouvoir revenir en 
> arrière et qu'il va te falloir reconfigurer tes champs en erreur. Ce 
> n'est pas sorcier :
> 1) «associer ce champ» dans le formulaire en bas
> 2) «desassocier ce champ» dans le formulaire en haut, mais désassocier 
> celui que tu ne souhaites pas garder s'il est en double.
> 3) éventuellement éditer et valider les champs extras en question.
> Le champs ne devrait alors plus apparaitre en double en dessous.
C'est ce que j'ai fait car je n'ai que cinq ou six champs. Je voulai le 
signale pour ceux qui ont des dizaines de champs eparpilles ici ou la :-)

George

Gmane