Changeset 122284 in spip-zone


Ignore:
Timestamp:
Feb 8, 2020, 2:43:30 PM (2 weeks ago)
Author:
Cerdic
Message:

Retablir une configuration du plugin agenda un peu comprehensible
+ quand on ajoute une configuration c'est pas si dur de mettre une case a cocher + un input plutot qu'un seul input avec une explication a rallonge incomprehensible (aka on a assez du plugin menu dans le genre, pas la peine d'exporter le modele)
+ mise a jour du cron d'effacement : pas la peine de le lancer si la config est pas activee

Location:
_plugins_/agenda/trunk
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/agenda/trunk

    • Property subgit:lock:0384d4a8e3bf9cda774760008c755c4dd49506a0 deleted
    • Property subgit:lock:686aa7deaa00ac3a9fb9db7e8ac7b693c839a81f set to 2020-02-08T15:56:22.417
  • _plugins_/agenda/trunk/agenda_pipelines.php

    r122271 r122284  
    383383
    384384/**
    385  * Effacer regulièrement les evenements de l'agenda
    386  * en attendant qu'on soit en full spip 3.0 et qu'on ait droit à la balise genie
    387 */
     385 * Effacer regulièrement les evenements de l'agenda si l'option est activee
     386 * @param array $flux
     387 * @return array
     388 */
    388389function agenda_taches_generales_cron($flux) {
    389         $flux['agenda_effacer_evenements_passes'] = 24*3600;
    390         return $flux;
    391 }
     390        include_spip('inc/config');
     391        if (lire_config('agenda/effacer_evenements_passes','')) {
     392                $flux['agenda_effacer_evenements_passes'] = 24*3600;
     393        }
     394
     395        return $flux;
     396}
  • _plugins_/agenda/trunk/formulaires/configurer_agenda.html

    r122271 r122284  
    99                #ACTION_FORMULAIRE{#ENV{action}}
    1010                #SET{fl,configureragenda}
    11                                 <ul class="editer-groupe">
     11                <ul class="editer-groupe">
     12                        #SET{name,synchro_statut}#SET{obli,''}#SET{defaut,1}#SET{erreurs,#ENV**{erreurs}|table_valeur{#GET{name}}}
     13                        <li class="editer pleine_largeur editer_[(#GET{name})][ (#GET{obli})][ (#GET{erreurs}|oui)erreur]">[
     14                                <span class='erreur_message'>(#GET{erreurs})</span>
     15                                ]
     16                                <input type="hidden" name="#GET{name}" value="0" />
     17                                #SET{val,1}
     18                                <div class="choix">
     19                                        <input type="checkbox" name="#GET{name}" class="checkbox" id="#GET{name}_#GET{val}" value="#GET{val}"[(#GET{val}|=={#ENV{#GET{name},#GET{defaut}}}|oui)checked="checked"] />
     20                                        <label for="#GET{name}_#GET{val}">[(#GET{fl}|concat{':label_',#GET{name},'_',#GET{val}}|_T)]</label>
     21                                </div>
     22                        </li>
     23                        #SET{name,filtres_statut}#SET{obli,''}#SET{erreurs,#ENV**{erreurs}|table_valeur{#GET{name}}}
     24                        <li class="editer pleine_largeur editer_[(#GET{name})][ (#GET{obli})][ (#GET{erreurs}|oui)erreur]">[
     25                                <span class='erreur_message'>(#GET{erreurs})</span>
     26                                ]
     27                                #SET{val,1}
     28                                <div class="choix">
     29                                        <input type="checkbox" name="#GET{name}" class="checkbox" id="#GET{name}_#GET{val}" value="#GET{val}"[(#GET{val}|=={#ENV{#GET{name},#GET{defaut}}}|oui)checked="checked"] />
     30                                        <label for="#GET{name}_#GET{val}">[(#GET{fl}|concat{':label_',#GET{name},'_',#GET{val}}|_T)]</label>
     31                                </div>
     32                        </li>
     33                        #SET{name,effacer_evenements_passes}#SET{obli,''}#SET{defaut,0}#SET{erreurs,#ENV**{erreurs}|table_valeur{#GET{name}}}
     34                        <li class="editer pleine_largeur editer_[(#GET{name})][ (#GET{obli})][ (#GET{erreurs}|oui)erreur]">[
     35                                <span class='erreur_message'>(#GET{erreurs})</span>
     36                                ]
     37                                <input type="hidden" name="#GET{name}" value="0" />
     38                                #SET{val,1}
     39                                <div class="choix">
     40                                        <input type="checkbox" name="#GET{name}" class="checkbox" id="#GET{name}_#GET{val}" value="#GET{val}"[(#GET{val}|=={#ENV{#GET{name},#GET{defaut}}}|oui)checked="checked"] />
     41                                        <label for="#GET{name}_#GET{val}"><:configureragenda:legend_nettoyage_agenda:> ([(#GET{fl}|concat{':label_',#GET{name}}|_T)])</label>
     42                                        <ul class="editer-groupe editer-suite">
     43                                                #SET{name,delai_effacer_evenements_passes}#SET{obli,''}#SET{defaut,365}#SET{erreurs,#ENV**{erreurs}|table_valeur{#GET{name}}}
     44                                                <li class="editer long_label editer_[(#GET{name})][ (#GET{obli})][ (#GET{erreurs}|oui)erreur]">
     45                                                        <label for="#GET{name}">[(#GET{fl}|concat{':label_',#GET{name}}|_T)]</label>[
     46                                                        <span class='erreur_message'>(#GET{erreurs})</span>
     47                                                        ]<input type="text" name="#GET{name}" class="text" value="#ENV*{#GET{name},#GET{defaut}}" id="#GET{name}" [(#HTML5|et{#GET{obli}})required='required']/>
     48                                                </li>
     49                                        </ul>
     50                                </div>
     51                        </li>
     52                </ul>
     53                <fieldset>
     54                        <legend><:configureragenda:titre_affichage_agenda_public:></legend>
     55                        <ul class="editer-groupe">
    1256                                <!--EX01-->
    1357                                #SET{name,titre}#SET{obli,''}[(#SET{defaut,<:agenda:titre_sur_l_agenda:>})]#SET{erreurs,#ENV**{erreurs}|table_valeur{#GET{name}}}
    14                                 <li class="fieldset">
     58                                <li class="editer editer_[(#GET{name})][ (#GET{obli})][ (#GET{erreurs}|oui)erreur]">
     59                                        <label for="#GET{name}">[(#GET{fl}|concat{':label_',#GET{name}}|_T)]</label>[
     60                                        <span class='erreur_message'>(#GET{erreurs})</span>
     61                                        ]<input type="text" name="#GET{name}" class="text" value="#ENV*{#GET{name},#GET{defaut}}" id="#GET{name}" [(#HTML5|et{#GET{obli}})required='required']/>
     62                                </li>
     63                                #SET{name,descriptif}#SET{obli,''}#SET{defaut,''}#SET{erreurs,#ENV**{erreurs}|table_valeur{#GET{name}}}
     64                                <li class="editer editer_[(#GET{name})][ (#GET{obli})][ (#GET{erreurs}|oui)erreur]">
     65                                        <label for="#GET{name}">[(#GET{fl}|concat{':label_',#GET{name}}|_T)]</label>[
     66                                        <span class='erreur_message'>(#GET{erreurs})</span>
     67                                        ]<textarea name="#GET{name}" class="textarea">
     68                                                #ENV*{#GET{name},#GET{defaut}}</textarea>
     69                                </li>
     70                                #SET{name,articlepardefaut}#SET{obli,''}[(#SET{defaut,''})]#SET{erreurs,#ENV**{erreurs}|table_valeur{#GET{name}}}
     71                                <li class="editer editer_[(#GET{name})][ (#GET{obli})][ (#GET{erreurs}|oui)erreur]">
     72                                        <label for="#GET{name}">[(#GET{fl}|concat{':label_',#GET{name}}|_T)]</label>[
     73                                        <span class='erreur_message'>(#GET{erreurs})</span>
     74                                        ]<input type="text" name="#GET{name}" class="text" value="#ENV*{#GET{name},#GET{defaut}}" id="#GET{name}" [(#HTML5|et{#GET{obli}})required='required']/>
     75                                </li>
     76                                #SET{name,url_evenement}#SET{obli,''}#SET{defaut,'evenement'}#SET{erreurs,#ENV**{erreurs}|table_valeur{#GET{name}}}
     77                                <li class="editer editer_[(#GET{name})][ (#GET{obli})][ (#GET{erreurs}|oui)erreur]">
     78                                        <label>[(#GET{fl}|concat{':label_',#GET{name}}|_T)]</label>[
     79                                        <span class='erreur_message'>(#GET{erreurs})</span>
     80                                        ]
     81                                        #SET{val,evenement}
     82                                        <div class="choix">
     83                                                <input type="radio" name="#GET{name}" class="radio" id="#GET{name}_#GET{val}" value="#GET{val}"[(#ENV{#GET{name},#GET{defaut}}|=={#GET{val}}|oui)checked="checked"] />
     84                                                <label for="#GET{name}_#GET{val}">[(#GET{fl}|concat{':label_',#GET{name},'_',#GET{val}}|_T)]</label>
     85                                        </div>
     86                                        #SET{val,article}
     87                                        <div class="choix">
     88                                                <input type="radio" name="#GET{name}" class="radio" id="#GET{name}_#GET{val}" value="#GET{val}"[(#ENV{#GET{name},#GET{defaut}}|=={#GET{val}}|oui)checked="checked"] />
     89                                                <label for="#GET{name}_#GET{val}">[(#GET{fl}|concat{':label_',#GET{name},'_',#GET{val}}|_T)]</label>
     90                                        </div>
     91                                </li>
     92                                [(#VAL{_AGENDA_INSERT_HEAD_CSS}|defined|non)
     93                                #SET{name,insert_head_css}#SET{obli,''}#SET{defaut,1}#SET{erreurs,#ENV**{erreurs}|table_valeur{#GET{name}}}
     94                                <li class="editer editer_[(#GET{name})][ (#GET{obli})][ (#GET{erreurs}|oui)erreur]">[
     95                                        <span class='erreur_message'>(#GET{erreurs})</span>
     96                                        ]
     97                                        <input type="hidden" name="#GET{name}" value="0" />
     98                                        #SET{val,1}
     99                                        <div class="choix">
     100                                                <input type="checkbox" name="#GET{name}" class="checkbox" id="#GET{name}_#GET{val}" value="#GET{val}"[(#GET{val}|=={#ENV{#GET{name},#GET{defaut}}}|oui)checked="checked"] />
     101                                                <label for="#GET{name}_#GET{val}">[(#GET{fl}|concat{':label_',#GET{name},'_',#GET{val}}|_T)]</label>
     102                                        </div>
     103                                </li>
     104                                ]
     105                                <li class="fieldset sub-fieldset">
    15106                                        <fieldset>
    16                                                 <legend><:configureragenda:legend_presentation_agenda_public:></legend>
    17                                                 <ul>
     107                                                <legend><:configureragenda:legend_presentation_agenda:></legend>
     108                                                <ul class="editer-groupe">
     109                                                        #SET{name,affichage_debut}#SET{obli,''}#SET{defaut,''}#SET{erreurs,#ENV**{erreurs}|table_valeur{#GET{name}}}
    18110                                                        <li class="editer editer_[(#GET{name})][ (#GET{obli})][ (#GET{erreurs}|oui)erreur]">
    19                                                                 <label for="#GET{name}">[(#GET{fl}|concat{':label_',#GET{name}}|_T)]</label>[
    20                                                                 <span class='erreur_message'>(#GET{erreurs})</span>
    21                                                                 ]<input type="text" name="#GET{name}" class="text" value="#ENV*{#GET{name},#GET{defaut}}" id="#GET{name}" [(#HTML5|et{#GET{obli}})required='required']/>
    22                                                         </li>
    23                                                         #SET{name,descriptif}#SET{obli,''}#SET{defaut,''}#SET{erreurs,#ENV**{erreurs}|table_valeur{#GET{name}}}
    24                                                         <li class="editer editer_[(#GET{name})][ (#GET{obli})][ (#GET{erreurs}|oui)erreur]">
    25                                                                 <label for="#GET{name}">[(#GET{fl}|concat{':label_',#GET{name}}|_T)]</label>[
    26                                                                 <span class='erreur_message'>(#GET{erreurs})</span>
    27                                                                 ]<textarea name="#GET{name}" class="textarea">
    28                                                                         #ENV*{#GET{name},#GET{defaut}}</textarea>
    29                                                         </li>
    30                                                         #SET{name,articlepardefaut}#SET{obli,''}[(#SET{defaut,''})]#SET{erreurs,#ENV**{erreurs}|table_valeur{#GET{name}}}
    31                                                         <li class="editer editer_[(#GET{name})][ (#GET{obli})][ (#GET{erreurs}|oui)erreur]">
    32                                                                 <label for="#GET{name}">[(#GET{fl}|concat{':label_',#GET{name}}|_T)]</label>[
    33                                                                 <span class='erreur_message'>(#GET{erreurs})</span>
    34                                                                 ]<input type="text" name="#GET{name}" class="text" value="#ENV*{#GET{name},#GET{defaut}}" id="#GET{name}" [(#HTML5|et{#GET{obli}})required='required']/>
    35                                                         </li>
    36                                                         #SET{name,url_evenement}#SET{obli,''}#SET{defaut,'evenement'}#SET{erreurs,#ENV**{erreurs}|table_valeur{#GET{name}}}
    37                                                         <li class="editer editer_[(#GET{name})][ (#GET{obli})][ (#GET{erreurs}|oui)erreur]">
    38                                                                 <label>[(#GET{fl}|concat{':label_',#GET{name}}|_T)]</label>[
    39                                                                 <span class='erreur_message'>(#GET{erreurs})</span>
    40                                                                 ]
    41                                                                 #SET{val,evenement}
    42                                                                 <div class="choix">
    43                                                                         <input type="radio" name="#GET{name}" class="radio" id="#GET{name}_#GET{val}" value="#GET{val}"[(#ENV{#GET{name},#GET{defaut}}|=={#GET{val}}|oui)checked="checked"] />
    44                                                                         <label for="#GET{name}_#GET{val}">[(#GET{fl}|concat{':label_',#GET{name},'_',#GET{val}}|_T)]</label>
    45                                                                 </div>
    46                                                                 #SET{val,article}
    47                                                                 <div class="choix">
    48                                                                         <input type="radio" name="#GET{name}" class="radio" id="#GET{name}_#GET{val}" value="#GET{val}"[(#ENV{#GET{name},#GET{defaut}}|=={#GET{val}}|oui)checked="checked"] />
    49                                                                         <label for="#GET{name}_#GET{val}">[(#GET{fl}|concat{':label_',#GET{name},'_',#GET{val}}|_T)]</label>
    50                                                                 </div>
    51                                                         </li>
    52                                                         [(#VAL{_AGENDA_INSERT_HEAD_CSS}|defined|non)
    53                                                         #SET{name,insert_head_css}#SET{obli,''}#SET{defaut,1}#SET{erreurs,#ENV**{erreurs}|table_valeur{#GET{name}}}
    54                                                         <li class="editer editer_[(#GET{name})][ (#GET{obli})][ (#GET{erreurs}|oui)erreur]">[
    55                                                                 <span class='erreur_message'>(#GET{erreurs})</span>
    56                                                                 ]
    57                                                                 <input type="hidden" name="#GET{name}" value="0" />
    58                                                                 #SET{val,1}
    59                                                                 <div class="choix">
    60                                                                         <input type="checkbox" name="#GET{name}" class="checkbox" id="#GET{name}_#GET{val}" value="#GET{val}"[(#GET{val}|=={#ENV{#GET{name},#GET{defaut}}}|oui)checked="checked"] />
    61                                                                         <label for="#GET{name}_#GET{val}">[(#GET{fl}|concat{':label_',#GET{name},'_',#GET{val}}|_T)]</label>
    62                                                                 </div>
    63                                                         </li>
    64                                                         ]
    65                                                         #SET{name,affichage_debut}#SET{obli,''}#SET{defaut,''}#SET{erreurs,#ENV**{erreurs}|table_valeur{#GET{name}}}
    66                                                         <li class="editer long_label editer_[(#GET{name})][ (#GET{obli})][ (#GET{erreurs}|oui)erreur]">
    67111                                                                <label for="#GET{name}">[(#GET{fl}|concat{':label_',#GET{name}}|_T)]</label>[
    68112                                                                <span class='erreur_message'>(#GET{erreurs})</span>
     
    102146                                        </fieldset>
    103147                                </li>
    104                                 <li class="fieldset">
    105                                         <fieldset>
    106                                                 <legend><:configureragenda:legend_presentation_agenda:></legend>
    107                                                 <ul>
    108                                                         #SET{name,synchro_statut}#SET{obli,''}#SET{defaut,1}#SET{erreurs,#ENV**{erreurs}|table_valeur{#GET{name}}}
    109                                                         <li class="editer editer_[(#GET{name})][ (#GET{obli})][ (#GET{erreurs}|oui)erreur]">[
    110                                                                 <span class='erreur_message'>(#GET{erreurs})</span>
    111                                                                 ]
    112                                                                 <input type="hidden" name="#GET{name}" value="0" />
    113                                                                 #SET{val,1}
    114                                                                 <div class="choix">
    115                                                                         <input type="checkbox" name="#GET{name}" class="checkbox" id="#GET{name}_#GET{val}" value="#GET{val}"[(#GET{val}|=={#ENV{#GET{name},#GET{defaut}}}|oui)checked="checked"] />
    116                                                                         <label for="#GET{name}_#GET{val}">[(#GET{fl}|concat{':label_',#GET{name},'_',#GET{val}}|_T)]</label>
    117                                                                 </div>
    118                                                         </li>
    119                                                         #SET{name,filtres_statut}#SET{obli,''}#SET{erreurs,#ENV**{erreurs}|table_valeur{#GET{name}}}
    120                                                         <li class="editer editer_[(#GET{name})][ (#GET{obli})][ (#GET{erreurs}|oui)erreur]">[
    121                                                                 <span class='erreur_message'>(#GET{erreurs})</span>
    122                                                                 ]
    123                                                                 #SET{val,1}
    124                                                                 <div class="choix">
    125                                                                         <input type="checkbox" name="#GET{name}" class="checkbox" id="#GET{name}_#GET{val}" value="#GET{val}"[(#GET{val}|=={#ENV{#GET{name},#GET{defaut}}}|oui)checked="checked"] />
    126                                                                         <label for="#GET{name}_#GET{val}">[(#GET{fl}|concat{':label_',#GET{name},'_',#GET{val}}|_T)]</label>
    127                                                                 </div>
    128                                                         </li>
    129                                                 </ul>
    130                                         </fieldset>
    131                                 </li>
    132                                 <li class="fieldset">
    133                                         <fieldset>
    134                                                 <legend><:configureragenda:legend_nettoyage_agenda:></legend>
    135                                                 <ul>
    136                                                         #SET{name,effacer_evenements_passes}#SET{obli,''}[(#SET{defaut,''})]#SET{erreurs,#ENV**{erreurs}|table_valeur{#GET{name}}}
    137                                                         <li class="editer editer_[(#GET{name})][ (#GET{obli})][ (#GET{erreurs}|oui)erreur]">
    138                                                                 <label for="#GET{name}">[(#GET{fl}|concat{':label_',#GET{name}}|_T)]</label>[
    139                                                                 <span class='erreur_message'>(#GET{erreurs})</span>
    140                                                                 ]
    141                                                                 <p class="explication">[(#GET{fl}|concat{':explication_',#GET{name}}|_T)]</p>
    142                                                                 <input type="text" name="#GET{name}" class="text" value="#ENV*{#GET{name},#GET{defaut}}" id="#GET{name}" [(#HTML5|et{#GET{obli}})required='required']/>
    143                                                         </li>
    144                                                 </ul>
    145                                         </fieldset>
    146                                 </li>
     148
    147149                        </ul>
     150                </fieldset>
    148151
    149152          [(#REM) ajouter les saisies supplémentaires : extra et autre, à cet endroit ]
     
    154157        </div></form>
    155158</div>
     159<style>
     160        .sub-fieldset {
     161                margin-left: 10em !important;
     162        }
     163        .choix .editer-suite {
     164                margin-left: 8.5em !important;
     165                display: none;
     166        }
     167        input.checkbox:checked+label+.editer-suite {
     168                display: block !important;
     169        }
     170</style>
  • _plugins_/agenda/trunk/genie/agenda_effacer_evenements_passes.php

    r118309 r122284  
    1111**/
    1212function genie_agenda_effacer_evenements_passes($t) {
     13        include_spip('inc/config');
    1314        // Est-ce qu'il faut effacer des choses
    14         $config = intval(lire_config('agenda/effacer_evenements_passes'));
    15         if ($config < 1) {
    16                 return '';
     15        if (!lire_config('agenda/effacer_evenements_passes','')
     16          or ($delay = intval(lire_config('agenda/delai_effacer_evenements_passes')))<1
     17          ) {
     18                return 1;
    1719        }
    1820
    1921        // Rechercher tous les évènements passés
    20         $res = sql_select('id_evenement, date_fin', 'spip_evenements', "date_fin < NOW() - INTERVAL $config DAY");
     22        $date_before = affdate('Y-m-d H:i:s', strtotime("-{$delay} days"));
     23        $res = sql_select('id_evenement, date_fin', 'spip_evenements', 'date_fin<' . sql_quote($date_before));
    2124        while ($row = sql_fetch($res)) {
    2225                $id_evenement = $row['id_evenement'];
     
    2427
    2528                // Rechercher la première occurence d'une répetition de cet événement qui ne soit pas encore passée
    26                 $premier_occurence_repetition = sql_getfetsel('id_evenement', 'spip_evenements', "date_fin >= NOW() - INTERVAL $config DAY AND id_evenement_source = $id_evenement",'','date_debut ASC', '0,1');
     29                $premier_occurence_repetition = sql_getfetsel('id_evenement', 'spip_evenements', 'date_fin>=' .sql_quote($date_before). 'AND id_evenement_source='.intval($id_evenement),'','date_debut ASC', '0,1');
    2730                if ($premier_occurence_repetition) {
    28                         sql_updateq('spip_evenements', array('id_evenement_source' => $premier_occurence_repetition), 'id_evenement_source='.$id_evenement);
    29                         sql_updateq('spip_evenements', array('id_evenement_source' => ''), 'id_evenement='.$premier_occurence_repetition);
     31                        sql_updateq('spip_evenements', array('id_evenement_source' => $premier_occurence_repetition), 'id_evenement_source='.intval($id_evenement));
     32                        sql_updateq('spip_evenements', array('id_evenement_source' => ''), 'id_evenement='.intval($premier_occurence_repetition));
    3033                        spip_log("Répetition de l'évènement $id_evenement remplacées par des répetitions de l'évènement $premier_occurence_repetition, plus récent", 'agenda'._LOG_INFO_IMPORTANTE);
    3134                }
    32                 sql_delete('spip_evenements', 'id_evenement='.$id_evenement);
    33                 spip_log("Effacement de l'évènement $id_evenement passés depuis plus de $config jours (date de fin : $date_fin)", 'agenda'._LOG_INFO_IMPORTANTE);
     35                sql_delete('spip_evenements', 'id_evenement='.intval($id_evenement));
     36                spip_log("Effacement de l'évènement $id_evenement passés depuis plus de $delay jours (date de fin : $date_fin)", 'agenda'._LOG_INFO_IMPORTANTE);
    3437        }
     38
     39        return 1;
    3540}
  • _plugins_/agenda/trunk/lang/configureragenda_fr.php

    r122283 r122284  
    2525        'label_descriptif' => 'Descriptif',
    2626        'label_effacer_evenements_passes' => 'Effacer les évènement passés',
     27        'label_delai_effacer_evenements_passes' => 'Délai avant effacement (jours)',
    2728        'label_filtres_statut_1' => 'Proposer les filtres de statut',
    2829        'label_insert_head_css_1' => 'Insérer automatiquement les styles par défaut de l’agenda',
Note: See TracChangeset for help on using the changeset viewer.