source: spip-zone/_plugins_/planning_simple/inclure/temps.html @ 84965

Last change on this file since 84965 was 84965, checked in by toutati@…, 5 years ago

si il y a deux évènements à la même heure, à chacun son td
ce qui signifie que tous les autres tds passent à un colspan de 2
ça simplifie néanmoins l'écriture

  • Property svn:executable set to *
File size: 4.4 KB
Line 
1#SET{heure_max_fin,00}
2#SET{heure_max_debut,24}
3[(#SET{tds_supprimer,#ARRAY})]
4
5<BOUCLE_donnees(EVENEMENTS){par date_debut}{id_article}>
6
7[(#REM) <!-- heure max de début --->]
8[(#DATE_DEBUT|affdate{H:i}|<{#GET{heure_max_debut}}|oui)
9        [(#SET{heure_max_debut,[(#DATE_DEBUT|affdate{H})]})]
10]
11
12[(#REM) <!-- heure max de fin --->]
13[(#DATE_FIN|affdate{H:i}|>{#GET{heure_max_fin}}|oui)
14        [(#SET{heure_max_fin,[(#DATE_FIN|affdate{H})]})]
15]
16
17[(#REM) <!-- quel jour au_debut --->]
18[(#COMPTEUR_BOUCLE|=={1}|oui)
19        [(#SET{jour_debut_numero,[(#DATE_DEBUT|affdate{w})]})]
20        [(#SET{au_debut,[(#DATE_DEBUT|affdate{Y-m-d H:i}|strtotime)]})]
21        [(#SET{date_zero,[(#DATE_DEBUT|affdate{Y-m-d H:i})]})]
22        #SET{date_zerook,#DATE_DEBUT}
23]
24
25[(#REM) <!-- quel jour au_final --->]
26[(#COMPTEUR_BOUCLE|=={#TOTAL_BOUCLE}|oui)
27        [(#SET{jour_fin,[(#DATE_DEBUT|affdate{w})]})]
28        [(#SET{au_final,[(#DATE_FIN|affdate{Y-m-d H:i}|strtotime)]})]
29        #SET{au_finalok,#DATE_FIN}
30]
31
32[(#REM) <!-- on calcule les cases à ne pas occuper -->]
33[(#SET{debute_mn,[(#GET{date_zero}|duree{#DATE_DEBUT,minutes})]})]
34[(#SET{duree_mn,[(#DATE_DEBUT|duree{#DATE_FIN,minutes})]})]             
35[(#SET{nb_td,[(#GET{duree_mn}|div{30})]})]
36<BOUCLE_ajouter_td(DATA){enum 1,#GET{nb_td}|moins{1}}>
37[(#SET{td_a_virer,[(#GET{debute_mn}|plus{[(#VALEUR|mult{30})]})]})]
38#SET{tds_supprimer, #GET{tds_supprimer}|push{#GET{td_a_virer}}}
39</BOUCLE_ajouter_td>
40
41</BOUCLE_donnees>
42
43[(#REM) <!-- nombre de jours colonnes --->]
44[(#SET{nb_jours,
45        [(#GET{date_zerook}|duree{#GET{au_finalok},days}|plus{1})]
46})]
47
48[(#REM) <!-- nombre d'heures --->]
49[(#SET{nb_heures,
50        [(#EVAL{[(#GET{heure_max_fin}|intval)]-[(#GET{heure_max_debut}|intval)]}|plus{1})]
51})]
52
53
54[(#REM) <!-- nombre de minutes --->]
55[(#SET{nb_minutes,
56        [(#GET{nb_heures}|moins{1}|mult{60}|plus{1})]
57})]
58
59[(#REM) <!--
60<p>Les #GET{nb_jours} jours
61entre [(#VAL{date_jour_#GET{jour_debut_numero}|plus{1}}|_T)] et [(#VAL{date_jour_#GET{jour_fin}|plus{1}}|_T)] vont au maximum de [(#GET{heure_max_debut})h] [à (#GET{heure_max_fin})h]</p>
62<p>La table aura donc #GET{nb_heures} heures pour [ (#GET{nb_minutes}) ] minutes sur [ (#GET{nb_jours}) ] colonnes (les jours)</p>
63-->]
64
65[(#REM) <!-- diviser la table de 800px moins 50px de la colonne .horaire en nombre de colonnes/jours puis par 2 (colspan=2") -->]
66<style type="text/css">
67#planning_simple td{width:[(#EVAL{750}|div{#GET{nb_jours}|mult{2}})px];}
68</style>
69
70
71
72<div class='planning_simple'>
73[(#REM) <!-- l'emploi du temps en table, la construction tr/td est réalisé puis remplit en fonction des minutes, de 0 lundi 8h à 6400… le vendredi 16h -->]
74<table id="planning_simple">
75<caption>#INFO_TITRE{article,#ENV{id_article}}</caption>
76<tbody>
77<tr>
78                <th class="horaires"><!--Horaires--></th>
79        [(#REM) <!-- les jours (colonnes) de la semaine en multilingues -->]
80        <BOUCLE_jours(DATA){enum 1,#GET{nb_jours}}>
81                <th class="jours" colspan="2">[(#VAL{date_jour_#GET{jour_debut_numero}|plus{#VALEUR}}|_T|ucfirst)]</th>
82        </BOUCLE_jours>
83       
84</tr>
85
86        [(#REM) <!-- 1 ligne = 30 minutes -->
87        <BOUCLE_30_minutes(DATA){enum 0,#GET{nb_minutes},30}>
88                [(#SET{30_minutes,[(#EVAL{date("H:i", strtotime("+[(#GET{heure_max_debut}|round|moins{1}) hours ][(#VALEUR)] minutes","00:00"))})]})]
89                <tr class="#GET{30_minutes} [ (#COMPTEUR_BOUCLE|alterner{heure,demie})]">
90                               
91                        <td class="horaires">#GET{30_minutes}</td>
92                       
93                        [(#REM) <!-- les evenements de chaque cellules -->]
94                        <BOUCLE_cellules(DATA){enum 1,#GET{nb_jours}}>
95                               
96                                [(#REM) <!-- calcule la période en minutes a additionner à la cellule zéro (exemple 490 minutes) -->]
97                                [(#SET{periode,[(#VALEUR|moins{1}|intval|mult{1440}|plus{#_30_minutes:VALEUR})]})]
98                               
99                                [(#REM) <!-- additionne la cellule zéro + la période -->]
100                                [(#SET{date_evalue,[(#EVAL{date("Y-m-d H:i", strtotime("[+(#GET{periode}) minutes]","[(#GET{au_debut})]"))})]})]
101                               
102                                [(#REM) <!-- la cellule doit-elle disparaitre au profit d'un rowspan précédent, reprend le array -->]
103                                #SET{td_supprime,non}
104                                [(#GET{periode}|in_array{#GET{tds_supprimer}}|oui) [(#SET{td_supprime,oui})]]
105                               
106                                [(#REM) <!-- affiche l'evenement qui correspond à cette date -->]
107                                <INCLURE{fond=inclure/evenement_date_value,id_article,date_evalue=#GET{date_evalue},td_supprime=#GET{td_supprime}} />
108                                               
109                        </BOUCLE_cellules>     
110                </tr>
111        </BOUCLE_30_minutes>
112
113</tbody>
114</table>
115
116</div>
117
118</B_donnees><:planning_simple:aucune_donnee:><code>/?page=planning_simple&id_article=13</code>
119<:planning_simple:explication_evenements_dependances:>
120<//B_donnees>
Note: See TracBrowser for help on using the repository browser.