[SPIP] +2.1.12
[velocampus/web/www.git] / www / plugins / auto / fullcalendar / modeles / minifullcalendar.html
diff --git a/www/plugins/auto/fullcalendar/modeles/minifullcalendar.html b/www/plugins/auto/fullcalendar/modeles/minifullcalendar.html
new file mode 100644 (file)
index 0000000..fc95a73
--- /dev/null
@@ -0,0 +1,297 @@
+[(#REM) L'appel depuis un article se fait par < minifullcalendarXX >, alors id_minifullcalendar=XX\r
+ ou par un modele CROCHET(# MODELE{minifullcalendar}{id_minifullcalendar=XX})CROCHET \r
+]\r
+\r
+<?php\r
+\r
+       $id = '[(#ENV{id_minifullcalendar, #CONFIG{fullcalendar/mini_id, 0}}|texte_script)]';\r
+\r
+       # Quelle source de donnée ?\r
+\r
+       $req = sql_select('type', 'spip_fullcalendar_main', 'id_fullcalendar='.intval($id));\r
+       $num_calendar = sql_count($req);\r
+\r
+       if(!$num_calendar) return; # il n'y as pas de gabonnais au numéro demandé...\r
+\r
+       else {\r
+\r
+               $row=sql_fetch($req);\r
+\r
+               switch($row['type']){\r
+\r
+                       # AGENDA D'UNE RUBRIQUE\r
+\r
+                       case 'rub':\r
+                       # Récupère l'id de la rubrique pour cet agenda ...\r
+                       $result = sql_select('lien', 'spip_fullcalendar_events', 'id_fullcalendar='.intval($id));\r
+                       $row = sql_fetch($result);\r
+                       if(!$row['lien']) return;\r
+\r
+                       # Récupère les article liés à cette rubrique\r
+                       $events='events: [';\r
+\r
+                       $req = sql_select(\r
+                                       array(\r
+                                                       "A.id_article",\r
+                                                       "A.titre",\r
+                                                       "A.date",\r
+                                                       "A.date_redac" ),\r
+                                       array(\r
+                                                       "spip_articles AS A",\r
+                                                       "spip_rubriques AS R" ),\r
+                                       array(\r
+                                                       "A.statut='publie'",\r
+                                                       "A.id_rubrique='".intval($row['lien'])."'",\r
+                                                       "A.id_rubrique=R.id_rubrique" ),\r
+                                       "",\r
+                                       "A.date ASC");\r
+                       $num_events = sql_count($req);\r
+                       if($num_events)\r
+                                       while ($row = sql_fetch($req)) {\r
+\r
+                                                       $date = explode('-',substr($row['date'],0,10));\r
+                                                       $date_fin = explode('-',substr($row['date_redac'],0,10));\r
+                                                       $start = explode(':',substr($row['date'],11,5));\r
+                                                       $end = explode(':',substr($row['date_redac'],11,5));\r
+\r
+                                                       $url="url:'spip.php?article".$row['id_article']."',";\r
+                                                       if($date!='0000-00-00'&&$date_fin!='0000-00-00')\r
+                                                       $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},";\r
+                                       }\r
+                       $events=substr($events,0,strlen($events)-1);\r
+                       $events.=']';\r
+\r
+                       break;\r
+\r
+\r
+                       # AGENDA BASE SUR LES ARTICLES\r
+\r
+                       case 'article':\r
+\r
+                       # Récupère l'id du mot clé de cet agenda ...\r
+                       $result = sql_select('lien', 'spip_fullcalendar_events', 'id_fullcalendar='.intval($id));\r
+                       $row = sql_fetch($result);\r
+                       if(!$row['lien']) return;\r
+\r
+                       # Récupère les article liés à ce mot clé\r
+                       $events='events: [\r
+\r
+                       ';\r
+\r
+                       $req = sql_select(\r
+                               array(\r
+                                       "A.id_article",\r
+                                       "A.titre",\r
+                                       "A.date",\r
+                                       "A.date_redac" ),\r
+                               array(\r
+                                       "spip_articles AS A",\r
+                                       "spip_mots_articles AS M" ),\r
+                               array(\r
+                                       "A.statut='publie'",\r
+                                       "M.id_mot='".intval($row['lien'])."'",\r
+                                       "A.id_article=M.id_article" ),\r
+                               "",\r
+                               "A.date ASC");\r
+\r
+                       $num_events = sql_count($req);\r
+                       if($num_events)\r
+                               while ($row = sql_fetch($req)) {\r
+\r
+                                       $date = explode('-',substr($row['date'],0,10));\r
+                                       $date_fin = explode('-',substr($row['date_redac'],0,10));\r
+                                       $start = explode(':',substr($row['date'],11,5));\r
+                                       $end = explode(':',substr($row['date_redac'],11,5));\r
+\r
+                                       $url="url:'spip.php?article".$row['id_article']."',";\r
+                                       if($date!='0000-00-00'&&$date_fin!='0000-00-00')\r
+                                       $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},";\r
+                               }\r
+                       $events=substr($events,0,strlen($events)-1);\r
+                       $events.=']';\r
+\r
+                       break;\r
+\r
+                       # AGENDA MySQL\r
+\r
+                       case 'mysql':\r
+\r
+                       # Récupère les style css\r
+\r
+                       $result = sql_select(array('id_style', 'bgcolor', 'textcolor', 'bordercolor'), 'spip_fullcalendar_styles', 'id_style', '', '');\r
+                       while ( $row = sql_fetch($result)){\r
+                               $style[$row['id_style']]['back'] = $row['bgcolor'];\r
+                               $style[$row['id_style']]['text'] = $row['textcolor'];\r
+                               $style[$row['id_style']]['bord'] = $row['bordercolor'];\r
+                       }\r
+                       sql_free($result);\r
+\r
+                       $events='events: [';\r
+\r
+                       $result = sql_select(array('titre', 'start', 'end', 'lien', 'id_style'), 'spip_fullcalendar_events', 'id_fullcalendar='.intval($id), '', 'start ASC');\r
+                       while ( $row = sql_fetch($result)){\r
+\r
+                               $date = explode('-',substr($row['start'],0,10));\r
+                               $date_fin = explode('-',substr($row['end'],0,10));\r
+                               $start = explode(':',substr($row['start'],11,5));\r
+                               $end = explode(':',substr($row['end'],11,5));\r
+\r
+                               if(strlen(trim($row['lien'])))\r
+                                       $url="url:'".trim($row['lien'])."',";\r
+                               else\r
+                                       $url='';\r
+\r
+                               if($row['id_style']>0){\r
+                                       $class=",backgroundColor: '".$style[$row['id_style']]['back']."', textColor: '".$style[$row['id_style']]['text']."', borderColor: '".$style[$row['id_style']]['bord']."'";\r
+                               } else $class='';\r
+\r
+                               $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},";\r
+                       }\r
+                       sql_free($result);\r
+                       $events=substr($events,0,strlen($events)-1);\r
+                       $events.=']';\r
+                       break;\r
+\r
+                       # AGENDA GOOGLE\r
+\r
+                       case 'google':\r
+\r
+                       # Choppe la clé Google dans le seul évènement de cet agenda ...\r
+                       $result = sql_select('lien', 'spip_fullcalendar_events', 'id_fullcalendar='.intval($id));\r
+                       $row = sql_fetch($result);\r
+                       if(!strlen($row['lien'])) return;\r
+\r
+                       $URL_AGENDA = "http://www.google.com/calendar/feeds/".$row['lien']."/public/basic";\r
+\r
+                       $events = "events: $.fullCalendar.gcalFeed('".$URL_AGENDA."'),\r
+\r
+                       eventClick: function(event) {\r
+                       // opens events in a popup window\r
+                       window.open(event.url, 'gcalevent', 'width=700,height=600');\r
+                       return false;\r
+                       },\r
+\r
+                       loading: function(bool) {\r
+                               if (bool) {\r
+                                       $('#loading').show();\r
+                               }else{\r
+                                       $('#loading').hide();\r
+                               }\r
+                       }\r
+                       ";\r
+\r
+                       break;\r
+                       default:\r
+               }\r
+\r
+               # Récupère les variable Paramètres / CFG\r
+\r
+               $aspectRatio                            = "[(#ENV{aspectRatio,#CONFIG{fullcalendar/aspectRatio,'1.35'}}|texte_script)]";\r
+               $useTheme                                       = "[(#ENV{useTheme,#CONFIG{fullcalendar/useTheme,true}}|texte_script)]";\r
+               $useTheme                                       = ($useTheme=='true')? 'theme: true,' : '' ;\r
+               $weekends                                       = "[(#ENV{weekends,#CONFIG{fullcalendar/miniweekends,false}}|texte_script)]";\r
+               $defaultView                            = "[(#ENV{defaultView,#CONFIG{fullcalendar/defaultView,month}}|texte_script)]";\r
+\r
+               $headerLeft                             = "[(#CONFIG{fullcalendar/miniheaderLeft, 'today'}|texte_script)]";\r
+               $headerCenter                           = "[(#CONFIG{fullcalendar/miniheaderCenter, 'title'}|texte_script)]";\r
+               $headerRight                            = "[(#CONFIG{fullcalendar/miniheaderRight, 'prev,next'}|texte_script)]";\r
+               $firstDay                                       = "[(#CONFIG{fullcalendar/firstDay, '1'}|texte_script)]";\r
+               $month_titleFormat                      = "[(#CONFIG{fullcalendar/minimonth_titleFormat, 'MMM yy'}|texte_script)]";\r
+               $month_columnFormat             = "[(#CONFIG{fullcalendar/minimonth_columnFormat, 'ddd'}|texte_script)]";\r
+               $month_timeFormat                       = "[(#CONFIG{fullcalendar/minimonth_timeFormat, ''}|texte_script)]";\r
+               #$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)]";\r
+               $week_titleFormat                       = "[(#CONFIG{fullcalendar/week_titleFormat, 'd MMMM  yyyy{  -  d MMMM yyyy}'}|texte_script)]";\r
+               $week_columnFormat                      = "[(#CONFIG{fullcalendar/week_columnFormat, 'dddd d'}|texte_script)]";\r
+               $week_timeFormat_basic          = "[(#CONFIG{fullcalendar/week_timeFormat_basic, 'H(:mm)'}|texte_script)]";\r
+               $week_timeFormat_agenda         = "[(#CONFIG{fullcalendar/week_timeFormat_agenda, 'H(:mm)'}|texte_script)]";\r
+               $day_titleFormat                        = "[(#CONFIG{fullcalendar/day_titleFormat, 'dddd d MMMM yyyy'}|texte_script)]";\r
+               $day_columnFormat                       = "[(#CONFIG{fullcalendar/day_columnFormat, 'dddd d MMMM'}|texte_script)]";\r
+               $day_timeFormat_basic           = "[(#CONFIG{fullcalendar/day_timeFormat_basic, 'H:mm{ - H:mm}'}|texte_script)]";\r
+               $day_timeFormat_agenda          = "[(#CONFIG{fullcalendar/day_timeFormat_agenda, 'H:mm{ - H:mm}'}|texte_script)]";\r
+\r
+               $rand = rand(0,1000);\r
+\r
+               # Génère le fullcalendar avec tous ses paramètres ...\r
+               print "\r
+               <script type='text/javascript'>\r
+               $(document).ready(function() {\r
+                       if( ! $('#minicalendar".$rand."').data('fullcalendar_set') ) {\r
+                               $('#minicalendar".$rand."').fullCalendar({\r
+                                       ".$useTheme."\r
+                                       firstDay: ".$firstDay.",\r
+                                       defaultView: '".$defaultView."',\r
+                                       aspectRatio: ".$aspectRatio.",\r
+                                       header: { left: '".$headerLeft."', center: '".$headerCenter."', right: '".$headerRight."' },\r
+                                       editable: false,\r
+                                       allDayText: 'Journée',\r
+                                       ".$events.",\r
+                                       weekends: ".$weekends.",\r
+                                       titleFormat: {\r
+                                               month: '".$month_titleFormat."',\r
+                                               week: \"".$week_titleFormat."\",\r
+                                               day: '".$day_titleFormat."'\r
+                                       },\r
+                                       columnFormat: {\r
+                                               month: '".$month_columnFormat."',\r
+                                               week: '".$week_columnFormat."',\r
+                                               day: '".$day_columnFormat."'\r
+                                       },\r
+                                       timeFormat: {\r
+                                               month:      \"".$month_timeFormat."\",\r
+                                               agendaDay:  \"".$day_timeFormat_agenda."\",\r
+                                               agendaWeek: \"".$week_timeFormat_agenda."\",\r
+                                               basicWeek:  \"".$week_timeFormat_basic."\",\r
+                                               basicDay:   \"".$day_timeFormat_basic."\",\r
+                                               '': 'H(:mm)'\r
+                                       },\r
+                                       eventMouseover: function(event, jsEvent, view) {\r
+                                               if (view.name !== 'agendaDay') {\r
+                                                       $(jsEvent.target).attr('title', event.title);\r
+                                               }\r
+                                       }\r
+                               });\r
+                       }\r
+                       $('#minicalendar".$rand."').data('fullcalendar_set', 1);\r
+\r
+               });\r
+               </script>\r
+\r
+               <div id='minicalendar".$rand."' class='minicalendar'></div>\r
+\r
+               ";\r
+\r
+       }\r
+?>\r
+\r
+<style type="text/css">\r
+<!--\r
+.minicalendar {\r
+       width: #CONFIG{fullcalendar/mini_width, 200}px;\r
+       margin: 0 auto;\r
+       font-size: 10px;\r
+}\r
+.minicalendar .fc-header-title {\r
+       font-size: #CONFIG{fullcalendar/mini_font, 1}em;\r
+       padding-top:5px;\r
+       white-space: normal !important;\r
+}\r
+.minicalendar .fc-view-month .fc-event, .fc-view-agendaWeek .fc-event {\r
+       font-size: 0;\r
+       overflow: hidden;\r
+       height: 2px;\r
+}\r
+.minicalendar.fc-view-agendaWeek .fc-event-vert {\r
+       font-size: 0;\r
+       overflow: hidden;\r
+       width: 2px !important;\r
+}\r
+.minicalendar .fc-agenda-axis {\r
+       width: 20px !important;\r
+       font-size: .7em;\r
+}\r
+\r
+.minicalendar .fc-button-content {\r
+       padding: 0;\r
+}\r
+-->\r
+</style>\r