From b706f6034fa98fb69a1029b10bf6c8ee045f0acf Mon Sep 17 00:00:00 2001 From: Laurent Destailleur <eldy@users.sourceforge.net> Date: Wed, 13 Jul 2011 16:55:25 +0000 Subject: [PATCH] Fix: Avoid conflict with other payment modules functions New: EMail topics can be forced by external modules --- htdocs/core/class/commonobject.class.php | 10 ++++--- htdocs/core/class/html.formmail.class.php | 26 ++++++++--------- htdocs/paypal/lib/paypal.lib.php | 34 +++++++++++------------ 3 files changed, 36 insertions(+), 34 deletions(-) diff --git a/htdocs/core/class/commonobject.class.php b/htdocs/core/class/commonobject.class.php index e9ae1ea7e05..a6c93758797 100644 --- a/htdocs/core/class/commonobject.class.php +++ b/htdocs/core/class/commonobject.class.php @@ -22,7 +22,7 @@ * \file htdocs/core/class/commonobject.class.php * \ingroup core * \brief File of parent class of all other business classes (invoices, contracts, proposals, orders, ...) - * \version $Id: commonobject.class.php,v 1.145 2011/07/10 16:50:40 eldy Exp $ + * \version $Id: commonobject.class.php,v 1.146 2011/07/13 16:55:25 eldy Exp $ */ @@ -365,9 +365,10 @@ class CommonObject * Return array with list of possible values for type of contacts * @param source internal, external or all if not defined * @param order Sort order by : code or rowid - * @return array List of type of contacts + * @param option 0=Return array id->label, 1=Return array code->label + * @return array Array list of type of contacts (id->label if option=0, code->label if option=1) */ - function liste_type_contact($source='internal', $order='code') + function liste_type_contact($source='internal', $order='code', $option=0) { global $langs; @@ -390,7 +391,8 @@ class CommonObject $transkey="TypeContact_".$this->element."_".$source."_".$obj->code; $libelle_type=($langs->trans($transkey)!=$transkey ? $langs->trans($transkey) : $obj->libelle); - $tab[$obj->rowid]=$libelle_type; + if (empty($option)) $tab[$obj->rowid]=$libelle_type; + else $tab[$obj->code]=$libelle_type; $i++; } return $tab; diff --git a/htdocs/core/class/html.formmail.class.php b/htdocs/core/class/html.formmail.class.php index 3164f86d8e1..6ca8f1e007f 100644 --- a/htdocs/core/class/html.formmail.class.php +++ b/htdocs/core/class/html.formmail.class.php @@ -22,7 +22,7 @@ * \file htdocs/core/class/html.formmail.class.php * \ingroup core * \brief Fichier de la classe permettant la generation du formulaire html d'envoi de mail unitaire - * \version $Id: html.formmail.class.php,v 1.31 2011/07/10 20:03:41 eldy Exp $ + * \version $Id: html.formmail.class.php,v 1.32 2011/07/13 16:55:25 eldy Exp $ */ require_once(DOL_DOCUMENT_ROOT ."/core/class/html.form.class.php"); @@ -519,7 +519,7 @@ class FormMail foreach($listofpaths as $key => $val) { $out.= '<div id="attachfile_'.$key.'">'; - $out.= img_mime($listofnames[$key]).' '.$listofnames[$key]; + $out.= img_mime($listofnames[$key]).' '.$listofnames[$key]; if (! $this->withfilereadonly) { $out.= ' <input type="image" style="border: 0px;" src="'.DOL_URL_ROOT.'/theme/'.$conf->theme.'/img/delete.png" value="'.($key+1).'" class="removedfile" id="removedfile_'.$key.'" name="removedfile_'.$key.'" />'; @@ -547,15 +547,15 @@ class FormMail $defaultmessage=""; // TODO A partir du type, proposer liste de messages dans table llx_models - if ($this->param["models"]=='body') { $defaultmessage=$this->withbody; } - if ($this->param["models"]=='facture_send') { $defaultmessage=$langs->transnoentities("PredefinedMailContentSendInvoice"); } - if ($this->param["models"]=='facture_relance') { $defaultmessage=$langs->transnoentities("PredefinedMailContentSendInvoiceReminder"); } - if ($this->param["models"]=='propal_send') { $defaultmessage=$langs->transnoentities("PredefinedMailContentSendProposal"); } - if ($this->param["models"]=='order_send') { $defaultmessage=$langs->transnoentities("PredefinedMailContentSendOrder"); } - if ($this->param["models"]=='order_supplier_send') { $defaultmessage=$langs->transnoentities("PredefinedMailContentSendSupplierOrder"); } - if ($this->param["models"]=='invoice_supplier_send') { $defaultmessage=$langs->transnoentities("PredefinedMailContentSendSupplierInvoice"); } - if ($this->param["models"]=='shipping_send') { $defaultmessage=$langs->transnoentities("PredefinedMailContentSendShipping"); } - if ($this->param["models"]=='fichinter_send') { $defaultmessage=$langs->transnoentities("PredefinedMailContentSendFichInter"); } + if ($this->param["models"]=='facture_send') { $defaultmessage=$langs->transnoentities("PredefinedMailContentSendInvoice"); } + elseif ($this->param["models"]=='facture_relance') { $defaultmessage=$langs->transnoentities("PredefinedMailContentSendInvoiceReminder"); } + elseif ($this->param["models"]=='propal_send') { $defaultmessage=$langs->transnoentities("PredefinedMailContentSendProposal"); } + elseif ($this->param["models"]=='order_send') { $defaultmessage=$langs->transnoentities("PredefinedMailContentSendOrder"); } + elseif ($this->param["models"]=='order_supplier_send') { $defaultmessage=$langs->transnoentities("PredefinedMailContentSendSupplierOrder"); } + elseif ($this->param["models"]=='invoice_supplier_send') { $defaultmessage=$langs->transnoentities("PredefinedMailContentSendSupplierInvoice"); } + elseif ($this->param["models"]=='shipping_send') { $defaultmessage=$langs->transnoentities("PredefinedMailContentSendShipping"); } + elseif ($this->param["models"]=='fichinter_send') { $defaultmessage=$langs->transnoentities("PredefinedMailContentSendFichInter"); } + elseif (! is_numeric($this->withbody)) { $defaultmessage=$this->withbody; } if ($conf->paypal->enabled && $conf->global->PAYPAL_ADD_PAYMENT_URL) { @@ -565,12 +565,12 @@ class FormMail if ($this->param["models"]=='order_send') { - $url=getPaymentUrl('order',$this->substit['__ORDERREF__']); + $url=getPaypalPaymentUrl('order',$this->substit['__ORDERREF__']); $defaultmessage=$langs->transnoentities("PredefinedMailContentSendOrderWithPaypalLink",$url); } if ($this->param["models"]=='facture_send') { - $url=getPaymentUrl('invoice',$this->substit['__FACREF__']); + $url=getPaypalPaymentUrl('invoice',$this->substit['__FACREF__']); $defaultmessage=$langs->transnoentities("PredefinedMailContentSendInvoiceWithPaypalLink",$url); } } diff --git a/htdocs/paypal/lib/paypal.lib.php b/htdocs/paypal/lib/paypal.lib.php index 0e846c9e9a7..82ec9a15c2e 100755 --- a/htdocs/paypal/lib/paypal.lib.php +++ b/htdocs/paypal/lib/paypal.lib.php @@ -22,7 +22,7 @@ * \file htdocs/paypal/lib/paypal.lib.php * \ingroup paypal * \brief Library for common paypal functions - * \version $Id$ + * \version $Id: paypal.lib.php,v 1.25 2011/07/13 16:55:34 eldy Exp $ */ function llxHeaderPaypal($title, $head = "") { @@ -132,7 +132,7 @@ function html_print_paypal_footer($fromcompany,$langs) function paypaladmin_prepare_head() { global $langs, $conf; - + $h = 0; $head = array(); @@ -140,7 +140,7 @@ function paypaladmin_prepare_head() $head[$h][1] = $langs->trans("Account"); $head[$h][2] = 'paypalaccount'; $h++; - + // Show more tabs from modules // Entries must be declared in modules descriptor with line // $this->tabs = array('entity:+tabname:Title:@mymodule:/mymodule/mypage.php?id=__ID__'); to add new tab @@ -151,24 +151,24 @@ function paypaladmin_prepare_head() } /** - * + * */ -function getPaymentUrl($source='',$ref='',$amount=0,$freetag='') +function getPaypalPaymentUrl($source='',$ref='',$amount=0,$freetag='') { global $conf; - + require_once(DOL_DOCUMENT_ROOT."/lib/security.lib.php"); - + if (! empty($source) && ! empty($ref)) { $token=''; if (! empty($conf->global->PAYPAL_SECURITY_TOKEN)) $token='&securekey='.dol_hash($conf->global->PAYPAL_SECURITY_TOKEN.$source.$ref, 2); - + if ($source == 'commande') $source = 'order'; if ($source == 'facture') $source = 'invoice'; - + $url = DOL_MAIN_URL_ROOT.'/public/paypal/newpayment.php?source='.$source.'&ref='.$ref.$token; - + return $url; } } @@ -482,7 +482,7 @@ function hash_call($methodName,$nvpStr) global $conf, $langs; global $API_Endpoint, $API_Url, $API_version, $USE_PROXY, $PROXY_HOST, $PROXY_PORT, $PROXY_USER, $PROXY_PASS; global $PAYPAL_API_USER, $PAYPAL_API_PASSWORD, $PAYPAL_API_SIGNATURE; - + // TODO problem with triggers $API_version="56"; if ($conf->global->PAYPAL_API_SANDBOX) @@ -495,7 +495,7 @@ function hash_call($methodName,$nvpStr) $API_Endpoint = "https://api-3t.paypal.com/nvp"; $API_Url = "https://www.paypal.com/cgi-bin/webscr?cmd=_express-checkout&token="; } - + // Clean parameters $PAYPAL_API_USER=""; if ($conf->global->PAYPAL_API_USER) $PAYPAL_API_USER=$conf->global->PAYPAL_API_USER; @@ -506,7 +506,7 @@ function hash_call($methodName,$nvpStr) $PAYPAL_API_SANDBOX=""; if ($conf->global->PAYPAL_API_SANDBOX) $PAYPAL_API_SANDBOX=$conf->global->PAYPAL_API_SANDBOX; // TODO END problem with triggers - + dol_syslog("Paypal API endpoint ".$API_Endpoint); //setting the curl parameters. @@ -580,19 +580,19 @@ function hash_call($methodName,$nvpStr) function GetApiError() { $errors=array(); - + $resArray=$_SESSION['reshash']; - + if(isset($_SESSION['curl_error_no'])) { $errors[] = $_SESSION['curl_error_no'].'-'.$_SESSION['curl_error_msg']; } - + foreach($resArray as $key => $value) { $errors[] = $key.'-'.$value; } - + return $errors; } -- GitLab