source: spip-zone/_plugins_/calendrier_mini/spip-1.9/minical_fonctions.php @ 52820

Last change on this file since 52820 was 52820, checked in by kent1@…, 10 years ago

if (!defined("_ECRIRE_INC_VERSION")) return; sur tout fichier PHP pour sécurité future principalement

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