diff --git a/ChangeLog b/ChangeLog
index 1aab93c2726..15490b1b2e4 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -3,6 +3,7 @@ English Dolibarr ChangeLog
***** ChangeLog for 3.0 compared to 2.9 *****
For users:
+- New: Add a Paypal module
- New: Can choose third party to use in point of sale module during logon.
- New: A lot of enhancements into ECM module:
Directories can contains special characters,
@@ -38,6 +39,7 @@ For users:
- New: task #10100 : Add button to create invoice from a subscription
- New: Reorganize tabs on third parties.
- New: Option MAIN_INVERT_SENDER_RECIPIENT is available in einstein pdf template.
+- New: Easier way to define url for clicktodial module.
- Perf: Avoid reading database to determine country code after each
page call.
- Fix: Better Postgresql compatibility.
diff --git a/htdocs/admin/clicktodial.php b/htdocs/admin/clicktodial.php
index 7f5930fb21f..68c629e9ba7 100644
--- a/htdocs/admin/clicktodial.php
+++ b/htdocs/admin/clicktodial.php
@@ -81,7 +81,7 @@ print $langs->trans("URL").'
';
print ' ';
print ' ';
print $langs->trans("ClickToDialUrlDesc").' ';
-print $langs->trans("Example").': http://myphoneserver/mypage?login=%3$s&password=%4$s&caller=%2$s&called=%1$s';
+print $langs->trans("Example").': http://myphoneserver/mypage?login=__LOGIN__&password=__PASS__&caller=__PHONEFROM__&called=__PHONETO__';
print ' ';
print ' ';
diff --git a/htdocs/langs/ca_ES/admin.lang b/htdocs/langs/ca_ES/admin.lang
index 1bb1804dded..010d5dcdcc1 100644
--- a/htdocs/langs/ca_ES/admin.lang
+++ b/htdocs/langs/ca_ES/admin.lang
@@ -897,7 +897,7 @@ FreeLegalTextOnOrders=Text lliure en comandes
WatermarkOnDraftOrders=Marca d'aigua en comandes esborrany (en cas d'estar buit)
##### Clicktodial #####
ClickToDialSetup=Configuració del mòdul Click To Dial
-ClickToDialUrlDesc=Url de trucada fent clic en la icona telèfon. Dans l'url, vous pouvez utiliser les balises%%1$s qui sera remplacé par le téléphone de l'appelé%%2$s qui sera remplacé par le téléphone de l'appelant (le votre)%%3$s qui sera remplacé par votre login clicktodial (défini sur votre fiche utilisateur)%%4$s qui sera remplacé par votre mot de passe clicktodial (défini sur votre fiche utilisateur).
+ClickToDialUrlDesc=Url de trucada fent clic en la icona telèfon. Dans l'url, vous pouvez utiliser les balises__PHONETO__ qui sera remplacé par le téléphone de l'appelé__PHONEFROM__ qui sera remplacé par le téléphone de l'appelant (le votre)__LOGIN__ qui sera remplacé par votre login clicktodial (défini sur votre fiche utilisateur)__PASS__ qui sera remplacé par votre mot de passe clicktodial (défini sur votre fiche utilisateur).
##### Bookmark4u #####
Bookmark4uSetup=Configuració del mòdul Bookmark4u
##### Interventions #####
diff --git a/htdocs/langs/da_DA/admin.lang b/htdocs/langs/da_DA/admin.lang
index 21fb48d49d7..73f7b1ab699 100644
--- a/htdocs/langs/da_DA/admin.lang
+++ b/htdocs/langs/da_DA/admin.lang
@@ -698,7 +698,7 @@ FicheinterNumberingModules=Intervention nummerressourcer moduler
TemplatePDFInterventions=Intervention kortet dokumenter modeller
WatermarkOnDraftInterventionCards=Vandmærke på interventionsforanstaltningerne kortet dokumenter (enhver hvis tom)
ClickToDialSetup=Klik for at ringe modul opsætning
-ClickToDialUrlDesc=Url called when a click on phone picto is done. Dans l'url, vous pouvez utiliser les balises%%1$s qui sera remplacé par le téléphone de l'appelé%%2$s qui sera remplacé par le téléphone de l'appelant (le votre)%%3$s qui sera remplacé par votre login clicktodial (défini sur votre fiche utilisateur)%%4$s qui sera remplacé par votre mot de passe clicktodial (défini sur votre fiche utilisateur).
+ClickToDialUrlDesc=Url called when a click on phone picto is done. Dans l'url, vous pouvez utiliser les balises__PHONETO__ qui sera remplacé par le téléphone de l'appelé__PHONEFROM__ qui sera remplacé par le téléphone de l'appelant (le votre)__LOGIN__ qui sera remplacé par votre login clicktodial (défini sur votre fiche utilisateur)__PASS__ qui sera remplacé par votre mot de passe clicktodial (défini sur votre fiche utilisateur).
Bookmark4uSetup=Bookmark4u modul opsætning
InterventionsSetup=Interventioner modul opsætning
MembersSetup=Medlemmer modul opsætning
diff --git a/htdocs/langs/en_US/admin.lang b/htdocs/langs/en_US/admin.lang
index cdfd0fef823..4a497e0ea15 100644
--- a/htdocs/langs/en_US/admin.lang
+++ b/htdocs/langs/en_US/admin.lang
@@ -887,7 +887,7 @@ FreeLegalTextOnOrders=Free text on orders
WatermarkOnDraftOrders=Watermark on draft orders (any if empty)
##### Clicktodial #####
ClickToDialSetup=Click To Dial module setup
-ClickToDialUrlDesc=Url called when a click on phone picto is done. Dans l'url, vous pouvez utiliser les balises%%1$s qui sera remplacé par le téléphone de l'appelé%%2$s qui sera remplacé par le téléphone de l'appelant (le votre)%%3$s qui sera remplacé par votre login clicktodial (défini sur votre fiche utilisateur)%%4$s qui sera remplacé par votre mot de passe clicktodial (défini sur votre fiche utilisateur).
+ClickToDialUrlDesc=Url called when a click on phone picto is done. Dans l'url, vous pouvez utiliser les balises__PHONETO__ qui sera remplacé par le téléphone de l'appelé__PHONEFROM__ qui sera remplacé par le téléphone de l'appelant (le votre)__LOGIN__ qui sera remplacé par votre login clicktodial (défini sur votre fiche utilisateur)__PASS__ qui sera remplacé par votre mot de passe clicktodial (défini sur votre fiche utilisateur).
##### Bookmark4u #####
Bookmark4uSetup=Bookmark4u module setup
##### Interventions #####
diff --git a/htdocs/langs/fr_FR/admin.lang b/htdocs/langs/fr_FR/admin.lang
index de4c95bdbbf..d5401c56c13 100644
--- a/htdocs/langs/fr_FR/admin.lang
+++ b/htdocs/langs/fr_FR/admin.lang
@@ -899,7 +899,7 @@ FreeLegalTextOnOrders= Mention complémentaire sur les commandes
WatermarkOnDraftOrders= Filigrane sur les brouillons de commandes (aucun si vide)
##### Clicktodial #####
ClickToDialSetup= Configuration du module Click To Dial
-ClickToDialUrlDesc= Url appelée lors dun clic sur le picto téléphone. Dans l'url, vous pouvez utiliser les balises%%1$s qui sera remplacé par le téléphone de l'appelé%%2$s qui sera remplacé par le téléphone de l'appelant (le votre, défini sur votre fiche utilisateur)%%3$s qui sera remplacé par votre login clicktodial (défini sur votre fiche utilisateur)%%4$s qui sera remplacé par votre mot de passe clicktodial (défini sur votre fiche utilisateur).
+ClickToDialUrlDesc= Url appelée lors dun clic sur le picto téléphone. Dans l'url, vous pouvez utiliser les balises__PHONETO__ qui sera remplacé par le téléphone de l'appelé__PHONEFROM__ qui sera remplacé par le téléphone de l'appelant (le votre, défini sur votre fiche utilisateur)__LOGIN__ qui sera remplacé par votre login clicktodial (défini sur votre fiche utilisateur)__PASS__ qui sera remplacé par votre mot de passe clicktodial (défini sur votre fiche utilisateur).
##### Bookmark4u #####
Bookmark4uSetup= Configuration du module Bookmark4u
##### Interventions #####
diff --git a/htdocs/langs/it_IT/admin.lang b/htdocs/langs/it_IT/admin.lang
index 0db9a8cda9b..92512f75adc 100644
--- a/htdocs/langs/it_IT/admin.lang
+++ b/htdocs/langs/it_IT/admin.lang
@@ -695,7 +695,7 @@ TemplatePDFInterventions =Modelli per i documenti di intervento
WatermarkOnDraftInterventionCards =Filigrana su carta di documenti d'intervento (nessuna se vuoto)
##### Clicktodial #####
ClickToDialSetup =Impostazioni modulo ClickToDial (clic per telefonare)
-ClickToDialUrlDesc =Url richiamata quando si clicca sull'icona del telefono. Nell'url, potetete utilizzare i codici %%1$s che verrà sostituito con il numero telefonico a cui collegarsi, %%2$s che verrà sostituito con il numero chiamante (il vostro), %%3$s che verrà sostituito con il nome utente usato per il servizio e %%4$s che verrà sostituito con la password del servizio clicktodial.
+ClickToDialUrlDesc =Url richiamata quando si clicca sull'icona del telefono. Nell'url, potetete utilizzare i codici __PHONETO__ che verrà sostituito con il numero telefonico a cui collegarsi, __PHONEFROM__ che verrà sostituito con il numero chiamante (il vostro), __LOGIN__ che verrà sostituito con il nome utente usato per il servizio e __PASS__ che verrà sostituito con la password del servizio clicktodial.
##### Bookmark4u #####
Bookmark4uSetup =Impostazioni modulo Bookmark4u
##### Interventions #####
diff --git a/htdocs/langs/nl_BE/admin.lang b/htdocs/langs/nl_BE/admin.lang
index a5df08de70c..6b1eb8b4354 100644
--- a/htdocs/langs/nl_BE/admin.lang
+++ b/htdocs/langs/nl_BE/admin.lang
@@ -691,7 +691,7 @@ FicheinterNumberingModules=Interventie nummering modules
TemplatePDFInterventions=Interventie kaart documenten modellen
WatermarkOnDraftInterventionCards=Watermerk over de interventie kaart documenten (geen indien leeg)
ClickToDialSetup=Klik Aan Dial module setup
-ClickToDialUrlDesc=Url called when a click on phone picto is done. Dans l'url, vous pouvez utiliser les balises%%1$s qui sera remplacé par le téléphone de l'appelé%%2$s qui sera remplacé par le téléphone de l'appelant (le votre)%%3$s qui sera remplacé par votre login clicktodial (défini sur votre fiche utilisateur)%%4$s qui sera remplacé par votre mot de passe clicktodial (défini sur votre fiche utilisateur).
+ClickToDialUrlDesc=Url called when a click on phone picto is done. Dans l'url, vous pouvez utiliser les balises__PHONETO__ qui sera remplacé par le téléphone de l'appelé__PHONEFROM__ qui sera remplacé par le téléphone de l'appelant (le votre)__LOGIN__ qui sera remplacé par votre login clicktodial (défini sur votre fiche utilisateur)__PASS__ qui sera remplacé par votre mot de passe clicktodial (défini sur votre fiche utilisateur).
Bookmark4uSetup=Bookmark4u module instelscherm
InterventionsSetup=Interventies module setup
MembersSetup=Leden module setup
diff --git a/htdocs/langs/nl_NL/admin.lang b/htdocs/langs/nl_NL/admin.lang
index 30135aab625..aca4604a1ef 100644
--- a/htdocs/langs/nl_NL/admin.lang
+++ b/htdocs/langs/nl_NL/admin.lang
@@ -860,7 +860,7 @@ TemplatePDFInterventions=Interventie kaart documenten modellen
WatermarkOnDraftInterventionCards=Watermerk op voorbeeld Interventie kaarten (elke als leeg)
##### Clicktodial #####
ClickToDialSetup=Click to Dial module setup
-ClickToDialUrlDesc=Url aangeroepen wanneer een klik op een telefoon picto wordt gedaan. Dans l'url, vous pouvez utiliser les balises%%1$s qui sera remplacé par le téléphone de l'appelé%%2$s qui sera remplacé par le téléphone de l'appelant (le votre)%%3$s qui sera remplacé par votre login clicktodial (défini sur votre fiche utilisateur)%%4$s qui sera remplacé par votre mot de passe clicktodial (défini sur votre fiche utilisateur).
+ClickToDialUrlDesc=Url aangeroepen wanneer een klik op een telefoon picto wordt gedaan. Dans l'url, vous pouvez utiliser les balises__PHONETO__ qui sera remplacé par le téléphone de l'appelé__PHONEFROM__ qui sera remplacé par le téléphone de l'appelant (le votre)__LOGIN__ qui sera remplacé par votre login clicktodial (défini sur votre fiche utilisateur)__PASS__ qui sera remplacé par votre mot de passe clicktodial (défini sur votre fiche utilisateur).
##### Bookmark4u #####
Bookmark4uSetup=Bookmark4u module setup
##### Interventions #####
diff --git a/htdocs/langs/pl_PL/admin.lang b/htdocs/langs/pl_PL/admin.lang
index dc4c392f49d..0bc768c14bb 100644
--- a/htdocs/langs/pl_PL/admin.lang
+++ b/htdocs/langs/pl_PL/admin.lang
@@ -698,7 +698,7 @@ FicheinterNumberingModules=Interwencja numeracji modules
TemplatePDFInterventions=Interwencja karty wzorów dokumentów
WatermarkOnDraftInterventionCards=Znak wodny na karcie interwencji dokumenty (jeśli jakiekolwiek puste)
ClickToDialSetup=Kliknij, aby Dial konfiguracji modułu
-ClickToDialUrlDesc=Url called when a click on phone picto is done. Dans l'url, vous pouvez utiliser les balises%%1$s qui sera remplacé par le téléphone de l'appelé%%2$s qui sera remplacé par le téléphone de l'appelant (le votre)%%3$s qui sera remplacé par votre login clicktodial (défini sur votre fiche utilisateur)%%4$s qui sera remplacé par votre mot de passe clicktodial (défini sur votre fiche utilisateur).
+ClickToDialUrlDesc=Url called when a click on phone picto is done. Dans l'url, vous pouvez utiliser les balises__PHONETO__ qui sera remplacé par le téléphone de l'appelé__PHONEFROM__ qui sera remplacé par le téléphone de l'appelant (le votre)__LOGIN__ qui sera remplacé par votre login clicktodial (défini sur votre fiche utilisateur)__PASS__ qui sera remplacé par votre mot de passe clicktodial (défini sur votre fiche utilisateur).
Bookmark4uSetup=Bookmark4u konfiguracji modułu
InterventionsSetup=Interwencje konfiguracji modułu
MembersSetup=Członkowie konfiguracji modułu
diff --git a/htdocs/langs/ro_RO/admin.lang b/htdocs/langs/ro_RO/admin.lang
index 42959d5301c..edc062499ae 100644
--- a/htdocs/langs/ro_RO/admin.lang
+++ b/htdocs/langs/ro_RO/admin.lang
@@ -697,7 +697,7 @@ FicheinterNumberingModules=Modulele de intervenţie de numerotare
TemplatePDFInterventions=Carte de modele de documente de intervenţie
WatermarkOnDraftInterventionCards=Watermark pe documente carte de intervenţie (în cazul în orice gol)
ClickToDialSetup=Click pentru a Dial modul setup
-ClickToDialUrlDesc=Url called when a click on phone picto is done. Dans l'url, vous pouvez utiliser les balises%%1$s qui sera remplac� par le t�l�phone de l'appel�%%2$s qui sera remplac� par le t�l�phone de l'appelant (le votre)%%3$s qui sera remplac� par votre login clicktodial (d�fini sur votre fiche utilisateur)%%4$s qui sera remplac� par votre mot de passe clicktodial (d�fini sur votre fiche utilisateur).
+ClickToDialUrlDesc=Url called when a click on phone picto is done. Dans l'url, vous pouvez utiliser les balises__PHONETO__ qui sera remplac� par le t�l�phone de l'appel�__PHONEFROM__ qui sera remplac� par le t�l�phone de l'appelant (le votre)__LOGIN__ qui sera remplac� par votre login clicktodial (d�fini sur votre fiche utilisateur)__PASS__ qui sera remplac� par votre mot de passe clicktodial (d�fini sur votre fiche utilisateur).
Bookmark4uSetup=Bookmark4u modul de configurare
InterventionsSetup=Intervenţii de modul de configurare
MembersSetup=Membrii modul de configurare
diff --git a/htdocs/langs/ru_RU/admin.lang b/htdocs/langs/ru_RU/admin.lang
index 114251d9fd5..4fd5b7a4562 100644
--- a/htdocs/langs/ru_RU/admin.lang
+++ b/htdocs/langs/ru_RU/admin.lang
@@ -696,7 +696,7 @@ FicheinterNumberingModules=Вмешательство нумерации мод
TemplatePDFInterventions=Вмешательство карту документы моделей
WatermarkOnDraftInterventionCards=Водяной знак на вмешательство карточки документов (в любом случае, если пусто)
ClickToDialSetup=Нажмите для набора модуля настройки
-ClickToDialUrlDesc=Url called when a click on phone picto is done. Dans l'url, vous pouvez utiliser les balises%%1$s qui sera remplacé par le téléphone de l'appelé%%2$s qui sera remplacé par le téléphone de l'appelant (le votre)%%3$s qui sera remplacé par votre login clicktodial (défini sur votre fiche utilisateur)%%4$s qui sera remplacé par votre mot de passe clicktodial (défini sur votre fiche utilisateur).
+ClickToDialUrlDesc=Url called when a click on phone picto is done. Dans l'url, vous pouvez utiliser les balises__PHONETO__ qui sera remplacé par le téléphone de l'appelé__PHONEFROM__ qui sera remplacé par le téléphone de l'appelant (le votre)__LOGIN__ qui sera remplacé par votre login clicktodial (défini sur votre fiche utilisateur)__PASS__ qui sera remplacé par votre mot de passe clicktodial (défini sur votre fiche utilisateur).
Bookmark4uSetup=Bookmark4u модуль настройки
InterventionsSetup=Выступления модуль настройки
MembersSetup=Члены модуль настройки
diff --git a/htdocs/langs/sl_SL/admin.lang b/htdocs/langs/sl_SL/admin.lang
index 6a236cbbb59..a431dd3b549 100644
--- a/htdocs/langs/sl_SL/admin.lang
+++ b/htdocs/langs/sl_SL/admin.lang
@@ -869,7 +869,7 @@ TemplatePDFInterventions=Modeli obrazcev intervencijskih kartic
WatermarkOnDraftInterventionCards=Vodni tisk na dokumentih intervencijskih kartic (brez, če je prazno)
##### Clicktodial #####
ClickToDialSetup=Nastavitve modula za klicanje s klikom
-ClickToDialUrlDesc=Po kliku na piktogram se izvede klic na Url. Na url lahko uporabite ikono%%1$s ki predstavlja telefon klicanega%%2$s ki predstavlja telefon klicatelja (vaša številka)%%3$s ki predstavlja vašo prijavo na klicanje s klikom (določena z vašo uporabniško kodo)%%4$s ki predstavlja vaše geslo za klicanje s klikom (določena z vašo uporabniško kodo).
+ClickToDialUrlDesc=Po kliku na piktogram se izvede klic na Url. Na url lahko uporabite ikono__PHONETO__ ki predstavlja telefon klicanega__PHONEFROM__ ki predstavlja telefon klicatelja (vaša številka)__LOGIN__ ki predstavlja vašo prijavo na klicanje s klikom (določena z vašo uporabniško kodo)__PASS__ ki predstavlja vaše geslo za klicanje s klikom (določena z vašo uporabniško kodo).
##### Bookmark4u #####
Bookmark4uSetup=Nastavitve modula vaših zaznamkov
##### Interventions #####
diff --git a/htdocs/lib/functions.lib.php b/htdocs/lib/functions.lib.php
index e2eeeb837cf..d44b08aae1e 100644
--- a/htdocs/lib/functions.lib.php
+++ b/htdocs/lib/functions.lib.php
@@ -825,14 +825,14 @@ function dolibarr_print_phone($phone,$country="FR",$cid=0,$socid=0,$addlink=0,$s
}
/**
- * \brief Format phone numbers according to country
- * \param phone Phone number to format
- * \param country Country to use for formatting
- * \param cid Id of contact if known
- * \param socid Id of third party if known
- * \param addlink 0=no link to create action
- * \param separ separation between numbers for a better visibility example : xx.xx.xx.xx.xx
- * \return string Formated phone number
+ * Format phone numbers according to country
+ * @param phone Phone number to format
+ * @param country Country to use for formatting
+ * @param cid Id of contact if known
+ * @param socid Id of third party if known
+ * @param addlink 0=no link to create action
+ * @param separ separation between numbers for a better visibility example : xx.xx.xx.xx.xx
+ * @return string Formated phone number
*/
function dol_print_phone($phone,$country="FR",$cid=0,$socid=0,$addlink=0,$separ=" ")
{
@@ -875,8 +875,18 @@ function dol_print_phone($phone,$country="FR",$cid=0,$socid=0,$addlink=0,$separ=
if (empty($conf->global->CLICKTODIAL_URL)) $urlmask='ErrorClickToDialModuleNotConfigured';
else $urlmask=$conf->global->CLICKTODIAL_URL;
+ // This line is for backward compatibility
$url = sprintf($urlmask, urlencode($phone), urlencode($user->clicktodial_poste), urlencode($user->clicktodial_login), urlencode($user->clicktodial_password));
- $newphone=''.$newphone.' ';
+ // Thoose lines are for substitution
+ $substitarray=array('__PHONEFROM__'=>$user->clicktodial_poste,
+ '__PHONETO__'=>$phone,
+ '__LOGIN__'=>$user->clicktodial_login,
+ '__PASS__'=>$user->clicktodial_password);
+ $url = make_substitutions($url, $substitarray, $langs);
+ $newphonesav=$newphone;
+ $newphone ='global->CLICKTODIAL_FORCENEWTARGET)) $newphone.=' target="_blank"';
+ $newphone.='>'.$newphonesav.' ';
}
//if (($cid || $socid) && $conf->agenda->enabled && $user->rights->agenda->myactions->create)
@@ -893,10 +903,10 @@ function dol_print_phone($phone,$country="FR",$cid=0,$socid=0,$addlink=0,$separ=
}
/**
- * \brief Return an IP formated to be shown on screen
- * \param ip IP
- * \param mode 1=return only country/flag,2=return only IP
- * \return string Formated IP, with country if GeoIP module is enabled
+ * Return an IP formated to be shown on screen
+ * @param ip IP
+ * @param mode 1=return only country/flag,2=return only IP
+ * @return string Formated IP, with country if GeoIP module is enabled
*/
function dol_print_ip($ip,$mode=0)
{