Changeset 61121 in spip-zone
- Timestamp:
- May 8, 2012, 1:12:51 PM (9 years ago)
- Location:
- _plugins_/simple_calendrier/trunk
- Files:
-
- 38 edited
- 1 moved
Legend:
- Unmodified
- Added
- Removed
-
_plugins_/simple_calendrier/trunk/action/editer_evenement.php
r61117 r61121 1 1 <?php 2 3 /***************************************************************************\ 4 * SPIP, Systeme de publication pour l'internet * 5 * * 6 * Copyright (c) 2001-2011 * 7 * Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James * 8 * * 9 * Ce programme est un logiciel libre distribue sous licence GNU/GPL. * 10 * Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne. * 11 \***************************************************************************/ 12 2 /** 3 * Plugin Simple Calendrier v2 pour SPIP 3.0 4 * Licence GNU/GPL 5 * 2010-2012 6 * 7 * cf. paquet.xml pour plus d'infos. 8 */ 13 9 if (!defined("_ECRIRE_INC_VERSION")) return; 14 10 15 11 function action_editer_evenement_dist($arg=null) { 16 12 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 13 if (is_null($arg)){ 14 $securiser_action = charger_fonction('securiser_action', 'inc'); 15 $arg = $securiser_action(); 16 } 17 18 // Envoi depuis le formulaire d'edition d'un evenement 19 if (!$id_evenement = intval($arg)) { 20 $id_evenement = evenement_inserer(_request('id_parent')); 21 } 22 23 if (!$id_evenement) 24 return array(0,''); // erreur 25 26 $err = evenement_modifier($id_evenement); 27 28 return array($id_evenement,$err); 33 29 } 34 30 … … 41 37 function evenement_inserer($id_rubrique) { 42 38 43 44 45 46 47 48 49 50 51 52 53 39 include_spip('inc/rubriques'); 40 41 // Si id_rubrique vaut 0 ou n'est pas definie, creer l'evenement 42 // dans la premiere rubrique racine 43 if (!$id_rubrique = intval($id_rubrique)) { 44 $id_rubrique = sql_getfetsel("id_rubrique", "spip_rubriques", "id_parent=0",'', '0+titre,titre', "1"); 45 } else { 46 $row = sql_fetsel("lang, id_secteur", "spip_rubriques", "id_rubrique=$id_rubrique"); 47 } 48 49 // eviter $id_secteur = NULL (erreur sqlite) si la requete precedente echoue 54 50 // cas de id_rubrique = -1 par exemple avec plugin "pages" 55 51 $id_secteur = isset($row['id_secteur']) ? $row['id_secteur'] : 0; 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 52 53 // La langue a la creation : c'est la langue de la rubrique 54 // Si pas de rubrique => langue par defaut du site 55 $lang = isset($row['lang']) ? $row['lang'] : $GLOBALS['meta']['langue_site']; 56 57 58 $champs = array( 59 'id_rubrique' => $id_rubrique, 60 'id_secteur' => $id_secteur, 61 'statut' => 'prepa', 62 'date' => date('Y-m-d H:i:s'), 63 'lang' => $lang, 64 'langue_choisie' => 'non'); 65 66 // Envoyer aux plugins 67 $champs = pipeline('pre_insertion', 68 array( 69 'args' => array( 70 'table' => 'spip_evenements', 71 ), 72 'data' => $champs 73 ) 74 ); 75 $id_evenement = sql_insertq("spip_evenements", $champs); 76 pipeline('post_insertion', 77 array( 78 'args' => array( 79 'table' => 'spip_evenements', 80 'id_objet' => $id_evenement 81 ), 82 'data' => $champs 83 ) 84 ); 85 86 // Lien auteur/evenement 87 if ($id_evenement > 0 AND $GLOBALS['visiteur_session']['id_auteur']) { 88 include_spip('action/editer_auteur'); 89 auteur_associer($GLOBALS['visiteur_session']['id_auteur'], array('evenement'=>$id_evenement)); 90 } 91 92 return $id_evenement; 97 93 } 98 94 … … 110 106 function evenement_modifier ($id_evenement, $set=null) { 111 107 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 108 include_spip('inc/modifier'); 109 $c = collecter_requests( 110 // white list 111 objet_info('evenement','champs_editables'), 112 // black list 113 array('id_parent', 'statut'), 114 // donnees eventuellement fournies 115 $set 116 ); 117 118 // Si l'evenement est publiee, invalider les caches et demander sa reindexation 119 $t = sql_getfetsel("statut", "spip_evenements", "id_evenement=$id_evenement"); 120 if ($t == 'publie') { 121 $invalideur = "id='evenement/$id_evenement'"; 122 $indexation = true; 123 } 124 125 modifier_contenu('evenement', $id_evenement, 126 array( 127 'nonvide' => array('titre' => _T('info_sans_titre')), 128 'invalideur' => $invalideur, 129 'indexation' => $indexation 130 ), 131 $c); 132 133 $c = collecter_requests(array('id_parent', 'statut'),array(),$set); 134 $err = evenement_instituer($id_evenement, $c); 135 return $err; 140 136 } 141 137 … … 148 144 */ 149 145 function evenement_instituer($id_evenement, $c) { 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 146 $champs = array(); 147 148 // Changer le statut de l'evenement ? 149 $row = sql_fetsel("statut, id_rubrique, lang, langue_choisie", "spip_evenements", "id_evenement=".intval($id_evenement)); 150 $id_rubrique = $row['id_rubrique']; 151 152 $statut_ancien = $statut = $row['statut']; 153 $langue_old = $row['lang']; 154 $langue_choisie_old = $row['langue_choisie']; 155 156 if ($c['statut'] 157 AND $c['statut'] != $statut 158 AND autoriser('publierdans', 'rubrique', $id_rubrique)) { 159 $statut = $champs['statut'] = $c['statut']; 160 } 161 162 // Changer de rubrique ? 163 // Verifier que la rubrique demandee est a la racine et differente 164 // de la rubrique actuelle 165 if ($id_parent = intval($c['id_parent']) 166 AND $id_parent != $id_rubrique 167 AND (NULL !== ($lang=sql_getfetsel('lang', 'spip_rubriques', "id_parent=0 AND id_rubrique=".intval($id_parent))))) { 168 $champs['id_rubrique'] = $id_parent; 169 // - changer sa langue (si heritee) 170 if ($langue_choisie_old != "oui") { 171 if ($lang != $langue_old) 172 $champs['lang'] = $lang; 173 } 174 // si l'evenement est publiee 175 // et que le demandeur n'est pas admin de la rubrique 176 // repasser l'evenement en statut 'prop'. 177 if ($statut == 'publie') { 178 if (!autoriser('publierdans','rubrique',$id_parent)) 179 $champs['statut'] = $statut = 'prop'; 180 } 181 } 182 183 // Envoyer aux plugins 184 $champs = pipeline('pre_edition', 185 array( 186 'args' => array( 187 'table' => 'spip_evenements', 188 'id_objet' => $id_evenement, 189 'action'=>'instituer', 190 'statut_ancien' => $statut_ancien, 191 ), 192 'data' => $champs 193 ) 194 ); 195 196 if (!$champs) return; 197 198 sql_updateq('spip_evenements', $champs, "id_evenement=".intval($id_evenement)); 199 200 // 201 // Post-modifications 202 // 203 204 // Invalider les caches 205 include_spip('inc/invalideur'); 206 suivre_invalideur("id='evenement/$id_evenement'"); 207 208 // Au besoin, changer le statut des rubriques concernees 209 include_spip('inc/rubriques'); 210 calculer_rubriques_if($id_rubrique, $champs, $statut_ancien); 211 212 // Pipeline 213 pipeline('post_edition', 214 array( 215 'args' => array( 216 'table' => 'spip_evenements', 217 'id_objet' => $id_evenement, 218 'action'=>'instituer', 219 'statut_ancien' => $statut_ancien, 220 ), 221 'data' => $champs 222 ) 223 ); 224 225 226 // Notifications 227 if ($notifications = charger_fonction('notifications', 'inc')) { 228 $notifications('instituerevenement', $id_evenement, 229 array('statut' => $statut, 'statut_ancien' => $statut_ancien) 230 ); 231 } 232 233 return ''; // pas d'erreur 238 234 } 239 235 240 236 function insert_evenement($id_rubrique) { 241 237 return evenement_inserer($id_rubrique); 242 238 } 243 239 function revisions_evenements ($id_evenement, $set=false) { 244 240 return evenement_modifier($id_evenement,$set); 245 241 } 246 242 ?> -
_plugins_/simple_calendrier/trunk/balise/simple_calendrier.php
r53019 r61121 1 1 <?php 2 2 /** 3 * Plugin Simple Calendrier pour Spip 2.1.2 4 * Licence GPL (c) 2010-2011 Julien Lanfrey 3 * Plugin Simple Calendrier v2 pour SPIP 3.0 4 * Licence GNU/GPL 5 * 2010-2012 5 6 * 7 * cf. paquet.xml pour plus d'infos. 6 8 */ 7 9 … … 10 12 11 13 function balise_SIMPLE_CALENDRIER($p) { 12 13 14 15 16 17 18 // ---- Accès restreint ---19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 14 15 $req_select = "e.*"; 16 $req_from = "spip_evenements AS e"; 17 $req_where = "e.date_debut >= CONCAT(DATE_FORMAT(NOW(),'%Y-%m'), '-01') AND e.date_debut <= LAST_DAY(NOW()) AND e.statut = 'publie'"; 18 $req_orderby = "e.date_debut, e.date_fin"; 19 20 // ---- Acces restreint --- 21 $ar = simplecal_get_where_rubrique_exclure(); 22 if ($ar){ 23 $req_where .= " $ar"; 24 } 25 // ------------------------ 26 27 /* 28 SELECT e.* 29 FROM `spip_evenements` as e 30 WHERE e.date_debut >= CONCAT(DATE_FORMAT(NOW(),'%Y-%m'), '-01') 31 AND e.date_debut <= LAST_DAY(NOW()) 32 */ 33 34 $dates = array(); 35 $rows = sql_allfetsel($req_select, $req_from, $req_where, $req_orderby); 36 foreach ($rows as $row){ 37 $date_debut = $row['date_debut']; 38 $dates[] = substr($date_debut, 0,10); 39 } 40 41 42 $imois = intval(date('m')); 43 $iannee = intval(date('Y')); 44 $calendrier = simplecal_generer_calendrier($imois, $iannee, $dates); 45 46 $p->code = "'$calendrier'"; 47 return $p; 46 48 } 47 49 48 50 49 51 function simplecal_generer_calendrier($mois, $annee, $tab_dates){ 50 51 52 53 54 55 56 //$date_1er_du_mois = date('Y-m-d-N', mktime(0, 0, 0, $mois , 1, $annee)); // Ne gère pas les années <= 1900...57 58 59 60 52 53 $sannee = "".$annee; 54 $smois = "".$mois; 55 if (strlen(smois)<2){ 56 $smois = "0".$smois; 57 } 58 //$date_1er_du_mois = date('Y-m-d-N', mktime(0, 0, 0, $mois , 1, $annee)); // Ne gere pas les annees <= 1900... 59 $date_1er_du_mois = date_format(date_create("".$sannee."-".$smois."-1"), 'Y-m-d-N'); 60 61 62 if (preg_match("#([1-2][0-9]{3})\-([0-9]{2})\-([0-9]{2})\-([0-9]{1})#i", $date_1er_du_mois, $matches)){ 61 63 $annee = intval($matches[1]); 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 // Année bissextile ?87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 64 $mois = intval($matches[2]); 65 $jour = intval($matches[3]); 66 $num_jour = intval($matches[4]); 67 } 68 69 70 // **************** 71 72 $nom_mois = array( 73 1 => ucfirst(_T('date_mois_1')), 74 2 => ucfirst(_T('date_mois_2')), 75 3 => ucfirst(_T('date_mois_3')), 76 4 => ucfirst(_T('date_mois_4')), 77 5 => ucfirst(_T('date_mois_5')), 78 6 => ucfirst(_T('date_mois_6')), 79 7 => ucfirst(_T('date_mois_7')), 80 8 => ucfirst(_T('date_mois_8')), 81 9 => ucfirst(_T('date_mois_9')), 82 10 => ucfirst(_T('date_mois_10')), 83 11 => ucfirst(_T('date_mois_11')), 84 12 => ucfirst(_T('date_mois_12')) 85 ); 86 $max_des_mois = array(1=>31, 2=>28, 3=>31, 4=>30, 5=>31, 6=>30, 7=>31, 8=>31, 9=>30, 10=>31, 11=>30, 12=>31); 87 88 // Annee bissextile ? 89 if (($annee%4 == 0 && $annee%100 != 0) || $annee%400 == 0){ 90 $max_des_mois[2] = 29; 91 } 92 93 $jour_now = intval(date('d')); 94 $mois_now = intval(date('m')); 95 $annee_now = intval(date('Y')); 96 $aujourdhui = $jour_now.' '.$nom_mois[$mois_now].' '.$annee_now; 97 98 $rc = "\n"; 99 100 $s = ''; 101 $s .= $rc.'<div class="ui-datepicker ui-widget ui-widget-content ui-corner-all" style="font-size:0.9em;">'; 102 $s .= $rc.'<div class="ui-datepicker-header ui-widget-header ui-helper-clearfix ui-corner-all">'; 103 //$s .= ' <a class="ui-datepicker-prev ui-corner-all" title="'._T('simplecal:date_precedent').'" href="#">'; 104 //$s .= ' <span class="ui-icon ui-icon-circle-triangle-w">'._T('simplecal:date_precedent').'</span>'; 105 //$s .= ' </a>'; 106 //$s .= ' <a class="ui-datepicker-next ui-corner-all" title="'._T('simplecal:date_suivant').'" href="#">'; 107 //$s .= ' <span class="ui-icon ui-icon-circle-triangle-e">'._T('simplecal:date_suivant').'</span>'; 108 //$s .= ' </a>'; 109 $s .= $rc.' <div class="ui-datepicker-title">'; 110 $s .= $rc.' <span class="ui-datepicker-month">'.$nom_mois[$mois].'</span>'; 111 $s .= $rc.' <span class="ui-datepicker-year">'.$annee.'</span>'; 112 $s .= $rc.' </div>'; 113 $s .= $rc.'</div>'; 114 115 $s .= $rc.'<table class="ui-datepicker-calendar">'; 116 $s .= $rc.'<thead>'; 117 $s .= $rc.'<tr>'; 118 $s .= $rc.' <th title="'.ucfirst(_T('date_jour_2')).'">'._T('simplecal:date_lundi_abbr').'</th>'; 119 $s .= $rc.' <th title="'.ucfirst(_T('date_jour_3')).'">'._T('simplecal:date_mardi_abbr').'</th>'; 120 $s .= $rc.' <th title="'.ucfirst(_T('date_jour_4')).'">'._T('simplecal:date_mercredi_abbr').'</th>'; 121 $s .= $rc.' <th title="'.ucfirst(_T('date_jour_5')).'">'._T('simplecal:date_jeudi_abbr').'</th>'; 122 $s .= $rc.' <th title="'.ucfirst(_T('date_jour_6')).'">'._T('simplecal:date_vendredi_abbr').'</th>'; 123 $s .= $rc.' <th title="'.ucfirst(_T('date_jour_7')).'" class="ui-datepicker-week-end">'._T('simplecal:date_samedi_abbr').'</th>'; 124 $s .= $rc.' <th title="'.ucfirst(_T('date_jour_1')).'" class="ui-datepicker-week-end">'._T('simplecal:date_dimanche_abbr').'</th>'; 125 $s .= $rc.'</tr>'; 126 $s .= $rc.'</thead>'; 127 128 $s .= $rc.'<tbody>'; 129 $s .= $rc.'<tr>'; 130 131 $isem = 0; 132 133 // remplissage du debut du calendrier (les jours avant le 1er du mois (qui ne tombe pas forcement un lundi)) 134 for ($i=1; $i<=($num_jour-1); $i++){ 135 $mois_davant = $mois-1; 136 if ($mois_davant == 0){ 137 $mois_davant = 12; 138 } 139 $s .= $rc.'<td class="ui-datepicker-other-month ui-datepicker-unselectable ui-state-disabled">'; 140 $s .= $rc.' <span>'.($max_des_mois[$mois_davant] + ($i-($num_jour-1))).'</span>'; 141 $s .= $rc.'</td>'; 142 $isem++; 143 } 144 145 // remplissage du mois (du 1er au 30 par exemple) 146 $max_du_mois = $max_des_mois[$mois]; 147 for ($i=1; $i<=$max_du_mois; $i++){ 148 if ($isem == 0){ 149 $s .= '<tr>'; 150 } 151 152 if ($i<10){ 153 $j = '0'.$i; 154 } else { 155 $j = $i; 156 } 157 if ($mois<10){ 158 $m = '0'.$mois; 159 } else { 160 $m = $mois; 161 } 162 163 164 $curdate = $annee."-".$m."-".$j; 165 166 if (in_array($curdate, $tab_dates)){ 167 $active = true; 168 } else { 169 $active = false; 170 } 171 172 173 174 if ($jour_now==$i && $mois_now==$mois && $annee_now==$annee) { 175 $s .= $rc.'<td class="ui-datepicker-today">'; 176 $s .= $rc.' <span class="ui-state-default ui-state-highlight">'.$i.'</span>'; 177 $s .= $rc.'</td>'; 178 } 179 else { 180 $s .= $rc.'<td>'; 181 if ($active){ 182 $s .= $rc.' <span class="ui-state-default ui-state-active">'.$i.'</span>'; 183 } else { 184 $s .= $rc.' <span class="ui-state-default">'.$i.'</span>'; 185 } 186 $s .= $rc.'</td>'; 187 } 188 $isem++; 189 if ($isem == 7){ 190 $s .= $rc.'</tr>'; 191 $isem = 0; 192 } 193 } 194 195 // remplissage de la fin du calendrier (les jours qui suivent le max du mois (qui ne tombe pas forcement un dimanche)) 196 for ($i=1; $isem!=0; $i++){ 197 $s .= $rc.'<td class="ui-datepicker-other-month ui-datepicker-unselectable ui-state-disabled">'; 198 $s .= $rc.' <span>'.$i.'</span>'; 199 $s .= $rc.'</td>'; 200 $isem++; 201 if ($isem == 7){ 202 $s .= $rc.'</tr>'; 203 $isem = 0; 204 } 205 } 206 $s .= $rc.'</tbody>'; 207 $s .= $rc.'</table>'; 208 $s .= $rc.'</div>'; 209 $s .= $rc; 210 211 return $s; 210 212 } 211 213 -
_plugins_/simple_calendrier/trunk/balise/simplecal_dates.php
r51309 r61121 1 1 <?php 2 2 /** 3 * Plugin Simple Calendrier pour Spip 2.1.2 4 * Licence GPL (c) 2010-2011 Julien Lanfrey 3 * Plugin Simple Calendrier v2 pour SPIP 3.0 4 * Licence GNU/GPL 5 * 2010-2012 5 6 * 7 * cf. paquet.xml pour plus d'infos. 6 8 */ 7 9 … … 9 11 10 12 function balise_DATE_JOUR($p) { 11 12 13 14 13 $date_now = date('Y-m-d H:i:s'); 14 15 $p->code = "'$date_now'"; 16 return $p; 15 17 } 16 18 17 19 function balise_DATE_PREMIER_DU_MOIS($p) { 18 19 20 20 $date = date('Y-m-01'); 21 $p->code = "'$date'"; 22 return $p; 21 23 } 22 24 23 25 function balise_DATE_DERNIER_DU_MOIS($p) { 24 25 26 26 $date = date('Y-m-31'); 27 $p->code = "'$date'"; 28 return $p; 27 29 } 28 30 29 31 function balise_DATE_JOUR_PLUS($p) { 30 31 32 33 34 35 36 37 38 39 40 32 $date_now = date('Y-m-d H:i:s'); 33 34 $jour = jour($date_now); 35 $mois = mois($date_now); 36 $annee = annee($date_now); 37 $heure = 0; 38 $minute = 0; 39 $seconde = 0; 40 41 $nb_jour = intval($p->param[0][1][0]->texte); 42 $date_plus = date("Y-m-d", mktime($heure, $minute, $seconde, $mois, $jour+$nb_jour, $annee)); 41 43 42 44 $p->code = "'$date_plus'"; return $p; 43 45 } 44 46 45 47 function balise_DATE_JOUR_MOINS($p) { 46 47 48 49 50 51 52 53 54 55 56 57 58 48 $date_now = date('Y-m-d H:i:s'); 49 50 $jour = jour($date_now); 51 $mois = mois($date_now); 52 $annee = annee($date_now); 53 $heure = 0; 54 $minute = 0; 55 $seconde = 0; 56 57 $nb_jour = intval($p->param[0][1][0]->texte); 58 $date_plus = date("Y-m-d", mktime($heure, $minute, $seconde, $mois, $jour-$nb_jour, $annee)); 59 60 $p->code = "'$date_plus'"; return $p; 59 61 } 60 62 -
_plugins_/simple_calendrier/trunk/base/simplecal.php
r61117 r61121 1 1 <?php 2 2 /** 3 * Plugin Simple Calendrier pour Spip 3.0 4 * Licence GPL (c) 2010-2011 Julien Lanfrey 3 * Plugin Simple Calendrier v2 pour SPIP 3.0 4 * Licence GNU/GPL 5 * 2010-2012 5 6 * 7 * cf. paquet.xml pour plus d'infos. 6 8 */ 7 9 … … 10 12 11 13 function simplecal_declarer_tables_interfaces($interfaces) { 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 14 $interfaces['table_des_tables']['evenements'] = 'evenements'; 15 16 // Titre pour URL propres 17 //$interface['table_titre']['evenements'] = "titre, '' AS lang"; 18 19 //$interface['table_des_traitements']['DATE_DEBUT'][] = 'normaliser_date(%s)'; 20 //$interface['table_des_traitements']['DATE_FIN'][] = 'normaliser_date(%s)'; 21 22 // --------------------------------------------------------------------------- 23 // Champs de type 'date' pour la gestion des criteres age, age_relatif, etc. 24 // --------------------------------------------------------------------------- 25 // Note : provoque l'enregistrement de la date de publication (lors de sa modif) dans date 26 //$interface['table_date']['evenements'] = 'date'; 27 28 return $interfaces; 27 29 } 28 30 29 31 30 32 function simplecal_declarer_tables_objets_sql($tables){ 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 33 34 // Champs de la table spip_evenements 35 $fields = array( 36 "id_evenement" => "bigint(21) NOT NULL auto_increment", 37 "id_secteur" => "bigint(21) NOT NULL DEFAULT '0'", 38 "id_rubrique" => "bigint(21) NOT NULL DEFAULT '0'", 39 "id_trad" => "bigint(21) NOT NULL DEFAULT '0'", 40 "id_objet" => "bigint(21) NOT NULL DEFAULT '0'", 41 "type" => "varchar(25) NOT NULL", 42 "titre" => "varchar(255) NOT NULL", 43 "date_debut" => "datetime NOT NULL DEFAULT '0000-00-00 00:00:00'", 44 "date_fin" => "datetime NOT NULL DEFAULT '0000-00-00 00:00:00'", 45 "lieu" => "varchar(255) NOT NULL", 46 "descriptif" => "text NOT NULL", 47 "texte" => "text NOT NULL", 48 "date" => "datetime NOT NULL DEFAULT '0000-00-00 00:00:00'", // creation ou publication (selon statut) 49 "statut" => "varchar(8) NOT NULL", 50 "lang" => "varchar(10) NOT NULL DEFAULT ''", 51 "langue_choisie" => "varchar(3) NULL DEFAULT 'non'", 52 "maj" => "timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP" 53 ); 54 55 // champs qui possedent les cles 56 $key = array( 57 "PRIMARY KEY" => "id_evenement", 58 "KEY id_secteur" => "id_secteur", 59 "KEY id_rubrique" => "id_rubrique", 60 "KEY id_trad" => "id_trad", 61 "KEY lang" => "lang" 62 ); 61 63 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 64 // champs candidats a la jointure 65 $join = array( 66 "id_evenement" => "id_evenement", 67 "id_secteur" => "id_secteur", 68 "id_rubrique" => "id_rubrique" 69 ); 70 71 // champ 'statut' 72 $statut = array( 73 'champ'=>'statut', 74 'publie'=>'publie', 75 'previsu'=>'publie,prop', 76 'exception'=>'statut' 77 ); 78 79 // titre des statuts 80 $statut_titres = array( 81 'prepa'=>'simplecal:titre_evenement_redaction', 82 'prop' => 'simplecal:titre_evenement_propose', 83 'publie' => 'simplecal:titre_evenement_publie', 84 'refuse' => 'simplecal:titre_evenement_refuse', 85 'poubelle'=>'simplecal:titre_evenement_supprime' 86 ); 87 88 $statut_textes_instituer = array( 89 'prepa' => 'texte_statut_en_cours_redaction', 90 'prop' => 'texte_statut_propose_evaluation', 91 'publie' => 'texte_statut_publie', 92 'refuse' => 'texte_statut_refuse', 93 'poubelle' => 'texte_statut_poubelle' 94 ); 95 96 // La Table 97 $tables['spip_evenements'] = array( 98 'texte_retour' => 'icone_retour', 99 'texte_objets' => 'simplecal:evenements', 100 'texte_objet' => 'simplecal:evenement', 101 'texte_modifier' => 'simplecal:icone_modifier_evenement', 102 'texte_creer' => 'simplecal:icone_nouvel_evenement', 103 'info_aucun_objet'=> 'simplecal:info_aucun_evenement', 104 'info_1_objet' => 'simplecal:info_1_evenement', 105 'info_nb_objets' => 'simplecal:info_nb_evenements', 106 'texte_logo_objet' => 'simplecal:logo_evenement', 105 107 'texte_langue_objet' => 'simplecal:titre_langue_evenement', 106 107 108 109 110 111 112 113 114 115 116 117 118 119 108 'titre' => 'titre, lang', 109 'date' => 'date', // indique le nom du field pour le formulaires_dater_charger_dist 110 'principale' => 'oui', 111 'champs_editables' => array('titre', 'date_debut', 'date_fin', 'lieu', 'descriptif', 'texte', 'lien_titre', 'lien_url', 'type', 'id_objet'), 112 'champs_versionnes' => array('id_rubrique', 'titre', 'descriptif', 'texte', 'lieu', 'date_debut', 'date_fin', 'lien_titre', 'lien_url', 'jointure_auteurs'), 113 'field'=> $fields, 114 'key' => $key, 115 'join' => $join, 116 'statut' => array($statut), 117 'texte_changer_statut' => 'simplecal:entree_evenement_publie', 118 'statut_titres' => $statut_titres, 119 'statut_textes_instituer' => $statut_textes_instituer, 120 121 'tables_jointures' => array('id_auteur' => 'auteurs_liens'), 120 122 121 122 123 124 125 126 127 128 129 130 131 132 133 134 123 'rechercher_champs' => array('titre'=>8, 'descriptif'=>4, 'texte'=>2), 124 125 'rechercher_jointures' => array( 126 'document' => array('titre' => 2, 'descriptif' => 1) 127 ), 128 129 ); 130 131 // On peut lire dans : 132 // - Extensions/mots/base/mots.php : jointures sur les mots pour tous les objets 133 // - Extensions/medias/base/medias.php : jointures sur les documents pour tous les objets 134 // - Extensions/forum/base/forum.php : jointures sur les forums pour tous les objets 135 136 return $tables; 135 137 } 136 138 -
_plugins_/simple_calendrier/trunk/exec/simplecal_demo.php
r53019 r61121 1 1 <?php 2 2 /** 3 * Plugin Simple Calendrier pour Spip 2.1.2 4 * Licence GPL (c) 2010-2011 Julien Lanfrey 3 * Plugin Simple Calendrier v2 pour SPIP 3.0 4 * Licence GNU/GPL 5 * 2010-2012 5 6 * 7 * cf. paquet.xml pour plus d'infos. 6 8 */ 7 9 … … 14 16 15 17 function exec_simplecal_demo_dist(){ 16 17 18 18 global $spip_lang_right; 19 20 // autorisation de voir cette page ? 19 21 if (!autoriser('demo', 'evenement')) { 20 21 22 23 24 22 // Message d'erreur 23 include_spip('inc/minipres'); 24 echo minipres(); 25 exit; 26 } 25 27 26 28 // pipeline d'initialisation 27 29 pipeline('exec_init', array('args'=>array('exec'=>'simplecal_demo'),'data'=>'')); 28 30 // entetes de la page 29 31 $commencer_page = charger_fonction('commencer_page', 'inc'); 30 32 echo $commencer_page(_T('simplecal:html_title'), "editer", "editer"); 31 33 32 33 34 34 35 // ##################### 36 // # Colonne de gauche # 35 37 // ##################### 36 38 … … 38 40 echo pipeline('affiche_gauche', array('args'=>array('exec'=>'simplecal_demo'),'data'=>'')); 39 41 40 41 42 43 44 45 46 42 // Affichage du bloc d'information 43 $boite = "<div class='logo-plugin'><img src='"._DIR_SIMPLECAL_IMG_PACK."simplecal-logo-96.png' alt='"._T('simplecal:alt_img_logo')."' /></div>"; 44 $boite .= "<p class='logo-plugin-desc'>"._T('simplecal:description_plugin')."</p>"; 45 echo debut_boite_info(true); 46 echo $boite; 47 echo fin_boite_info(true); 48 47 49 48 49 50 51 52 53 50 // Affichage du bloc des raccourcis 51 $raccourcis = ""; 52 $lien = generer_url_ecrire("evenements", "mode=avenir"); 53 $racc_tous = icone_horizontale(_T('simplecal:raccourcis_tous_evenements'), $lien, _DIR_SIMPLECAL_IMG_PACK."simplecal-logo-24.png", "", false); 54 $raccourcis .= $racc_tous; 55 echo bloc_des_raccourcis($raccourcis); 54 56 55 57 56 57 58 // ##################### 59 // # Contenu central # 58 60 // ##################### 59 61 60 62 61 63 echo debut_droite('', true); 62 64 echo pipeline('affiche_milieu', array('args'=>array('exec'=>'simplecal_demo'),'data'=>'')); 63 65 64 66 65 67 66 68 echo gros_titre("simple-calendrier : Démo", "", false); 67 69 68 70 $contexte = array(); 69 71 $fond = recuperer_fond("prive/contenu/simplecal-demo",$contexte); 70 71 72 73 74 72 echo $fond; 73 // ------------ 74 75 76 75 77 echo fin_gauche(), fin_page(); 76 78 } -
_plugins_/simple_calendrier/trunk/formulaires/configurer_evenements.html
r60552 r61121 1 1 <div class="formulaire_spip formulaire_configurer formulaire_#FORM formulaire_#FORM-#ENV{id,nouveau}"> 2 2 <h3 class='titrem'><img src="#CHEMIN_IMAGE{evenement-24.png}" class="cadre-icone" /><:simplecal:titre_evenements:></h3> 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 3 [<p class="reponse_formulaire reponse_formulaire_ok">(#ENV*{message_ok})</p>] 4 [<p class="reponse_formulaire reponse_formulaire_erreur">(#ENV*{message_erreur})</p>] 5 [(#ENV{editable}) 6 <form method="post" action="#ENV{action}"><div> 7 [(#REM) declarer les hidden qui declencheront le service du formulaire 8 parametre : url d'action ] 9 #ACTION_FORMULAIRE{#ENV{action}} 10 <fieldset><legend><:simplecal:config_blocautorisation:></legend> 11 <p><:simplecal:config_autorisation_explication:></p> 12 <ul> 13 <li> 14 [<span class='erreur_message'>(#ENV**{erreurs}|table_valeur{simplecal_autorisation_redac})</span>] 15 16 <div class='choix'> 17 <input class='radio' type="radio" name="simplecal_autorisation_redac" value='non'[ (#ENV{simplecal_autorisation_redac}|=={non}|oui)checked="checked"] id="simplecal_autorisation_redac_non" /> 18 <label for="simplecal_autorisation_redac_non"[(#ENV{simplecal_autorisation_redac}|=={non}|oui) class="actif"]><:simplecal:config_autorisation_redac_non:></label> 19 </div> 20 <div class='choix'> 21 <input class='radio' type="radio" name="simplecal_autorisation_redac" value='oui'[ (#ENV{simplecal_autorisation_redac}|=={oui}|oui)checked="checked"] id="simplecal_autorisation_redac_oui" /> 22 <label for="simplecal_autorisation_redac_oui"[(#ENV{simplecal_autorisation_redac}|=={oui}|oui) class="actif"]><:simplecal:config_autorisation_redac_oui:></label> 23 </div> 24 </li> 25 </ul> 26 </fieldset> 27 28 29 <fieldset><legend><:simplecal:config_blocrubrique:></legend> 30 <p><:simplecal:config_rubrique_explication:></p> 31 <ul> 32 <li> 33 [<span class='erreur_message'>(#ENV**{erreurs}|table_valeur{simplecal_rubrique})</span>] 34 35 <div class='choix'> 36 <input class='radio' type="radio" name="simplecal_rubrique" value='partout'[ (#ENV{simplecal_rubrique}|=={partout}|oui)checked="checked"] id="simplecal_rubrique_partout" /> 37 <label for="simplecal_rubrique_partout"[ (#ENV{simplecal_rubrique}|=={partout}|oui)class="actif"]><:simplecal:config_rubrique_partout:></label> 38 </div> 39 <div class='choix'> 40 <input class='radio' type="radio" name="simplecal_rubrique" value='secteur'[ (#ENV{simplecal_rubrique}|=={secteur}|oui)checked="checked"] id="simplecal_rubrique_secteur" /> 41 <label for="simplecal_rubrique_secteur"[ (#ENV{simplecal_rubrique}|=={secteur}|oui)class="actif"]><:simplecal:config_rubrique_secteur:></label> 42 </div> 43 <div class='choix'> 44 <input class='radio' type="radio" name="simplecal_rubrique" value='non'[ (#ENV{simplecal_rubrique}|=={non}|oui)checked="checked"] id="simplecal_rubrique_non" /> 45 <label for="simplecal_rubrique_non"[ (#ENV{simplecal_rubrique}|=={non}|oui)class="actif"]><:simplecal:config_rubrique_non:></label> 46 </div> 47 </li> 48 </ul> 49 </fieldset> 50 51 <fieldset><legend><:simplecal:config_champs:></legend> 52 <p><:simplecal:config_champs_explication:></p> 53 <ul> 54 #SET{name,simplecal_descriptif}#SET{erreurs,#ENV**{erreurs}|table_valeur{#GET{name}}} 55 <li class="editer long_label editer_[(#GET{name})][ (#GET{obli})][ (#GET{erreurs}|oui)erreur]"> 56 <label for="#GET{name}"><:info_descriptif:></label>[ 57 <span class='erreur_message'>(#GET{erreurs})</span> 58 ]<div class="choix"> 59 <input type="radio" name="#GET{name}" id="#GET{name}_oui" value="oui" 60 [(#ENV{#GET{name}}|=={oui}|oui)checked="checked"] /><label for="#GET{name}_oui"><:item_oui:></label> 61 62 <input type="radio" name="#GET{name}" id="#GET{name}_non" value="non" 63 [(#ENV{#GET{name}}|=={oui}|non)checked="checked"] /><label for="#GET{name}_non"><:item_non:></label> 64 </div> 65 </li> 66 #SET{name,simplecal_texte}#SET{erreurs,#ENV**{erreurs}|table_valeur{#GET{name}}} 67 <li class="editer long_label editer_[(#GET{name})][ (#GET{obli})][ (#GET{erreurs}|oui)erreur]"> 68 <label for="#GET{name}"><:info_texte:></label>[ 69 <span class='erreur_message'>(#GET{erreurs})</span> 70 ]<div class="choix"> 71 <input type="radio" name="#GET{name}" id="#GET{name}_oui" value="oui" 72 [(#ENV{#GET{name}}|=={oui}|oui)checked="checked"] /><label for="#GET{name}_oui"><:item_oui:></label> 73 74 <input type="radio" name="#GET{name}" id="#GET{name}_non" value="non" 75 [(#ENV{#GET{name}}|=={oui}|non)checked="checked"] /><label for="#GET{name}_non"><:item_non:></label> 76 </div> 77 </li> 78 #SET{name,simplecal_lieu}#SET{erreurs,#ENV**{erreurs}|table_valeur{#GET{name}}} 79 <li class="editer long_label editer_[(#GET{name})][ (#GET{obli})][ (#GET{erreurs}|oui)erreur]"> 80 <label for="#GET{name}"><:simplecal:info_lieu:></label>[ 81 <span class='erreur_message'>(#GET{erreurs})</span> 82 ]<div class="choix"> 83 <input type="radio" name="#GET{name}" id="#GET{name}_oui" value="oui" 84 [(#ENV{#GET{name}}|=={oui}|oui)checked="checked"] /><label for="#GET{name}_oui"><:item_oui:></label> 85 86 <input type="radio" name="#GET{name}" id="#GET{name}_non" value="non" 87 [(#ENV{#GET{name}}|=={oui}|non)checked="checked"] /><label for="#GET{name}_non"><:item_non:></label> 88 </div> 89 </li> 90 #SET{name,simplecal_lien}#SET{erreurs,#ENV**{erreurs}|table_valeur{#GET{name}}} 91 <li class="editer long_label editer_[(#GET{name})][ (#GET{obli})][ (#GET{erreurs}|oui)erreur]"> 92 <label for="#GET{name}"><:info_lien_hypertexte:></label>[ 93 <span class='erreur_message'>(#GET{erreurs})</span> 94 ]<div class="choix"> 95 <input type="radio" name="#GET{name}" id="#GET{name}_oui" value="oui" 96 [(#ENV{#GET{name}}|=={oui}|oui)checked="checked"] /><label for="#GET{name}_oui"><:item_oui:></label> 97 98 <input type="radio" name="#GET{name}" id="#GET{name}_non" value="non" 99 [(#ENV{#GET{name}}|=={oui}|non)checked="checked"] /><label for="#GET{name}_non"><:item_non:></label> 100 </div> 101 </li> 102 </ul> 103 </fieldset> 104 105 106 <fieldset><legend><:simplecal:config_blocreference:></legend> 107 <p><:simplecal:config_refobj_explication:></p> 108 <ul> 109 <li> 110 [<span class='erreur_message'>(#ENV**{erreurs}|table_valeur{simplecal_refobj})</span>] 111 112 <div class='choix'> 113 <input class='radio' type="radio" name="simplecal_refobj" value='oui'[ (#ENV{simplecal_refobj}|=={oui}|oui)checked="checked"] id="simplecal_refobj_oui" /> 114 <label for="simplecal_refobj_oui"[ (#ENV{simplecal_refobj}|=={oui}|oui)class="actif"]><:simplecal:config_refobj_oui:></label> 115 </div> 116 <div class='choix'> 117 <input class='radio' type="radio" name="simplecal_refobj" value='non'[ (#ENV{simplecal_refobj}|=={non}|oui)checked="checked"] id="simplecal_refobj_non" /> 118 <label for="simplecal_refobj_non"[ (#ENV{simplecal_refobj}|=={non}|oui)class="actif"]><:simplecal:config_refobj_non:></label> 119 </div> 120 </li> 121 </ul> 122 </fieldset> 123 124 125 <fieldset><legend><:simplecal:config_blocthemes:></legend> 126 <p><:simplecal:config_themes_explication:></p> 127 <ul> 128 <li> 129 [<span class='erreur_message'>(#ENV**{erreurs}|table_valeur{simplecal_themepublic})</span>] 130 131 <table> 132 <tr> 133 <th> 134 <:simplecal:config_themepublic:> : 135 </th> 136 <td valign="top"> 137 [(#VAL{simplecal_themepublic}|simplecal_liste_themes{#ENV{simplecal_themepublic}})] 138 </td> 139 </tr> 140 </table> 141 </li> 142 </ul> 143 </fieldset> 144 145 146 [(#REM) ajouter les saisies supplementaires : extra et autre, a cet endroit ] 147 <!--extra--> 148 <p class='boutons'> 149 <span class='image_loading'> </span> 150 <input type="submit" class="submit" name="ok" value="<:bouton_enregistrer:>" /> 151 </p> 152 </div> 153 </form> 154 ] 155 155 </div> 156 157 158 -
_plugins_/simple_calendrier/trunk/formulaires/configurer_evenements.php
r60552 r61121 1 1 <?php 2 2 /** 3 * Plugin Simple Calendrier pour Spip 3.0 4 * Licence GPL (c) 2010-2011 Julien Lanfrey 3 * Plugin Simple Calendrier v2 pour SPIP 3.0 4 * Licence GNU/GPL 5 * 2010-2012 5 6 * 7 * cf. paquet.xml pour plus d'infos. 6 8 */ 7 9 … … 12 14 13 15 function formulaires_configurer_evenements_charger_dist(){ 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 16 $metas = array( 17 "simplecal_autorisation_redac", 18 "simplecal_rubrique", 19 "simplecal_refobj", 20 "simplecal_descriptif", 21 "simplecal_texte", 22 "simplecal_lieu", 23 "simplecal_lien", 24 "simplecal_themepublic" 25 ); 26 27 $valeurs = array(); 28 foreach($metas as $m) { 29 $valeurs[$m] = $GLOBALS['meta'][$m]; 30 } 31 return $valeurs; 30 32 } 31 33 32 34 function formulaires_configurer_evenements_verifier_dist(){ 33 34 35 $retour = array(); 36 return $retour; 35 37 } 36 38 37 39 function formulaires_configurer_evenements_traiter_dist(){ 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 40 $res = array('editable'=>true); 41 $metas = array( 42 "simplecal_autorisation_redac", 43 "simplecal_rubrique", 44 "simplecal_refobj", 45 "simplecal_descriptif", 46 "simplecal_texte", 47 "simplecal_lieu", 48 "simplecal_lien", 49 "simplecal_themepublic" 50 ); 51 foreach($metas as $m) { 52 if (!is_null($v=_request($m))) { 53 ecrire_meta($m, $v); 54 } 55 } 56 $res['message_ok'] = _T('config_info_enregistree'); 57 return $res; 56 58 } 57 59 -
_plugins_/simple_calendrier/trunk/formulaires/editer_evenement.html
r60552 r61121 1 1 [(#REM) 2 3 Appelé par la balise #FORMULAIRE_EDITER_EVENEMENT dans le fond 'prive/editer/evenement.html'. 2 Fichier HTML du formulaire CVT. 3 Appelé par la balise #FORMULAIRE_EDITER_EVENEMENT dans le fond 'prive/editer/evenement.html'. 4 4 ] 5 5 6 6 <div class='formulaire_spip formulaire_editer formulaire_editer_breve formulaire_editer_breve-#ENV{id_evenement,nouveau}'> 7 8 9 10 7 <!-- <br class='bugajaxie' /> --> 8 [<p class="reponse_formulaire reponse_formulaire_ok">(#ENV*{message_ok})</p>] 9 [<p class="reponse_formulaire reponse_formulaire_erreur">(#ENV*{message_erreur})</p>] 10 [(#ENV{editable}) 11 11 12 13 14 15 16 12 <form method='post' action='#ENV{action}' enctype='multipart/form-data'> 13 <div> 14 #ACTION_FORMULAIRE{#ENV{action}} 15 <input type='hidden' name='id_evenement' value='#ENV{id_evenement}' /> 16 <ul> 17 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 18 [(#REM) 'Titre' est un champ obligatoire] 19 <li class="editer_titre obligatoire[ (#ENV**{erreurs}|table_valeur{titre}|oui)erreur]"> 20 <label for="titre"><:simplecal:info_titre:> : </label> 21 [<span class='erreur_message'>(#ENV**{erreurs}|table_valeur{titre})</span>] 22 <input type='text' class='text' name='titre' id='titre' value="#ENV{titre}" /> 23 </li> 24 25 [(#REM) 'Date de début' est un champ obligatoire] 26 <li class="editer_titre obligatoire[ (#ENV**{erreurs}|table_valeur{date_debut}|oui)erreur]"> 27 <label for="date_debut"><:simplecal:info_date_debut:> : </label> 28 [<span class='erreur_message'>(#ENV**{erreurs}|table_valeur{date_debut})</span>] 29 <input type='text' class='text' style="width:auto;" name='date_debut' id='date_debut' value="#ENV{date_debut}" /> 30 </li> 31 32 [(#REM) 'Date de fin' est un champ optionnel] 33 <li class="editer_titre[ (#ENV**{erreurs}|table_valeur{date_fin}|oui)erreur]"> 34 <label for="date_fin"><:simplecal:info_date_fin:> : </label> 35 [<span class='erreur_message'>(#ENV**{erreurs}|table_valeur{date_fin})</span>] 36 <input type='text' class='text' style="width:auto;" name='date_fin' id='date_fin' value="#ENV{date_fin}" /> 37 </li> 38 39 [(#REM) 'Choix de la rubrique' est un champ facultatif] 40 [(#CONFIG{simplecal_rubrique}|=={partout}|oui) 41 <li class="editer editer_parent obligatoire[ (#ENV**{erreurs}|table_valeur{id_parent}|oui)erreur]"> 42 <label for="id_parent"><:titre_cadre_interieur_rubrique:><em class="aide">#AIDER{id_parent}</em></label> 43 [<span class='erreur_message'>(#ENV**{erreurs}|table_valeur{id_parent})</span>] 44 [(#VAL|chercher_rubrique{#ENV{id_evenement},#ENV{id_parent},'evenement',#ENV{id_secteur},#ENV**{config}|table_valeur{restreint},0,form_simple})] 45 </li>] 46 47 [(#CONFIG{simplecal_rubrique}|=={secteur}|oui) 48 <li class="editer editer_parent[ (#ENV**{erreurs}|table_valeur{id_parent}|oui)erreur]"> 49 <label for="id_parent"><:entree_interieur_rubrique:><em class="aide">#AIDER{id_parent}</em></label> 50 [<span class='erreur_message'>(#ENV**{erreurs}|table_valeur{id_parent})</span>] 51 <!-- parametre 'breve' pour avoir une liste de secteur (chercher_rubrique pas tres generique...) --> 52 <!-- depuis peu, cela ne fonctionne plus car chercher_rubrique dans filtre_ecrire.php teste une autorisation sur l'objet... --> 53 [(#VAL|chercher_rubrique{#ENV{id_evenement},#ENV{id_parent},'evenement',#ENV{id_secteur},#ENV**{config}|table_valeur{restreint},0,form_simple})] 54 </li>] 55 56 [(#REM) 'Lieu' est un champ optionnel] 57 [(#CONFIG{simplecal_lieu}|=={oui}|oui) 58 <li class="editer_descriptif[ (#ENV**{erreurs}|table_valeur{lieu}|oui)erreur]"> 59 <label for="lieu"><:simplecal:info_lieu:> : </label> 60 [<span class='erreur_message'>(#ENV**{erreurs}|table_valeur{lieu})</span>] 61 <input type="text" id="lieu" name="lieu" value="#ENV{lieu}" class="text" size="20" /> 62 </li>] 63 64 65 [(#REM) 'Descriptif' est un champ obligatoire] 66 [(#CONFIG{simplecal_descriptif}|=={oui}|oui) 67 <li class="editer_descriptif[ (#ENV**{erreurs}|table_valeur{descriptif}|oui)erreur]"> 68 <label for="ta_descriptif"><:simplecal:info_descriptif_rapide:> : </label> 69 [<span class='erreur_message'>(#ENV**{erreurs}|table_valeur{descriptif})</span>] 70 <textarea name='descriptif' id='ta_descriptif'[ lang='(#LANG)'] rows='5' cols='40'>[(#ENV**{descriptif})]</textarea> 71 </li>] 72 73 [(#REM) 'Reference' est un champ optionnel] 74 [(#CONFIG{simplecal_refobj}|=={oui}|oui) 75 <li class="editer_descriptif[ (#ENV**{erreurs}|table_valeur{ref}|oui)erreur]"> 76 <label for="ref"><:simplecal:info_ref:></label> 77 [<span class='erreur_message'>(#ENV**{erreurs}|table_valeur{ref})</span>] 78 <div class="explication"><:simplecal:explication_ref:></div> 79 <input type="text" id="ref" name="ref" value="[(#ENV**{ref})]" class="text" size="20" /> 80 </li>] 81 82 [(#REM) 'Texte' est un champ optionnel] 83 [(#CONFIG{simplecal_texte}|=={oui}|oui) 84 <li class="editer_descriptif[ (#ENV**{erreurs}|table_valeur{texte}|oui)erreur]"> 85 <label for="texte"> 86 [(#CONFIG{simplecal_refobj}|=={non}|oui)<:simplecal:info_texte:>] 87 [(#CONFIG{simplecal_refobj}|=={oui}|oui)<:simplecal:info_texte_2possibilites:>] 88 </label> 89 [<span class='erreur_message'>(#ENV**{erreurs}|table_valeur{texte})</span>] 90 <div class="explication"><:simplecal:explication_texte:></div> 91 <textarea name='texte' id='texte' class='inserer_barre_edition inserer_previsualisation'[ lang='(#LANG)'] rows='20' cols='40'>[(#ENV**{texte})]</textarea> 92 </li>] 93 94 [(#CONFIG{simplecal_lien}|=={oui}|oui) 95 <li class="editer_liens_sites fieldset"> 96 <fieldset> 97 <h3 class="legend"><:entree_liens_sites:></h3> 98 <ul> 99 <li class="editer_lien_titre[ (#ENV**{erreurs}|table_valeur{lien_titre}|oui)erreur]"> 100 <label for="lien_titre"><:info_titre:><em class='aide'>#AIDER{lien_titre}</em></label>[ 101 <span class='erreur_message'>(#ENV**{erreurs}|table_valeur{lien_titre})</span> 102 ]<input type='text' class='text' name='lien_titre' id='lien_titre' value="[(#ENV**{lien_titre})]" /> 103 </li> 104 <li class="editer_lien_url[ (#ENV**{erreurs}|table_valeur{lien_url}|oui)erreur]"> 105 <label for="lien_url"><:info_url:></label>[ 106 <span class='erreur_message'>(#ENV**{erreurs}|table_valeur{lien_url})</span> 107 ]<input type='text' class='text' name='lien_url' id='lien_url' value="[(#ENV**{lien_url})]" /> 108 </li> 109 </ul> 110 </fieldset> 111 </li> 112 ] 113 114 </ul> 115 116 117 [(#REM) ajouter les saisies supplementaires : extra et autre, à cet endroit ] 118 <!--extra--> 119 <p class="boutons"> 120 <input type='submit' class='submit' value='<:bouton_enregistrer:>' /> 121 </p> 122 123 </div> 124 </form> 125 126 #INCLURE{fond=formulaires/inc-editer_evenement_datepicker} 127 128 ] 129 129 </div> -
_plugins_/simple_calendrier/trunk/formulaires/editer_evenement.php
r60552 r61121 1 1 <?php 2 2 /** 3 * Plugin Simple Calendrier pour Spip 2.1.2 4 * Licence GPL (c) 2010-2011 Julien Lanfrey 3 * Plugin Simple Calendrier v2 pour SPIP 3.0 4 * Licence GNU/GPL 5 * 2010-2012 5 6 * 7 * cf. paquet.xml pour plus d'infos. 6 8 */ 7 9 … … 13 15 14 16 function formulaires_editer_evenement_charger_dist($id_evenement='new', $id_rubrique=0, $retour='', $lier_trad=0, $config_fonc='evenements_edit_config', $row=array(), $hidden=''){ 15 16 17 // Recupere automatiquement les champs de la table (entre autres...) 18 $valeurs = formulaires_editer_objet_charger('evenement',$id_evenement,$id_rubrique,$lier_trad,$retour,$config_fonc,$row,$hidden); 17 19 18 19 20 21 22 // Champ ref ("0" en base qd pas renseigné)23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 20 // Modif pour avoir un affichage formate ('14/08/2011 00:00:00' => '14/08/2011') 21 $valeurs["date_debut"] = date_sql2affichage($valeurs["date_debut"]); 22 $valeurs["date_fin"] = date_sql2affichage($valeurs["date_fin"]); 23 24 // Champ ref ("0" en base qd pas renseigne) 25 if (!empty($valeurs["id_objet"])) { 26 // assemblage du champ type et id_objet 27 $valeurs["ref"] = $valeurs["type"].$valeurs["id_objet"]; 28 } 29 // Cas ou le parametre vient de l'url (appel depuis portlet) 30 // Necessaire pour le rechargement si erreur a la validation... 31 else if (_request("ref")){ 32 $valeurs["ref"] = trim(_request("ref")); 33 } 34 35 // Appel en creation via portlet 36 if (_request("new")=='oui'){ 37 $type = trim(_request("type")); 38 $id_objet = trim(_request("id_objet")); 39 if ($type and $id_objet){ 40 // assemblage du champ type et id_objet 41 $valeurs["ref"] = $type.$id_objet; 42 } 43 } 44 45 return $valeurs; 44 46 } 45 47 … … 49 51 */ 50 52 function formulaires_editer_evenement_identifier_dist($id_evenement='new', $id_rubrique=0, $retour='', $lier_trad=0, $config_fonc='evenements_edit_config', $row=array(), $hidden=''){ 51 53 return serialize(array(intval($id_evenement),$lier_trad)); 52 54 } 53 55 … … 56 58 function evenements_edit_config($row) 57 59 { 58 60 global $spip_ecran, $spip_lang, $spip_display; 59 61 60 61 62 62 $config = $GLOBALS['meta']; 63 $config['lignes'] = ($spip_ecran == "large")? 8 : 5; 64 $config['langue'] = $spip_lang; 63 65 64 65 66 $config['restreint'] = ($row['statut'] == 'publie'); 67 return $config; 66 68 } 67 69 68 70 function formulaires_editer_evenement_verifier_dist($id_evenement='new', $id_rubrique=0, $retour='', $lier_trad=0, $config_fonc='evenements_edit_config', $row=array(), $hidden=''){ 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 71 // Verifications automatiques 72 // --------------------------- 73 $champs_obligatoires = array('titre', 'date_debut'); 74 $erreurs = formulaires_editer_objet_verifier('evenement', $id_evenement, $champs_obligatoires); 75 76 // Autres verifications 77 // --------------------- 78 79 // Date de debut saisie correctement ? 80 $date_debut = trim(_request('date_debut')); 81 if ($date_debut && date_saisie2sql($date_debut) == '0000-00-00 00:00:00'){ 82 $erreurs['date_debut'] = _T('simplecal:validation_date_format'); 83 } 84 85 // Date de fin saisie correctement ? 86 $date_fin = trim(_request('date_fin')); 87 if ($date_fin && date_saisie2sql($date_fin) == '0000-00-00 00:00:00'){ 88 $erreurs['date_fin'] = _T('simplecal:validation_date_format'); 89 } 88 90 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 91 // Chronologie : Date de fin >= Date de debut (si pas d'autres erreurs sur les dates) 92 if (!$erreurs['date_debut'] && !$erreurs['date_fin']){ 93 if ($date_debut && $date_fin){ 94 $date_debut_sql = date_saisie2sql($date_debut); 95 $date_fin_sql = date_saisie2sql($date_fin); 96 97 if ($date_debut_sql != '0000-00-00 00:00:00' && $date_fin_sql != '0000-00-00 00:00:00'){ 98 if ($date_fin_sql < $date_debut_sql){ 99 $erreurs['date_fin'] = _T('simplecal:validation_date_chronologie'); 100 } 101 } 102 } 103 } 104 105 $config = $config_fonc($row); 106 if ($config['simplecal_refobj'] == 'oui'){ 107 // Ref saisie correctement ? 108 $ref = trim(_request('ref')); 109 if ($ref){ 110 if (!simplecal_is_ref_ok($ref)){ 111 $erreurs['ref'] = _T('simplecal:validation_refobj_format'); 112 } 113 else { 114 // L'objet en question existe t-il ? 115 $tab = simplecal_get_tuple_from_ref($ref); 116 $type = $tab['type']; 117 $id_objet = $tab['id_objet']; 118 $existe = sql_fetsel("id_$type" ,"spip_".$type."s", "id_$type=".$id_objet); 119 if (!$existe){ 120 $erreurs['ref'] = _T('simplecal:validation_type_nexiste_pas', array('type'=>$type, 'id_objet'=>$id_objet)); 121 } 122 } 123 } 124 } 125 126 return $erreurs; 125 127 } 126 128 127 129 function formulaires_editer_evenement_traiter_dist($id_evenement='new', $id_rubrique=0, $retour='', $lier_trad=0, $config_fonc='evenements_edit_config', $row=array(), $hidden=''){ 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 // Option desactivé=> on ne fait rien !154 // => Option desactivable sans risque de perdre les infos enregistrées lorsqu'elle était active.155 156 157 158 130 131 // On remet les dates au format SQL ('14/08/2011' => '14/08/2011 00:00:00') 132 set_request("date_debut", date_saisie2sql(_request("date_debut"))); 133 set_request("date_fin", date_saisie2sql(_request("date_fin"))); 134 135 136 // On reconstitue les champs 'type' et 'id_objet' à partir du champ 'ref' 137 $config = $config_fonc($row); 138 139 //print_r($row); 140 //die("yeah !"); 141 142 if ($config['simplecal_refobj'] == 'oui'){ 143 $ref = trim(_request('ref')); 144 if ($ref){ 145 146 $tab = simplecal_get_tuple_from_ref($ref); 147 //die("yeah ! ".$tab['type'].$tab['id_objet']); 148 set_request("type", $tab['type']); 149 set_request("id_objet", $tab['id_objet']); 150 } else { 151 set_request("type", ""); 152 set_request("id_objet", 0); 153 } 154 } else { 155 // Option desactive => on ne fait rien ! 156 // => Option desactivable sans risque de perdre les infos enregistrees lorsqu'elle etait active. 157 } 158 159 160 return formulaires_editer_objet_traiter('evenement',$id_evenement,$id_rubrique,$lier_trad,$retour,$config_fonc,$row,$hidden); 159 161 } 160 162 ?> -
_plugins_/simple_calendrier/trunk/formulaires/inc-editer_evenement_datepicker.html
r53019 r61121 1 2 1 <script type="text/javascript" src="#CHEMIN{prive/javascript/ui/jquery.ui.core.js}"> </script> 3 2 <script type="text/javascript" src="#CHEMIN{prive/javascript/ui/jquery.ui.datepicker.js}"> </script> 4 3 5 4 <script type="text/javascript"> 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 5 var liste_mois = ['<:date_mois_1:>', '<:date_mois_2:>', '<:date_mois_3:>', '<:date_mois_4:>', '<:date_mois_5:>', '<:date_mois_6:>', '<:date_mois_7:>', '<:date_mois_8:>', '<:date_mois_9:>', '<:date_mois_10:>', '<:date_mois_11:>', '<:date_mois_12:>']; 6 var liste_mois_abbr = ['<:simplecal:date_janvier_abbr:>', '<:simplecal:date_fevrier_abbr:>', '<:simplecal:date_mars_abbr:>', '<:simplecal:date_avril_abbr:>', '<:simplecal:date_mai_abbr:>', '<:simplecal:date_juin_abbr:>', '<:simplecal:date_juillet_abbr:>', '<:simplecal:date_aout_abbr:>', '<:simplecal:date_septembre_abbr:>', '<:simplecal:date_octobre_abbr:>', '<:simplecal:date_novembre_abbr:>', '<:simplecal:date_decembre_abbr:>']; 7 var liste_jour = ['<:date_jour_1:>', '<:date_jour_2:>', '<:date_jour_3:>', '<:date_jour_4:>', '<:date_jour_5:>', '<:date_jour_6:>', '<:date_jour_7:>']; 8 var liste_jour_abbr = ['<:simplecal:date_dimanche_abbr:>', '<:simplecal:date_lundi_abbr:>', '<:simplecal:date_mardi_abbr:>', '<:simplecal:date_mercredi_abbr:>', '<:simplecal:date_jeudi_abbr:>', '<:simplecal:date_vendredi_abbr:>', '<:simplecal:date_samedi_abbr:>']; 9 10 $("#date_debut, #date_fin").datepicker({ 11 altFormat:'dd/mm/yy', 12 dateFormat:'dd/mm/yy', 13 dayNamesMin: liste_jour_abbr, 14 dayNames: liste_jour, 15 firstDay: 1, 16 monthNames: liste_mois, 17 prevText: '<:simplecal:date_precedent:>', 18 nextText: '<:simplecal:date_suivant:>', 19 showOn: 'button', 20 buttonImage: '#CHEMIN_IMAGE{evenement-datepicker.png}', 21 buttonText: '<:simplecal:date_picto_title:>', 22 buttonImageOnly: true, 23 changeMonth: true, 24 changeYear: true, 25 monthNamesShort: liste_mois_abbr, 26 autoSize: true, 27 }); 29 28 </script> -
_plugins_/simple_calendrier/trunk/formulaires/inc-groupe-mot-evenement.html
r51309 r61121 1 1 <div class='choix'> 2 2 <input type='checkbox' class='checkbox' id='evenement' name='tables_liees[]' value='evenements'[(#VAL{evenements}|in_any{#ENV{tables_liees}})checked='checked'] /><label for='evenement'><:simplecal:item_mots_cles_association_evenements:></label> 3 3 </div> 4 -
_plugins_/simple_calendrier/trunk/inc/simplecal_classement.php
r53019 r61121 1 1 <?php 2 2 /** 3 * Plugin Simple Calendrier pour Spip 2.1.2 4 * Licence GPL (c) 2010-2011 Julien Lanfrey 3 * Plugin Simple Calendrier v2 pour SPIP 3.0 4 * Licence GNU/GPL 5 * 2010-2012 5 6 * 7 * cf. paquet.xml pour plus d'infos. 6 8 */ 7 9 … … 10 12 11 13 function simplecal_classement($param_annee, $param_mois, $param_mode, $param_idrub) { 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 // Restriction àla rubrique ?45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 14 if (!empty($param_idrub)){ 15 $param_idrub = intval($param_idrub); 16 } else { 17 $param_idrub = 0; 18 } 19 20 //die("annee='$param_annee' - mois='$param_mois' - mode='$param_mode' - rub='$param_idrub'"); 21 22 23 $sous_titre = ""; 24 $nom_mois = array( 25 1 => ucfirst(_T('date_mois_1')), 26 2 => ucfirst(_T('date_mois_2')), 27 3 => ucfirst(_T('date_mois_3')), 28 4 => ucfirst(_T('date_mois_4')), 29 5 => ucfirst(_T('date_mois_5')), 30 6 => ucfirst(_T('date_mois_6')), 31 7 => ucfirst(_T('date_mois_7')), 32 8 => ucfirst(_T('date_mois_8')), 33 9 => ucfirst(_T('date_mois_9')), 34 10 => ucfirst(_T('date_mois_10')), 35 11 => ucfirst(_T('date_mois_11')), 36 12 => ucfirst(_T('date_mois_12')) 37 ); 38 39 // Filtres 40 $filtre = ""; 41 42 $liste_a = simplecal_get_liste_annees($param_idrub); 43 if (count($liste_a)>0){ 44 $filtre .= '<ul id="simplecal-filtres">'; 45 46 // Restriction a la rubrique ? 47 if ($param_idrub != 0){ 48 $param_rub = "id_rubrique=$param_idrub"; 49 } else { 50 $param_rub = ""; 51 } 52 53 // Lien Tous 54 $filtre .= '<li>'; 55 $actif = (!$param_annee && !$param_mois && !$param_mode); 56 if ($actif){ 57 $filtre .= '<span>'._T('simplecal:tous').'</span>'; 58 } else { 59 $href_tous = generer_url_ecrire("evenements", $param_rub); 60 $filtre .= '<a href="'.$href_tous.'">'._T('simplecal:tous').'</a>'; 61 } 62 $filtre .= '<small> ['.simplecal_get_nb_tous($param_idrub).']</small>'; 63 $filtre .= '</li>'; 64 65 // Lien A venir 66 $filtre .= '<li class="marge-bas1">'; 67 $actif = (!$param_annee && !$param_mois && $param_mode); 68 if ($actif){ 69 $filtre .= '<span>'._T('simplecal:a_venir').'</span>'; 70 $sous_titre = _T('simplecal:a_venir'); 71 } else { 72 $tmp = "mode=avenir"; 73 if ($param_idrub != 0){ 74 $tmp .= "&".$param_rub; 75 } 76 $href_avenir = generer_url_ecrire("evenements", $tmp); 77 $filtre .= '<a href="'.$href_avenir.'">'._T('simplecal:a_venir').'</a>'; 78 } 79 $filtre .= '<small> ['.simplecal_get_nb_avenir($param_idrub).']</small>'; 80 $filtre .= '</li>'; 81 82 // Pour chaque Annee 83 foreach ($liste_a as $row){ 84 $annee = $row['annee']; 85 $nb_a = $row['nb']; 86 $actif = ($param_annee && $param_annee==$annee && !$param_mois); 87 88 $filtre .= '<li>'; 89 if ($actif) { 90 $filtre .= '<span>'.$annee.'</span>'; 91 $sous_titre = $annee; 92 } else { 93 $tmp = "annee=".$annee; 94 if ($param_idrub != 0){ 95 $tmp .= "&".$param_rub; 96 } 97 $href_a = generer_url_ecrire("evenements",$tmp); 98 $filtre .= '<a href="'.$href_a.'">'.$annee.'</a>'; 99 } 100 $filtre .= '<small> ['.$nb_a.']</small>'; 101 102 //--- 103 $liste_m = simplecal_get_liste_mois($annee, $param_idrub); 104 //--- 105 if (count($liste_m)>0){ 106 $filtre .= '<ul>'; 107 108 // Pour chaque Mois 109 foreach ($liste_m as $row_m){ 110 $mois = $row_m['mois']; 111 $nb_m = $row_m['nb']; 112 $actif = ($param_annee && $param_annee==$annee && $param_mois && $param_mois==$mois); 113 114 $filtre .= '<li>'; 115 if ($actif) { 116 $filtre .= '<span>'.$nom_mois[intval($mois)].'</span>'; 117 $sous_titre = $nom_mois[intval($mois)]." ".$annee; 118 } else { 119 $tmp = "annee=".$annee."&mois=".$mois; 120 if ($param_idrub != 0){ 121 $tmp .= "&".$param_rub; 122 } 123 $href_m = generer_url_ecrire("evenements",$tmp); 124 $filtre .= '<a href="'.$href_m.'"'.$classe.'>'.$nom_mois[intval($mois)].'</a>'; 125 } 126 $filtre .= '<small> ['.$nb_m.']</small>'; 127 $filtre .= '</li>'; 128 } 129 $filtre .= "</ul>"; 130 } 131 //--- 132 $filtre .= '</li>'; 133 } 134 $filtre .= "</ul>"; 135 } 136 137 138 $entete = ""; 139 if ($filtre){ 140 $entete .= '<strong>'.strtoupper(_T('simplecal:filtres')).' :</strong>'; 141 if ($param_idrub != 0){ 142 $entete .= ' <small>('._T('simplecal:filtres_rubrique_concernee').')</small>'; 143 } 144 } 145 146 $s = $entete.$filtre; 147 148 return $s; 147 149 } 148 150 149 151 function simplecal_get_liste_annees($id_rubrique){ 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 // Pour le calcul des années invisibles (ex : du xx/yy/2009 au xx/yy/2011 => 2010 invisible169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 152 /* 153 select DATE_FORMAT(date_debut,'%Y') as annee 154 from spip_evenements 155 where date_debut not like '%0000%' 156 union 157 select DATE_FORMAT(date_fin,'%Y') as annee 158 from spip_evenements 159 where date_fin not like '%0000%' 160 */ 161 162 $from = "spip_evenements"; 163 $order_by = "annee desc"; 164 165 $select1 = "distinct DATE_FORMAT(date_debut,'%Y') as annee"; 166 $select2 = "distinct DATE_FORMAT(date_fin,'%Y') as annee"; 167 $where1 = "date_debut not like '%0000%'"; 168 $where2 = "date_fin not like '%0000%'"; 169 170 // Pour le calcul des annees invisibles (ex : du xx/yy/2009 au xx/yy/2011 => 2010 invisible 171 $select3 = "distinct DATE_FORMAT(date_debut,'%Y') as annee1, DATE_FORMAT(date_fin,'%Y') as annee2"; 172 $where3 = $where1." and ".$where2; 173 174 175 if ($id_rubrique!=0){ 176 $where_rub = " and id_rubrique = ".$id_rubrique; 177 } else { 178 $where_rub = ""; 179 } 180 181 // ---------------------- 182 // Acces restreint ? 183 // ---------------------- 184 $where_rub_exclure = simplecal_get_where_rubrique_exclure(); 185 // ---------------------- 186 187 $liste_a1 = sql_allfetsel($select1, $from, $where1.$where_rub.$where_rub_exclure, "", $order_by, ""); 188 $liste_a2 = sql_allfetsel($select2, $from, $where2.$where_rub.$where_rub_exclure, "", $order_by, ""); 189 $liste_a3 = sql_allfetsel($select3, $from, $where3.$where_rub.$where_rub_exclure, "", "", ""); 190 191 $annees = array(); 192 193 foreach ($liste_a1 as $row){ 194 $a = $row['annee']; 195 if (!in_array($a, $annees)){ 196 $annees[] = $a; 197 } 198 } 199 200 foreach ($liste_a2 as $row){ 201 $a = $row['annee']; 202 if (!in_array($a, $annees)){ 203 $annees[] = $a; 204 } 205 } 206 207 foreach ($liste_a3 as $row){ 208 $a1 = intval($row['annee1']); 209 $a2 = intval($row['annee2']); 210 if ($a2 - $a1 > 1){ 211 for ($a = $a1 ; $a<=$a2 ; $a++){ 212 if (!in_array("$a", $annees)){ 213 $annees[] = $a; 214 } 215 } 216 } 217 } 218 219 rsort($annees); 220 221 $tab = array(); 222 foreach ($annees as $annee){ 223 $date_min = $annee."-01-01"; 224 $date_max = $annee."-12-31"; 225 $where = "((date_debut like '%".$annee."%'"; 226 $where .= " OR date_fin like '%".$annee."%')"; 227 $where .= " OR (date_debut <= '$date_max' AND date_fin >= '$date_min'))"; 228 $nb = sql_countsel($from, $where.$where_rub.$where_rub_exclure); 229 $tab[] = array("annee"=>$annee, "nb"=>$nb); 230 } 231 232 return $tab; 231 233 } 232 234 … … 235 237 236 238 function simplecal_get_liste_mois($annee, $id_rubrique){ 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 // On ne traite que l'année concernée301 302 303 // Années identiques => Les mois de m1 àm2304 305 306 307 308 309 310 311 312 313 // Années différentes => Les mois de a1 (de m1 àdecembre)314 315 316 317 318 319 320 321 322 // Années différentes => Les mois de a2 (de janvier àm2)323 324 325 326 327 328 329 330 331 // Années différentes => Les mois de l'année invisible (de janvier àdecembre)332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 239 $from = "spip_evenements"; 240 $order_by = "mois desc"; 241 242 $select1 = "distinct DATE_FORMAT(date_debut,'%m') as mois"; 243 $select2 = "distinct DATE_FORMAT(date_fin,'%m') as mois"; 244 $where1 = "date_debut like '%".$annee."%'"; 245 $where2 = "date_fin like '%".$annee."%'"; 246 247 // Pour le calcul des mois invisibles - ex : du xx/09/2011 au xx/02/2012 248 // => 10,11,12 invisibles pour 2011 249 // => 01 invisible pour 2012 250 $select3 = "distinct DATE_FORMAT(date_debut,'%Y-%m') as anmois1, DATE_FORMAT(date_fin,'%Y-%m') as anmois2"; 251 $where3 = "DATE_FORMAT(date_debut,'%Y') <= DATE_FORMAT(date_fin,'%Y') "; 252 253 if ($id_rubrique!=0){ 254 $where_rub = " and id_rubrique = ".$id_rubrique; 255 } else { 256 $where_rub = ""; 257 } 258 259 // ---------------------- 260 // Acces restreint ? 261 // ---------------------- 262 $where_rub_exclure = simplecal_get_where_rubrique_exclure(); 263 // ---------------------- 264 265 $liste_m1 = sql_allfetsel($select1, $from, $where1.$where_rub.$where_rub_exclure, "", $order_by, ""); 266 $liste_m2 = sql_allfetsel($select2, $from, $where2.$where_rub.$where_rub_exclure, "", $order_by, ""); 267 $liste_m3 = sql_allfetsel($select3, $from, $where3.$where_rub.$where_rub_exclure, "", "", ""); 268 269 270 $tab_mois = array(); 271 272 foreach ($liste_m1 as $row){ 273 $m = $row['mois']; 274 if (!in_array($m, $tab_mois)){ 275 $tab_mois[] = $m; 276 } 277 } 278 279 foreach ($liste_m2 as $row){ 280 $m = $row['mois']; 281 if (!in_array($m, $tab_mois)){ 282 $tab_mois[] = $m; 283 } 284 } 285 286 287 foreach ($liste_m3 as $row){ 288 $am1 = $row['anmois1']; 289 $am2 = $row['anmois2']; 290 $a1 = intval(substr($am1,0,4)); 291 $a2 = intval(substr($am2,0,4)); 292 $m1 = intval(substr($am1,5,2)); 293 $m2 = intval(substr($am2,5,2)); 294 295 // ex : du xx/09/2011 au xx/02/2013 296 // 2011 : 09,10,11,12 297 // 2012 : 01,02,03,04,05,06,07,08,09,10,11,12 298 // 2013 : 01,02 299 300 301 for ($a = $a1; $a<=$a2; $a++){ 302 // On ne traite que l'annee concernee 303 if ($a == $annee){ 304 305 // Annees identiques => Les mois de m1 a m2 306 if ($a1 == $a2){ 307 for ($m = $m1 ; $m<=$m2 ; $m++){ 308 $m < 10 ? $s="0$m":$s="$m"; 309 if (!in_array($s, $tab_mois)){ 310 $tab_mois[] = $s; 311 } 312 } 313 } 314 315 // Annees differentes => Les mois de a1 (de m1 a decembre) 316 if ($a1 != $a2 and $a1 == $a){ 317 for ($m = $m1 ; $m<=12 ; $m++){ 318 $m < 10 ? $s="0$m":$s="$m"; 319 if (!in_array($s, $tab_mois)){ 320 $tab_mois[] = $s; 321 } 322 } 323 } 324 // Annees differentes => Les mois de a2 (de janvier a m2) 325 if ($a1 != $a2 and $a2 == $a){ 326 for ($m = 1 ; $m<=$m2 ; $m++){ 327 $m < 10 ? $s="0$m":$s="$m"; 328 if (!in_array($s, $tab_mois)){ 329 $tab_mois[] = $s; 330 } 331 } 332 } 333 // Annees differentes => Les mois de l'annee invisible (de janvier a decembre) 334 if ($a1 != $a2 and $a1 != $a and $a2 != $a){ 335 for ($m = 1 ; $m<=12 ; $m++){ 336 $m < 10 ? $s="0$m":$s="$m"; 337 if (!in_array($s, $tab_mois)){ 338 $tab_mois[] = $s; 339 } 340 } 341 } 342 } 343 } 344 345 346 } 347 348 349 rsort($tab_mois); 350 351 $tab = array(); 352 foreach ($tab_mois as $mois){ 353 $date_min = $annee."-".$mois."01"; 354 $date_max = $annee."-".$mois."31"; 355 $where = "((date_debut like '%".$annee."-".$mois."%'"; 356 $where .= " OR date_fin like '%".$annee."-".$mois."%')"; 357 $where .= " OR (date_debut <= '$date_max' AND date_fin >= '$date_min'))"; 358 $nb = sql_countsel($from, $where.$where_rub.$where_rub_exclure); 359 $tab[] = array("mois"=>$mois, "nb"=>$nb); 360 } 361 362 return $tab; 363 362 364 } 363 365 364 366 function simplecal_get_nb_tous($id_rubrique){ 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 367 $from = "spip_evenements as e"; 368 369 if ($id_rubrique != 0){ 370 $where = "id_rubrique=$id_rubrique"; 371 } else { 372 $where = ""; 373 } 374 375 // ---------------------- 376 // Acces restreint ? 377 // ---------------------- 378 $where_rub_exclure = simplecal_get_where_rubrique_exclure(!empty($where)); 379 // ---------------------- 380 381 $nb = sql_countsel($from, $where.$where_rub_exclure); 382 383 return $nb; 382 384 } 383 385 384 386 function simplecal_get_nb_avenir($id_rubrique){ 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 387 $from = "spip_evenements as e"; 388 $where = " (e.date_debut >= DATE_FORMAT(NOW(),'%Y-%m-%d')"; 389 $where .= " OR e.date_fin >= DATE_FORMAT(NOW(),'%Y-%m-%d'))"; 390 391 if ($id_rubrique != 0){ 392 $where .= " AND id_rubrique=$id_rubrique"; 393 } 394 395 // ---------------------- 396 // Acces restreint ? 397 // ---------------------- 398 $where_rub_exclure = simplecal_get_where_rubrique_exclure(); 399 // ---------------------- 400 401 $nb = sql_countsel($from, $where.$where_rub_exclure); 402 403 return $nb; 402 404 } 403 405 -
_plugins_/simple_calendrier/trunk/inc/simplecal_conf.php
r60552 r61121 1 1 <?php 2 2 /** 3 * Plugin Simple Calendrier pour Spip 3 4 * Licence GPL (c) 2010-2011 Julien Lanfrey 3 * Plugin Simple Calendrier v2 pour SPIP 3.0 4 * Licence GNU/GPL 5 * 2010-2012 5 6 * 7 * cf. paquet.xml pour plus d'infos. 6 8 */ 7 9 … … 9 11 10 12 function simplecal_liste_themes($select_name, $choix){ 11 12 13 14 13 // Version Php5 14 //$dir_theme = _DIR_SIMPLECAL_PRIVE.'css/datepicker/'; 15 //$dirs = scandir($dir_theme, 0); 16 //$dirs = array_slice ($dirs, 2); 15 17 16 17 18 19 20 21 22 23 18 // Version Php4 19 $dir_theme = _DIR_SIMPLECAL_PRIVE.'css/datepicker/'; 20 $dh = opendir($dir_theme); 21 while (false !== ($filename = readdir($dh))) { 22 $dirs[] = str_replace(".css", "", $filename); 23 } 24 sort($dirs); 25 $dirs = array_slice($dirs, 2); // retire les 2 premiers dossiers (. et ..) 24 26 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 27 // ----- 28 $s=""; 29 $s.="\n<select name=\"$select_name\">"; 30 31 foreach ($dirs as $dir){ 32 if ($dir == $choix){ 33 $s.="\n\t<option name=\"$dir\" selected=\"selected\">$dir</option>"; 34 } else { 35 $s.="\n\t<option name=\"$dir\">$dir</option>"; 36 } 37 } 38 39 $s.="\n</select>"; 40 41 return $s; 40 42 } 41 43 ?> -
_plugins_/simple_calendrier/trunk/inc/simplecal_filtres.php
r51309 r61121 1 1 <?php 2 2 /** 3 * Plugin Simple Calendrier pour Spip 2.1.2 4 * Licence GPL (c) 2010-2011 Julien Lanfrey 3 * Plugin Simple Calendrier v2 pour SPIP 3.0 4 * Licence GNU/GPL 5 * 2010-2012 5 6 * 7 * cf. paquet.xml pour plus d'infos. 6 8 */ 7 9 … … 9 11 10 12 function simplecal_affdates($date_debut, $date_fin){ 11 // s écurisation des paramètres12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 13 // securisation des parametres 14 $dates_vide = array('', '0000-00-00 00:00:00'); 15 if (!in_array($date_debut, $dates_vide)){ 16 $date_debut = strtotime($date_debut); 17 $d = date("Y-m-d", $date_debut); 18 } else { 19 $date_debut = ''; 20 $d = ''; 21 } 22 if (!in_array($date_fin, $dates_vide)){ 23 $date_fin = strtotime($date_fin); 24 $f = date("Y-m-d", $date_fin); 25 } else { 26 $date_fin = $date_debut; 27 $f = $d; 28 } 29 // --- 30 29 31 $s = ""; 30 31 32 33 // meme jour : vendredi 12 novembre 32 34 if ($d == $f) { 33 35 $s = nom_jour($d, $abbr)." ".affdate_jourcourt($d); 34 36 } 35 37 // meme annee et mois, jours differents : du 3 au 12 novembre 36 37 38 else if ((date("Y-m",$date_debut)) == date("Y-m",$date_fin)) { 39 $s = _T("simplecal:date_du_au", array('date_debut'=>jour($d), 'date_fin'=>affdate_jourcourt($f))); 38 40 } 39 // meme annee, mois et jours differents : du 30 novembre au 10 d écembre40 41 41 // meme annee, mois et jours differents : du 30 novembre au 10 decembre 42 else if ((date("Y",$date_debut)) == date("Y",$date_fin)) { 43 $s = _T("simplecal:date_du_au", array('date_debut'=>affdate_jourcourt($d), 'date_fin'=>affdate_jourcourt($f))); 42 44 } 43 // tout different : du 25 d écembre 2009 au 2 janvier 201044 45 45 // tout different : du 25 decembre 2009 au 2 janvier 2010 46 else { 47 $s = _T("simplecal:date_du_au", array('date_debut'=>affdate($d), 'date_fin'=>affdate($f))); 46 48 } 47 49 48 50 return $s; 49 51 } … … 51 53 function simplecal_afftexteref($type, $id_objet){ 52 54 $texte = ""; 53 54 55 56 57 58 59 55 if ($type && $id_objet){ 56 $row = sql_fetsel("o.texte", "spip_".$type."s as o", "o.id_".$type."=".$id_objet); 57 $texte = $row['texte']; 58 } 59 // interpreter la syntaxe SPIP 60 $texte = propre($texte); 61 60 62 return $texte; 61 63 } … … 63 65 function simplecal_date_plus($date, $nb_jour){ 64 66 $date_now = date('Y-m-d H:i:s'); 65 66 67 67 68 $jour = jour($date); 69 $mois = mois($date); 68 70 $annee = annee($date); 69 70 71 72 73 74 71 $heure = 0; 72 $minute = 0; 73 $seconde = 0; 74 75 $date_plus = date("Y-m-d", mktime($heure, $minute, $seconde, $mois, $jour+$nb_jour, $annee)); 76 75 77 return $date_plus; 76 78 } … … 78 80 function simplecal_date_moins($date, $nb_jour){ 79 81 $date_now = date('Y-m-d H:i:s'); 80 81 82 82 83 $jour = jour($date); 84 $mois = mois($date); 83 85 $annee = annee($date); 84 85 86 87 88 89 86 $heure = 0; 87 $minute = 0; 88 $seconde = 0; 89 90 $date_plus = date("Y-m-d", mktime($heure, $minute, $seconde, $mois, $jour-$nb_jour, $annee)); 91 90 92 return $date_plus; 91 93 } -
_plugins_/simple_calendrier/trunk/inc/simplecal_utils.php
r60552 r61121 1 1 <?php 2 2 /** 3 * Plugin Simple Calendrier pour Spip 2.1.2 4 * Licence GPL (c) 2010-2011 Julien Lanfrey 3 * Plugin Simple Calendrier v2 pour SPIP 3.0 4 * Licence GNU/GPL 5 * 2010-2012 5 6 * 7 * cf. paquet.xml pour plus d'infos. 6 8 */ 7 9 … … 12 14 // texte = 2010-05-12 07:55:00 13 15 $date = ""; 14 15 16 16 17 //(Note : regex ne matche pas le 0000-00-00 00:00:00) 18 if (preg_match("#([1-2][0-9]{3})\-(.*)\-(.*) .*#i", $texte, $matches)){ 17 19 $date = $matches[3]."/".$matches[2]."/".$matches[1]; 18 19 20 21 } 22 23 // Converti une date saisie àla main en date SQL24 // Retourne une date à zéro si conversion impossible.20 } 21 22 return $date; 23 } 24 25 // Converti une date saisie a la main en date SQL 26 // Retourne une date a zero si conversion impossible. 25 27 function date_saisie2sql($texte) { 26 28 // texte = jj/mm/aaaa ou separateur = [/, -, .] 27 29 $texte = trim($texte); 28 29 30 30 $date = "0000-00-00 00:00:00"; 31 32 if (preg_match("#^([0-9]{2})[\-,\., \/]([0-9]{2})[\-,\., \/]([1-2][0-9]{3})$#i", $texte, $matches)){ 31 33 $date = $matches[3]."-".$matches[2]."-".$matches[1]." 00:00:00"; 32 33 34 34 } 35 36 return $date; 35 37 } 36 38 37 39 38 40 function simplecal_affiche_dates($date_debut=null, $date_fin=null, $with_prefixe=false){ 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 41 $s = ''; 42 if (isset($date_debut) && $date_debut != '0000-00-00 00:00:00'){ 43 if (isset($date_fin) && $date_fin != '0000-00-00 00:00:00'){ 44 if ($with_prefixe){ 45 $s.='Dates : '; 46 } 47 $s .= _T('simplecal:date_du_au', array('date_debut'=>affdate_jourcourt($date_debut), 'date_fin'=>affdate_jourcourt($date_fin))); 48 } else { 49 if ($with_prefixe){ 50 $s.='Date : '; 51 } 52 $s .= _T('simplecal:date_le', array('date'=>affdate_jourcourt($date_debut))); 53 } 54 } else { 55 if (isset($date_fin) && $date_fin != '0000-00-00 00:00:00'){ 56 if ($with_prefixe){ 57 $s.='Date : '; 58 } 59 $s .= _T('simplecal:date_jusque', array('date'=>affdate_jourcourt($date_fin))); 60 } 61 } 62 63 return $s; 62 64 } 63 65 64 66 function simplecal_is_ref_ok($ref){ 65 66 67 68 69 67 $b = false; 68 if (preg_match("/^(article|breve)([0-9]*)$/i", $ref, $matches)){ 69 $b = true; 70 } 71 return $b; 70 72 } 71 73 72 74 // 'breve17' => ['type'=>'breve', 'id_objet'=>'17'] 73 75 function simplecal_get_tuple_from_ref($ref){ 74 75 76 $tab = array(); 77 if (preg_match("/^(article|breve)([0-9]*)$/i", $ref, $matches)){ 76 78 $tab['type'] = $matches[1]; 77 78 79 80 79 $tab['id_objet'] = $matches[2]; 80 } 81 82 return $tab; 81 83 } 82 84 … … 84 86 // 'breve', '17' => 'Le titre de la breve n°17' 85 87 function simplecal_get_titre_from_obj($type, $id_objet){ 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 88 $le_type = ''; 89 $id = ''; 90 91 if (preg_match("/^(article|breve)$/i", $type, $matches)){ 92 $le_type = $matches[0]; 93 } 94 95 if (preg_match("/^([0-9]*)$/i", $id_objet, $matches)){ 96 $id = $matches[0]; 97 } 98 99 $titre = ''; 100 if ($le_type && $id){ 101 $row = sql_fetsel("o.titre", "spip_".$le_type."s as o", "o.id_".$le_type."=".$id); 102 $titre = $row['titre']; 103 } 104 105 return $titre; 104 106 } 105 107 106 108 107 109 function simplecal_get_url_for_obj($type, $id_objet){ 108 109 110 111 112 113 114 115 116 110 $url=''; 111 112 if ($type=='article'){ 113 $url = generer_url_ecrire($type."s","id_$type=$id_objet"); 114 } else { 115 $url = generer_url_ecrire($type."s_voir","id_$type=$id_objet"); 116 } 117 118 return $url; 117 119 } 118 120 119 121 function simplecal_get_url_for_ref($ref){ 120 121 122 123 124 125 122 $tab = simplecal_get_tuple_from_ref($ref); 123 $type = $tab['type']; 124 $id_objet = $tab['id_objet']; 125 126 $url = simplecal_get_url_refobj($type, $id_objet); 127 return $url; 126 128 } 127 129 128 130 function simplecal_get_url_refobj($type, $id_objet){ 129 130 131 132 133 134 135 131 if ($type == 'article'){ 132 $url = generer_url_ecrire($type."s","id_$type=$id_objet"); 133 } else { 134 $url = generer_url_ecrire($type."s_voir","id_$type=$id_objet"); 135 } 136 137 return $url; 136 138 } 137 139 138 140 // Portlet de gestion des evenements de la rubrique 139 141 function simplecal_get_portlet_rubrique($id_rubrique){ 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 142 143 $bloc = ""; 144 $bloc .= debut_cadre_enfonce(_DIR_SIMPLECAL_IMG_PACK."simplecal-logo-24.png", $return=true, $fonction='', $titre=_T('simplecal:titre_boite_rubrique')); 145 146 147 $nb = sql_countsel("spip_evenements as e", "e.id_rubrique=".$id_rubrique); 148 if ($nb == 1){ 149 $phrase = '<strong>'.$nb.'</strong> '._T('simplecal:terme_evenement'); 150 } else if ($nb > 1){ 151 $phrase = '<strong>'.$nb.'</strong> '._T('simplecal:terme_evenements'); 152 } else { 153 $phrase = '<strong>aucun</strong> '._T('simplecal:terme_evenement'); 154 } 155 156 $phrase = '<div class="simplecal-nbinrub">'.$phrase.'</div>'; 157 158 $bloc.=$phrase; 159 160 $bloc .= icone_horizontale(_T('simplecal:raccourcis_liste_evenements_rubrique'), generer_url_ecrire("evenements", "id_rubrique=$id_rubrique"), _DIR_SIMPLECAL_IMG_PACK."simplecal-logo-24.png", "", false); 161 if (autoriser('creer', 'evenement', null)){ 162 $bloc .= icone_horizontale(_T('simplecal:raccourcis_ecrire_evenement'), generer_url_ecrire("evenements_edit", "new=oui&retour=rubrique&id_rubrique=$id_rubrique"), _DIR_SIMPLECAL_IMG_PACK."simplecal-logo-24.png", "creer.gif", false); 163 } 164 $bloc .= fin_cadre_enfonce(true); 165 166 return $bloc; 165 167 } 166 168 167 169 168 170 // Plugin Acces restreint : 169 // retourne la liste des rubriques interdites pour l'auteur connect é171 // retourne la liste des rubriques interdites pour l'auteur connecte 170 172 function simplecal_get_ids_rubriques_exclues(){ 171 172 173 174 175 176 177 178 179 180 181 173 $ids = ""; 174 if (defined('_DIR_PLUGIN_ACCESRESTREINT')){ 175 include_spip('inc/acces_restreint'); 176 $id_auteur = $GLOBALS['visiteur_session']['id_auteur']; 177 $rub_exclues = accesrestreint_liste_rubriques_exclues(false, $id_auteur); 178 179 if (count($rub_exclues)>0){ 180 $ids = join(',', $rub_exclues); 181 } 182 } 183 return $ids; 182 184 } 183 185 … … 185 187 // retourne un "and id_rubrique not in ($ids)" 186 188 function simplecal_get_where_rubrique_exclure($avec_and=true){ 187 188 189 190 191 192 193 194 195 196 189 $condition = ""; 190 if (defined('_DIR_PLUGIN_ACCESRESTREINT')){ 191 $ids = simplecal_get_ids_rubriques_exclues(); 192 if ($ids){ 193 $and = $avec_and ? " and " : ""; 194 $condition = $and."id_rubrique not in ($ids)"; 195 } 196 } 197 198 return $condition; 197 199 } 198 200 ?> -
_plugins_/simple_calendrier/trunk/lang/paquet-simplecal_fr.php
r55074 r61121 1 1 <?php 2 3 // Ceci est un fichier langue de SPIP -- This is a SPIP language file4 // Fichier produit par PlugOnet5 // Module: paquet-breves6 // Langue: fr7 // Date: 30-07-2011 15:01:368 // Items: 29 10 2 if (!defined('_ECRIRE_INC_VERSION')) return; 11 3 -
_plugins_/simple_calendrier/trunk/lang/simplecal_en.php
r60552 r61121 1 1 <?php 2 $GLOBALS[$GLOBALS['idx_lang']] = array( 2 3 3 $GLOBALS[$GLOBALS['idx_lang']] = array(4 5 4 // A 6 5 'a_venir' => 'Coming', 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 6 'auteurs_titre' => 'Author(s)', 7 'auteur_numero' => 'N° author', 8 'auteur_ajouter' => 'Add', 9 'auteur_retirer' => 'Remove', 10 'auteur_aucun' => 'No author !', 11 'auteur_msg_num_manquant' => "Author nb. is missing !", 12 'auteur_msg_num_incorrect' => "Author nb. is incorrect !", 13 'auteur_msg_id_inexistant' => "Auteur nb.@id_auteur@ is missing !", 14 'auteur_msg_id_dejala' => "Nb.@id_auteur@ is already an author !", 15 'auteur_msg_id_pasauteur' => "Nb.@id_auteur@ is not an author for this event !", 16 'auteur_msg_erreur' => 'Error', 17 'auteur_msg_ajout' => 'Author added !', 18 'auteur_msg_retrait' => 'Author removed !', 19 'alt_img_logo' => 'Simple-Calendrier', 20 22 21 23 22 // B 24 23 'bouton_entree' => 'Events', 25 24 'bouton_admin' => 'Event', 26 25 27 26 // C 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 27 'description_plugin' => 'Calendar', 28 'corbeille_tous' => "@nb@ events in garbage", 29 'corbeille_un' => "1 event in garbage", 30 'config_titre' => "Simple calendrier", 31 'config_refobj_oui' => "Enable text by reference", 32 'config_refobj_non' => "Disable text by reference", 33 'config_refobj_explication' => "Enable 'text by reference' to allow articles/breves to be in calendar.", 34 'config_themes_explication' => "You can choose a theme (color set) for the 'little calendar' in public area.", 35 'config_autorisation_explication' => "You can choose if event creation are enabled for editors.", 36 'config_rubrique_explication' => "If you want to manage a simple calendar for your site, let this option disabled. It is possible to use keywords for categorised your events.<br />But, if you want to manage multiple calendar, and display distinct events for each folder, you can enable it.", 37 'config_themepublic' => "Mini-calendar theme (public section)", 38 'config_blocreference' => "References", 39 'config_blocthemes' => "Themes", 40 'config_blocautorisation' => "Autorisations", 41 'config_blocrubrique' => 'Folders affectation', 42 'config_autorisation_redac_non' => 'Administrators only.', 43 'config_autorisation_redac_oui' => 'Administrators and editors', 44 'config_rubrique_partout' => 'Yes, create events in folder.', 45 'config_rubrique_secteur' => 'Yes, create events in 1st level folder (sector).', 46 'config_rubrique_non' => 'No, it makes no sens for me.', 47 'config_champs' => 'Events content', 48 'config_champs_explication' => 'Based on the layout chosen for your site, you can decide which elements in the following list should be available.', 49 51 50 52 51 // D 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 52 'date' => 'Date', 53 'dates' => 'Dates', 54 'date_du_au' => 'from @date_debut@ to @date_fin@', 55 'date_le' => '@date@', 56 'date_jusque' => 'to @date@', 57 'date_de_debut' => 'First date', 58 'date_de_fin' => 'Last date', 59 'descriptif' => 'Description', 60 'date_picto_title' => 'Select date with datepicker...', 61 'date_janvier_abbr' => 'Jan.', 62 'date_fevrier_abbr' => 'Feb.', 63 'date_mars_abbr' => 'Mar.', 64 'date_avril_abbr' => 'Apr.', 65 'date_mai_abbr' => 'May', 66 'date_juin_abbr' => 'Jun.', 67 'date_juillet_abbr' => 'Jul.', 68 'date_aout_abbr' => 'Aug.', 69 'date_septembre_abbr' => 'Sep.', 70 'date_octobre_abbr' => 'Oct.', 71 'date_novembre_abbr' => 'Nov.', 72 'date_decembre_abbr' => 'Dec.', 73 'date_precedent' => 'Previous', 74 'date_suivant' => 'Next', 75 'date_lundi_abbr' => 'Mo', 76 'date_mardi_abbr' => 'Tu', 77 'date_mercredi_abbr' => 'We', 78 'date_jeudi_abbr' => 'Th', 79 'date_vendredi_abbr' => 'Fr', 80 'date_samedi_abbr' => 'Sa', 81 'date_dimanche_abbr' => 'Su', 82 'demo_aucun' => 'Aucun !', 83 'demo_les_evenements_critere' => 'Events', 84 'demo_description' => "A demonstration to see how to use EVENEMENTS loop, with various criteria.", 85 'demo_voir' => 'See', 86 87 89 88 // E 90 91 92 93 94 95 96 97 89 'explication_titre' => 'Event Label', 90 'explication_ref' => 'Reference to an article or news (ex : article23 ; breve45)', 91 'explication_texte' => 'Text for event description.', 92 'entree_evenement_publie' => 'Status of the event :', 93 'enregistrer_dabord_une_fois' => "It's possible ! <br /><br />But first, please save this page one time...", 94 'evenement' => "Event", 95 'evenements' => "Events", 96 98 97 // F 99 100 101 98 'filtres' => 'filters', 99 'filtres_rubrique_concernee' => 'concerned folder', 100 102 101 // H 103 102 'html_title' => 'Calendar', 104 103 105 104 // I 106 107 108 109 110 111 112 113 114 115 105 'info_titre' => 'Title', 106 'info_date_debut' => 'First date', 107 'info_date_fin' => 'Last date', 108 'info_lieu' => 'Place', 109 'info_descriptif_rapide' => 'Brief description', 110 'info_ref' => 'Text : by reference (1\'st possibility)', 111 'info_texte' => 'Text', 112 'info_texte_2possibilites' => 'Text : specific (2\'nd possibility)', 113 'info_gauche_numero_evenement' => 'EVENT NUMBER', 114 'info_statut_encours' => "In progress", 116 115 'info_statut_proposee' => "Submitted for publication", 117 116 'info_statut_validee' => 'Published', 118 117 'info_statut_refusee' => 'Rejected', 119 118 'info_statut_poubelle' => 'In the dustbin', 120 121 122 123 124 125 126 127 128 129 130 131 119 'icone_modifier_evenement' => 'Edit this event', 120 'info_en_cours' => "[in progress]", 121 'info_a_valider' => "[pending]", 122 'item_mots_cles_association_evenements' => 'events', 123 'info_evenement_libelle' => 'Events', 124 'inconnu' => 'unknown', 125 'info_evenements_liees_mot' => 'Events associated with this keyword', 126 'info_1_evenement' => '1 event', 127 'info_n_evenements' => '@nb@ events', 128 'info_evenement' => 'event', 129 'icone_nouvel_evenement' => 'Write a new event', 130 'icone_evenements' => 'Events', 132 131 133 132 // L 134 135 136 137 138 139 140 141 142 143 133 'liste_evenements_prop' => "Events submitted for publication.", 134 'liste_evenements_publie' => "Events published.", 135 'liste_evenements_prepa' => "Events in progress.", 136 'liste_evenements_refuse' => "Events rejected.", 137 'liste_evenements_poubelle' => 'Event in the dustbin', 138 'liste_evenements_auteur' => "This author's events", 139 'logo_evenement' => "LOGO EVENT", 140 'lieu' => 'Place', 141 'liste_des_evenements' => 'Events list', 142 'liste_des_evenements_rubrique' => 'Events list for folder', 144 143 145 144 // M 146 147 145 'multiples_auteurs' => 'Multi auteurs', 146 148 147 // R 149 150 151 152 153 154 155 156 157 158 159 148 'raccourcis_ecrire_evenement' => 'Write a new event', 149 'raccourcis_tous_evenements' => 'All events', 150 'raccourcis_tous_evenements_rubrique' => 'Events for same folder', 151 'raccourcis_retour' => 'Back', 152 'raccourcis_ajouter_date' => 'Add a date', 153 'raccourcis_liste_evenements_rubrique' => 'Events list for this folder', 154 'raccourcis_demo' => 'Démo...', 155 'reference_objet' => 'see', 156 'retour_accueil' => 'Back home', 157 'retour_rubrique' => 'Back to folder', 158 160 159 161 160 // T 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 161 'texte_modifier_evenement' => 'Edit this event', 162 'titre_nouvel_evenement' => 'New event', 163 'terme_evenement' => "event", 164 'terme_evenements' => "events", 165 'titre_evenement_preparation' => 'Event in progress', 166 'titre_evenement_propose' => 'Event submitted for publication', 167 'titre_evenement_publie' => 'Event published', 168 'titre_evenement_refuse' => 'Event rejected', 169 'titre_evenement_poubelle' => 'Event in the dustbin', 170 'texte_issu_autre_objet' => 'Text related to other content', 171 'texte' => 'Text', 172 'titre_evenements' => 'Events', 173 'tous' => 'All', 174 'titre_boite_refobj' => 'in calendar', 175 'titre_boite_rubrique' => 'Calendar', 176 'texte_objet' => "Event", 177 'texte_objets' => "Events", 178 180 179 // V 181 182 183 184 185 186 187 188 180 'validation_titre' => 'Title is required !', 181 'validation_date_debut' => 'First date is required.', 182 'validation_date_format' => 'Date format must be : dd/mm/yyyy', 183 'validation_refobj_format' => 'Format must be : [type][id]. ex : article23 ; breve45', 184 'validation_rubrique' => 'Folder is required.', 185 'validation_corriger_svp' => 'Please correct the mistakes...', 186 'validation_type_nexiste_pas' => "@type@ n° @id_objet@ doesn't exist !", 187 189 188 ); 190 189 -
_plugins_/simple_calendrier/trunk/lang/simplecal_fr.php
r61093 r61121 1 1 <?php 2 2 $GLOBALS[$GLOBALS['idx_lang']] = array( 3 3 4 4 // A 5 5 'a_venir' => 'À venir', 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 6 'auteurs_titre' => 'Auteur(s)', 7 'auteur_numero' => 'N° auteur', 8 'auteur_ajouter' => 'Ajouter', 9 'auteur_retirer' => 'Retirer', 10 'auteur_aucun' => 'Aucun auteur !', 11 'auteur_msg_num_manquant' => "n° d'auteur manquant !", 12 'auteur_msg_num_incorrect' => "n° d'auteur incorrect !", 13 'auteur_msg_id_inexistant' => "Auteur n°@id_auteur@ inexistant !", 14 'auteur_msg_id_dejala' => "Le n°@id_auteur@ est déjà auteur !", 15 'auteur_msg_id_pasauteur' => "Le n°@id_auteur@ n'est pas auteur de cet evenement !", 16 'auteur_msg_erreur' => 'Erreur', 17 'auteur_msg_ajout' => 'Auteur ajouté !', 18 'auteur_msg_retrait' => 'Auteur retiré !', 19 'alt_img_logo' => 'Simple-Calendrier', 20 21 21 // B 22 22 'bouton_entree' => 'Evènements', 23 23 'bouton_admin' => 'Evènement', 24 24 25 25 // C 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 26 'description_plugin' => 'Calendrier', 27 'corbeille_tous' => "@nb@ évènements dans la corbeille", 28 'corbeille_un' => "1 évènement dans la corbeille", 29 'config_titre' => "Simple calendrier", 30 'config_refobj_oui' => "Activer le texte par référence", 31 'config_refobj_non' => "Désactiver le texte par référence", 32 'config_refobj_explication' => "Activer le 'texte par référence' pour permettre aux articles/breves de figurer dans le calendrier. C'est le texte de l'évènement qui pourra alors être remplacé par celui de l'article/de la brève choisi...", 33 'config_themes_explication' => "Vous pouvez choisir un théme (jeu de couleurs) pour l'affichage du mini calendrier de l'espace public.", 34 'config_autorisation_explication' => "Indiquez qui est autorisé à créer des évènements.", 35 'config_rubrique_explication' => "Si vous souhaitez gérer un simple agenda pour votre site, inutile d'activer cette option. Au besoin, il vous est toujours possible d'utiliser les mots clés pour catégoriser vos évènements.<br />Si par contre, vous voulez gérer plusieurs agendas, et afficher les évènements en fonction de la rubrique visitée, cette option est faite pour vous.", 36 'config_themepublic' => "Thème pour le mini-calendrier (espace public)", 37 'config_blocreference' => "Références", 38 'config_blocthemes' => "Thèmes", 39 'config_blocautorisation' => "Autorisations", 40 'config_blocrubrique' => 'Affecter les évènements aux rubriques', 41 'config_autorisation_redac_non' => 'Administrateurs seulement.', 42 'config_autorisation_redac_oui' => 'Administrateurs et rédacteurs', 43 'config_rubrique_partout' => 'Oui, créer les évènements dans les rubriques.', 44 'config_rubrique_secteur' => 'Oui, créer les évènements dans les secteurs seulement.', 45 'config_rubrique_non' => 'Non, cela n\'a pas de sens pour moi.', 46 'config_champs' => 'Contenu des évènements', 47 'config_champs_explication' => 'Selon la maquette adoptée pour votre site, vous pouvez décider quels champs doivent être disponibles.', 48 49 49 // D 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 50 'date' => 'Date', 51 'dates' => 'Dates', 52 'date_du_au' => 'du @date_debut@ au @date_fin@', 53 'date_le' => 'le @date@', 54 'date_jusque' => 'jusqu\'au @date@', 55 'date_de_debut' => 'Date de début', 56 'date_de_fin' => 'Date de fin', 57 'descriptif' => 'Descriptif', 58 'date_picto_title' => 'Choisir la date dans un calendrier...', 59 'date_janvier_abbr' => 'Jan.', 60 'date_fevrier_abbr' => 'Fév.', 61 'date_mars_abbr' => 'Mars', 62 'date_avril_abbr' => 'Avr.', 63 'date_mai_abbr' => 'Mai', 64 'date_juin_abbr' => 'Juin', 65 'date_juillet_abbr' => 'Juil.', 66 'date_aout_abbr' => 'Août', 67 'date_septembre_abbr' => 'Sept.', 68 'date_octobre_abbr' => 'Oct.', 69 'date_novembre_abbr' => 'Nov.', 70 'date_decembre_abbr' => 'Déc.', 71 'date_precedent' => 'Précédent', 72 'date_suivant' => 'Suivant', 73 'date_lundi_abbr' => 'Lu', 74 'date_mardi_abbr' => 'Ma', 75 'date_mercredi_abbr' => 'Me', 76 'date_jeudi_abbr' => 'Je', 77 'date_vendredi_abbr' => 'Ve', 78 'date_samedi_abbr' => 'Sa', 79 'date_dimanche_abbr' => 'Di', 80 'demo_aucun' => 'Aucun !', 81 'demo_les_evenements_critere' => 'Les évènements', 82 'demo_description' => "Démonstration d'utilisation de la boucle EVENEMENTS, avec divers critères.", 83 'demo_voir' => 'cf.', 84 85 86 87 87 // E 88 89 90 91 92 93 94 95 88 'explication_titre' => 'Libellé de l\'évènement', 89 'explication_ref' => 'La référence à un article ou une brève (ex : article23 ; breve45)', 90 'explication_texte' => 'Le texte qui décrit l\'évènement.', 91 'entree_evenement_publie' => 'Cet évènement est :', 92 'enregistrer_dabord_une_fois' => "C'est possible ! <br /><br />Pour cela, veuillez enregistrer la fiche une première fois...", 93 'evenement' => "Évènement", 94 'evenements' => "Évènements", 95 96 96 // F 97 98 99 97 'filtres' => 'filtres', 98 'filtres_rubrique_concernee' => 'rubrique concernée', 99 100 100 // H 101 101 'html_title' => 'Calendrier', 102 102 103 103 // I 104 105 106 107 108 109 110 111 112 113 114 104 'info_aucun_evenement' => 'Aucun évènement', 105 'info_titre' => 'Titre', 106 'info_date_debut' => 'Date de début', 107 'info_date_fin' => 'Date de fin', 108 'info_lieu' => 'Lieu', 109 'info_descriptif_rapide' => 'Descriptif rapide', 110 'info_ref' => 'Texte : par référence (1ère possibilité)', 111 'info_texte' => 'Texte', 112 'info_texte_2possibilites' => 'Texte : spécifique (2ème possibilité)', 113 'info_gauche_numero_evenement' => 'ÉVÈNEMENT NUMÉRO', 114 'info_statut_encours' => "En cours de rédaction", 115 115 'info_statut_proposee' => "Proposée à l'évaluation", 116 116 'info_statut_validee' => 'Validée', 117 117 'info_statut_refusee' => 'Refusée', 118 118 'info_statut_poubelle' => 'à la poubelle', 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 119 'icone_modifier_evenement' => 'Modifier l\'évènement', 120 'info_en_cours' => "[en cours]", 121 'info_a_valider' => "[à valider]", 122 'item_mots_cles_association_evenements' => 'aux évènements', 123 'info_evenement_libelle' => 'Evènements', 124 'inconnu' => 'inconnu', 125 'info_evenements_liees_mot' => 'Les évènements liés à ce mot clé', 126 'info_1_evenement' => '1 évènement', 127 'info_n_evenements' => '@nb@ évènements', 128 'info_evenement' => 'Evènement', 129 'info_evenements' => 'Evènements', 130 'info_evenements_02' => 'Evènements', 131 'info_evenements_valider' => 'Evènements à valider', 132 'info_evenements_lies' => 'Evènements associés', 133 'icone_nouvel_evenement' => 'Écrire un nouvel évènement', 134 'icone_evenements' => 'Evènements', 135 135 136 136 // L 137 138 139 140 141 142 143 144 145 146 147 137 'liste_evenements_prop' => "Evènements proposés à l'évaluation.", 138 'liste_evenements_publie' => "Evènements publiés.", 139 'liste_evenements_prepa' => "Evènements en cours de rédaction.", 140 'liste_evenements_refuse' => "Evènements refusés.", 141 'liste_evenements_poubelle' => 'Evènement à la poubelle', 142 'liste_evenements_auteur' => "Les évènements de cet auteur", 143 'logo_evenement' => "LOGO DE L'EVENEMENT", 144 'lieu' => 'Lieu', 145 'liste_des_evenements' => 'Liste des évènements', 146 'liste_des_evenements_rubrique' => 'Liste des évènements de la rubrique', 147 148 148 // M 149 150 151 149 'multiples_auteurs' => 'Multiples auteurs', 150 151 152 152 // R 153 154 155 156 157 158 159 160 161 162 163 153 'raccourcis_ecrire_evenement' => 'Écrire un nouvel évènement', 154 'raccourcis_tous_evenements' => 'Tous les évènements', 155 'raccourcis_tous_evenements_rubrique' => 'Évènements de la rubrique', 156 'raccourcis_retour' => 'Retour', 157 'raccourcis_associer_evenement' => 'Associer un évènement', 158 'raccourcis_liste_evenements_rubrique' => 'Liste des évènements de cette rubrique', 159 'raccourcis_demo' => 'Démo...', 160 'reference_objet' => 'voir', 161 'retour_accueil' => 'Retour à l\'accueil', 162 'retour_rubrique' => 'Retour à la rubrique', 163 164 164 165 165 // T 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 166 'texte_modifier_evenement' => 'Modifier l\'évènement', 167 'titre_nouvel_evenement' => 'Nouvel évènement', 168 'terme_evenement' => "évènement", 169 'terme_evenements' => "évènements", 170 'titre_evenement_preparation' => 'Evènement en cours de rédaction', 171 'titre_evenement_propose' => 'Evènement proposé à l\'évaluation', 172 'titre_evenement_publie' => 'Evènement publié', 173 'titre_evenement_refuse' => 'Evènement refusé', 174 'titre_evenement_poubelle' => 'Evènement à la poubelle', 175 'texte_issu_autre_objet' => 'Texte issu d\'un autre contenu', 176 'texte' => 'Texte', 177 'titre_evenements' => 'Les évènements', 178 'titre_contenu_rubrique' => 'Les évènements contenus dans cette rubrique', 179 'tous' => 'Tous', 180 'titre_boite_refobj' => 'dans le calendrier', 181 'titre_boite_rubrique' => 'Calendrier', 182 'titre_langue_evenement' => "Langue de l'évènement", 183 184 184 // V 185 186 187 188 189 190 191 192 185 'validation_date_debut' => 'La date de début est requise.', 186 'validation_date_format' => 'Format attendu : jj/mm/aaaa', 187 'validation_date_chronologie' => 'La date de fin ne peut pas précéder la date de début !', 188 'validation_refobj_format' => 'Format attendu : [type][id]. ex : article23 ; breve45', 189 'validation_rubrique' => 'La rubrique est requise.', 190 'validation_corriger_svp' => 'Veuillez corriger les erreurs...', 191 'validation_type_nexiste_pas' => "@type@ n° @id_objet@ n'existe pas !", 192 193 193 ); 194 194 ?> -
_plugins_/simple_calendrier/trunk/paquet.xml
r61117 r61121 1 1 <paquet 2 3 4 5 6 7 8 9 2 prefix="simplecal" 3 categorie="date" 4 version="2.0.0" 5 etat="dev" 6 compatibilite="[3.0.0-dev;[" 7 logo="prive/themes/spip/images/evenement-32.png" 8 schema="2.1.0" 9 documentation="http://www.spip-contrib.net/Simple-Calendrier-v1" 10 10 > 11 11 12 13 14 15 16 17 <pipeline nom="declarer_tables_interfaces" inclure="base/simplecal_base.php" /> <!-- OK SPIP3 -->18 <pipeline nom="declarer_tables_objets_sql" inclure="base/simplecal_base.php" /> <!-- OK SPIP3 -->19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 12 <nom>Simple Calendrier</nom> 13 <auteur>[Julien Lanfrey->http://www.spip-contrib.net/ju3873]</auteur> 14 <licence>GPL</licence> 15 <credit lien="http://jqueryui.com/themeroller/">Themes CSS (datepicker)</credit> 16 17 <pipeline nom="declarer_tables_interfaces" inclure="base/simplecal.php" /> <!-- OK SPIP3 --> 18 <pipeline nom="declarer_tables_objets_sql" inclure="base/simplecal.php" /> <!-- OK SPIP3 --> 19 <pipeline nom="configurer_liste_metas" inclure="simplecal_pipelines.php" /> <!-- OK SPIP3 --> 20 <pipeline nom="autoriser" inclure="simplecal_autoriser.php" /> 21 <pipeline nom="header_prive" inclure="simplecal_pipelines.php" /> 22 <pipeline nom="insert_head" inclure="simplecal_pipelines.php" /> 23 <pipeline nom="boite_infos" inclure="simplecal_pipelines.php" /> <!-- OK SPIP3 --> 24 <pipeline nom="affiche_milieu" inclure="simplecal_pipelines.php" /> <!-- OK SPIP3 --> 25 <pipeline nom="affiche_gauche" inclure="simplecal_pipelines.php" /> <!-- OK SPIP3 --> 26 <pipeline nom="affiche_auteurs_interventions" inclure="simplecal_pipelines.php" /> <!-- OK SPIP3 --> 27 <pipeline nom="rubrique_encours" inclure="simplecal_pipelines.php" /> <!-- OK SPIP3 --> 28 <pipeline nom="affiche_enfants" inclure="simplecal_pipelines.php" /> <!-- OK SPIP3 --> 29 <pipeline nom="accueil_encours" inclure="simplecal_pipelines.php" /> <!-- OK SPIP3 --> 30 <pipeline nom="accueil_informations" inclure="simplecal_pipelines.php" /> <!-- OK SPIP3 --> 31 <pipeline nom="compter_contributions_auteur" inclure="simplecal_pipelines.php" /> <!-- OK SPIP3 --> 32 <pipeline nom="optimiser_base_disparus" inclure="simplecal_pipelines.php" /> <!-- OK SPIP3 --> 33 <pipeline nom="propres_creer_chaine_url" inclure="simplecal_pipelines.php" /> 34 35 <!-- Prendre en compte la table des évènements dans les recherches --> 36 <pipeline nom="rechercher_liste_des_champs" inclure="simplecal_pipelines.php" /> 37 38 <!-- Filtrer les rubriques exclues par le plugin Acces restreint --> 39 <pipeline nom="pre_boucle" inclure="public/simplecal_boucles.php" /> 40 41 42 <menu nom="evenements" titre="simplecal:icone_evenements" parent="menu_edition" icone="images/evenement-24.png" action="evenements" parametres="mode=avenir" /> 43 <menu nom="evenement_creer" titre="simplecal:icone_nouvel_evenement" parent="outils_rapides" icone="images/evenement-new-16.png" action="evenement_edit" parametres="new=oui" /> 44 44 </paquet> -
_plugins_/simple_calendrier/trunk/prive/css/datepicker/base.css
r51415 r61121 1 1 .ui-datepicker { 2 3 4 5 2 display:block; 3 padding:0.2em 0.2em 0; 4 width:17em; 5 font-size:0.9em; 6 6 } 7 7 8 8 .ui-widget-header { 9 10 11 12 13 14 15 16 9 -moz-background-clip:border; 10 -moz-background-inline-policy:continuous; 11 -moz-background-origin:padding; 12 background-image:none; 13 background-color:#CCCCCC; 14 border:1px solid #AAAAAA; 15 color:#222222; 16 font-weight:bold; 17 17 } 18 18 19 19 .ui-widget-content { 20 21 22 23 24 25 26 20 -moz-background-clip:border; 21 -moz-background-inline-policy:continuous; 22 -moz-background-origin:padding; 23 background-image:none; 24 background-color:#FFFFFF; 25 border:1px solid #AAAAAA; 26 color:#222222; 27 27 } 28 28 29 29 /* Jours quelconques du mois */ 30 30 .ui-state-default, .ui-widget-content .ui-state-default, .ui-widget-header .ui-state-default { 31 32 33 34 35 36 37 38 31 -moz-background-clip:border; 32 -moz-background-inline-policy:continuous; 33 -moz-background-origin:padding; 34 background-image:none; 35 background-color:#E6E6E6; 36 border:1px solid #D3D3D3; 37 color:#555555; 38 font-weight:normal; 39 39 } 40 40 41 41 /* Jour J */ 42 42 .ui-state-highlight, .ui-widget-content .ui-state-highlight, .ui-widget-header .ui-state-highlight { 43 44 45 46 47 48 49 43 -moz-background-clip:border; 44 -moz-background-inline-policy:continuous; 45 -moz-background-origin:padding; 46 background-image:none; 47 background-color:#FBF9EE; 48 border:1px solid #FCEFA1; 49 color:#363636; 50 50 } 51 51 52 52 /* Jour Actif */ 53 53 .ui-state-active, .ui-widget-content .ui-state-active, .ui-widget-header .ui-state-active { 54 55 56 57 58 59 60 61 54 -moz-background-clip:border; 55 -moz-background-inline-policy:continuous; 56 -moz-background-origin:padding; 57 background-image:none; 58 background-color:#FFFFFF; 59 border:1px solid #AAAAAA; 60 color:#212121; 61 font-weight:normal; 62 62 } 63 63 64 64 /* Jours des mois precedent/suivant */ 65 65 .ui-state-disabled, .ui-widget-content .ui-state-disabled, .ui-widget-header .ui-state-disabled { 66 67 66 background-image:none; 67 opacity:0.35; 68 68 } -
_plugins_/simple_calendrier/trunk/prive/css/datepicker/redmond.css
r51415 r61121 1 1 .ui-datepicker { 2 3 4 5 2 display:block; 3 padding:0.2em 0.2em 0; 4 width:17em; 5 font-size:0.9em; 6 6 } 7 7 8 8 .ui-widget-header { 9 10 11 12 13 14 15 16 9 -moz-background-clip:border; 10 -moz-background-inline-policy:continuous; 11 -moz-background-origin:padding; 12 background-image:none; 13 background-color:#5c9ccc ; 14 border:1px solid #4297d7; 15 color:#ffffff; 16 font-weight:bold; 17 17 } 18 18 19 19 .ui-widget-content { 20 21 22 23 24 25 26 20 -moz-background-clip:border; 21 -moz-background-inline-policy:continuous; 22 -moz-background-origin:padding; 23 background-image:none; 24 background-color:#fcfdfd ; 25 border:1px solid #a6c9e2; 26 color:#222222; 27 27 } 28 28 29 29 /* Jours quelconques du mois */ 30 30 .ui-state-default, .ui-widget-content .ui-state-default, .ui-widget-header .ui-state-default { 31 32 33 34 35 36 37 38 31 -moz-background-clip:border; 32 -moz-background-inline-policy:continuous; 33 -moz-background-origin:padding; 34 background-image:none; 35 background-color:#dfeffc ; 36 border:1px solid #c5dbec; 37 color:#2e6e9e; 38 font-weight:normal; 39 39 } 40 40 41 41 /* Jour J */ 42 42 .ui-state-highlight, .ui-widget-content .ui-state-highlight, .ui-widget-header .ui-state-highlight { 43 44 45 46 47 48 49 43 -moz-background-clip:border; 44 -moz-background-inline-policy:continuous; 45 -moz-background-origin:padding; 46 background-image:none; 47 background-color:#fbec88 ; 48 border:1px solid #fad42e; 49 color:#363636; 50 50 } 51 51 52 52 /* Jour Actif */ 53 53 .ui-state-active, .ui-widget-content .ui-state-active, .ui-widget-header .ui-state-active { 54 55 56 57 58 59 60 61 54 -moz-background-clip:border; 55 -moz-background-inline-policy:continuous; 56 -moz-background-origin:padding; 57 background-image:none; 58 background-color:#f5f8f9; 59 border:1px solid #79b7e7; 60 color:#e17009; 61 font-weight:normal; 62 62 } 63 63 64 64 /* Jours des mois precedent/suivant */ 65 65 .ui-state-disabled, .ui-widget-content .ui-state-disabled, .ui-widget-header .ui-state-disabled { 66 67 66 background-image:none; 67 opacity:0.35; 68 68 } -
_plugins_/simple_calendrier/trunk/prive/css/datepicker/sunny.css
r51415 r61121 1 1 .ui-datepicker { 2 3 4 5 2 display:block; 3 padding:0.2em 0.2em 0; 4 width:17em; 5 font-size:0.9em; 6 6 } 7 7 8 8 .ui-widget-header { 9 10 11 12 13 14 15 16 9 -moz-background-clip:border; 10 -moz-background-inline-policy:continuous; 11 -moz-background-origin:padding; 12 background-image:none; 13 background-color:#817865; 14 border:1px solid #494437; 15 color:#FFFFFF; 16 font-weight:bold; 17 17 } 18 18 19 19 .ui-widget-content { 20 21 22 23 24 25 26 20 -moz-background-clip:border; 21 -moz-background-inline-policy:continuous; 22 -moz-background-origin:padding; 23 background-image:none; 24 background-color:#feeebd; 25 border:1px solid #8e846b; 26 color:#383838; 27 27 } 28 28 29 29 /* Jours quelconques du mois */ 30 30 .ui-state-default, .ui-widget-content .ui-state-default, .ui-widget-header .ui-state-default { 31 32 33 34 35 36 37 38 31 -moz-background-clip:border; 32 -moz-background-inline-policy:continuous; 33 -moz-background-origin:padding; 34 background-image:none; 35 background-color:#fece2f; 36 border:1px solid #d19405; 37 color:#4c3000; 38 font-weight:normal; 39 39 } 40 40 41 41 /* Jour J */ 42 42 .ui-state-highlight, .ui-widget-content .ui-state-highlight, .ui-widget-header .ui-state-highlight { 43 44 45 46 47 48 49 43 -moz-background-clip:border; 44 -moz-background-inline-policy:continuous; 45 -moz-background-origin:padding; 46 background-image:none; 47 background-color:#fff9e5; 48 border:1px solid #eeb420; 49 color:#1f1f1f; 50 50 } 51 51 52 52 /* Jour Actif */ 53 53 .ui-state-active, .ui-widget-content .ui-state-active, .ui-widget-header .ui-state-active { 54 55 56 57 58 59 60 61 54 -moz-background-clip:border; 55 -moz-background-inline-policy:continuous; 56 -moz-background-origin:padding; 57 background-image:none; 58 background-color:#ffffff; 59 border:1px solid #655e4e; 60 color:#0074c7; 61 font-weight:normal; 62 62 } 63 63 64 64 /* Jours des mois precedent/suivant */ 65 65 .ui-state-disabled, .ui-widget-content .ui-state-disabled, .ui-widget-header .ui-state-disabled { 66 67 66 background-image:none; 67 opacity:0.35; 68 68 } -
_plugins_/simple_calendrier/trunk/prive/css/datepicker/ui-lightness.css
r51415 r61121 1 1 .ui-datepicker { 2 3 4 5 2 display:block; 3 padding:0.2em 0.2em 0; 4 width:17em; 5 font-size:0.9em; 6 6 } 7 7 8 8 .ui-widget-header { 9 10 11 12 13 14 15 16 9 -moz-background-clip:border; 10 -moz-background-inline-policy:continuous; 11 -moz-background-origin:padding; 12 background-image:none; 13 background-color:#f6a828; 14 border:1px solid #e78f08; 15 color:#ffffff ; 16 font-weight:bold; 17 17 } 18 18 19 19 .ui-widget-content { 20 21 22 23 24 25 26 20 -moz-background-clip:border; 21 -moz-background-inline-policy:continuous; 22 -moz-background-origin:padding; 23 background-image:none; 24 background-color:#eeeeee; 25 border:1px solid #dddddd; 26 color:#333333; 27 27 } 28 28 29 29 /* Jours quelconques du mois */ 30 30 .ui-state-default, .ui-widget-content .ui-state-default, .ui-widget-header .ui-state-default { 31 32 33 34 35 36 37 38 31 -moz-background-clip:border; 32 -moz-background-inline-policy:continuous; 33 -moz-background-origin:padding; 34 background-image:none; 35 background-color:#f6f6f6; 36 border:1px solid #cccccc; 37 color:#1c94c4; 38 font-weight:normal; 39 39 } 40 40 41 41 /* Jour J */ 42 42 .ui-state-highlight, .ui-widget-content .ui-state-highlight, .ui-widget-header .ui-state-highlight { 43 44 45 46 47 48 49 43 -moz-background-clip:border; 44 -moz-background-inline-policy:continuous; 45 -moz-background-origin:padding; 46 background-image:none; 47 background-color:#ffe45c ; 48 border:1px solid #fed22f; 49 color:#363636; 50 50 } 51 51 52 52 /* Jour Actif */ 53 53 .ui-state-active, .ui-widget-content .ui-state-active, .ui-widget-header .ui-state-active { 54 55 56 57 58 59 60 61 54 -moz-background-clip:border; 55 -moz-background-inline-policy:continuous; 56 -moz-background-origin:padding; 57 background-image:none; 58 background-color:#ffffff; 59 border:1px solid #fbd850; 60 color:#eb8f00; 61 font-weight:normal; 62 62 } 63 63 64 64 /* Jours des mois precedent/suivant */ 65 65 .ui-state-disabled, .ui-widget-content .ui-state-disabled, .ui-widget-header .ui-state-disabled { 66 67 66 background-image:none; 67 opacity:0.35; 68 68 } -
_plugins_/simple_calendrier/trunk/prive/listes/corbeille_evenements.html
r51309 r61121 3 3 [<p class='pagination'>(#PAGINATION)</p>] 4 4 <ul class='liste_items evenements checkables'> 5 6 7 8 9 10 11 12 13 14 5 <BOUCLE_evenements(EVENEMENTS){statut}{pagination 5}{!par date}{recherche ?}> 6 <li class='item'> 7 <label for='evenement-#ID_EVENEMENT'><:corbeille:selectionner:></label> 8 <input type='checkbox' name='elements[]' value='#ID_EVENEMENT'[ (#ID_EVENEMENT|in_any{#ENV{elements}}|oui)checked='checked']/> 9 <h3>[##ID_EVENEMENT - (#TITRE|sinon{<:info_sans_titre:>})]</h3> 10 <small>[(#DATE_DEBUT|simplecal_affdates{#DATE_FIN})]</small>[ - (#LIEU)] 11 #DESCRIPTIF 12 <p class='actions'>[<a href='#URL_ECRIRE{evenement_voir,id_evenement=#ID_EVENEMENT}'><:corbeille:voir:></a>]</p> 13 </li> 14 </BOUCLE_evenements> 15 15 </ul> 16 16 [<p class='pagination'>(#PAGINATION)</p>] -
_plugins_/simple_calendrier/trunk/prive/objets/contenu/evenement.html
r57480 r61121 1 1 <BOUCLE_afficher_contenu(EVENEMENTS){tout}{id_evenement=#ENV{id}}{statut?}> 2 [<div class="champ contenu_notes"> 3 <div class='label'><:simplecal:date_de_debut:> : </div> 4 <div dir='#LANG_DIR' class='#EDIT{date_debut} date_debut'>(#DATE_DEBUT|nom_jour) [(#DATE_DEBUT|affdate_jourcourt)]</div> 5 </div>] 6 [<div class="champ contenu_notes"> 7 <div class='label'><:simplecal:date_de_fin:> : </div> 8 <div dir='#LANG_DIR' class='#EDIT{date_fin} date_fin'>(#DATE_FIN|nom_jour) [(#DATE_FIN|affdate_jourcourt)]</div> 9 </div>] 10 [<div class="champ contenu_notes"> 11 <div class='label'><:simplecal:lieu:> : </div> 12 <div dir='#LANG_DIR' class='#EDIT{lieu} lieu'>(#LIEU)</div> 13 </div>] 14 15 16 <div class="champ contenu_descriptif[ (#DESCRIPTIF*|strlen|?{'',vide})]"> 17 <div class='label'><:simplecal:descriptif:> : </div> 18 <div dir='#LANG_DIR' class='#EDIT{descriptif} descriptif'>[(#DESCRIPTIF|image_reduire{500,0})]</div> 19 </div> 20 21 <div class="champ contenu_texte[ (#TEXTE*|strlen|?{'',vide})]"> 22 <div class='label'><:simplecal:texte:></div> 23 <div dir='#LANG_DIR' class='#EDIT{texte} texte'>[(#TEXTE|image_reduire{500,0})]</div> 24 </div> 25 26 [(#TYPE|oui) 27 <div class="champ contenu_notes"> 28 <div class='label'><:simplecal:texte_issu_autre_objet:></div> 29 <div dir='#LANG_DIR' class='#EDIT{texte} texte'> 30 →<:simplecal:reference_objet:> 31 <a href="?exec=#TYPE&id_#TYPE=#ID_OBJET">#TYPE#ID_OBJET</a> 32 </div> 33 </div>] 34 2 [<div class="champ contenu_notes"> 3 <div class='label'><:simplecal:date_de_debut:> : </div> 4 <div dir='#LANG_DIR' class='#EDIT{date_debut} date_debut'>(#DATE_DEBUT|nom_jour) [(#DATE_DEBUT|affdate_jourcourt)]</div> 5 </div>] 6 [<div class="champ contenu_notes"> 7 <div class='label'><:simplecal:date_de_fin:> : </div> 8 <div dir='#LANG_DIR' class='#EDIT{date_fin} date_fin'>(#DATE_FIN|nom_jour) [(#DATE_FIN|affdate_jourcourt)]</div> 9 </div>] 10 [<div class="champ contenu_notes"> 11 <div class='label'><:simplecal:lieu:> : </div> 12 <div dir='#LANG_DIR' class='#EDIT{lieu} lieu'>(#LIEU)</div> 13 </div>] 14 15 <div class="champ contenu_descriptif[ (#DESCRIPTIF*|strlen|?{'',vide})]"> 16 <div class='label'><:simplecal:descriptif:> : </div> 17 <div dir='#LANG_DIR' class='#EDIT{descriptif} descriptif'>[(#DESCRIPTIF|image_reduire{500,0})]</div> 18 </div> 19 20 <div class="champ contenu_texte[ (#TEXTE*|strlen|?{'',vide})]"> 21 <div class='label'><:simplecal:texte:></div> 22 <div dir='#LANG_DIR' class='#EDIT{texte} texte'>[(#TEXTE|image_reduire{500,0})]</div> 23 </div> 24 25 [(#TYPE|oui) 26 <div class="champ contenu_notes"> 27 <div class='label'><:simplecal:texte_issu_autre_objet:></div> 28 <div dir='#LANG_DIR' class='#EDIT{texte} texte'> 29 →<:simplecal:reference_objet:> 30 <a href="?exec=#TYPE&id_#TYPE=#ID_OBJET">#TYPE#ID_OBJET</a> 31 </div> 32 </div>] 33 35 34 </BOUCLE_afficher_contenu> -
_plugins_/simple_calendrier/trunk/prive/objets/infos/evenement.html
r57480 r61121 8 8 [(#REM) 9 9 10 11 10 Bouton voir en ligne 11 12 12 ] 13 13 <BOUCLE_publiee(EVENEMENTS){id_evenement}> 14 15 16 17 14 [(#VAL{redirect} 15 |generer_url_action{type=evenement&id=#ID_EVENEMENT} 16 |parametre_url{var_mode,calcul} 17 |icone_horizontale{<:icone_voir_en_ligne:>,racine})] 18 18 </BOUCLE_publiee> 19 20 21 22 23 24 19 [(#AUTORISER{previsualiser,evenement,#ID_EVENEMENT,'',#ARRAY{statut,#STATUT}}) 20 [(#VAL{redirect} 21 |generer_url_action{type=evenement&id=#ID_EVENEMENT} 22 |parametre_url{var_mode,preview} 23 |icone_horizontale{<:previsualiser:>,preview})] 24 ] 25 25 <//B_publiee> 26 26 -
_plugins_/simple_calendrier/trunk/prive/objets/liste/evenements-liste.html
r53019 r61121 4 4 <table class='spip liste'> 5 5 [<caption><strong class="caption">(#ENV*{titre,#GRAND_TOTAL|singulier_ou_pluriel{simplecal:info_1_evenement,simplecal:info_n_evenements}})</strong></caption>] 6 7 8 9 10 11 12 13 14 15 6 <thead> 7 <tr class='first_row'> 8 <th class='statut'><span title="<:lien_trier_statut|attribut_html:>">#</span></th> 9 <th class='titre'><:info_titre:></th> 10 <th class='auteur'><:auteur:></th> 11 <th class='date'><:date:></th> 12 <th class='id'><:info_numero_abbreviation:></th> 13 </tr> 14 </thead> 15 <tbody> 16 16 17 18 19 20 21 22 23 24