1 [(#REM) L'appel depuis un article se fait par < minifullcalendarXX
>, alors id_minifullcalendar=XX
2 ou par un modele CROCHET(# MODELE{minifullcalendar}{id_minifullcalendar=XX})CROCHET
7 $id = '[(#ENV{id_minifullcalendar, #CONFIG{fullcalendar/mini_id,
0}}|texte_script)]';
9 # Quelle source de donnée ?
11 $req = sql_select('type', 'spip_fullcalendar_main', 'id_fullcalendar='.intval($id));
12 $num_calendar = sql_count($req);
14 if(!$num_calendar) return; # il n'y as pas de gabonnais au numéro demandé...
22 # AGENDA D'UNE RUBRIQUE
25 # Récupère l'id de la rubrique pour cet agenda ...
26 $result = sql_select('lien', 'spip_fullcalendar_events', 'id_fullcalendar='.intval($id));
27 $row = sql_fetch($result);
28 if(!$row['lien']) return;
30 # Récupère les article liés à cette rubrique
41 "spip_rubriques AS R" ),
44 "A.id_rubrique='".intval($row['lien']).
"'",
45 "A.id_rubrique=R.id_rubrique" ),
48 $num_events = sql_count($req);
50 while ($row = sql_fetch($req)) {
52 $date = explode('-',substr($row['date'],
0,
10));
53 $date_fin = explode('-',substr($row['date_redac'],
0,
10));
54 $start = explode(':',substr($row['date'],
11,
5));
55 $end = explode(':',substr($row['date_redac'],
11,
5));
57 $
url=
"url:'spip.php?article".$row['id_article'].
"',";
58 if($date!='
0000-
00-
00'&&$date_fin!='
0000-
00-
00')
59 $events.=
"{title: '".texte_script(supprimer_numero($row['titre'])).
"',start:new Date(parseInt('".$date[
0].
"',10) , parseInt('".($date[
1]-
1).
"',10) , parseInt('".$date[
2].
"',10), parseInt('".$start[
0].
"',10) , parseInt('".$start[
1].
"',10)),end: new Date(parseInt('".$date_fin[
0].
"',10), parseInt('".($date_fin[
1]-
1).
"',10), parseInt('".$date_fin[
2].
"',10), parseInt('".$end[
0].
"',10), parseInt('".$end[
1].
"',10)),$url allDay: false},";
61 $events=substr($events,
0,strlen($events)-
1);
67 # AGENDA BASE SUR LES ARTICLES
71 # Récupère l'id du mot clé de cet agenda ...
72 $result = sql_select('lien', 'spip_fullcalendar_events', 'id_fullcalendar='.intval($id));
73 $row = sql_fetch($result);
74 if(!$row['lien']) return;
76 # Récupère les article liés à ce mot clé
89 "spip_mots_articles AS M" ),
92 "M.id_mot='".intval($row['lien']).
"'",
93 "A.id_article=M.id_article" ),
97 $num_events = sql_count($req);
99 while ($row = sql_fetch($req)) {
101 $date = explode('-',substr($row['date'],
0,
10));
102 $date_fin = explode('-',substr($row['date_redac'],
0,
10));
103 $start = explode(':',substr($row['date'],
11,
5));
104 $end = explode(':',substr($row['date_redac'],
11,
5));
106 $
url=
"url:'spip.php?article".$row['id_article'].
"',";
107 if($date!='
0000-
00-
00'&&$date_fin!='
0000-
00-
00')
108 $events.=
"{title: '".texte_script(supprimer_numero($row['titre'])).
"',start:new Date(parseInt('".$date[
0].
"',10) , parseInt('".($date[
1]-
1).
"',10) , parseInt('".$date[
2].
"',10), parseInt('".$start[
0].
"',10) , parseInt('".$start[
1].
"',10)),end: new Date(parseInt('".$date_fin[
0].
"',10), parseInt('".($date_fin[
1]-
1).
"',10), parseInt('".$date_fin[
2].
"',10), parseInt('".$end[
0].
"',10), parseInt('".$end[
1].
"',10)),$url allDay: false},";
110 $events=substr($events,
0,strlen($events)-
1);
119 # Récupère les style css
121 $result = sql_select(array('id_style', 'bgcolor', 'textcolor', 'bordercolor'), 'spip_fullcalendar_styles', 'id_style', '', '');
122 while ( $row = sql_fetch($result)){
123 $style[$row['id_style']]['back'] = $row['bgcolor'];
124 $style[$row['id_style']]['text'] = $row['textcolor'];
125 $style[$row['id_style']]['bord'] = $row['bordercolor'];
131 $result = sql_select(array('titre', 'start', 'end', 'lien', 'id_style'), 'spip_fullcalendar_events', 'id_fullcalendar='.intval($id), '', 'start ASC');
132 while ( $row = sql_fetch($result)){
134 $date = explode('-',substr($row['start'],
0,
10));
135 $date_fin = explode('-',substr($row['end'],
0,
10));
136 $start = explode(':',substr($row['start'],
11,
5));
137 $end = explode(':',substr($row['end'],
11,
5));
139 if(strlen(trim($row['lien'])))
140 $
url=
"url:'".trim($row['lien']).
"',";
144 if($row['id_style']
>0){
145 $
class=
",backgroundColor: '".$style[$row['id_style']]['back'].
"', textColor: '".$style[$row['id_style']]['text'].
"', borderColor: '".$style[$row['id_style']]['bord'].
"'";
148 $events.=
"{title: '".texte_script($row['titre']).
"',start: new Date(parseInt('".$date[
0].
"',10), parseInt('".($date[
1]-
1).
"',10), parseInt('".$date[
2].
"',10), parseInt('".$start[
0].
"',10), parseInt('".$start[
1].
"',10)),end: new Date(parseInt('".$date_fin[
0].
"',10), parseInt('".($date_fin[
1]-
1).
"',10), parseInt('".$date_fin[
2].
"',10), parseInt('".$end[
0].
"',10), parseInt('".$end[
1].
"',10)), $url allDay: false $class},";
151 $events=substr($events,
0,strlen($events)-
1);
159 # Choppe la clé Google dans le seul évènement de cet agenda ...
160 $result = sql_select('lien', 'spip_fullcalendar_events', 'id_fullcalendar='.intval($id));
161 $row = sql_fetch($result);
162 if(!strlen($row['lien'])) return;
164 $URL_AGENDA =
"http://www.google.com/calendar/feeds/".$row['lien'].
"/public/basic";
166 $events =
"events: $.fullCalendar.gcalFeed('".$URL_AGENDA.
"'),
168 eventClick: function(event) {
169 // opens events in a popup window
170 window.open(event.url, 'gcalevent', 'width=700,height=600');
174 loading: function(bool) {
176 $('#loading').show();
178 $('#loading').hide();
187 # Récupère les variable Paramètres / CFG
189 $aspectRatio =
"[(#ENV{aspectRatio,#CONFIG{fullcalendar/aspectRatio,'1.35'}}|texte_script)]";
190 $useTheme =
"[(#ENV{useTheme,#CONFIG{fullcalendar/useTheme,true}}|texte_script)]";
191 $useTheme = ($useTheme=='true')? 'theme: true,' : '' ;
192 $weekends =
"[(#ENV{weekends,#CONFIG{fullcalendar/miniweekends,false}}|texte_script)]";
193 $defaultView =
"[(#ENV{defaultView,#CONFIG{fullcalendar/defaultView,month}}|texte_script)]";
195 $headerLeft =
"[(#CONFIG{fullcalendar/miniheaderLeft, 'today'}|texte_script)]";
196 $headerCenter =
"[(#CONFIG{fullcalendar/miniheaderCenter, 'title'}|texte_script)]";
197 $headerRight =
"[(#CONFIG{fullcalendar/miniheaderRight, 'prev,next'}|texte_script)]";
198 $firstDay =
"[(#CONFIG{fullcalendar/firstDay, '1'}|texte_script)]";
199 $month_titleFormat =
"[(#CONFIG{fullcalendar/minimonth_titleFormat, 'MMM yy'}|texte_script)]";
200 $month_columnFormat =
"[(#CONFIG{fullcalendar/minimonth_columnFormat, 'ddd'}|texte_script)]";
201 $month_timeFormat =
"[(#CONFIG{fullcalendar/minimonth_timeFormat, ''}|texte_script)]";
202 #$week_titleFormat =
"[(#CONFIG{fullcalendar/week_titleFormat, 'd [(#VAL{91}|chr)]MMMM[(#VAL{93}|chr)] [(#VAL{91}|chr)] yyyy[(#VAL{93}|chr)][(#VAL{123}|chr)] - d MMMM yyyy[(#VAL{125}|chr)]' }|texte_script)]";
203 $week_titleFormat =
"[(#CONFIG{fullcalendar/week_titleFormat, 'd MMMM yyyy{ - d MMMM yyyy}'}|texte_script)]";
204 $week_columnFormat =
"[(#CONFIG{fullcalendar/week_columnFormat, 'dddd d'}|texte_script)]";
205 $week_timeFormat_basic =
"[(#CONFIG{fullcalendar/week_timeFormat_basic, 'H(:mm)'}|texte_script)]";
206 $week_timeFormat_agenda =
"[(#CONFIG{fullcalendar/week_timeFormat_agenda, 'H(:mm)'}|texte_script)]";
207 $day_titleFormat =
"[(#CONFIG{fullcalendar/day_titleFormat, 'dddd d MMMM yyyy'}|texte_script)]";
208 $day_columnFormat =
"[(#CONFIG{fullcalendar/day_columnFormat, 'dddd d MMMM'}|texte_script)]";
209 $day_timeFormat_basic =
"[(#CONFIG{fullcalendar/day_timeFormat_basic, 'H:mm{ - H:mm}'}|texte_script)]";
210 $day_timeFormat_agenda =
"[(#CONFIG{fullcalendar/day_timeFormat_agenda, 'H:mm{ - H:mm}'}|texte_script)]";
212 $rand = rand(
0,
1000);
214 # Génère le fullcalendar avec tous ses paramètres ...
216 <script type='text/javascript'>
217 $(document).ready(function() {
218 if( ! $('#minicalendar".$rand.
"').data('fullcalendar_set') ) {
219 $('#minicalendar".$rand.
"').fullCalendar({
221 firstDay: ".$firstDay.
",
222 defaultView: '".$defaultView.
"',
223 aspectRatio: ".$aspectRatio.
",
224 header: { left: '".$headerLeft.
"', center: '".$headerCenter.
"', right: '".$headerRight.
"' },
226 allDayText: 'Journée',
228 weekends: ".$weekends.
",
230 month: '".$month_titleFormat.
"',
231 week: \"".$week_titleFormat."\
",
232 day: '".$day_titleFormat.
"'
235 month: '".$month_columnFormat.
"',
236 week: '".$week_columnFormat.
"',
237 day: '".$day_columnFormat.
"'
240 month: \"".$month_timeFormat."\
",
241 agendaDay: \"".$day_timeFormat_agenda."\
",
242 agendaWeek: \"".$week_timeFormat_agenda."\
",
243 basicWeek: \"".$week_timeFormat_basic."\
",
244 basicDay: \"".$day_timeFormat_basic."\
",
247 eventMouseover: function(event, jsEvent, view) {
248 if (view.name !== 'agendaDay') {
249 $(jsEvent.target).attr('title', event.title);
254 $('#minicalendar".$rand.
"').data('fullcalendar_set', 1);
259 <div id='minicalendar".$rand.
"' class='minicalendar'></div>
266 <style type=
"text/css">
269 width: #CONFIG{fullcalendar/mini_width, 200}px;
273 .minicalendar .fc-header-title {
274 font-size: #CONFIG{fullcalendar/mini_font, 1}em;
276 white-space: normal !important;
278 .minicalendar .fc-view-month .fc-event, .fc-view-agendaWeek .fc-event {
283 .minicalendar.fc-view-agendaWeek .fc-event-vert {
286 width: 2px !important;
288 .minicalendar .fc-agenda-axis {
289 width: 20px !important;
293 .minicalendar .fc-button-content {