Changeset 57684 in spip-zone


Ignore:
Timestamp:
Jan 25, 2012, 11:28:42 AM (8 years ago)
Author:
yffic@…
Message:

Notification des commandes avec le plugin Notifications Avancées

Location:
_plugins_/commandes/trunk
Files:
7 added
1 deleted
8 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/commandes/trunk/action/editer_commande.php

    r55780 r57684  
    155155                        $statut = $champs['statut'] = $s;
    156156                //else
    157                 //      spip_log("editer_commande $id_commande refus " . join(' ', $c),'commande');
     157                //      spip_log("editer_commande $id_commande refus " . join(' ', $c),'commandes');
    158158
    159159                // Si on doit changer la date explicitement
     
    226226       
    227227        // Notifications
    228         if ($notifications = charger_fonction('notifications', 'inc', true)) {
    229                 $notifications('commande_instituer', $id_commande,
    230                         array('statut' => $statut, 'statut_ancien' => $statut_ancien, 'date'=>$date)
    231                 );
    232         }
    233        
     228        include_spip('inc/config');
     229        $config = lire_config('commandes');
     230        if (($statut != $statut_ancien) &&
     231                 ($config['activer']) &&
     232                 (in_array($statut,$config['quand'])) &&
     233                 ($notifications = charger_fonction('notifications', 'inc', true))
     234                ) {
     235
     236                // Determiner l'expediteur
     237                $options = array();
     238                if( $config['expediteur'] != "facteur" )
     239                        $options['expediteur'] = $config['expediteur_'.$config['expediteur']];
     240
     241                // Envoyer au vendeur et au client
     242                $notifications('commande_vendeur', $id_commande, $options);
     243                if($config['client'])
     244                        $notifications('commande_client', $id_commande, $options);
     245        }
     246
    234247        return '';
    235248}
  • _plugins_/commandes/trunk/commandes_fonctions.php

    r55780 r57684  
    3333}
    3434
    35 // Quel est l'email de l'auteur ?
    36 function commandes_email_auteur($id) {
    37         if (
    38                 intval($id) == $id
    39                 and $id > 0
    40                 and $email = sql_getfetsel('email', 'spip_auteurs', 'id_auteur = '.$id)
    41         ){
    42                 return $email;
    43         }
    44         // Sinon rien
    45         else
    46                 return null;
    47 }
    4835
    4936?>
  • _plugins_/commandes/trunk/inc/commandes.php

    r47694 r57684  
    7474}
    7575
     76/*
     77 * Envoyer un mail de notification
     78 * => On veut envoyer du html pour que le tableau de commandes soit lisible par le client
     79 * => On peut avoir un expediteur specifique
     80 * => Mais notifications_envoyer_mails() de spip ne peut pas envoyer de mails en html. On ne peut pas non plus y specifier un expediteur.
     81 * Donc si les plugins notifications_avancees et Facteur sont presents, on prepare un joli mail en html. Sinon un moche en texte.
     82 *
     83 * @param string $qui : vendeur ou client
     84 * @param string $id_type
     85 * @param int $id_commande
     86 * @param string $expediteur
     87 * @param array $destinataires
     88 *
     89 */
     90function commandes_envoyer_notification( $qui, $id_type, $id_commande, $expediteur, $destinataires){
     91        spip_log("commandes_envoyer_notification qui? $qui, id_type $id_type, id_commande $id_commande, expediteur $expediteur, destinataires ".implode(", ", $destinataires),'commandes');
     92       
     93        notifications_nettoyer_emails($destinataires);
     94
     95        if(defined('_DIR_PLUGIN_NOTIFAVANCEES') && defined('_DIR_PLUGIN_FACTEUR')) {
     96                spip_log("commandes_envoyer_notification via Notifications avancées",'commandes');
     97                if( !notifications_envoyer( $destinataires,
     98                                                                                         "email",
     99                                                                                         "commande_".$qui,
     100                                                                                         $id_commande,
     101                                                                                         $options=array('from'=>$expediteur)))
     102                        spip_log("commandes_envoyer_notification Erreur d'envoi via Notifications avancées",'commandes');
     103        } else {
     104                $texte = recuperer_fond("notifications/commande",array($id_type=>$id_commande,
     105                                                                                                                                                                 "id"=>$id_commande,
     106                                                                                                                                                                 "format_envoi"=>"plain",
     107                                                                                                                                                                 "qui"=>$qui));
     108                if( $qui == "client" ) {
     109                        $sujet = _T('commandes:votre_commande_sur', array('nom'=>$GLOBALS['meta']["nom_site"])) ;
     110                } else {
     111                        $sujet = _T('commandes:une_commande_sur', array('nom'=>$GLOBALS['meta']["nom_site"])) ;
     112                }
     113                // Si un expediteur est impose, on doit utiliser la fonction envoyer_email pour rajouter l'expediteur
     114                if($expediteur) {
     115                        $envoyer_mail = charger_fonction('envoyer_mail','inc');
     116                        spip_log("commandes_envoyer_notification via $envoyer_mail",'commandes');
     117                        if( !$envoyer_mail($destinataires, $sujet, $texte, $expediteur))
     118                                spip_log("commandes_envoyer_notification Erreur d'envoi via $envoyer_mail",'commandes');
     119
     120                } else {
     121                        spip_log("commandes_envoyer_notification via notifications_envoyer_mails",'commandes');
     122                        if( !notifications_envoyer_mails($destinataires, $texte, $sujet))
     123                                spip_log("commandes_envoyer_notification Erreur d'envoi via notifications_envoyer_mails",'commandes');
     124                }
     125        }
     126}
    76127?>
  • _plugins_/commandes/trunk/inclure/commande.html

    r47679 r57684  
    1 [(#REM) On peut donner soit un id_commande, soit un tableau contenant la commande ]
     1[(#REM) On peut donner soit un id_commande, soit un tableau contenant la commande
    22
    3 <BOUCLE_commande(COMMANDES){tous}{id_commande=#ENV{id_commande}}{statut?}>
     3]<BOUCLE_commande(COMMANDES){tous}{id_commande=#ENV{id_commande}}{statut?}>
    44        [(#REM) Si on trouve une commande on prend ça comme base ]
    55        #SET{details, #ARRAY}
     
    1414</BOUCLE_commande>
    1515#SET{commande,#ENV{commande}}
    16 <//B_commande>
     16<//B_commande>[
     17(#REM) Affichage du detail dans une table si fromat html demande
    1718
    18 <BOUCLE_test(CONDITION){si #GET{commande}|et{#GET{commande}|is_array}}>
    19         <table class="commande" cellspacing="0">
    20                 <thead>
    21                         <tr>
    22                                 <th class="description"><:commandes:designation:></th>
    23                                 <th class="montant"><:commandes:montant:></th>
    24                         </tr>
    25                 </thead>
    26                 <tbody>
    27                         #SET{total,0}
    28                         <BOUCLE_details(POUR){tableau #GET{commande}|table_valeur{details}}>
    29                         <tr class="detail [(#VALEUR|table_valeur{quantite}|>{0}|?{avec_quantite,sans_quantite})]">
    30                                 <td class="description">[(#VALEUR|table_valeur{descriptif})]</td>
    31                                 <td class="montant">[(#VALEUR|table_valeur{prix}|prix_formater)]</td>
    32                         </tr>
    33                         [(#SET{total,[(#GET{total}|plus{[(#VALEUR|table_valeur{prix})]})]})]
    34                         </BOUCLE_details>
    35                 </tbody>
    36                 <tfoot>
    37                         <tr class="total_ttc">
    38                                 <td class="descriptif"><:prix:label_total_ttc:></td>
    39                                 <td class="montant">[(#GET{total}|prix_formater)]</td>
    40                         </tr>
    41                 </tfoot>
    42         </table>
     19]<BOUCLE_test(CONDITION){si #GET{commande}|et{#GET{commande}|is_array}}>[
     20(#REM) Version texte
     21
     22]<BOUCLE_test_format_texte(CONDITION){si #ENV{format_envoi}|=={plain}|oui}>[
     23(#SET{total,0})
     24]<BOUCLE_details_texte(POUR){tableau #GET{commande}|table_valeur{details}}>[
     25- (#VALEUR|table_valeur{descriptif}|trim|supprimer_tags)] : [(#VALEUR|table_valeur{prix}|prix_formater)][
     26(#SET{total,[(#GET{total}|plus{[(#VALEUR|table_valeur{prix})]})]})
     27]</BOUCLE_details_texte>
     28
     29<:prix:label_total_ttc:> : [(#GET{total}|prix_formater)]
     30   </BOUCLE_test_format_texte>
     31      <table class="commande" cellspacing="0">
     32         <thead>
     33            <tr>
     34               <th class="description"><:commandes:designation:></th>
     35               <th class="montant"><:commandes:montant:></th>
     36            </tr>
     37         </thead>
     38         <tbody>
     39            #SET{total,0}
     40            <BOUCLE_details(POUR){tableau #GET{commande}|table_valeur{details}}>
     41            <tr class="detail [(#VALEUR|table_valeur{quantite}|>{0}|?{avec_quantite,sans_quantite})]">
     42               <td class="description">[(#VALEUR|table_valeur{descriptif})]</td>
     43               <td class="montant">[(#VALEUR|table_valeur{prix}|prix_formater)]</td>
     44            </tr>
     45            [(#SET{total,[(#GET{total}|plus{[(#VALEUR|table_valeur{prix})]})]})]
     46            </BOUCLE_details>
     47         </tbody>
     48         <tfoot>
     49            <tr class="total_ttc">
     50               <td class="descriptif"><:prix:label_total_ttc:></td>
     51               <td class="montant">[(#GET{total}|prix_formater)]</td>
     52            </tr>
     53         </tfoot>
     54      </table>
     55   <//B_test_format_texte>
    4356</BOUCLE_test>
  • _plugins_/commandes/trunk/lang/commandes_fr.php

    r57552 r57684  
    1212        'adresse_facturation' => 'Adresse de facturation',
    1313        'adresse_livraison' => 'Adresse de livraison',
     14
     15        // B
     16        'bonjour' => 'Bonjour',
    1417
    1518        // C
     
    3639        'date_paiement_label' => 'Date de paiement :',
    3740        'designation' => 'Désignation',
     41        'details_commande' => "Détails de commande :",
    3842
    3943        // E
     
    5357
    5458        // M
    55         'merci_de_votre_commande' => 'Nous vous remercions de votre commande @ref@',
     59        'merci_de_votre_commande' => 'Nous avons bien enregistré votre commande et nous vous remercions de votre confiance.',
    5660        'modifier_commande_statut' => 'Cette commande est :',
    5761        'montant' => 'Montant',
     
    7377        'notifications_expediteur_label' => 'Expéditeur',
    7478        'notifications_expediteur_webmaster_label' => 'Choisir un webmestre :',
    75         'notifications_explication' => 'Les notifications permettent d’envoyer des emails suite aux changements de statut des commandes : En attente de validation, en cours, envoyée, partiellement payée, payée, retournée, retour partiel',
     79        'notifications_explication' => 'Les notifications permettent d’envoyer des emails suite aux changements de statut des commandes : En attente de validation, en cours, envoyée, partiellement payée, payée, retournée, retour partiel. Cette fonctionnalité nécessite le plugin Notifications Avancées.',
    7680        'notifications_parametres' => 'Paramètres des notifications',
    7781        'notifications_quand_explication' => 'Quel(s) changement(s) de statut déclenche(nt) l’envoi d’une notification ?',
     
    9397
    9498        // R
     99        'recapitulatif' => 'Récapitulatif de commande :',
    95100        'reference' => 'Référence',
    96101        'reference_label' => 'Référence :',
     
    112117        // U
    113118        'une_commande_sur' => 'Une commande sur @nom@',
     119        'une_commande_de' => 'Une commande de : ',
    114120
    115121        // V
    116         'votre_commande_sur' => 'Votre commande sur @nom@'
     122        'votre_commande_sur' => '@nom@ : votre commande'
    117123);
    118124
  • _plugins_/commandes/trunk/notifications/commande_client.html

    r57305 r57684  
    1 [(#REM)
    2 
    3   Squelette
    4   (c) 2009 SPIP
    5   Distribue sous licence GPL
    6 
    7 ][(#HTTP_HEADER{Content-type: text/html[; charset=(#CHARSET)]})]#CACHE{0}
    8 <BOUCLE_art(COMMANDES){id_commande}{statut?}{tout}>
    9         <:zcommerce:votre_commande_sur{nom=#NOM_SITE_SPIP}:>
    10 
    11         <BOUCLE_contact(CONTACTS){id_auteur}>
    12                 #CIVILITE #NOM #PRENOM
    13         </BOUCLE_contact>
    14 
    15         <p><:commandes:merci_de_votre_commande{ref=#REFERENCE}:></p>
    16 
    17         <INCLURE{fond=inclure/commande,id_commande=#ID_COMMANDE,statut=#STATUT}>
    18 
    19    <hr />
    20    
    21    <p><a href="#URL_SITE_SPIP">#URL_SITE_SPIP</a></p>
    22 
    23 </BOUCLE_art>
    24 #FILTRE{filtrer_entites|trim}
     1<INCLURE{fond=notifications/contenu,env,format_envoi=plain,qui=client}>
  • _plugins_/commandes/trunk/notifications/commande_vendeur.html

    r57305 r57684  
    1 [(#REM)
    2 
    3   Squelette
    4   (c) 2009 SPIP
    5   Distribue sous licence GPL
    6 
    7 ][(#HTTP_HEADER{Content-type: text/html[; charset=(#CHARSET)]})]#CACHE{0}
    8 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    9         "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    10 <html xmlns="http://www.w3.org/1999/xhtml" dir="#LANG_DIR" xml:lang="#LANG" lang="#LANG">
    11 <head>
    12 <meta http-equiv="content-type" content="text/html; charset=#CHARSET" />
    13 <meta name="language" content="#LANG" />
    14 <title>[(#NOM_SITE_SPIP|textebrut)] - Commande</title>
    15 </head>
    16 <body>
    17 
    18 <BOUCLE_art(COMMANDES){id_commande}{statut?}{tout}>
    19         <:commandes:une_commande_sur{nom=#NOM_SITE_SPIP}:>
    20 
    21         <BOUCLE_contact(CONTACTS){id_auteur}>
    22                 #CIVILITE #NOM #PRENOM
    23         </BOUCLE_contact>
    24 
    25    <p><:commandes:commande_numero:>#REFERENCE</p>
    26    <INCLURE{fond=inclure/commande,id_commande=#ID_COMMANDE,statut=#STATUT}>
    27    
    28    <hr />
    29    
    30    <p><a href="#URL_SITE_SPIP">#URL_SITE_SPIP</a></p>
    31 
    32 </BOUCLE_art>
    33 </body>
    34 </html>
    35 #FILTRE{filtrer_entites|trim}
     1<INCLURE{fond=notifications/contenu,env,format_envoi=plain,qui=vendeur}>
  • _plugins_/commandes/trunk/plugin.xml

    r57305 r57684  
    33        <auteur>[Ateliers CYM->http://www.cym.fr], [Les D&#233;veloppements Durables->http://www.ldd.fr], [Matthieu Marcillaud->http://magraine.net]</auteur>
    44        <licence>GPL v3</licence>
    5         <version>0.5.2</version>
     5        <version>0.5.3</version>
    66        <version_base>0.2</version_base>
    77        <etat>dev</etat>
Note: See TracChangeset for help on using the changeset viewer.