source: spip-zone/_plugins_/calendrier_mini/dev/minical_fonctions.php @ 5351

Last change on this file since 5351 was 5351, checked in by james@…, 15 years ago

hop, on s'appuie sur les nouvelles traductions de la version de dev.

File size: 3.3 KB
Line 
1<?php
2
3/* Balise #CALENDRIER_MINI
4   Auteur James (c) 2006
5   Plugin pour spip 1.9
6   Licence GNU/GPL
7*/
8
9function balise_DATE_ARCHIVES($p) {
10        $p->code = "_request('".VAR_DATE."')";
11
12        #$p->interdire_scripts = true;
13        return $p;
14}
15
16function critere_archives($idb, &$boucles, $crit) {
17        $boucle = &$boucles[$idb];
18 $champ_date = "'" . $boucle->id_table ."." .
19  $GLOBALS['table_date'][$boucle->type_requete] . "'";
20 $boucle->where[] = array(
21  'REGEXP',
22  $champ_date, 
23  "spip_abstract_quote(('^' . interdire_scripts(entites_html(\$Pile[0]['".VAR_DATE."']))))"
24 );
25 
26}
27
28function thead($lang, $forme = 'abbr'){
29        $ret = '';
30        $debut = 2;
31        if($lang == 'en') $debut = 1;
32        $forme = $forme ? '_'.$forme : '';
33        for($i=0;$i<7;$i++) {
34                $ret .= "\n\t\t\t\t".'<th scope="col"><abbr title="'._T('date_jour_'.$debut).'">' .
35                _T('date_jour_'.$debut.$forme) . '</abbr></th>';
36                $debut = $debut == 7 ? 1 : $debut+1;
37        }
38        return "\n\t\t".'<thead>
39                        <tr>' .$ret. '
40                        </tr>
41                </thead>'."\n";
42}
43
44function agenda_mini($i) {
45  $args = func_get_args();
46  $une_date = array_shift($args); // une date comme balise
47  $sinon = array_shift($args);
48  if (!$une_date) return $sinon;
49  $type = 'mini';
50  $agenda = agenda_memo(0);
51  $evt = array();
52  foreach (($args ? $args : array_keys($agenda)) as $k) { 
53      if (is_array($agenda[$k]))
54                foreach($agenda[$k] as $d => $v) { 
55                  $evt[$d] = $evt[$d] ? (array_merge($evt[$d], $v)) : $v;
56                }
57    }
58        $la_date = mktime(0, 0, 0, mois($une_date), 1, annee($une_date));
59    include_spip('inc/agenda');
60    return http_calendrier_init($la_date, $type, '', '', '', array('', $evt));
61}
62
63function http_calendrier_mini($annee, $mois, $jour, $echelle, $partie_cal, $script, $ancre, $evt) {
64        list($sansduree, $evenements, $premier_jour, $dernier_jour) = $evt;
65
66        if ($sansduree)
67                foreach($sansduree as $d => $r) {
68                        $evenements[$d] = !$evenements[$d] ? $r : 
69                                 array_merge($evenements[$d], $r);
70                         }
71
72        if (!$premier_jour) $premier_jour = '01';
73        if (!$dernier_jour) {
74                $dernier_jour = 31;
75                while (!(checkdate($mois,$dernier_jour,$annee))) $dernier_jour--;
76        }
77
78        // affichage du debut de semaine hors periode
79        $lang = _request('lang')?_request('lang'):$GLOBALS['spip_lang'];
80        $ligne = '';
81        $debut = date("w",mktime(1,1,1,$mois,$premier_jour,$annee));
82        $jour_semaine_lang=1; 
83        if($lang=='en') {
84                $debut=$debut+1;
85                if($debut==7) $debut=0;
86                $jour_semaine_lang=0;
87        } 
88        for ($i=$debut ? $debut : 7;$i>1;$i--) {
89                $ligne .= "\n\t<td>&nbsp;</td>";
90        }
91
92        $total = '';
93        for ($j=$premier_jour; $j<=$dernier_jour; $j++) {
94                $nom = mktime(1,1,1,$mois,$j,$annee);
95                $jour = date("d",$nom);
96                $jour_semaine = date("w",$nom);
97                $mois_en_cours = date("m",$nom);
98                $annee_en_cours = date("Y",$nom);
99                $amj = date("Y",$nom) . $mois_en_cours . $jour;
100
101                if ($jour_semaine==$jour_semaine_lang AND $ligne != '') { 
102                        $total .= "\n<tr>$ligne\n</tr>";
103                        $ligne = '';
104                }
105
106                $evts = $evenements[$amj];
107                if ($evts) {
108                        $evts = "<a href=\"".$evts[0]['URL']."\">".$evts[0]['SUMMARY']."</a>";
109                }
110                else {
111                        $evts = intval($jour);
112                }
113                $ligne .= "\n\t<td".($amj == date("Ymd")?' class="today"':'').">" . $evts . "\n\t</td>";
114        }
115        // affichage de la fin de semaine hors periode
116        for($j=$jour_semaine ? $jour_semaine+(1-$jour_semaine_lang) : 7; $j<7; $j++) {
117                $ligne .= "\n\t<td>&nbsp;</td>";
118        }
119
120        return $total . ($ligne ? "\n<tr>$ligne\n</tr>" : '');
121}
122
123?>
Note: See TracBrowser for help on using the repository browser.