Changeset 18740 in spip-zone


Ignore:
Timestamp:
Feb 25, 2008, 7:50:36 PM (11 years ago)
Author:
booz@…
Message:

permettre des envois automatique des derniers trucs publies

Location:
_plugins_/_test_/spip-listes/spip-listes_1_9_3
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/_test_/spip-listes/spip-listes_1_9_3/exec/spiplistes_liste_gerer.php

    r18700 r18740  
    22// _SPIPLISTES_EXEC_LISTE_GERER
    33/******************************************************************************************/
    4 /* SPIP-listes est un syst�e de gestion de listes d'information par email pour SPIP      */
    5 /* Copyright (C) 2004 Vincent CARON  v.caron<at>laposte.net , http://bloog.net            */
     4/* SPIP-Listes est un systeme de gestion de listes d'abonnes et d'envoi d'information     */
     5/* par email pour SPIP. http://bloog.net/spip-listes                                      */
     6/* Copyright (C) 2004 Vincent CARON  v.caron<at>laposte.net                               */
    67/*                                                                                        */
    78/* Ce programme est libre, vous pouvez le redistribuer et/ou le modifier selon les termes */
    8 /* de la Licence Publique G��ale GNU publi� par la Free Software Foundation            */
     9/* de la Licence Publique Generale GNU publiee par la Free Software Foundation            */
    910/* (version 2).                                                                           */
    1011/*                                                                                        */
    11 /* Ce programme est distribucar potentiellement utile, mais SANS AUCUNE GARANTIE,       */
     12/* Ce programme est distribue car potentiellement utile, mais SANS AUCUNE GARANTIE,       */
    1213/* ni explicite ni implicite, y compris les garanties de commercialisation ou             */
    13 /* d'adaptation dans un but sp�ifique. Reportez-vous �la Licence Publique G��ale GNU  */
    14 /* pour plus de dails.                                                                  */
     14/* d'adaptation dans un but specifique. Reportez-vous à la Licence Publique Generale GNU  */
     15/* pour plus de détails.                                                                  */
    1516/*                                                                                        */
    16 /* Vous devez avoir re� une copie de la Licence Publique G��ale GNU                    */
    17 /* en m�e temps que ce programme ; si ce n'est pas le cas, �rivez �la                  */
     17/* Vous devez avoir reçu une copie de la Licence Publique Generale GNU                    */
     18/* en meme temps que ce programme ; si ce n'est pas le cas, ecrivez a la                  */
    1819/* Free Software Foundation,                                                              */
    19 /* Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, ats-Unis.                   */
     20/* Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, Etats-Unis.                   */
    2021/******************************************************************************************/
    2122// $LastChangedRevision$
     
    2829include_spip('inc/spiplistes_api_globales');
    2930
    30         // Précision sur la table spip_listes:
    31         // 'date': date d'envoi souhaitée
    32         // 'maj': date d'envoi du courrier mis à jour par cron.
    33         // 'description': (pas utilisé au 20071006)
    34         // 'texte': description affichée dans formulaire abonnement
     31        // Precision sur la table spip_listes:
     32        // 'date': date d'envoi souhaitee
     33        // 'maj': date d'envoi du courrier mis jour par cron.
     34        // 'description': (pas utilise au 20071006)
     35        // 'texte': description affichee dans formulaire abonnement
    3536       
    3637function exec_spiplistes_liste_gerer () {
     
    5051                ;
    5152
    52         // initialise les variables postées par le formulaire
     53        // initialise les variables postees par le formulaire
    5354        foreach(array(
    5455                'new'   // nouvelle liste si 'oui'
    55                 , 'id_liste'// si modif dans l'éditeur
    56                 , 'btn_liste_edit', 'titre', 'texte', 'pied_page' // renvoyés par l'éditeur
     56                , 'id_liste'// si modif dans l'editeur
     57                , 'btn_liste_edit', 'titre', 'texte', 'pied_page' // renvoyes par l'editeur
    5758                , 'btn_modifier_diffusion', 'changer_lang', 'statut' // local
    5859                , 'btn_modifier_replyto', 'email_envoi' // local
     
    7879        $debut = _request('debut'); // ??
    7980
     81
    8082        $envoyer_maintenant = ($envoyer_maintenant == 'oui');
    8183       
     
    8890        // Creer une liste
    8991        ////
    90                 // admin lambda peut créer une liste
     92                // admin lambda peut creer une liste
    9193                $flag_editable = ($connect_statut == "0minirezo");
    9294               
     
    105107                        spip_query("DELETE FROM spip_auteurs_mod_listes WHERE id_liste = "._q($id_liste));
    106108                        spip_query("INSERT INTO spip_auteurs_mod_listes (id_auteur, id_liste) VALUES ("._q($connect_id_auteur).","._q($id_liste).")");
    107                         //abonne le moderateur à sa liste
     109                        //abonne le moderateur sa liste
    108110                        spip_query("DELETE FROM spip_auteurs_listes WHERE id_liste = "._q($id_liste));
    109111                        spip_query("INSERT INTO spip_auteurs_listes (id_auteur, id_liste) VALUES ("._q($connect_id_auteur).","._q($id_liste).")");
     
    124126                        $sql_query = "";
    125127
    126                         // Récupère les données de la liste courante pour optimiser l'update
     128                        // Recupa¨re les donnees de la liste courante pour optimiser l'update
    127129                        $sql_select = "statut,titre,date,lang";
    128130                        if($row = spip_fetch_array(spip_query("SELECT $sql_select FROM spip_listes WHERE id_liste=$id_liste LIMIT 1"))) {
     
    132134                        }
    133135                       
    134                         // Retour de l'éditeur ?
     136                        // Retour de l'editeur ?
    135137                        if($btn_liste_edit) {
    136138                                $titre = corriger_caracteres($titre);
     
    160162                                if(in_array($statut, explode(";", _SPIPLISTES_LISTES_STATUTS)) && ($statut!=$current_liste['statut'])) {
    161163                                        $sql_query .= "statut='$statut',";
    162                                         // si la liste passe en privée, retire les invités
     164                                        // si la liste passe en privee, retire les invites
    163165                                        if($statut == _SPIPLISTES_PRIVATE_LIST) {
    164166                                                $auteur_statut = '6forum';
     
    175177                        }
    176178                       
    177                         // Modifier l'adresse email de réponse ?
     179                        // Modifier l'adresse email de reponse ?
    178180                        if($btn_modifier_replyto && email_valide($email_envoi) && ($email_envoi!=$current_liste['email_envoi'])) {
    179181                                $sql_query .= "email_envoi="._q($email_envoi).",";
     
    197199
    198200                                        if(time() > strtotime($envoyer_quand)) {
    199                                         // envoi dans le passé est considéré comme envoyer maintenant
     201                                        // envoi dans le passe est considere comme envoyer maintenant
    200202                                                $envoyer_maintenant = true;
     203                                                $date_depuis = $envoyer_quand ;
    201204                                                $envoyer_quand = false;
    202205                                        }
     
    216219                                                        . fin_cadre_couleur(true)
    217220                                                        ;
     221                                                if($date_depuis){
     222                                                $sql_query .= "maj='$date_depuis',periode=$periode,";
     223                                                }
    218224                                                $date_prevue = __mysql_date_time(time());
     225                                               
    219226                                        }
    220227                                        else if($envoyer_quand) {
     
    224231//spiplistes_log("LISTE MODIF: message_auto: $message_auto", SPIPLISTES_LOG_DEBUG);
    225232                                                $sql_query .= "statut='"._SPIPLISTES_MONTHLY_LIST."',";
     233                                        }else{
     234                                                $sql_query .= "statut='inact',";
    226235                                        }
    227236                                }
     
    250259
    251260        //////////////////////////////////////////////////////
    252         // Recharge les données la liste
     261        // Recharge les donnees la liste
    253262        $result = spip_query("SELECT * FROM spip_listes WHERE id_liste="._q($id_liste)." LIMIT 1");
    254263
    255264        if($row = spip_fetch_array($result)) {
    256265                foreach(array(
    257                 // initialise les variables du résultat SQL
     266                // initialise les variables du resultat SQL
    258267                        'id_liste', 'titre', 'texte'
    259268                        , 'titre_message', 'pied_page', 'date', 'statut', 'maj'
     
    272281        $nb_abonnes = spiplistes_nb_abonnes_count ($id_liste);
    273282
    274         // préparation des boutons
     283        // preparation des boutons
    275284        if($flag_editable) {
    276285                // Propose de modifier la liste
    277286                $gros_bouton_modifier =
    278287                        icone (
    279                                 _T('spiplistes:Modifier_cette_liste') // légende bouton
     288                                _T('spiplistes:Modifier_cette_liste') // legende bouton
    280289                                , generer_url_ecrire(_SPIPLISTES_EXEC_LISTE_EDIT,'id_liste='.$id_liste) // lien
    281290                                , _DIR_PLUGIN_SPIPLISTES_IMG_PACK."reply-to-all-24.gif" // image du fond
     
    307316        debut_page(_T('spiplistes:spip_listes'), "redacteurs", "spiplistes");
    308317
    309         // la gestion des listes de courriers est réservée aux admins
     318        // la gestion des listes de courriers est reservee aux admins
    310319        if($connect_statut != "0minirezo") {
    311320                die (spiplistes_terminer_page_non_autorisee() . fin_page());
     
    486495        else {
    487496                $page_result .= ""
    488                         // petite ligne d'info si envoi programmé
     497                        // petite ligne d'info si envoi programme
    489498                        . "<p class='verdana2'>"._T('spiplistes:sujet_courrier_auto')."<br />\n"
    490499                        . "<span class='spip_large'> ".$titre_message."</span></p>\n"
     
    543552                . "<li>"._T('spiplistes:message_sujet').": <input type='text' name='titre_message' value='".$titre_message."' size='50' class='fondl' /> </li>\n"
    544553                //
    545                 // chrono début de mois
     554                // chrono debut de mois
    546555                . "
    547556<script type='text/javascript'><!--
    548557        function auto_mois_switch(c) {
     558               
    549559                jQuery('#auto_oui').click();
    550560                if(c.checked) {
     
    554564                                jQuery('#periode_jours').show();
    555565                }
     566               
    556567        }
    557568--></script>            "
     
    654665                        //
    655666                        //////////////////////////
    656                         // propose de forcer les membres sauf invités si la liste est privée
     667                        // propose de forcer les membres sauf invites si la liste est privee
    657668                        .       (
    658669                                        ($statut==_SPIPLISTES_PRIVATE_LIST)
     
    662673                                )
    663674                        //
    664                         // propose de forcer les invités si la liste est publique ou périodique
     675                        // propose de forcer les invites si la liste est publique ou periodique
    665676                        .       (
    666677                                        (($statut!=_SPIPLISTES_PRIVATE_LIST) && ($statut!=_SPIPLISTES_TRASH_LIST))
     
    708719
    709720/******************************************************************************************/
    710 /* SPIP-listes est un système de gestion de listes d'abonnés et d'envoi d'information     */
     721/* SPIP-listes est un systa¨me de gestion de listes d'abonnes et d'envoi d'information     */
    711722/* par email  pour SPIP.                                                                  */
    712723/* Copyright (C) 2004 Vincent CARON  v.caron<at>laposte.net , http://bloog.net            */
    713724/*                                                                                        */
    714725/* Ce programme est libre, vous pouvez le redistribuer et/ou le modifier selon les termes */
    715 /* de la Licence Publique Générale GNU publiée par la Free Software Foundation            */
     726/* de la Licence Publique Generale GNU publiee par la Free Software Foundation            */
    716727/* (version 2).                                                                           */
    717728/*                                                                                        */
    718 /* Ce programme est distribué car potentiellement utile, mais SANS AUCUNE GARANTIE,       */
     729/* Ce programme est distribue car potentiellement utile, mais SANS AUCUNE GARANTIE,       */
    719730/* ni explicite ni implicite, y compris les garanties de commercialisation ou             */
    720 /* d'adaptation dans un but spécifique. Reportez-vous à la Licence Publique Généale GNU  */
    721 /* pour plus de détails.                                                                  */
     731/* d'adaptation dans un but specifique. Reportez-vous a  la Licence Publique Geneale GNU  */
     732/* pour plus de details.                                                                  */
    722733/*                                                                                        */
    723 /* Vous devez avoir reçu une copie de la Licence Publique Générale GNU                    */
    724 /* en même temps que ce programme ; si ce n'est pas le cas, écrivez à la                  */
     734/* Vous devez avoir rea§u une copie de la Licence Publique Generale GNU                    */
     735/* en maªme temps que ce programme ; si ce n'est pas le cas, ecrivez a  la                  */
    725736/* Free Software Foundation,                                                              */
    726737/* Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, Etats-Unis.                   */
  • _plugins_/_test_/spip-listes/spip-listes_1_9_3/genie/spiplistes_cron.php

    r18002 r18740  
    3232       
    3333        // - Verifie toutes les listes auto==oui publiques et privées
     34        //   dont la date d'envoi est passee
    3435        // - crée le courrier pour la méleuse dans la table spip_courriers
    3536        // - determine les dates prochain envoi si periode > 0
    3637        // - si periode < 0, repasse la liste en dormeuse
     38
     39        // Precision sur la table spip_listes:
     40        // 'date': date d'envoi souhaitee
     41        // 'maj': date d'envoi du courrier mis a  jour par cron.
     42       
    3743
    3844function cron_spiplistes_cron ($last_time) {
     
    5561        }
    5662
    57         $sql_select = "id_liste,titre,titre_message,date,message_auto,periode,lang,patron,statut";
     63        $sql_select = "id_liste,titre,titre_message,date,maj,message_auto,periode,lang,patron,statut";
    5864
    5965        // demande les listes auto valides
     
    9197                $id_liste = intval($id_liste);
    9298                $periode = intval($periode);
     99                $dernier_envoi = $maj ;
    93100       
    94101                // demande id_auteur de la liste pour la signer
     
    106113                }
    107114                else if($periode) {
    108                         $next_time = strtotime($date) + (_SPIPLISTES_TIME_1_DAY * $periode);
     115                        $next_time = time() + (_SPIPLISTES_TIME_1_DAY * $periode);
    109116                        $sql_set = "date='" . __mysql_date_time($next_time) . "',maj=NOW()";
    110117                }
     
    121128                /////////////////////////////
    122129                // preparation du courrier à placer dans le panier
     130                // en cas de période, la date est dans le passé pour avoir les elements publies depuis cette date
    123131                include_spip('public/assembler');
    124                 $contexte_patron = array('date' => $date, 'patron'=>$patron, 'lang'=>$lang);
     132                $contexte_patron = array('date' => $dernier_envoi, 'patron'=>$patron, 'lang'=>$lang);
    125133                $texte = recuperer_fond('patrons/'.$patron, $contexte_patron);
    126134                $titre = ($titre_message =="") ? $titre._T('spiplistes:_de_').$GLOBALS['meta']['nom_site'] : $titre_message;
     
    145153                /////////////////////////////
    146154                // Place le courrier dans le casier
    147                 $sql_query = "INSERT INTO spip_courriers (titre,date,statut,type,id_auteur,id_liste,date_debut_envoi,date_fin_envoi,texte)
    148                         VALUES ("._q($titre).", NOW(),'$statut','"._SPIPLISTES_TYPE_LISTEAUTO."'
    149                         , $id_auteur, $id_liste, $date_debut_envoi, $date_fin_envoi,"._q($texte).")";
    150 
     155       
    151156                $sql_query = "INSERT INTO spip_courriers (titre,date,statut,type,id_auteur,id_liste,date_debut_envoi,date_fin_envoi,texte)
    152157                        VALUES ("._q($titre).", NOW(),'$statut','"._SPIPLISTES_TYPE_LISTEAUTO."'
Note: See TracChangeset for help on using the changeset viewer.