Changeset 10098 in spip-zone


Ignore:
Timestamp:
Mar 3, 2007, 8:13:23 PM (13 years ago)
Author:
cedric@…
Message:

"finalement une table physique pour le spooling et la trace des envois unitaires
de l'interface
debut de traitement de la file d'attente"

Location:
_plugins_/_dev_/spip-sms-listes
Files:
2 added
10 edited
1 moved

Legend:

Unmodified
Added
Removed
  • _plugins_/_dev_/spip-sms-listes/base/Comptes_SMS.xml

    r10071 r10098  
    22<forms>
    33<form>
    4         <id_form>64</id_form>
     4        <id_form>25</id_form>
    55        <titre>Comptes SMS</titre>
    66        <descriptif></descriptif>
     
    8989                        <html_wrap></html_wrap>
    9090                </field>
     91                <field>
     92                        <champ>telephone_1</champ>
     93                        <rang>6</rang>
     94                        <titre>Expéditeur par defaut</titre>
     95                        <type>telephone</type>
     96                        <obligatoire></obligatoire>
     97                        <extra_info></extra_info>
     98                        <specifiant></specifiant>
     99                        <public></public>
     100                        <aide></aide>
     101                        <html_wrap></html_wrap>
     102                </field>
    91103        </fields>
    92104</form>
  • _plugins_/_dev_/spip-sms-listes/base/smslist_upgrade.php

    r10071 r10098  
    2929                                $f = find_in_path('base/Comptes_SMS.xml');
    3030                                Forms_creer_table($f,'smslist_compte');
     31                                include_spip('base/smslist');
     32                                include_spip('base/create');
     33                                creer_base();
    3134                                ecrire_meta($nom_meta_base_version,$current_version=$version_cible);
    3235                        }
    33        
     36
    3437                        ecrire_metas();
    3538                }
  • _plugins_/_dev_/spip-sms-listes/exec/smslist_config.php

    r10071 r10098  
    1616include_spip('base/forms_base_api');
    1717include_spip('public/assembler');
     18
    1819
    1920function exec_smslist_config() {
  • _plugins_/_dev_/spip-sms-listes/exec/spip_sms_listes.php

    r10075 r10098  
    1616include_spip('base/forms_base_api');
    1717include_spip('public/assembler');
     18
     19function smslist_liberer_messages(){
     20        $res = spip_query("SELECT id_donnee_liee FROM spip_forms_donnees_donnees WHERE id_donnee=".(0-$GLOBALS['auteur_session']['id_auteur']));
     21        while ($row = spip_fetch_array($res)){
     22                $id_donnee = $row['id_donnee_liee'];
     23                $res2 = spip_query("SELECT d.id_form,d.statut FROM spip_forms_donnees AS d JOIN spip_forms AS f ON f.id_form=d.id_form WHERE f.type_form='smslist_message' AND id_donnee="._q($id_donnee));
     24                if ($row2 = spip_fetch_array($res2)){
     25                        spip_query("DELETE FROM spip_forms_donnees_donnees WHERE id_donnee=".(0-$GLOBALS['auteur_session']['id_auteur'])." AND id_donnee_liee="._q($id_donnee));
     26                        if ($row2['statut']=='prop'){
     27                                // regarder si pas d'autre lien sur ce message
     28                                $res3 = spip_query("SELECT * FROM spip_forms_donnees_donnees WHERE id_donnee_liee="._q($id_donnee));
     29                                if (!spip_fetch_array($res3))
     30                                        spip_query("UPDATE spip_forms_donnees SET statut='prepa' WHERE statut='prop' AND id_donnee="._q($id_donnee));
     31                        }
     32                }
     33        }
     34}
    1835
    1936function exec_spip_sms_listes() {
     
    4966        }
    5067        else {
     68                smslist_liberer_messages();
    5169               
    5270                // messages en preparation
     
    5977                        'affiche_rang'=>0,
    6078                        'affiche_de'=>1,
    61                         'colonne_extra_titre'=>"<img src='"._DIR_PLUGIN_SMSLIST. "img_pack/envoyer-message-16.png' width='16' height='16' alt='"._L('Envoyer')."' />",
    62                         'colonne_extra_url'=>generer_url_action('smslist_envoyer_message'));
     79                        'colonne_extra_titre'=>"<img src='"._DIR_PLUGIN_SMSLIST. "img_pack/envoyer-message-16.png' width='16' height='16' alt='"._T('icone_envoyer_message')."' />",
     80                        'colonne_extra_url'=>generer_url_action('smslist_envoyer_message')
     81                        );
    6382                        echo recuperer_fond("exec/template/donnees_tous",$contexte);   
    6483                }
    6584       
    66                 // messages en cours d'envoi
     85                // messages en attende d'envoi
    6786                foreach(Forms_liste_tables('smslist_boiteenvoi') as $id_form){
    6887                        $contexte = array('id_form'=>$id_form,
     
    7392                        'affiche_rang'=>0,
    7493                        'affiche_de'=>1,
     94                        'colonne_extra_titre'=>"<img src='"._DIR_IMG_PACK. "supprimer.gif' width='24' height='24' alt='"._T('bouton_annuler')."' />",
     95                        'colonne_extra_url'=>generer_url_action('smslist_instituer_envoi','statut=poubelle')
    7596                        );
    7697                        echo recuperer_fond("exec/template/donnees_tous",$contexte);   
    7798                }
     99                // messages interrompus
     100                foreach(Forms_liste_tables('smslist_boiteenvoi') as $id_form){
     101                        $contexte = array('id_form'=>$id_form,
     102                        'titre_liste'=>_T("smslist:envois_interrompus"),
     103                        'aucune_reponse'=>" ",
     104                        'couleur_claire'=>$GLOBALS['couleur_claire'],'couleur_foncee'=>$GLOBALS['couleur_foncee'],
     105                        'statuts' => array('refuse'),
     106                        'affiche_rang'=>0,
     107                        'affiche_de'=>1,
     108                        'colonne_extra_titre'=>"<img src='"._DIR_PLUGIN_SMSLIST. "img_pack/envoyer-message-16.png' width='16' height='16' alt='"._T('smslist:reprendre_envoi')."' />",
     109                        'colonne_extra_url'=>generer_url_action('smslist_instituer_envoi','statut=prop')
     110                        );
     111                        echo recuperer_fond("exec/template/donnees_tous",$contexte);   
     112                }       
     113                // messages en cours d'envoi
     114                foreach(Forms_liste_tables('smslist_boiteenvoi') as $id_form){
     115                        $contexte = array('id_form'=>$id_form,
     116                        'titre_liste'=>_T("smslist:envois_en_cours"),
     117                        'aucune_reponse'=>" ",
     118                        'couleur_claire'=>$GLOBALS['couleur_claire'],'couleur_foncee'=>$GLOBALS['couleur_foncee'],
     119                        'statuts' => array('prop'),
     120                        'affiche_rang'=>0,
     121                        'affiche_de'=>1,
     122                        'colonne_extra_titre'=>"<img src='"._DIR_IMG_PACK. "warning-24.gif' width='24' height='24' alt='"._T('smslist:stopper_envoi')."' />",
     123                        'colonne_extra_url'=>generer_url_action('smslist_instituer_envoi','statut=refuse')
     124                        );
     125                        echo recuperer_fond("exec/template/donnees_tous",$contexte);   
     126                }       
    78127        }
    79128       
  • _plugins_/_dev_/spip-sms-listes/inc/smslist_affichage.php

    r10071 r10098  
    9999        $retour = generer_url_ecrire('spip_sms_listes');
    100100
     101        $gerer = generer_url_ecrire("spip_sms_listes");
     102        $out .= icone_etendue(_T("smslist:spip_sms_liste"), $gerer, _DIR_PLUGIN_SMSLIST. "img_pack/spip-sms-list-64.png", "rien.gif","", false, $page_actuelle=="accueil");
     103       
    101104        $gerer = generer_url_ecrire("smslist_messages_tous");
    102105        $out .= icone_etendue(_T("smslist:icone_gerer_messages"), $gerer, _DIR_PLUGIN_SMSLIST. "img_pack/smslist_message-64.png", "rien.gif","", false, $page_actuelle=="gerer_messages");
  • _plugins_/_dev_/spip-sms-listes/inc/smslist_envoyer.php

    r10071 r10098  
    1414}
    1515
    16 function smslist_declencher_envoi($id_donnee,$listes){
    17         #$in = calcul_mysql_in('id_donnee',$listes)
    18         #$res = spip_query("SELECT")
     16function smslist_declencher_envoi($lot,$message,$listes){
     17        // recuperer le texte du message
     18        $in = calcul_mysql_in('id_donnee',$message);
     19        $res = spip_query("SELECT id_form,id_donnee FROM spip_forms_donnees WHERE $in LIMIT 0,1");
     20        if (!$row = spip_fetch_array($res)
     21        OR !strlen($message = Forms_les_valeurs($row['id_form'],$row['id_donnee'],'texte_1'," ",true))){
     22                smslist_log("Envoi du lot $lot impossible : message $in introuvable");
     23                return;
     24        }
    1925       
    20         // retirer tous les liens abonnes existants, il proviennent d'un declenchement interrompu
     26        // y a -t-il des listes selectionnes ?
     27        if ($listes=='0' OR !strlen($listes)){
     28                smslist_log("Envoi du lot $lot a tous les abonnes");
     29                // prendre le premier compte actif
     30                $tables = Forms_liste_tables('smslist_compte');
     31                $in = calcul_mysql_in("id_form",implode(',',$tables));
     32                $res = spip_query("SELECT id_donnee,id_form FROM spip_forms_donnees WHERE $in AND statut='publie' LIMIT 0,1");
     33                if (!$row = spip_fetch_array($res)){
     34                        smslist_log("Envoi du lot $lot impossible : pas de compte SMS actif dans les tables $in");
     35                        return;
     36                }
     37                $compte = $row['id_donnee'];
     38                $tel_from = Forms_les_valeurs($row['id_form'],$compte,'telephone_1');
     39                // selectionner tous les abonnes !
     40                $tables = Forms_liste_tables('smslist_abonne');
     41                $in = calcul_mysql_in("d.id_form",implode(',',$tables));
     42                $res = spip_query("SELECT dc.valeur AS tel_to FROM spip_forms_donnees AS d JOIN spip_forms_donnees_champs AS dc ON dc.id_donnee=d.id_donnee WHERE dc.champ='telephone_1' AND d.statut='publie' AND $in");
     43                #smslist_log("select : SELECT dc.valeur AS tel_to FROM spip_forms_donnees AS d JOIN spip_forms_donnees_champs AS dc ON dc.id_donnee=d.id_donnee WHERE dc.champ='telephone_1' AND d.statut='publie' AND $in");
     44                while ($row = spip_fetch_array($res)){
     45                        $tel_to = $row['tel_to'];
     46                        $values = implode(',',array_map('_q',array($lot,$tel_to,$message,$tel_from,$compte)));
     47                        spip_query("REPLACE INTO spip_smslist_spool (lot_envoi,tel_to,message,tel_from,compte) VALUES ($values)");
     48                        #smslist_log("spool : REPLACE INTO spip_smslist_spool (lot_envoi,tel_to,message,tel_from,compte) VALUES ($values)");
     49                }
     50        }
     51        else{
     52                $in = calcul_mysql_in('id_donnee',$listes);
     53                smslist_log("Envoi du $lot aux listes $in");
     54                // selectionner les listes
     55        }
     56        // on peut changer le statut du lot a 'en cours d'envoi'
     57        spip_query("UPDATE spip_forms_donnees SET statut='prop' WHERE id_donnee="._q($lot));
    2158       
    2259}
     
    3774                        if (strtotime("$date $heure")<$now){
    3875                                $log .= " Top depart";
    39                                 smslist_declencher_envoi($id_donnee,$listes);
     76                                smslist_log($log);
     77                                smslist_declencher_envoi($id_donnee,$message,$listes);
    4078                        }
    41                         smslist_log($log);
     79                        else smslist_log($log);
    4280                }
    4381        }
  • _plugins_/_dev_/spip-sms-listes/lang/smslist_fr.php

    r9899 r10098  
    1414$GLOBALS[$GLOBALS['idx_lang']] = array(
    1515
     16'envois_programmes' => 'Envois programm&eacute;s',
     17'envois_en_cours' => 'Envois en cours',
     18'envois_interrompus' => 'Envois interrompus',
    1619'icone_gerer_messages' => "G&eacute;rer les SMS",
    1720'icone_gerer_abonnes' => "G&eacute;rer les Abonn&eacute;s",
     
    2023'icone_configurer' => "Configurer",
    2124
     25'messages_en_redaction' => 'Messages en cours de r&eacute;daction',
     26'spip_sms_liste' => 'Spip-SMS-listes',
     27'reprendre_envoi' => 'Reprendre cet envoi',
     28'stopper_envoi' => 'Stopper cet envoi'
    2229
    2330);
  • _plugins_/_dev_/spip-sms-listes/lang/smslistboiteenvoi_fr.php

    r10071 r10098  
    3737'texte_statut_publie' => "Fini",
    3838'texte_statut_poubelle' => "Supprim&eacute;",
    39 'texte_statut_refuse' => "Envoi annul&eacute;",
     39'texte_statut_refuse' => "Envoi stopp&eacute;",
    4040
    4141// page forms_edit
  • _plugins_/_dev_/spip-sms-listes/smslist_options.php

    r10075 r10098  
    2727        return true;
    2828}
     29function autoriser_smslist_message_donnee_modifier($faire,$type,$id_donnee,$qui,$opt) {
     30        if (($qui['statut'] != '0minirezo')
     31        OR ($opt['statut'] != 'prepa'))return false;
     32        return true;
     33}
    2934function autoriser_smslist_liste_donnee_instituer($faire,$type,$id_donnee,$qui,$opt) {
    3035        if (($qui['statut'] != '0minirezo')
     
    4550        return true;
    4651}
     52function autoriser_smslist_boiteenvoi_donnee_modifier($faire,$type,$id_donnee,$qui,$opt) {
     53        if (($qui['statut'] != '0minirezo')
     54        OR ($opt['statut'] != 'prepa'))return false;
     55        return true;
     56}
    4757
    4858
  • _plugins_/_dev_/spip-sms-listes/smslist_pipeline.php

    r9853 r10098  
    1818          // on voit le bouton dans la barre "naviguer"
    1919                $boutons_admin['naviguer']->sousmenu["spip_sms_listes"]= new Bouton(
    20                 _DIR_PLUGIN_SMSLIST."img_pack/smslist_message-24.gif",  // icone
    21                 _L("Spip-SMS-Listes") //titre
     20                _DIR_PLUGIN_SMSLIST."img_pack/spip-sms-list-24.gif",  // icone
     21                _T("smslist:spip_sms_liste") //titre
    2222                );
    2323        }
Note: See TracChangeset for help on using the changeset viewer.