Changeset 107166 in spip-zone


Ignore:
Timestamp:
Oct 25, 2017, 5:15:09 PM (3 years ago)
Author:
chankalan@…
Message:

version 3.0.0 avec déboguage et des options en + :

  • séparer id_auteur et adresses email en deux champs distincts (déboguage radical)
  • ajout du choix d'alerter les auteurs des articles, systématiquement
  • ajout du choix de la fréquence de relance des alertes
  • champs_extras dans un fieldset (+ ou - abouti)
  • explications détaillées dans le formulaire

on passe en test

Location:
_plugins_/activite_editoriale/trunk
Files:
6 added
1 deleted
11 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/activite_editoriale/trunk/activite_editoriale_administrations.php

    r61500 r107166  
    66
    77function activite_editoriale_upgrade($nom_meta_base_version,$version_cible) {
    8   $maj = array();
    9   cextras_api_upgrade(activite_editoriale_declarer_champs_extras(), $maj['create']);   
    10   include_spip('base/upgrade');
    11   maj_plugin($nom_meta_base_version, $version_cible, $maj);
     8        $maj = array();
     9        cextras_api_upgrade(activite_editoriale_declarer_champs_extras(), $maj['create']);
     10        cextras_api_upgrade(activite_editoriale_declarer_champs_extras(), $maj['1.0.0']);
     11        include_spip('base/upgrade');
     12        maj_plugin($nom_meta_base_version, $version_cible, $maj);
    1213}
     14
    1315function activite_editoriale_vider_tables($nom_meta_base_version) {
    14   cextras_api_vider_tables(activite_editoriale_declarer_champs_extras());
    15   effacer_meta($nom_meta_base_version);
     16        cextras_api_vider_tables(activite_editoriale_declarer_champs_extras());
     17        effacer_meta($nom_meta_base_version);
    1618}
    17 ?>
  • _plugins_/activite_editoriale/trunk/activite_editoriale_fonctions.php

    r61499 r107166  
    11<?php
    22if (!defined("_ECRIRE_INC_VERSION")) return;
     3
     4// obtenir l'age de la rubrique en nombre de jour
    35function age_rubrique($date_str) {
    4         /*
    5         $date = new DateTime();
    6         $age = $date->diff(new DateTime($date_str));
    7         return $age->d;
    8         */
    96        return intval((time() - strtotime($date_str)) / (60 * 60 * 24));
    107}
    11 
    12 ?>
  • _plugins_/activite_editoriale/trunk/activite_editoriale_pipelines.php

    r61499 r107166  
    11<?php
    22if (!defined("_ECRIRE_INC_VERSION")) return;
     3
    34function activite_editoriale_taches_generales_cron($taches_generales) {
    45        $taches_generales['activite_editoriale_alerte'] = 24*3600; // tous les jours
    5         return $taches_generales;
     6        return $taches_generales;
    67}
  • _plugins_/activite_editoriale/trunk/base/activite_editoriale.php

    r75937 r107166  
    22if (!defined("_ECRIRE_INC_VERSION")) return;
    33
    4 function activite_editoriale_declarer_champs_extras($champs = array()){
    5         $champs['spip_rubriques']['extras_delai']=array(
    6                 'saisie'=>'input',
    7                 'options'=>array(
    8                         'nom'=>'extras_delai',
    9                         'sql' => "tinytext NOT NULL DEFAULT ''", // declaration sql
    10                         'rechercher'=>false,
    11             'label' => _T('activite_editoriale:delai'), // chaine de langue 'mon_plug:mon_label'
    12             'explication' => _T('activite_editoriale:delai_precisions'), // precisions sur le champ
    13             'obligatoire' => false, // 'true', 'false' ou ''
    14             )
    15                         );
    16         $champs['spip_rubriques']['extras_identifiants'] = array(
    17         'saisie'=>'input',
    18                 'options'=>array(
    19                         'nom'=>'extras_identifiants',
    20                         'rechercher'=>false,
    21             'label' => _T('activite_editoriale:identifiants'), // chaine de langue 'mon_plug:mon_label'
    22             'explication' => _T('activite_editoriale:identifiants_precisions'), // precisions sur le champ
    23             'obligatoire' => false, // 'true', 'false' ou ''
    24                         'sql' => "tinytext NOT NULL DEFAULT ''") // declaration sql
     4function activite_editoriale_declarer_champs_extras($champs = array()) {
     5        $champs['spip_rubriques']['activite_editoriale'] = array(
     6                'saisie' => 'fieldset',
     7                        'options' => array(
     8                        'nom' => _T('activite_editoriale:activite_editoriale'),
     9                        'label' => _T('activite_editoriale:activite_editoriale_label')
     10                ),
     11                'saisies' => array(
     12                        'extras_delai' => array(
     13                                'saisie' => 'input',
     14                                'options' => array(
     15                                        'nom'=>'extras_delai',
     16                                        'sql' => "tinytext NOT NULL DEFAULT ''",
     17                                        'rechercher' => false,
     18                                        'label' => _T('activite_editoriale:extras_delai_label'),
     19                                        'explication' => _T('activite_editoriale:extras_delai_explications'),
     20                                        'obligatoire' => false, // 'true', 'false' ou ''
     21                        )),
     22                        'extras_identifiants' => array(
     23                                'saisie' => 'input',
     24                                'options' => array(
     25                                        'nom'=>'extras_identifiants',
     26                                        'sql' => "tinytext NOT NULL DEFAULT ''",
     27                                        'rechercher' => false,
     28                                        'label' => _T('activite_editoriale:extras_identifiants_label'),
     29                                        'explication' => _T('activite_editoriale:extras_identifiants_explications'),
     30                                        'obligatoire' => false, // 'true', 'false' ou ''
     31                        )),
     32                        'extras_emails' => array(
     33                                'saisie' => 'input',
     34                                'options' => array(
     35                                        'nom'=>'extras_emails',
     36                                        'sql' => "tinytext NOT NULL DEFAULT ''",
     37                                        'rechercher' => false,
     38                                        'label' => _T('activite_editoriale:extras_emails_label'),
     39                                        'explication' => _T('activite_editoriale:extras_emails_explications'),
     40                                        'obligatoire' => false, // 'true', 'false' ou ''
     41                        )),
     42                        'extras_frequence' => array(
     43                                'saisie' => 'input',
     44                                'options' => array(
     45                                        'nom'=>'extras_frequence',
     46                                        'sql' => "tinytext NOT NULL DEFAULT ''",
     47                                        'rechercher' => false,
     48                                        'label' => _T('activite_editoriale:extras_frequence_label'),
     49                                        'explication' => _T('activite_editoriale:extras_frequence_explications'),
     50                                        'obligatoire' => false, // 'true', 'false' ou ''
     51                        ))
     52                )
    2553        );
    2654        return $champs;
    2755}
    28 
    29 ?>
  • _plugins_/activite_editoriale/trunk/formulaires/configurer_activite_editoriale.html

    r61593 r107166  
    11<div class="formulaire_spip formulaire_configurer">
    22        <form action="#SELF" method="post">
    3     #ACTION_FORMULAIRE{#ENV{action}}
    4        
    5         <ul>
    6             <li>
    7                 <label for="champ"><:activite_editoriale:cfg_champ:></label>
    8                 <select name="champ" id="champ">
    9                     <option value="maj_rubrique" [(#ENV{champ}|=={maj_rubrique}|oui) selected="selected"]><:activite_editoriale:cfg_maj_rubrique:></option>
    10                     <option value="date_modif_branche" [(#ENV{champ}|=={date_modif_branche}|oui) selected="selected"]><:activite_editoriale:cfg_date_modif_branche:></option>
    11                     <option value="date_modif_rubrique" [(#ENV{champ}|=={date_modif_rubrique}|oui) selected="selected"]><:activite_editoriale:cfg_date_modif_rubrique:></option>
    12                    
    13                 </select>
    14             </li>
    15         </ul>
    16     <p class="boutons">
    17         <input type='submit' class='submit' value='<:bouton_enregistrer:>' />
    18         </p>
     3                #ACTION_FORMULAIRE{#ENV{action}}
     4                [<p class="reponse_formulaire reponse_formulaire_ok">(#ENV*{message_ok})</p>]
     5                #SET{ae,activite_editoriale}
     6                <ul class="editer-groupe">
     7                        #SET{name,champ}#SET{obli,'obligatoire'}#SET{erreurs,#ENV**{erreurs}|table_valeur{#GET{name}}}
     8                        <li class="editer editer_[(#GET{name})][ (#GET{obli})][ (#GET{erreurs}|oui)erreur]">
     9                                <label for="#GET{name}">[(#GET{ae}|concat{':label_cfg_',#GET{name}}|_T)]</label>[
     10                                <span class='erreur_message'>(#GET{erreurs})</span>
     11                                ]<select name="#GET{name}" id="#GET{name}">
     12                                        <option value="maj_rubrique" [(#ENV{champ}|=={maj_rubrique}|oui) selected="selected"]><:activite_editoriale:cfg_maj_rubrique:></option>
     13                                        <option value="date_modif_branche" [(#ENV{champ}|=={date_modif_branche}|oui) selected="selected"]><:activite_editoriale:cfg_date_modif_branche:></option>
     14                                        <option value="date_modif_rubrique" [(#ENV{champ}|=={date_modif_rubrique}|oui) selected="selected"]><:activite_editoriale:cfg_date_modif_rubrique:></option>
     15                                </select>
     16                                [<p class="explication">(#GET{ae}|concat{':explications_',#GET{name}}|_T)</p>]
     17                        </li>
     18                        #SET{name,alerter_auteur}#SET{obli,''}#SET{defaut,non}#SET{erreurs,#ENV**{erreurs}|table_valeur{#GET{name}}}
     19                        <li class="editer editer_[(#GET{name})][ (#GET{obli})][ (#GET{erreurs}|oui)erreur]">
     20                                <label for="#GET{name}">[(#GET{ae}|concat{':label_',#GET{name}}|_T)]</label>[
     21                                <span class='erreur_message'>(#GET{erreurs})</span>
     22                                ]<label for="#GET{name}">[(#GET{ae}|concat{':label_',#GET{name}}|_T)]</label>
     23                                <div class="choix">
     24                                        <input type="checkbox" name="#GET{name}" class="checkbox" value="oui" id="#GET{name}"[(#ENV{#GET{name}}|=={oui}|oui)checked="checked"] />
     25                                        <label for="#GET{name}">[(#GET{ae}|concat{':label_oui_',#GET{name}}|_T)]</label>
     26                                </div>
     27                                [<p class="explication">(#GET{ae}|concat{':explications_',#GET{name}}|_T)</p>]
     28                        </li>
     29                </ul>
     30                <p class="boutons"><input type='submit' class='submit' value='<:bouton_enregistrer:>' /></p>
    1931        </form>
    2032</div>
  • _plugins_/activite_editoriale/trunk/genie/activite_editoriale_alerte.php

    r104907 r107166  
    11<?php
     2/**
     3 * Plugin Activite Editoriale
     4 */
     5if (!defined('_ECRIRE_INC_VERSION')) return;
    26
    37function genie_activite_editoriale_alerte_dist() {
    4     if (function_exists('lire_config')){
    5         $config_champ = lire_config('activite_editoriale/champ','maj_rubrique');
    6     }
    7    
    8     switch ($config_champ){
    9         case 'maj_rubrique':
    10             activite_tester_maj_rubrique();
    11             break;
    12         case 'date_modif_branche':
    13             activite_tester_date_modif_branche();
    14             break;
    15         case 'date_modif_rubrique':
    16             activite_tester_date_modif_rubrique();
    17             break;
    18         }   
     8        if (function_exists('lire_config')) {
     9                $config_champ = lire_config('activite_editoriale/champ','maj_rubrique');
     10        }
     11        switch ($config_champ) {
     12                case 'maj_rubrique':
     13                        activite_tester_maj_rubrique();
     14                        break;
     15                case 'date_modif_branche':
     16                        activite_tester_date_modif_branche($alerter_auteur);
     17                        break;
     18                case 'date_modif_rubrique':
     19                        activite_tester_date_modif_rubrique($alerter_auteur);
     20                        break;
     21        }
    1922        return 0;
    2023}
    2124
    22 function activite_tester_maj_rubrique(){
    23     if ($rubLists = sql_select("*", "spip_rubriques", "`extras_delai` != '' and TO_DAYS(NOW()) - TO_DAYS(maj) >= `extras_delai`")) {
     25function activite_tester_maj_rubrique() {
     26        if ($rubLists = sql_select("*", "spip_rubriques", "`extras_delai` != '' and TO_DAYS(NOW()) - TO_DAYS(maj) >= `extras_delai`")) {
    2427                while($list = sql_fetch($rubLists)) {
    25                   activite_editoriale_envoyer_mail($list);
     28                        activite_editoriale_envoyer_mail($list);
    2629                }
    27     }
     30        }
    2831}
    2932
    30 function activite_tester_date_modif_branche(){
    31     if ($rubLists = sql_select(array('id_rubrique','extras_delai','extras_identifiants','titre'), "spip_rubriques", "`extras_delai` != ''")){
    32         include_spip('inc/utils');
    33         while($list = sql_fetch($rubLists)){
    34            
    35             $date_modif = trim(recuperer_fond('inclure/maj_rubrique',array('id_rubrique'=>$list['id_rubrique'])));
    36            
    37                 if (age_rubrique($date_modif)>$list['extras_delai']){
    38                     $list['maj'] = $date_modif;
    39                     activite_editoriale_envoyer_mail($list);
    40                     //echo "s;";
    41                 }
    42         }
    43    
    44     }
     33function activite_tester_date_modif_branche() {
     34        if ($rubLists = sql_select(array('id_rubrique','extras_delai','extras_identifiants','extras_emails','titre','extras_frequence'), "spip_rubriques", "`extras_delai` != ''")) {
     35                include_spip('inc/utils');
     36                while($list = sql_fetch($rubLists)) {
     37                        $date_modif = trim(recuperer_fond('inclure/maj_branche',array('id_rubrique'=>$list['id_rubrique'])));
     38                        $age = age_rubrique($date_modif);
     39                        $debutfrequence = ($age + $list['extras_delai']);
     40                        $frequence = $list['extras_frequence'];
     41                        // on teste les dates + la frequence
     42                        if ( $list['extras_frequence'] != '' ) {
     43                                if ( ($age > $list['extras_delai']) && ($debutfrequence % $frequence === 0) ) {
     44                                        $list['maj'] = $date_modif;
     45                                        activite_editoriale_envoyer_mail($list,$alerter_auteur);
     46                                        spip_log('date modif branche', 'activite_editoriale');
     47                                }
     48                        } else {
     49                                if ( $age > $list['extras_delai'] ) {
     50                                        $list['maj'] = $date_modif;
     51                                        activite_editoriale_envoyer_mail($list,$alerter_auteur);
     52                                        spip_log('date modif branche', 'activite_editoriale');
     53                                }
     54                        }
     55                }
     56        }
    4557}
    4658
    47 function activite_tester_date_modif_rubrique(){
    48     if ($rubLists = sql_select(array('id_rubrique','extras_delai','extras_identifiants','titre'), "spip_rubriques", "`extras_delai` != ''")){
    49         include_spip('inc/utils');
    50         while($list = sql_fetch($rubLists)){
    51            
    52             $date_modif = trim(recuperer_fond('inclure/maj_rubrique',array('id_rubrique'=>$list['id_rubrique'])));
    53 
    54                 if (age_rubrique($date_modif)>$list['extras_delai']){
    55                     $list['maj'] = $date_modif;
    56                     activite_editoriale_envoyer_mail($list);
    57 
    58                 }
    59         }
    60    
    61     }
     59function activite_tester_date_modif_rubrique() {
     60        if ($rubLists = sql_select(array('id_rubrique','extras_delai','extras_identifiants','extras_emails','titre','extras_frequence'), "spip_rubriques", "`extras_delai` != ''")) {
     61                include_spip('inc/utils');
     62                while($list = sql_fetch($rubLists)) {
     63                        $date_modif = trim(recuperer_fond('inclure/maj_rubrique',array('id_rubrique' => $list['id_rubrique'])));
     64                        $age = age_rubrique($date_modif);
     65                        $debutfrequence = ($age + $list['extras_delai']);
     66                        $frequence = $list['extras_frequence'];
     67                        // on teste les dates + la frequence
     68                        if ( $list['extras_frequence'] != '' ) {
     69                                if ( ($age > $list['extras_delai']) && ($debutfrequence % $frequence === 0) ) {
     70                                        $list['maj'] = $date_modif;
     71                                        activite_editoriale_envoyer_mail($list,$alerter_auteur);
     72                                                spip_log('date modif rubrique', 'activite_editoriale');
     73                                }
     74                        } else {
     75                                if ( $age > $list['extras_delai'] ) {
     76                                        $list['maj'] = $date_modif;
     77                                        activite_editoriale_envoyer_mail($list,$alerter_auteur);
     78                                                spip_log('date modif rubrique', 'activite_editoriale');
     79                                }
     80                        }
     81                }
     82        }
    6283}
    6384
    64 function activite_editoriale_envoyer_mail($list){
     85function activite_editoriale_envoyer_mail($list) {
     86        include_spip('activite_editoriale_fonctions');
     87        $envoyer_mail = charger_fonction('envoyer_mail', 'inc');
     88        $subject = _T('activite_editoriale:rubrique_doit_maj');
     89        $url = $GLOBALS['meta']['adresse_site'].'/ecrire/?exec=rubrique&id_rubrique='.$list['id_rubrique'];
     90        $body = _T('activite_editoriale:titre_message')."\n\n";
     91        $body = $body._T('activite_editoriale:prevenir_responsable',array('titre'=>$list['titre']))."\n\n";
     92        $body = $body._T('activite_editoriale:rubrique_pas_maj',array('jours' => age_rubrique($list['maj'])))."\n\n";
     93        $body = $body.$url;
    6594       
    66     $envoyer_mail = charger_fonction('envoyer_mail', 'inc');
    67     $subject = _T('activite_editoriale:rubrique_doit_maj');
    68     include_spip('activite_editoriale_fonctions');
    69     $url = $GLOBALS['meta']['adresse_site'].'/ecrire/?exec=rubrique&id_rubrique='.$list['id_rubrique'];
    70     $body = _T('activite_editoriale:rubrique_pas_maj',array('titre'=>$list['titre'],'jours'=>age_rubrique($list['maj'])))."\n\n";
    71     $body = $body._T('activite_editoriale:gestionnaire')."\n\n";
    72     $body = $body.$url;
    73    
    74     if ($auteurLists = sql_select("*", "spip_auteurs", "id_auteur in (".$list['extras_identifiants'].")")) {
    75         while($auteurs = sql_fetch($auteurLists)) {
    76             $to = $auteurs['email'];
    77             if ($envoyer_mail($to, $subject, $body)) {
    78                 spip_log("Message envoyé à".$to, "activite_editoriale");
    79             } else {
    80                 spip_log("Message n'a pu être envoyé à ".$to, "activite_editoriale");
    81             }
    82         }
    83     }
     95        if ($auteurLists = sql_select("*", "spip_auteurs", "id_auteur in (".$list['extras_identifiants'].")")) {
     96                while($auteurs = sql_fetch($auteurLists)) {
     97                        $to = $auteurs['email'];
     98                        if ($envoyer_mail($to, $subject, $body)) {
     99                                spip_log("Message envoyé à".$to, "activite_editoriale");
     100                        } else {
     101                                spip_log('Message n\'a pu être envoyé à '.$to, 'activite_editoriale');
     102                        }
     103                }
     104        }
    84105        $to = '';
    85     foreach (explode(',',activite_editoriale_emails($list['extras_identifiants'])) as $to){
    86        
    87         if ($to!=''){
    88                
    89                 if ($envoyer_mail($to, $subject, $body)) {
    90                         spip_log("Message envoyé à".$to, "activite_editoriale");
    91                     } else {
    92                         spip_log("Message n'a pu être envoyé à ".$to, "activite_editoriale");
    93                     }
    94                 }
    95     }
    96 
    97 
     106        foreach (explode(',',$list['extras_emails']) as $to) {
     107                if ($to != '') {
     108                        if ($envoyer_mail($to, $subject, $body)) {
     109                                spip_log('Message envoyé à '.$to, 'activite_editoriale');
     110                        } else {
     111                                spip_log('Message n\'a pu être envoyé à '.$to, 'activite_editoriale');
     112                        }
     113                }
     114        }
     115        // envoyer mail a l'auteur de l'article, systematiquement si configure
     116        if (function_exists('lire_config')) {
     117                $alerter_auteur = lire_config('activite_editoriale/alerter_auteur');
     118                if ($alerter_auteur == 'oui') {
     119                        $auteur = trim(recuperer_fond('inclure/auteurs_article',array('id_rubrique' => $list['id_rubrique'])));
     120                        $to = $auteur;
     121                        if ($to != '') {
     122                                $body = '';
     123                                $body = _T('activite_editoriale:titre_message')."\n\n";
     124                                $body = $body._T('activite_editoriale:prevenir_auteur',array('titre'=>$list['titre']))."\n\n";
     125                                $body = $body._T('activite_editoriale:article_pas_maj',array('jours' => age_rubrique($list['maj'])))."\n\n";
     126                                $body = $body.$url;
     127                                if ($envoyer_mail($to, $subject, $body)) {
     128                                        spip_log('Message envoyé à '.$to, 'activite_editoriale');
     129                                } else {
     130                                        spip_log('Message n\'a pu être envoyé à '.$to, 'activite_editoriale');
     131                                }
     132                        }
     133                }
     134        }
    98135}
    99 
    100 function activite_editoriale_emails($champ){
    101         $champ = ','.str_replace(' ','',$champ).',';
    102         $champ = preg_replace('#,[0-9]*,#',',',$champ);
    103         return $champ;
    104 }
    105 ?>
  • _plugins_/activite_editoriale/trunk/lang/activite_editoriale_fr.php

    r61597 r107166  
    11<?php
    22$GLOBALS[$GLOBALS['idx_lang']] = array(
    3     //A
    4     'activite_editoriale'                       =>'Activité éditoriale',
     3
     4        //A
     5        'activite_editoriale' =>'Activité éditoriale',
     6        'activite_editoriale_label' =>'Activité éditoriale - Paramètres des alertes',
     7        'article_pas_maj' => 'Votre attention est nécessaire, un article dont vous êtes l\'auteur n\'a pas été mis à jour depuis @jours@ jours.',
    58       
    69        //D
    7         'delai'                                                         => 'D&eacute;lai',
    8         'delai_precisions'                                      => '(en nombre de jours)',
    9         'derniere_maj'                                          => 'Dernière MàJ',
    10         'du'                                                            => 'Du ',
    11         'date'                                                          => 'Date',
     10        'delai' => 'Délai',
     11        'derniere_maj' => 'Dernière MàJ',
     12        'du' => 'Du ',
     13        'date' => 'Date',
    1214       
    1315        //E
    14         'editer'                                                        => 'Éditer l\'article',
     16        'editer' => 'Éditer l\'article',
     17        'extras_delai_label' => 'Délai avant alerte',
     18        'extras_delai_explications' => 'À compter d\'une mise à jour, le nombre de jours avant d\'envoyer une alerte.',
     19        'extras_emails_label' => 'Email',
     20        'extras_emails_explications' => 'Les adresses emails auxquelles doivent parvenir les alertes, séparées par des virgules.',
     21        'extras_identifiants_label' => 'Identifiants des auteurs &agrave; alerter',
     22        'extras_identifiants_explications' => 'Séparés par des virgules, par exemple :"1,12"',
     23        'extras_frequence_label' => 'Fréquence de relance de l\'alerte',
     24        'extras_frequence_explications' => 'Si la mise à jour n\'a pas été faite, au bout de combien de jours l\'alerte sera à nouveau envoyée.',
     25        'explications_alerter_auteur' => 'Dans ce cas ne choisissez pas la date de mise à jour de la rubrique, cela interdit de prévenir les auteurs (une rubrique n\'a pas d\'auteur).',
     26        'explications_champ' => '<strong>La date de mise à jour de la rubrique</strong> : elle est évaluée à chaque publication d\'un élément et à chaque modification d\'un élément publié ou de la rubrique elle-même.<br />
     27        <strong>La date de modification des articles (et breves) de la branche</strong> (c\'est aussi la date de première publication).<br />
     28        <strong>La date de modification des articles (et breves) de la rubrique</strong> (c\'est aussi la date de première publication).',
     29        'explications_modifier_rubrique_pour_parametrer' => 'Modifiez la rubrique pour paramétrer les alertes.',
    1530       
    16         //G
    17         'gestionnaire'                                          => 'Vous êtes identifié comme un gestionnaire de la rubrique',
    18 
    19         //I
    20         'identifiants'                                          => 'Identifiants ou email  des auteurs &agrave; alerter',
    21         'identifiants_precisions'                       => '(s&eacute;par&eacute;s par des ",")',
     31        //F
     32        'frequence_de_relance' => 'Fréquence de relance',
    2233       
    2334        //J
    24         'jours'                                                 => 'jour(s)',
    25         'jusqua'                                                        => 'Jusqu\'au',
     35        'jours' => 'jour(s)',
     36        'jusqua' => 'Jusqu\'au',
     37       
     38        //L
     39        'label_alerter_auteur' => 'Alerter les auteurs des articles',
     40        'label_oui_alerter_auteur' => 'oui',
     41        'label_cfg_champ' => 'Quel est la date analysée pour évaluer le délais de mise à jour ?',
    2642       
    2743        //P
     44        'prevenir_responsable' => 'Vous êtes identifié comme responsable de l\'activité éditoriale de la rubrique “ @titre@ ”.',
     45        'prevenir_auteur' => 'Vous êtes identifié comme auteur d\'un article de la rubrique “ @titre@ ”.',
    2846       
    2947        //R
    30         'responsables'                                  => 'Responsables',
    31         'rubriques_a_suivre'                            => 'Rubriques à suivre',
    32         'rubrique_doit_maj'                             => 'Une rubrique doit être mise a jour',
    33         'rubrique_pas_maj'                              => 'Attention, la rubrique “ @titre@ ” n\'a pas été mise à jour depuis @jours@ jours',
    34         'rubriques_pas_a_jour'                          => 'Rubriques n\'ayant pas été mises à jour à temps',
    35         'rubrique'                                                      => 'RUBRIQUE: ',       
     48        'responsables' => 'Responsables',
     49        'rubriques_a_suivre' => 'Rubriques à suivre',
     50        'rubrique_doit_maj' => 'Une rubrique doit être mise a jour',
     51        'rubrique_pas_maj' => 'Votre attention est nécessaire, la rubrique n\'a pas été mise à jour depuis @jours@ jours.',
     52        'rubriques_pas_a_jour' => 'Rubriques n\'ayant pas été mises à jour à temps',
     53        'rubrique'                      => 'RUBRIQUE: ',
     54       
    3655        //S
    37         'secteur'                                                       => 'Secteur:',
     56        'secteur' => 'Secteur:',
    3857       
     58        //T
     59        'titre_message' => 'Ceci est un message automatique.',
    3960       
    4061        //CFG
    41         'cfg'                                           => 'Configurer le plugin Activité éditoriale',
    42         'cfg_champ'                                     => 'Quel est le champ analysé pour savoir la MAJ ?',
    43         'cfg_maj_rubrique'                              => 'Le champ MAJ de la rubrique',
    44         'cfg_date_modif_branche'                        => 'Le champ DATE_MODIF des articles (breves) de la branche',
    45         'cfg_date_modif_rubrique'                       => 'Le champ DATE_MODIF des articles (breves) de la rubrique'
     62        'cfg' => 'Configurer le plugin Activité éditoriale',
     63        'cfg_maj_rubrique' => 'La date de mise à jour de la rubrique',
     64        'cfg_date_modif_branche' => 'La date de modification des articles/breves de la branche',
     65        'cfg_date_modif_rubrique' => 'La date de modification des articles/breves de la rubrique',
    4666       
    47 
    4867);
  • _plugins_/activite_editoriale/trunk/lang/paquet-activite_editoriale_fr.php

    r61497 r107166  
    1616        'activite_editoriale_description' => 'Ce plugin a pour objectif de compléter les fonctionnalités de suivi de l\'activité éditoriale de SPIP.
    1717
    18 Sont déjà proposés :
    19 -* l\'ajout de deux champs aux rubriques pour indiquer un délai en jour au delà duquel elle doivent être alimentées, ainsi que les personnes à prévenir
    20 -* des alertes par e-mail selon ces deux paramètres
    21 -* un tableau de bord présentant les mêmes informations',
     18        La configuration générale du plugin propose de choisir sur quel champ de date s\'appuyer pour déterminer si le délai est dépassé :
     19        -* lorsqu\'on modifie le texte ou le titre de la rubrique : le champ #MAJ de la rubrique.
     20        -* lorsqu\'on modifie les articles de la rubrique : le champ #DATE_MODIF des articles de la rubrique uniquement.
     21        -* lorsqu\'on modifie les articles de la branche : le champ #DATE_MODIF des articles de la branche entière.
     22        On peut aussi choisir de prévenir les auteurs des articles.
     23       
     24        Dans chaque rubrique on peut paramétrer :
     25        -* le délai : en nombre de jour, le délai au-delà duquel une alerte est envoyée.
     26        -* choisir d\'alerter pour chaque article dépassant le délai. Par défaut : une alerte lorsque tous les articles ont dépassé le délai.
     27        -* à qui envoyer les alertes : on renseigne juste le numéro identifiant des auteurs du site, et/ou des courriels.
     28        -* la fréquence de relance de l\'alerte.
     29       
     30        Dans une nouvelle page accessible sous le menu Activité > Activité Éditoriale, un tableau recense les rubriques suivies en séparant les rubriques à jour et les autres.',
     31       
    2232        'activite_editoriale_slogan' => 'Un site, c\'est bien ! Un site à jour, c\'est mieux !',
    2333);
    24 ?>
  • _plugins_/activite_editoriale/trunk/paquet.xml

    r107135 r107166  
    22        prefix="activite_editoriale"
    33        categorie="edition"
    4         version="2.0.5"
    5         etat="stable"
     4        version="3.0.0"
     5        etat="test"
    66        compatibilite="[3.0.0;3.2.*]"
    7         logo="activite_editoriale.png"
    8         schema="0.1"
     7        logo="images/activite_editoriale.png"
     8        schema="1.0.0"
    99        documentation="https://contrib.spip.net/Activite-editoriale"
    1010>       
     
    1515        <auteur lien="http://www.clever-age.com/">Stéphanie Caron de Clever Age</auteur>
    1616        <auteur lien="http://www.maieul.net">Maïeul ROUQUETTE (amélioration)</auteur>
     17        <auteur>Chankalan (évolutions)</auteur>
    1718
    1819        <licence lien="http://www.gnu.org/licenses/gpl-3.0.html">GPL 3</licence>
     
    2324        <necessite nom="cextras" compatibilite="[3.4.1;[" />
    2425
    25         <menu nom="activite_editoriale" titre="activite_editoriale:activite_editoriale" parent="menu_configuration" icone="activite_editoriale.png" />
     26        <menu nom="activite_editoriale" titre="activite_editoriale:activite_editoriale" parent="menu_activite" icone="images/activite_editoriale-16.png" />
    2627</paquet>
  • _plugins_/activite_editoriale/trunk/prive/exec/activite_editoriale.html

    r38549 r107166  
    33
    44<div>
    5 
    6   <h2><:activite_editoriale:rubriques_pas_a_jour:></h2>
     5        <h2><:activite_editoriale:rubriques_pas_a_jour:></h2>
    76        <div class='cadre cadre-liste' style='margin-top: 20px;'>
    8                 <table width='100%' cellpadding='2' cellspacing='0' border='0'>
    9                   <thead>
    10                     <tr>
    11                       <th><:rubrique:></th>
    12                       <th><:activite_editoriale:responsables:></th>
    13                       <th><:activite_editoriale:delai:></th>
    14                       <th><:activite_editoriale:derniere_maj:></th>
    15                     </tr>
    16                   </thead>
    17                   <tbody>
    18               <BOUCLE_rubriques(RUBRIQUES){tout}{par maj}>
    19                 [(#CONFIG{activite_editoriale/champ,maj_rubrique}|=={maj_rubrique}|oui)
    20                 #SET{maj,#MAJ}
    21                 ]
    22                 [(#CONFIG{activite_editoriale/champ,maj_rubrique}|=={date_modif_branche}|oui)
    23                 #SET{maj,#INCLURE{fond=inclure/maj_branche}{id_rubrique}}
    24                 ]
    25                 [(#CONFIG{activite_editoriale/champ,maj_rubrique}|=={date_modif_rubrique}|oui)
    26                 #SET{maj,#INCLURE{fond=inclure/maj_rubrique}{id_rubrique}}
    27                 ]
    28                 [(#EXTRAS_DELAI|!={''}|oui)
    29                    
    30                    
    31                         [(#GET{maj}|age_rubrique|>={#EXTRAS_DELAI}|oui)
    32                         <INCLURE{fond=prive/exec/activite_editoriale_rubrique}{id_rubrique}{maj=#GET{maj}}>
    33                         ]
    34                 ]
    35               </BOUCLE_rubriques>
    36                   </tbody>
    37                 </table>
     7        <table width='100%' cellpadding='2' cellspacing='0' border='0'>
     8                <thead>
     9                        <tr>
     10                                <th><:rubrique:></th>
     11                                <th><:activite_editoriale:responsables:></th>
     12                                <th><:activite_editoriale:delai:></th>
     13                                <th><:activite_editoriale:frequence_de_relance:></th>
     14                                <th><:activite_editoriale:derniere_maj:></th>
     15                        </tr>
     16                </thead>
     17                <tbody>
     18                <BOUCLE_rubriques(RUBRIQUES){tout}{par maj}>
     19                        [(#CONFIG{activite_editoriale/champ,maj_rubrique}|=={maj_rubrique}|oui)
     20                        #SET{maj,#MAJ}
     21                        ]
     22                        [(#CONFIG{activite_editoriale/champ,maj_rubrique}|=={date_modif_branche}|oui)
     23                        #SET{maj,#INCLURE{fond=inclure/maj_branche}{id_rubrique}}
     24                        ]
     25                        [(#CONFIG{activite_editoriale/champ,maj_rubrique}|=={date_modif_rubrique}|oui)
     26                        #SET{maj,#INCLURE{fond=inclure/maj_rubrique}{id_rubrique}}
     27                        ]
     28                        [(#EXTRAS_DELAI|!={''}|oui)
     29                                [(#GET{maj}|age_rubrique|>={#EXTRAS_DELAI}|oui)
     30                                <INCLURE{fond=prive/exec/activite_editoriale_rubrique}{id_rubrique}{maj=#GET{maj}}>
     31                                ]
     32                        ]
     33                </BOUCLE_rubriques>
     34                </tbody>
     35        </table>
    3836        </div>
    3937</div>
    4038
    41     <div>
     39<div>
    4240  <h2><:activite_editoriale:rubriques_a_suivre:></h2>
    4341        <div class='cadre cadre-liste' style='margin-top: 20px;'>
    44                 <table width='100%' cellpadding='2' cellspacing='0' border='0'>
    45                   <thead>
    46                     <tr>
    47                       <th><:rubrique:></th>
    48                       <th><:activite_editoriale:responsables:></th>
    49                       <th><:activite_editoriale:delai:></th>
    50                       <th><:activite_editoriale:derniere_maj:></th>
    51                     </tr>
    52                   </thead>
    53                   <tbody>
    54               <BOUCLE_rubriques2(RUBRIQUES){tout}{par maj}>
    55                 [(#CONFIG{activite_editoriale/champ,maj_rubrique}|=={maj_rubrique}|oui)
    56                 #SET{maj,#MAJ}
    57                 ]
    58                 [(#CONFIG{activite_editoriale/champ,maj_rubrique}|=={date_modif_branche}|oui)
    59                 #SET{maj,#INCLURE{fond=inclure/maj_branche}{id_rubrique}}
    60                 ]
    61                 [(#CONFIG{activite_editoriale/champ,maj_rubrique}|=={date_modif_rubrique}|oui)
    62                 #SET{maj,#INCLURE{fond=inclure/maj_rubrique}{id_rubrique}}
    63                 ]
    64                 [(#EXTRAS_DELAI|!={''}|oui)
    65                    
    66                    
    67                         [(#GET{maj}|age_rubrique|<{#EXTRAS_DELAI}|oui)
    68                         <INCLURE{fond=prive/exec/activite_editoriale_rubrique}{id_rubrique}{maj=#GET{maj}}>
    69                         ]
    70                 ]
    71               </BOUCLE_rubriques2>
    72                   </tbody>
    73                 </table>
     42        <table width='100%' cellpadding='2' cellspacing='0' border='0'>
     43                <thead>
     44                        <tr>
     45                                <th><:rubrique:></th>
     46                                <th><:activite_editoriale:responsables:></th>
     47                                <th><:activite_editoriale:delai:></th>
     48                                <th><:activite_editoriale:frequence_de_relance:></th>
     49                                <th><:activite_editoriale:derniere_maj:></th>
     50                        </tr>
     51                </thead>
     52                <tbody>
     53                <BOUCLE_rubriques2(RUBRIQUES){tout}{par maj}>
     54                        [(#CONFIG{activite_editoriale/champ,maj_rubrique}|=={maj_rubrique}|oui)
     55                        #SET{maj,#MAJ}
     56                        ]
     57                        [(#CONFIG{activite_editoriale/champ,maj_rubrique}|=={date_modif_branche}|oui)
     58                        #SET{maj,#INCLURE{fond=inclure/maj_branche}{id_rubrique}}
     59                        ]
     60                        [(#CONFIG{activite_editoriale/champ,maj_rubrique}|=={date_modif_rubrique}|oui)
     61                        #SET{maj,#INCLURE{fond=inclure/maj_rubrique}{id_rubrique}}
     62                        ]
     63                        [(#EXTRAS_DELAI|!={''}|oui)
     64                                [(#GET{maj}|age_rubrique|<{#EXTRAS_DELAI}|oui)
     65                                <INCLURE{fond=prive/exec/activite_editoriale_rubrique}{id_rubrique}{maj=#GET{maj}}>
     66                                ]
     67                        ]
     68                </BOUCLE_rubriques2>
     69                </tbody>
     70        </table>
    7471        </div>
    7572</div>
  • _plugins_/activite_editoriale/trunk/prive/exec/activite_editoriale_rubrique.html

    r75933 r107166  
    33                <td><a href='#URL_ECRIRE{rubrique,id_rubrique=#ID_RUBRIQUE}' dir='ltr'>#TITRE</a></td>
    44                <td>
    5                         #SET{liste_auteur, #EXTRAS_IDENTIFIANTS|explode{','}}
    6                         <BOUCLE_auteurs(AUTEURS) {id_auteur IN #GET{liste_auteur}}{tout}{", "}><a href='#URL_ECRIRE{auteur,id_auteur=#ID_AUTEUR}'>#NOM</a></BOUCLE_auteurs>
     5                        #SET{liste_auteur,(#EXTRAS_IDENTIFIANTS|explode{','})}
     6                        <BOUCLE_auteurs(AUTEURS) {id_auteur IN #GET{liste_auteur}}{tout}><a href='#URL_ECRIRE{auteur,id_auteur=#ID_AUTEUR}'>#NOM</a><br /></BOUCLE_auteurs>[(#EXTRAS_EMAILS)<br />]
    77                </td>
    8                 <td style="text-align: right">#EXTRAS_DELAI <:activite_editoriale:jours:></td>
    9                 <td style="text-align: right">[(#ENV{maj}|affdate)]</td>
     8                <td>[(#EXTRAS_DELAI) <:activite_editoriale:jours:>]</td>
     9                <td>[(#EXTRAS_FREQUENCE) <:activite_editoriale:jours:>]</td>
     10                <td>[(#ENV{maj}|affdate)]</td>
    1011        </tr>
    1112</BOUCLE_rubrique>
Note: See TracChangeset for help on using the changeset viewer.