source: extensions/PayPalShoppingCart/main.inc.php @ 9239

Last change on this file since 9239 was 9239, checked in by Saint-Malo, 13 years ago

Version 1.0.2

File size: 5.7 KB
Line 
1<?php
2/*
3Plugin Name: PayPal Shopping Cart
4Version: 1.0.2
5Description: Append PayPal Shopping Cart on Piwigo to sell photos
6Plugin URI: http://piwigo.org/ext/extension_view.php?eid=499
7Author: queguineur.fr
8Author URI: http://www.queguineur.fr
9*/
10/*
11  Plugin Panier PayPal Pour Piwigo
12  Copyright (C) 2011 www.queguineur.fr — Tous droits réservés.
13 
14  Ce programme est un logiciel libre ; vous pouvez le redistribuer ou le
15  modifier suivant les termes de la “GNU General Public License” telle que
16  publiée par la Free Software Foundation : soit la version 3 de cette
17  licence, soit (à votre gré) toute version ultérieure.
18 
19  Ce programme est distribué dans l’espoir qu’il vous sera utile, mais SANS
20  AUCUNE GARANTIE : sans même la garantie implicite de COMMERCIALISABILITÉ
21  ni d’ADÉQUATION À UN OBJECTIF PARTICULIER. Consultez la Licence Générale
22  Publique GNU pour plus de détails.
23 
24  Vous devriez avoir reçu une copie de la Licence Générale Publique GNU avec
25  ce programme ; si ce n’est pas le cas, consultez :
26  <http://www.gnu.org/licenses/>.
27*/
28/*
29Historique
301.0.0   10/02/2011
31Version initiale
32               
331.0.1   10/02/2011
34Ajout du Plugin URI pour permettre les mises à jours
35Traduction en Anglais du Plugin Name et du nom du répertoire
36       
371.0.2   10/02/2011
38Correction du problème de compatibilité avec exif view (double affichage des boutons)
39       
40*/
41if (!defined('PHPWG_ROOT_PATH')) die('Hacking attempt!');
42define('PPPPP_PATH' , PHPWG_PLUGINS_PATH . basename(dirname(__FILE__)) . '/');
43include_once (PPPPP_PATH.'/constants.php');
44 
45function ppppp_append_form($tpl_source, &$smarty){
46 $pattern = '#</table>#'; 
47 $replacement = '
48  <tr>
49   <td class="label">{\'Buy this picture\'|@translate}</td>
50   <td>
51    <form name="ppppp_form" target="paypal" action="https://www.paypal.com/cgi-bin/webscr" method="post" onSubmit="javascript:pppppValid()">
52     <input type="hidden" name="add" value="1">
53     <input type="hidden" name="cmd" value="_cart">
54     <input type="hidden" name="business" value="{$ppppp_e_mail}">
55     <input type="hidden" name="item_name">
56     <input type="hidden" name="no_shipping" value="2"><!-- shipping address mandatory -->
57         <input type="hidden" name="handling_cart" value="{$ppppp_fixed_shipping}">
58     <input type="hidden" name="currency_code" value="{$ppppp_currency}">
59     <select name="amount">
60          {foreach from=$ppppp_array_size item=ppppp_row_size}
61      <option value="{$ppppp_row_size.price}">{$ppppp_row_size.size} : {$ppppp_row_size.price} {$ppppp_currency}</option>
62          {/foreach}
63     <input type="submit" value="{\'Add to cart\'|@translate}">
64    </form>
65   </td>
66   <td>
67    <form target="paypal" action="https://www.paypal.com/cgi-bin/webscr" method="post">
68     <input type="hidden" name="cmd" value="_cart">
69     <input type="hidden" name="business" value="{$ppppp_e_mail}">
70     <input type="hidden" name="display" value="1">
71     <input type="hidden" name="no_shipping" value="2">
72     <input type=submit value="{\'View Shopping Cart\'|@translate}">
73    </form>
74   </td>
75  </tr>
76 </table>
77 
78 {literal}
79 <script type="text/javascript">
80 function pppppValid(){
81  var amount=document.ppppp_form.amount;
82  var selectedAmount=amount[amount.selectedIndex];
83  document.ppppp_form.item_name.value="Photo \"{/literal}{$current.TITLE}\", Ref {$INFO_FILE}, {\'Size\'|@translate} : {literal} "+selectedAmount.text;
84  }
85 </script>
86 {/literal}
87 ';
88 return preg_replace($pattern, $replacement, $tpl_source,1);
89 }
90
91function ppppp_picture_handler(){
92 global $template;
93 $template->set_prefilter('picture', 'ppppp_append_form');
94 load_language('plugin.lang', PPPPP_PATH);
95 $query='SELECT * FROM '.PPPPP_SIZE_TABLE.';';
96 $result = pwg_query($query);
97 while($row = mysql_fetch_array($result)){
98  $template->append('ppppp_array_size',$row);
99  }
100 $query='SELECT value FROM '.PPPPP_CONFIG_TABLE.' WHERE param = \'fixed_shipping\';';
101 $result = pwg_query($query);
102 $row = mysql_fetch_array($result);
103 $template->assign('ppppp_fixed_shipping',$row[0]); 
104 $query='SELECT value FROM '.PPPPP_CONFIG_TABLE.' WHERE param = \'currency\';';
105 $result = pwg_query($query);
106 $row = mysql_fetch_array($result);
107 $template->assign('ppppp_currency',$row[0]);
108 
109 $template->assign('ppppp_e_mail',get_webmaster_mail_address());
110 $template->append('footer_elements',' - PayPal plugin by <a href=http://www.queguineur.fr>queguineur.fr</a>');
111 }
112
113add_event_handler('loc_begin_picture', 'ppppp_picture_handler');
114
115function ppppp_append_js($tpl_source, &$smarty){
116 load_language('plugin.lang', PPPPP_PATH);
117 if(strstr($tpl_source,"{'Menu'|@translate}")==false)
118  return $tpl_source;
119 $pattern = '#{/foreach}#'; 
120 $replacement = '{/foreach}
121 <li><a href="" title="'.l10n('View my PayPal Shopping Cart').'" onclick="document.forms[\'ppppp_form_view_cart\'].submit()">'.l10n('View Shopping Cart').'</a></li>
122 <form name="ppppp_form_view_cart" target="paypal" action="https://www.paypal.com/cgi-bin/webscr" method="post">
123     <input type="hidden" name="cmd" value="_cart">
124     <input type="hidden" name="business" value="{$ppppp_e_mail}">
125     <input type="hidden" name="display" value="1">
126     <input type="hidden" name="no_shipping" value="2">
127  </form>
128  ';
129 return preg_replace($pattern, $replacement, $tpl_source); 
130 }
131
132function ppppp_index_handler(){
133 global $template;
134 $template->set_prefilter('menubar', 'ppppp_append_js');
135 $template->assign('ppppp_e_mail',get_webmaster_mail_address()); 
136 }
137
138add_event_handler('loc_begin_index', 'ppppp_index_handler');
139
140function ppppp_admin_menu($menu){
141 load_language('plugin.lang', PPPPP_PATH);
142 array_push($menu, array(
143  'NAME' => l10n('PayPal Shopping Cart'),
144  'URL' => get_admin_plugin_menu_link(PPPPP_PATH . 'admin.php')));
145 return $menu;
146 }
147
148add_event_handler('get_admin_plugin_menu_links', 'ppppp_admin_menu');
149?>
Note: See TracBrowser for help on using the repository browser.