Calenrier/Roster

Vayhem Messages postés 3 Date d'inscription vendredi 14 mai 2010 Statut Membre Dernière intervention 17 mai 2010 - 14 mai 2010 à 18:15
Vayhem Messages postés 3 Date d'inscription vendredi 14 mai 2010 Statut Membre Dernière intervention 17 mai 2010 - 17 mai 2010 à 01:01
Bonjour à tous,

je me tourne vers votre communauté pour un problème que certains trouveront surement évidents, mais qui me donne du fil a retordre depuis quelques jours.

Le but est assez simple, creer un calendrier comme celui-ci http://www.societedesmaitresdhotel.fr/agendaglobal.html enfin, sur le même principe (là c'est du flash etc). Mais avec une interface toute simple que je puisse wrapper dans mon cms, genre ça http://www.trucsweb.com/ASP/twCalende.asp

Pour résumer :
J'ai une liste d'utilisateurs, dans ma base de données (d'un CMS joomla).
Chaque utilisateur doit pouvoir depuis son compte définir les jours où il sera disponible.
Depuis un calendrier général, en cliquant sur chaque jour doit s'afficher une liste des personnes disponibles.

Là où je ne vois pas comment faire proprement, c'est que pour moi la solution serait de creer un champs Dispo dans chaque table d'utilisateur, si cette valeur est a 1 le nom est affiché, a 0 non.
Le problème c'est comment avoir cette valeur pour chaque jour ?
Creer des milliers d'entrées pour chaque utilisateur ? jour par jour ? ça me semble assez lourd.

Une idée serait de mettre les gens par défaut disponibles, et qu'ils définissent une plage de jours où ils sont disponibles. ça réduirait déja pas mal le nombre d'entrée...

C'est pas non plus un truc énorme, il y a environ 100 utilisateurs.

Donc, si quelqu'un pouvait m'éclairer sur comment procéder (je demande pas à ce qu'on me mache le travail bien sûr) je serai le plus heureux.

Merci d'avance pour vos réponses.
Cordialement.

3 réponses

syndrael Messages postés 2378 Date d'inscription lundi 4 février 2002 Statut Membre Dernière intervention 29 décembre 2012 20
15 mai 2010 à 08:33
Je ne comprends pas ton expression 'table d'utilisateur'.
Tes utilisateurs doivent être dans une seule table et s'ils ont des informations qui leur sont propres et qui ne sont pas nativement présentes dans Joomla tu crées une, voire deux tables (pour une relation n-m) et avec un système de jointure SQL tu as pu 'relier' les deux informations.
Donc à partir de ce raisonnement tu as la solution suivante:
1. créer une table utilisateur-date_dispo avec pour chaque utilisateur le jour de sa présence
2. compléter au fur et à mesure des informations des utilisateurs
3. retrouver par un SELECT tes utilisateurs présents à telle date.. voire une période.
Qu'en penses-tu ?
S.
0
Vayhem Messages postés 3 Date d'inscription vendredi 14 mai 2010 Statut Membre Dernière intervention 17 mai 2010
16 mai 2010 à 23:48
Bonsoir,
merci pour la réponse, et désolé si je me suis trompé dans les termes, tu as compris le principe mais j'ai du mal a comprendre comment réaliser la 2eme étape concretement.

1 et 3 je sais faire, mais 2 je ne vois pas quelles fonctions/requests utiliser. Petite précision : ca veut dire que ça va creer une table (utilisateur-date_dispo) par utilisateur ? ou bien une table par jour liée a tous les utilisateurs dispos ce jour là ?
dans tous les cas je n'arrive pas à concevoir comment m'y prendre, puisque je ne connais pas assez bien les outils à ma disposition pour le faire en SQL, en analytique ça va.

Encore merci pour cette réponse rapide.
0
Vayhem Messages postés 3 Date d'inscription vendredi 14 mai 2010 Statut Membre Dernière intervention 17 mai 2010
17 mai 2010 à 01:01
Hop petite update,

c'est déja un peu plus clair pour moi sur comment je vais procéder.

Donc, je vais creer une table USER_DISPO avec 3 champs :
id_event, id_user et id_date

A chaque fois qu'un utilisateur cliquera sur un jour dans son calendrier perso, un event sera créé en incremental avec son ID d'utilisateur et la date sur laquelle il a cliqué.

Suffit ensuite de faire effectivement un SELECT par date pour afficher tous les ID qui ont un event pour telle date.

Du coup j'aurai vraiment besoin d'aide pour savoir quelles fonctions utiliser pour faire ça :

- Quand l'utilisateur utilise un calendrier dans son espace perso du CMS, comment faire pour que le calendrier aille chercher son Id ? (j'imagine que c'est un fetch ? :s je sais pas)

- Si l'utilisateur clique sur une date ça enregistre l'event. Mais si il reclique j'aimerais que ça supprime l'event précedement créé. (j'imagine qu'il existe des sortes de controles en php ?)

- Visuellement, griser les cases du calendrier ou un event est créé.


Je suis désolé pour les tartines, mais je suis vraiment perdu. Encore merci d'avance pour les réponses

-
0
Rejoignez-nous