Changeset 68539 in spip-zone


Ignore:
Timestamp:
Dec 21, 2012, 3:27:44 PM (7 years ago)
Author:
cedric@…
Message:

Intégration de https://github.com/tplaner/When (Realet) qui permet de convertir un recurrence en liste de date
On intègre dans une fonction chapeau when_rule_to_next_date qui permet de recuperer la prochaine occurence (eventuellement après une date).
Cela permet d'iterer si besoin (moins vite certes), mais correspond plus a ce que l'on aura besoin dans ce plugin (la prochaine date d'une newsletter programmee) :
/

  • Recuperer la prochaine occurence d'une repetition
  • (occurence après la date $prev si founie) *
  • @param string $date_start
  • @param string $rule
  • @param string $prev
  • @return string */

function when_rule_to_next_date($date_start,$rule,$prev=)

On y ajoute une fonction when_rule_to_texte() pour exprimer une règle de recurrence en langage humain
/

  • Afficher en texte clair une regle de repetition
  • @param string $rule
  • @param string $sep
  • @return string */

function when_rule_to_texte($rule, $sep=", ")

Les deux permettent de traduire une règle comme
FREQ=MONTHLY;COUNT=2;BYDAY=1FR
en dates :
Prochaine occurence : 4 janvier 2013
Prochaine occurence : 1er février 2013
et en clair :
Tous les mois, le premier vendredi du mois, 2 fois

Voir la page de demo complète ?page=demo/when

Location:
_plugins_/newsletters/trunk
Files:
6 added
1 edited
1 copied

Legend:

Unmodified
Added
Removed
  • _plugins_/newsletters/trunk/lang/when_fr.php

    r68497 r68539  
    77$GLOBALS[$GLOBALS['idx_lang']] = array(
    88
    9         // A
    10         'ajouter_lien_newsletter' => 'Ajouter cette infolettre',
     9        'info_until_date' => 'jusqu\'au @date@',
     10        'info_freq_SECONDLY' => 'Toutes les secondes',
     11        'info_freq_SECONDLY_nb' => 'Toutes les @nb@ secondes',
     12        'info_freq_MINUTELY' => 'Toutes les minutes',
     13        'info_freq_MINUTELY_nb' => 'Toutes les @nb@ minutes',
     14        'info_freq_HOURLY' => 'Toutes les heures',
     15        'info_freq_HOURLY_nb' => 'Toutes les @nb@ heures',
     16        'info_freq_DAILY' => 'Tous les jours',
     17        'info_freq_DAILY_nb' => 'Tous les @nb@ jours',
     18        'info_freq_WEEKLY' => 'Toutes les semaines',
     19        'info_freq_WEEKLY_nb' => 'Toutes les @nb@ semaines',
     20        'info_freq_MONTHLY' => 'Tous les mois',
     21        'info_freq_MONTHLY_nb' => 'Tous les @nb@ mois',
     22        'info_freq_YEARLY' => 'Tous les ans',
     23        'info_freq_YEARLY_nb' => 'Tous les @nb@ ans',
    1124
     25        'info_1_fois' => '1 fois',
     26        'info_nb_fois' => '@nb@ fois',
    1227
    13         // E
    14         'explication_html_page_vide' => 'Permet d\'afficher dans le navigateur une version différente de celle envoyée par email (pour des raisons techniques ou éditoriales). Laissez le vide si vous voulez afficher la même version dans l\'email et dans le navigateur.',
    15         'explication_baked' => 'Édition avancée : vous pouvez modifier directement le HTML et le texte de l\'infolettre. Elle ne sera plus générée automatiquement. Si vous repassez en édition normale vos modifications seront perdues.',
    16         'explication_baked_publie' => 'Cette infolettre est figée : vous pouvez corriger son HTML ou son texte mais vous ne pouvez plus modifier son éditorial ni la regénérer à partir de son modèle.',
     28        'info_byday_day' => 'le @day@',
     29        'info_byday_1_day' => 'le premier @day@ du mois',
     30        'info_byday_2_day' => 'le second @day@ du mois',
     31        'info_byday_3_day' => 'le troisième @day@ du mois',
     32        'info_byday_4_day' => 'le quatrième @day@ du mois',
     33        'info_byday_5_day' => 'le cinquième @day@ du mois',
     34        'info_byday_moins_1_day' => 'le dernier @day@ du mois',
     35        'info_byday_moins_2_day' => 'l\'avant-dernier @day@ du mois',
     36        'info_byday_moins_3_day' => 'l\'antépenultieme @day@ du mois',
     37        'info_byday_moins_4_day' => 'le quatrième @day@ avant la fin du mois',
     38        'info_byday_moins_5_day' => 'le cinquième @day@ avant la fin du mois',
    1739
    18         // I
    19         'icone_creer_newsletter' => 'Créer une infolettre',
    20         'icone_modifier_newsletter' => 'Modifier cette infolettre',
    21         'info_1_newsletter' => 'Une infolettre',
    22         'info_aucun_newsletter' => 'Aucune infolettre',
    23         'info_nb_newsletters' => '@nb@ infolettres',
    24         'info_newsletters_auteur' => 'Les infolettres de cet auteur',
    25         'info_newsletter_generer' => 'Générer l\'infolettre (Version HTML et version texte)',
    26         'info_email_not_displaying' => 'Cet email ne s\'affiche pas correctement ?',
    27         'info_email_voir_en_ligne' => 'Voir cette Infolettre dans votre navigateur',
    28         'info_test_sujet' => 'TEST',
    29         'info_test_envoye' => 'La newsletter a été envoyée en test à @email@',
    30         'info_publier_pour_envoyer' => 'Publiez cette infolettre pour l’envoyer à une liste',
     40        'info_bymonthday_1' => 'le 1er jour du mois',
     41        'info_bymonthday_nb' => 'le @nb@e jour du mois',
     42        'info_bymonthday_moins_1' => 'le dernier jour du mois',
     43        'info_bymonthday_moins_2' => 'l\'avant-dernier jour du mois',
     44        'info_bymonthday_moins_nb' => 'le @nb@e jour avant la fin du mois',
    3145
    32         'info_preview_version_html_email' => 'Version HTML email',
    33         'info_preview_version_texte_email' => 'Version Texte email',
    34         'info_preview_version_html_page' => 'Version HTML en ligne',
    35         'info_preview_version_html_page_noiframe' => '(afficher sans iframe)',
     46        'info_byyearday_1' => 'le 1er jour de l\'année',
     47        'info_byyearday_nb' => 'le @nb@e jour de l\'année',
     48        'info_byyearday_moins_1' => 'le dernier jour de l\'année',
     49        'info_byyearday_moins_2' => 'l\'avant-dernier jour de l\'année',
     50        'info_byyearday_moins_nb' => 'le @nb@e jour avant la fin de l\'année',
    3651
    37         // L
    38         'label_chapo' => 'Chapeau',
    39         'label_date_redac' => 'Date de rédaction',
    40         'label_texte' => 'Texte',
    41         'label_titre' => 'Titre',
    42         'label_patron' => 'Modèle',
    43         'label_html_email' => 'Version HTML',
    44         'label_texte_email' => 'Version Texte',
    45         'label_html_page' => 'Version HTML affichée dans le navigateur',
    46         'label_baked_1' => 'Edition avancée de l\'infolettre',
    47         'label_masquer_fond' => 'Masquer les modèles d\'infolettre :',
    48         'label_selection_articles' => 'Selection d\'articles',
     52        'info_byweek_1' => 'semaine N°1',
     53        'info_byweek_nb' => 'semaine N°@nb@',
    4954
    50         // R
    51         'retirer_lien_newsletter' => 'Retirer cette infolettre',
    52         'retirer_tous_liens_newsletters' => 'Retirer toutes les infolettres',
     55        'info_bymonth_1' => 'en @month@',
     56        'info_bymonth_nb' => 'en @months@',
    5357
    54         // T
    55         'texte_ajouter_newsletter' => 'Ajouter une infolettre',
    56         'texte_changer_statut_newsletter' => 'Cette infolettre est :',
    57         'texte_creer_associer_newsletter' => 'Créer et associer une infolettre',
    58         'titre_langue_newsletter' => 'Langue de cette infolettre',
    59         'titre_logo_newsletter' => 'Logo de cette infolettre',
    60         'titre_newsletter' => 'Infolettre',
    61         'titre_newsletters' => 'Infolettres',
    62         'titre_newsletters_rubrique' => 'Infolettres de la rubrique',
     58        'info_wkst_day' => 'semaine commençant le @day@',
     59
    6360);
    6461
  • _plugins_/newsletters/trunk/paquet.xml

    r68504 r68539  
    22        prefix="newsletters"
    33        categorie="communication"
    4         version="0.3.11"
     4        version="0.4.0"
    55        etat="test"
    66        compatibilite="[3.0.5;3.0.*]"
Note: See TracChangeset for help on using the changeset viewer.