Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1788 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Création d'un planning

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Création d'un planning

n°2158296
egege
Posté le 26-09-2012 à 17:09:49  profilanswer
 

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

mood
Publicité
Posté le 26-09-2012 à 17:09:49  profilanswer
 

n°2158308
CyberDenix
Posté le 26-09-2012 à 17:59:01  profilanswer
 

En div... avec du jambon si possible.


---------------
Directeur Technique (CTO)
n°2158360
rufo
Pas me confondre avec Lycos!
Posté le 27-09-2012 à 10:59:31  profilanswer
 

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...).


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
n°2158373
egege
Posté le 27-09-2012 à 11:49:17  profilanswer
 

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.
 

n°2158394
rufo
Pas me confondre avec Lycos!
Posté le 27-09-2012 à 14:13:03  profilanswer
 

Non, fat aussi une date de fin au cas où l'événement soit sur plusieurs jours ;)


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
n°2158719
egege
Posté le 01-10-2012 à 15:38:02  profilanswer
 

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 ?


Message édité par egege le 01-10-2012 à 15:38:53
n°2158722
rufo
Pas me confondre avec Lycos!
Posté le 01-10-2012 à 16:03:17  profilanswer
 

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...


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
n°2158727
egege
Posté le 01-10-2012 à 16:20:58  profilanswer
 

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 :
  1. <div id="lundi" style="float:left;  background:#cdcdcd; height:600px;">
  2. <?php
  3. $time= $timelundimatin;
  4. foreach($lundi as $data) {
  5.     $timedebut= $data['date_debut'];
  6.     $timefin= $data['date_fin'];
  7.     
  8.     $dureeeventprecedent=$timedebut-$time;
  9.     $cases=$dureeeventprecedent/60;
  10.     $height=$cases;
  11.     ?>
  12.     <div style="height:<?php echo $height; ?>px; width:120px;"></div>
  13.     <?php
  14.     $dureeevent=$timefin-$timedebut;
  15.     $cases=$dureeevent/60;
  16.     $height=$cases;
  17.     ?>
  18.     <div style="height:<?php echo $height; ?>px; width:120px; background:red; color: blue;"><?php echo $data['titre']; ?></div>
  19.     <?php
  20.     $time=$timefin;
  21.     }
  22. ?>
  23. </div>


 
Tu vois un truc qui cloche avec cette méthode ?

n°2158787
spyke_ulti​mate
j'm'en sortirais....
Posté le 01-10-2012 à 22:59:25  profilanswer
 

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


Message édité par spyke_ultimate le 01-10-2012 à 23:09:18
n°2158817
egege
Posté le 02-10-2012 à 10:17:59  profilanswer
 

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.

mood
Publicité
Posté le 02-10-2012 à 10:17:59  profilanswer
 

n°2158842
spyke_ulti​mate
j'm'en sortirais....
Posté le 02-10-2012 à 13:02:08  profilanswer
 

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 ?

n°2158855
rufo
Pas me confondre avec Lycos!
Posté le 02-10-2012 à 14:23:50  profilanswer
 

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 :/


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
n°2158857
egege
Posté le 02-10-2012 à 14:35:20  profilanswer
 

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...

n°2158861
rufo
Pas me confondre avec Lycos!
Posté le 02-10-2012 à 15:55:02  profilanswer
 

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.


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
n°2158867
egege
Posté le 02-10-2012 à 17:17:22  profilanswer
 

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... :)

n°2158870
pop-pan
yay!
Posté le 02-10-2012 à 17:25:17  profilanswer
 

table
c'est pas la peine de te compliquer la vie, il y a deja des viz pour ca,  
http://arshaw.com/fullcalendar/
 


---------------
Plop !
n°2158872
rufo
Pas me confondre avec Lycos!
Posté le 02-10-2012 à 17:49:22  profilanswer
 

Intéressant cette lib. :jap:


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
n°2158875
egege
Posté le 02-10-2012 à 18:20:33  profilanswer
 

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. ;)

n°2158879
pop-pan
yay!
Posté le 02-10-2012 à 18:51:44  profilanswer
 

il y a un exemple avec le format json google mais tu peux l'adapter avec ton format.


---------------
Plop !
n°2158882
egege
Posté le 02-10-2012 à 19:15:23  profilanswer
 

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.  [:poooop]  

n°2158885
spyke_ulti​mate
j'm'en sortirais....
Posté le 02-10-2012 à 20:03:29  profilanswer
 

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 ?

n°2158909
egege
Posté le 02-10-2012 à 23:54:48  profilanswer
 

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 ?

n°2158910
spyke_ulti​mate
j'm'en sortirais....
Posté le 03-10-2012 à 00:24:28  profilanswer
 

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 ^^


Message édité par spyke_ultimate le 03-10-2012 à 00:24:46
n°2159490
CyberDenix
Posté le 07-10-2012 à 23:52:28  profilanswer
 
mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Création d'un planning

 

Sujets relatifs
Création dynamique montage vidéos(VBS )Eviter doublon - création utilisateur ad
Par défaut Erreur dans ma création de baseImpact de la création de dossiers sur le référencement
Lecture, insertion/création fichierCréation appli facebook simple
Création d'un nouveau tableau sans cellule videcréation un moulinette .bat
panique pour création de planning en phpcreation d´un planning -
Plus de sujets relatifs à : Création d'un planning


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR