Fork me on GitHub






Module User profile : injecter une table utilisateurs : mission impossible ?
Semi pro
Inscrit: 05/02/2006 23:34
De Ile-de-France
Messages: 523
Amis Xoopsiens bonjour,

Pour une refonte de site vers Xoops, je dois convertir une table d’utilisateurs (environ 600 membres).

Cette table a un certain nombre de champs supplémentaires (par rapport au standard Xoops)

Parmi les champs il faut prévoir des cases à cocher (plusieurs choix possibles) des dates, des boutons radio. Bref une vraie base utilisateurs... avec l'espoir de pouvoir faire des envois de mail très ciblés...

Tout naturellement je me tourne vers Xoops 2.3.x et le module Profile. (Dans le but de rester dans le standard Xoops…)

Seulement voilà…
Lors de la création des nouveaux champs on a bien : Valeur à stocker / Texte à afficher.
Mais au lieu d’intégrer la valeur à stocker dans la table profile_profile
Il faut intégrer quelque chose comme ça :

EX pour 3 cases à cocher :

Une seule case cochée :
- 1ère case cochée :
a:1:{i:0;s:2:"01";}


- 2e case cochée :
a:1:{i:0;s:3:"02 ";}


- 3e case cochée :
a:1:{i:0;s:2:"03";}


2 cases cochées :

- cases 1 et 3 cochées :
a:2:{i:0;s:2:"01";i:1;s:2:"03";}


- cases 2 et 3 cochées :
a:2:{i:0;s:3:"02 ";i:1;s:2:"03";}



Les 3 cases sont cochées :
a:3:{i:0;s:2:"01";i:1;s:3:"02 ";i:2;s:2:"03";}


...et ça c’est un peu compliqué…

Imaginez la table de conversion pour 20 choix possibles…
A moins que quelqu’un ait un truc ?

Merci de vos lumières….

@+
Z

Posté le : 02/12/2008 18:23
Partager Twitter Partagez cette article sur GG+
Re: Module User profile : injecter une table utilisateurs : mission impossible ?
Semi pro
Inscrit: 05/02/2006 23:34
De Ile-de-France
Messages: 523
Bonjour,

Valeur à stocker / Texte à afficher

Je commence à comprendre…

Les « valeurs à stocker » sont stockées telle quelles dans la table profile_profile uniquement pour des champs à sélection simple :
Champ texte
dates
Bouton radio
Liste déroulante (à choix simple)


Il est même possible de choisir le type de valeur à stocker : entier (integer), zone de texte…


C’est lorsqu’un champ est multi-critère que les valeurs sont stockées comme ceci :
a:1:{i:0;s:0:"";}

Case à cocher
Liste multi-critères

Peut-être y a-t-il moyen de faire une jointure entre les tables pour extraire la bonne information mais comment ?

@+
Z

Posté le : 04/12/2008 15:04
Partager Twitter Partagez cette article sur GG+
Re: Module User profile : injecter une table utilisateurs : mission impossible ?
Semi pro
Inscrit: 05/02/2006 23:34
De Ile-de-France
Messages: 523
Une solution trouvée pour l’instant consiste à ne pas utiliser des zones multi-critères :

Reprenons l’exemple de mes couleurs :

Créer autant de champs que d’options possibles


Pour chaque couleur un bouton radio oui/non

Bleu
Rouge
Vert
Jaune



La table profile_profile ressemblera à ça :

Profile_id---profile_Bleu---profile_Rouge---Profile_Vert---profile_Jaune
-----------1--------------1--------------0--------------1--------------0
-----------2--------------0--------------0--------------1--------------1
-----------3--------------1--------------1--------------1--------------1
-----------4--------------0--------------0--------------1--------------0
-----------5--------------0--------------1--------------1--------------1
-----------...
Avantages :

- Il est facile d’intégrer des données extérieures dans la table.
(Plus facile à importer/exporter que ça : a:2:{i:0;s:1:"1";i:1;s:1:"3";} )

- Les boutons radio autorisant la recherche, il est maintenant possible de faire une recherche « multicritères ».

Inconvénient :
On a un champ par valeur et il faudra rajouter un champ à chaque nouvelle option


@+
Z

Posté le : 04/12/2008 15:15
Partager Twitter Partagez cette article sur GG+

 Haut   Précédent   Suivant



Vous pouvez voir les sujets.
Vous ne pouvez pas débuter de nouveaux sujets.
Vous ne pouvez pas répondre aux contributions.
Vous ne pouvez pas éditer vos contributions.
Vous ne pouvez pas effacez vos contributions.
Vous ne pouvez pas ajouter de nouveaux sondages.
Vous ne pouvez pas voter en sondage.
Vous ne pouvez pas attacher des fichiers à vos contributions.
Vous ne pouvez pas poster sans approbation.

Propulsé avec XOOPS | Graphisme adapté par Tatane, Grosdunord, Montuy337513

58 Personne(s) en ligne (43 Personne(s) connectée(s) sur Forum) | Utilisateur(s): 0 | Invité(s): 58 | Plus ...