Création d'un planning - PHP - Programmation
Marsh Posté le 26-09-2012 à 17:59:01
ReplyMarsh Posté le 27-09-2012 à 10:59:31
Pour chaque événement, faut avoir l'ID, le nom, une description, une date et heure de début, une date et heure de fin. Eventuellement d'autres attributs suivant le type d'événement (par ex : sa catégorie ou type, sa criticité, s'il faut un reminder x minutes ou heures avant...).
Marsh Posté le 27-09-2012 à 11:49:17
Pour la table je pense faire ça : evenement(id, titre, date, heure_debut, heure_fin, description)
Par contre c'est plus l'affichage qui me gêne, je sais pas comment m'y prendre pour afficher les évènements sous forme de planning.
Marsh Posté le 27-09-2012 à 14:13:03
Non, fat aussi une date de fin au cas où l'événement soit sur plusieurs jours
Marsh Posté le 01-10-2012 à 15:38:02
Tu as raison, en fait j'ai dégagé le champs date et dans mes heure_debut et heure_fin c'est des timestamp
Bon par contre, je sèche sur l'affichage. J'ai fait une requête par jour de la semaine mais maintenant je sais pas comment faire ma boucle.
Par exemple j'ai un évènement de 11h à 12h et un autre de 15h à 18h, je vois pas comment faire pour afficher du vide sur les plages horaires non occupées...
Des idées ?
Marsh Posté le 01-10-2012 à 16:03:17
Tu sélectionnes tes événements sur une plage de dates (1 jour ou plusieurs), que tu ordonnes par la date de début puis de fin.
Tu parcours les enregistrements trouvés et tu les affiches sur les créneaux de ton planning. Après, ça dépend aussi de comment t'as implémenté le calendrier...
Marsh Posté le 01-10-2012 à 16:20:58
En fait je pense avoir trouvé, je sais pas si c'est le plus simple mais bon.
L'idée c'est de laisser un espace entre les évènements, espace que je calcule à partir des timestamp...
Code :
|
Tu vois un truc qui cloche avec cette méthode ?
Marsh Posté le 01-10-2012 à 22:59:25
tu sais quoi ? dans un script ... c'est mieux si tu commentes les étapes afin que quand tu relis .... tout soit très clair ^^
exemple :
/* calcul de la durée de l'évenement */
......
......
/* boucle recherche des evenements du "lundi ou.."mardi ... */
explique par exemple la necessité de la variable $height voire .... dela variable $cases ^^
explique pourquoi $time ? a quoi sert-elle ?
enfin je dirais....
j'aurais bien vu une vue(mysql par exemple) pour chaque jour de la semaine avec le evenements et sortir le tout via json sur un tableau type jquery .... ça aurait fait pas mal ça ? avec option de recherche, de tri, de sorti pdf etc....
edit ... si tu nous disais comment tu entres les données (via formulaire avec choix de la date, de l'heure ou autre ....)
re edit : pense au css pour les div ^^ si tu veux utiliser ce systeme bien sur ....
++ spyker
Marsh Posté le 02-10-2012 à 10:17:59
Oui, je sais, la c'est juste un brouillon, une piste de réflexion. Je commente toujours mes codes définitifs Le CSS aussi sera à part.
Dans ma logique, je défini le timestamp du lundi matin à partir de la date du jour(partie non visible ici).
Ensuite je calcul la durée entre le lundi matin et le premier évènement. J'en fait une div qui a une hauteur variable.
Ensuite je calcul la durée de l’évènement pour calculer la hauteur de la div de l’évènement.
Et je termine ma boucle en donnant à la variable $time, le timestamp de la fin de l’évènement qui servira à calculer la durée avant l’évènement suivant.
Pour les données elles seront entrées via un formulaire, mais c'est pas trop important, je cherche surtout la meilleure méthode d'affichage des données.
Marsh Posté le 02-10-2012 à 13:02:08
dac ^^ j'ai tout comprendu ^^
dans ce cas... tu peux utiliser aussi bien les div en direct que les tr ou td à l'interieur parce que là... tout va s'afficher à la suite non ?
Marsh Posté le 02-10-2012 à 14:23:50
Moi, j'aurais fait un tableau avec une ligne par créneau de la plus petite unité de temps à laquelle on peut faire démarrer ou terminer un événement (1h, 1/2h, 1/4h...) et en colonne, les jours.
Pour afficher les événements, j'aurais fait des rowspan sur les td.
Question : peut-il y avoir plusieurs événements sur un même créneau horaire oou des chevauchements d'événements? Parce si c'est le ca,s là, ça va compliquer l'affichage
Marsh Posté le 02-10-2012 à 14:35:20
Y'a t-il un intérêt particulier à utiliser un tableau ? C'est la question que je me suis posé dès le départ... Tu en dis quoi ?
Par contre, en effet, ca ne gère pas les évènements simultanés, mais à priori il n'y en a pas besoin...
Marsh Posté le 02-10-2012 à 15:55:02
Ben à la base, un calendrier, c'est un tableau. Cette mise en forme (table, tr, td...) me paraît plus approprié tant sur l'aspect visuel que sémantique.
Marsh Posté le 02-10-2012 à 17:17:22
Ouais t'as peut être pas tord, et puis ca semble plus simple si un jour je dois gérer les évènements simultanés...
Marsh Posté le 02-10-2012 à 17:25:17
table
c'est pas la peine de te compliquer la vie, il y a deja des viz pour ca,
http://arshaw.com/fullcalendar/
Marsh Posté le 02-10-2012 à 17:49:22
Intéressant cette lib.
Marsh Posté le 02-10-2012 à 18:20:33
Carrément, mais c'est lié à un agenda Google... Dommage...
Ceci dit, c'est peut être une solution de partir sur un code existant. Je vais chercher un peu de ce coté la aussi.
Marsh Posté le 02-10-2012 à 18:51:44
il y a un exemple avec le format json google mais tu peux l'adapter avec ton format.
Marsh Posté le 02-10-2012 à 19:15:23
Ouais mais je suis pas du tout à l'aise avec tout ça. Je vais passer plus de temps à adapter qu'à partir de zéro ou d'un autre script.
Marsh Posté le 02-10-2012 à 20:03:29
certes certes ... mais on peut progresser en utilisant des variantes tu sais ? j'ai utilisé json régulièrement avec des tableaux et... une fois que l'on a compris le principe .... c'est assez facile. tu connais un peu javascript ?
Marsh Posté le 02-10-2012 à 23:54:48
Oui c'est sûr. De toute façon c'est toujours bien d'apprendre. Je suis pas vraiment très à l'aise avec javascript bien que j'utilise régulièrement la lib jquery.
Tu as un tuto à me conseiller sur json ?
Marsh Posté le 03-10-2012 à 00:24:28
json c'est tout simplement un format de données type tableau "préconfiguré" .... genre architecture xml. facile donc a remplir avec php (genre j'alimente le tableau avec mes données mysql)
je renvoie json et je demande à un interpreteur de s'en arranger (javascript, php, ....) je t'ai parlé de ça parce que jquery utilise ce genre de chose pour la fabrication de tableau en tout genre et que.... tu devrais surement trouver un model qui te convienne ^^
Marsh Posté le 07-10-2012 à 23:52:28
http://php.net/manual/fr/function.json-encode.php
http://www.php.net/manual/fr/function.json-decode.php
Marsh Posté le 26-09-2012 à 17:09:49
Bonjour,
Je dois créer un planning qui affiche des évènements toutes les semaines. Les évènements seront ajoutés via une interface admin et donc stockés dans une base Mysql.
L'idée c'est d'avoir un tableau avec les jours de la semaine et les heures, chaque case représentant 30min. Et lorsqu'un évènement est prévu la case sera remplie d'une couleur.
La question que je me pose, c'est comment je code l'affichage du planning (table ?, div ?) ? Comment je structure ma table ?
J'amerai bien avoir vos avis avant de me lancer dans une usine à gaz.
Merci