Changeset 43614 in spip-zone


Ignore:
Timestamp:
Jan 16, 2011, 9:58:17 PM (9 years ago)
Author:
esj@…
Message:

spipal. Passage en CVT de la balise FORMULAIRE_PAYER, qui s'applique à présent sur un numéro quelconque, pas forcément le #ID_ARTICLE courant qui n'est plus pris que par défaut et s'il est dans l'environnement d'inclusion (ou d'URL). On peut (et doit) donc écrire à présent:

#FORMULAIRE_PAYER{#ID_ARTICLE}
#FORMULAIRE_PAYER{#ID_RUBRQUE}
#FORMULAIRE_PAYER{#ID_EVENEMENT}
#FORMULAIRE_PAYER{#ENV{ID}}
...

D'autre part il y avait une confusion entre l'adresse de retour Paypal et celle de notification dans la configuration par défaut.

ENfin, un gros Oups avec r43509.

Location:
_plugins_/spipal
Files:
3 edited
1 moved

Legend:

Unmodified
Added
Removed
  • _plugins_/spipal/balise/formulaire_payer.php

    r43480 r43614  
    1414include_spip('base/abstract_sql');
    1515
    16 function balise_FORMULAIRE_PAYER($p) {
    17     return calculer_balise_dynamique($p, 'FORMULAIRE_PAYER', array('id_article'));
    18 }
    19 
    20 function balise_FORMULAIRE_PAYER_stat($args, $filtres) {
    21     if ( !$args[0] )
    22         return erreur_squelette(
    23             _T('zbug_champ_hors_motif',
    24                 array ('champ' => '#FORMULAIRE_PAYER',
    25                        'motif' => 'pas de contexte ARTICLES')), '');
    26    
    27     $row = sql_fetsel(
     16function formulaires_payer_charger($id_article)
     17{
     18        // compatibilite partielle avec l'ancienne version
     19        if (!$id_article) $id_article = _request('id_article');
     20        $row = sql_fetsel(
    2821        'id_article, ref_produit,don,prix_unitaire_ht,tva,nom_com',
    2922        'spip_spipal_produits',
    30         'id_article='.intval($args[0])
    31     );
     23        'id_article='. intval($id_article));
    3224
    33     return $row;
    34 }
     25        if (!$row) return "Rien a payer";
    3526
    36 function balise_FORMULAIRE_PAYER_dyn($id_article, $ref_produit, $don, $prix_unitaire_ht, $tva, $nom_com) {
    37     $quantite          = _request('quantite');
    38     $taxes = 0.0;
    39     if ( !$don )
    40         $taxes = round($prix_unitaire_ht * ($tva / 100), 2);
    41     $prix_unitaire_ttc = $taxes + $prix_unitaire_ht;
    42    
    43     if ( $quantite === null ) {
    44         $quantite = 1;
    45     }
    46     else {
    47         $quantite = intval($quantite);
    48     }
    49    
    50     return array(
    51         'formulaires/formulaire_payer',
    52         0,
    53         array(
    54             'custom'            => serialize(array('id_auteur' => (isset($GLOBALS['auteur_session']['id_auteur']))?$GLOBALS['auteur_session']['id_auteur']:0)),
    55             'id_article'        => $id_article,
    56             'ref_produit'       => $ref_produit,
    57             'nom_com'           => $nom_com,
    58             'don'               => $don,
    59             'quantite'          => $quantite,
    60             'prix_unitaire_ht'  => $prix_unitaire_ht,
    61             'taxes'             => $taxes,
    62             'prix_unitaire_ttc' => $prix_unitaire_ttc,
    63             'monnaie'           => 'EUR',
    64             'total_ttc'         => $quantite * $prix_unitaire_ttc,
    65             'dir_notification'  => _DIR_PLUGIN_SPIPAL
    66         )
    67     );
     27        $row['quantite'] = _request('quantite');
     28        if (!is_numeric($row['quantite'])) $row['quantite'] = 1;
     29
     30        $row['taxes'] = $don ? 0
     31          : round($row['prix_unitaire_ht'] * $row['tva'] / 100, 2);
     32        $row['prix_unitaire_ttc'] = $row['taxes'] + $row['prix_unitaire_ht'];
     33        $row['total_ttc'] = $row['quantite'] * $row['prix_unitaire_ttc'];
     34        $row['monnaie'] = 'EUR';
     35        $row['custom'] = serialize(array('id_auteur' => (isset($GLOBALS['auteur_session']['id_auteur']))?$GLOBALS['auteur_session']['id_auteur']:0));
     36
     37        return $row;
    6838}
    6939?>
  • _plugins_/spipal/base/spipal_gestion.php

    r43480 r43614  
    4141                    'url_paypal'          => 'https://www.paypal.com/cgi-bin/webscr',  //prod
    4242                    //'url_paypal'          => 'https://www.sandbox.paypal.com/fr/cgi-bin/webscr',  //test
    43                     'notify_url'          => 'www.paypal.com',  //prod
    44                     //'notify_url'          => 'www.sandbox.paypal.com',  //test
    45                     'url_retour'          => generer_url_action('spipal_valider_paiement','','',true),
     43                    'notify_url'          => generer_url_action('spipal_valider_paiement','','',true),
     44                    'url_retour'          => $GLOBALS['meta']['adresse_site'],
    4645                    'compte_paypal'       => $GLOBALS['meta']['email_webmaster'],
    4746                    'style_page'          => 'PayPal',
  • _plugins_/spipal/formulaires/payer.html

    r43490 r43614  
    11<form id="_xclick" action="#META{/spipal/url_paypal}" method="post">
    2     <div style="text-align: right;font-size: 10px">
     2    <div style="text-align: right;font-size: 10px">#ACTION_FORMULAIRE
    33        <input type="hidden" name="lc" value="#LANG" />
    44        <input type="hidden" name="cmd" value="_xclick" />
     
    1818            <img src="https://www.paypal.com/<:spipal:lang_lang:>/i/btn/x-click-but04.gif" style="margin: 0px; border: 0px none transparent; cursor:pointer; vertical-align: middle;" onclick="document.getElementById('_xclick').submit();" alt=""/>
    1919][(#ENV{don}|=={1}|?{' ', ''})
    20             ,
    21             <input type="text" name="quantity" value="1" size="5" readonly="readonly" style="text-align: center" /> x
     20            <input type="text" name="quantity" value="#ENV{quantity}" size="5" readonly="readonly" style="text-align: center" /> x
    2221            <input type="text" name="amount_ttc" size="5" style="text-align: right" disabled="disabled" value="[(#ENV{prix_unitaire_ttc})"] />
    2322            <input type="hidden" name="amount" size="5" style="text-align: right" value="#ENV{prix_unitaire_ht}" />
  • _plugins_/spipal/inc/spipal_tabledata.php

    r43509 r43614  
    179179
    180180    if ($action == 'maj')
    181       return maj_item($table_data, $fields, $pks);
     181      return maj_item($table_mysql, $fields, $pks);
    182182   
    183183    $args = array();
     
    192192
    193193
    194 function maj_item($table_data, $fields, $pks)
     194function maj_item($table_mysql, $desc, $pks)
    195195{
    196196        $fields = array();
    197         foreach ($fields as $k => $v) {
     197        foreach ($desc as $k => $v) {
    198198                if ( $v !== 'TIMESTAMP')
    199199                  $fields[$k] = $_REQUEST[$k];
     
    210210                }
    211211        }
    212 
    213212        if ($and !== false)
    214213          sql_updateq($table_mysql, $fields, join(" AND ", $and));
    215214}
    216215
    217 function supprimer_item($table_data, $pk, $id)
    218 {
    219         sql_delete($table_data, "$pk=" . intval($id));
     216function supprimer_item($table_mysql, $pk, $id)
     217{
     218        sql_delete($table_mysql, "$pk=" . intval($id));
    220219}
    221220?>
Note: See TracChangeset for help on using the changeset viewer.