[spip-dev] Spécifier un interclassement (collation) pour un tri dans une boucle

Avec MySQL, il est possible de spécifier dans une clause SELECT l’interclassement à utiliser pour trier un champs : voir http://dev.mysql.com/doc/refman/5.0/fr/charset-collate.html
Cela est particulièrement utile quand une table contient des données en provenance de plusieurs langues. Cas typique : supposons une table non spip correspondant à un index avec deux champs terme et langue.

Si je veux sortir l’index français ou bien l’index espagnol je ne vais pas utiliser le même interclassement. Est-ce possible de faire une boucle spip du genre <BOUCLE_index(INDEX) {langue=fr} {par terme}>#TERME
</BOUCLE_index> en précisant la méthode d’interclassement à utiliser ?

Bien cordialement

Joseph

Joseph LARMARANGE a écrit :

Si je veux sortir l'index français ou bien l'index espagnol je ne vais pas
utiliser le même interclassement. Est-ce possible de faire une boucle spip
du genre <BOUCLE_index(INDEX) {langue=fr} {par terme}>#TERME<br
/></BOUCLE_index> en précisant la méthode d'interclassement à utiliser ?

et bien oui.

c'est le rôle du critère {collecte} !

<BOUCLE_index(INDEX) {langue=fr} {par terme} {collecte latin1_german2_ci}>
   ...

je crois que, à ce jour, *seul* le plugin forms_et_tables utilise ce critère

S'lt

Si je veux sortir l'index français ou bien l'index espagnol je ne vais pas
utiliser le même interclassement. Est-ce possible de faire une boucle spip
du genre <BOUCLE_index(INDEX) {langue=fr} {par terme}>#TERME<br
/></BOUCLE_index> en précisant la méthode d'interclassement à utiliser ?

c'est le rôle du critère {collecte} !

<BOUCLE_index(INDEX) {langue=fr} {par terme} {collecte latin1_german2_ci}>

Si tu as de quoi donner au moulin son eau c'est par ici :
http://www.spip.net/ecrire/?exec=articles&id_article=4028

km

cam.lafit@azerttyu.net a écrit :

Si tu as de quoi donner au moulin son eau

bon.

on a une base en utf-8
avec ses tables en utf8 (DEFAULT CHARSET=utf8)

dans ce jeu de caractère (CHARACTER_SET_NAME)
on peut avoir 21 collations (interclassements) différentes :

denisb a écrit :

avec ses tables en utf8 (DEFAULT CHARSET=utf8)
dans ce jeu de caractère (CHARACTER_SET_NAME)
on peut avoir 21 collations (interclassements) différentes :

complément :

dans le jeu de caractère latin1,
ce sont 8 collations accessibles :

denisb a écrit :

(tourne, tourne, joli moulin...)

complément 2 (après j'arrête)

la requête produite :

   SELECT articles.titre, articles.lang
     FROM spip_articles AS `articles`
    WHERE articles.statut = 'publie'
      AND articles.date < '9999-12-31'
ORDER BY articles.titre COLLATE utf8_spanish2_ci

denisb a écrit :

denisb a écrit :

(tourne, tourne, joli moulin...)

complément 2 (après j'arrête)

C'est un élément de doc pour spip-contrib multilinguisme
que tu viens de rédiger là mine de rien.
Je l'ai intégrée là :

(il fallait que je fasse une doc aujourd'hui...)
et te laisse valider si c'est ok.

la requête produite :

et directement sans GET / SET ?

JLuc

S'lt

Je l'ai intégrée là :
SPIP-Contrib

Pourquoi dédoubler l'information ?

km

cam.lafit@azerttyu.net a écrit :

S'lt

Je l'ai intégrée là :
SPIP-Contrib

Pourquoi dédoubler l'information ?

C'est pas une bonne chose non.
Comme j'ai rien vu sur spip.net, tu veux peut être dire que ça
y ferait une bonne page de la rubrique critères ?

JL

Pourquoi dédoubler l'information ?

C'est pas une bonne chose non.
Comme j'ai rien vu sur spip.net, tu veux peut être dire que ça
y ferait une bonne page de la rubrique critères ?

Si tu as de quoi donner au moulin son eau c'est par ici :
SPIP

km

cam.lafit@azerttyu.net a écrit :

Si tu as de quoi donner au moulin son eau c'est par ici :
SPIP

ok je passe !
JL

Merci pour tout.
C'est exactement ce que je recherchais.

Je teste ça dans les semaines à venir (il s'agit de produire des index avec termes correspondants dans différentes langues, en générant des fichiers ODT à partir de odtphp, SPIP étant utilisé pour générer le code xml du futur fichier).

Bien amicalement

Joseph

denisb a écrit :