From c6991f97d40a3e710900dcb12bd9e06ef7e3f68c Mon Sep 17 00:00:00 2001 From: Florian Henry Date: Sun, 1 Dec 2013 22:47:22 +0100 Subject: [PATCH 1/9] [ bug #1174 ] Product translated description not good into PDF Country --- ChangeLog | 2 ++ htdocs/core/lib/pdf.lib.php | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index f18248c35fc..f980c7fa7cf 100644 --- a/ChangeLog +++ b/ChangeLog @@ -12,6 +12,8 @@ Fix: [ bug #1142 ] Set paiement on invoice (PGSql) Fix: [ bug #1145 ] Agenda button list type do not display Fix: [ bug #1148 ] Product consomation : supplier order bad status Fix: [ bug #1159 ] Commercial search "other" give p.note do not exists +Fix: [ bug #1174 ] Product translated description not good into PDF + ***** ChangeLog for 3.4.1 compared to 3.4.0 ***** Fix: Display buying price on line edit when no supplier price is defined diff --git a/htdocs/core/lib/pdf.lib.php b/htdocs/core/lib/pdf.lib.php index 5301f5daa04..059cb0fe285 100644 --- a/htdocs/core/lib/pdf.lib.php +++ b/htdocs/core/lib/pdf.lib.php @@ -923,7 +923,7 @@ function pdf_getlinedesc($object,$i,$outputlangs,$hideref=0,$hidedesc=0,$issuppl if (! empty($conf->global->MAIN_MULTILANGS) && ($outputlangs->defaultlang != $langs->defaultlang)) { if (! empty($prodser->multilangs[$outputlangs->defaultlang]["label"]) && $label == $prodser->label) $label=$prodser->multilangs[$outputlangs->defaultlang]["label"]; - if (! empty($prodser->multilangs[$outputlangs->defaultlang]["description"]) && $desc == $prodser->description) $desc=$prodser->multilangs[$outputlangs->defaultlang]["description"]; + if (! empty($prodser->multilangs[$outputlangs->defaultlang]["description"]) && strpos($desc,$prodser->description)!==false) $desc=$prodser->multilangs[$outputlangs->defaultlang]["description"]; if (! empty($prodser->multilangs[$outputlangs->defaultlang]["note"]) && $note == $prodser->note) $note=$prodser->multilangs[$outputlangs->defaultlang]["note"]; } } From ff9c84fd0e8fd6e1cd1939f77ad1a3145578e62a Mon Sep 17 00:00:00 2001 From: Florian Henry Date: Mon, 2 Dec 2013 00:20:50 +0100 Subject: [PATCH 2/9] Better test for HTMLentities desc translation --- htdocs/core/lib/pdf.lib.php | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/htdocs/core/lib/pdf.lib.php b/htdocs/core/lib/pdf.lib.php index 059cb0fe285..f11a0fa7ec8 100644 --- a/htdocs/core/lib/pdf.lib.php +++ b/htdocs/core/lib/pdf.lib.php @@ -923,7 +923,19 @@ function pdf_getlinedesc($object,$i,$outputlangs,$hideref=0,$hidedesc=0,$issuppl if (! empty($conf->global->MAIN_MULTILANGS) && ($outputlangs->defaultlang != $langs->defaultlang)) { if (! empty($prodser->multilangs[$outputlangs->defaultlang]["label"]) && $label == $prodser->label) $label=$prodser->multilangs[$outputlangs->defaultlang]["label"]; - if (! empty($prodser->multilangs[$outputlangs->defaultlang]["description"]) && strpos($desc,$prodser->description)!==false) $desc=$prodser->multilangs[$outputlangs->defaultlang]["description"]; + + //Manage HTML entities description test + if ($conf->global->FCKEDITOR_ENABLE_PRODUCTDESC) { + $desctest=dol_htmlentities($desc, ENT_COMPAT | ENT_HTML401); + } else { + $desctest=$desc; + } + if (! empty($prodser->multilangs[$outputlangs->defaultlang]["description"]) && + ((strpos($desctest,$prodser->description)!==false) || + (strpos($desc,$prodser->description)!==false))) { + $desc=$prodser->multilangs[$outputlangs->defaultlang]["description"]; + } + if (! empty($prodser->multilangs[$outputlangs->defaultlang]["note"]) && $note == $prodser->note) $note=$prodser->multilangs[$outputlangs->defaultlang]["note"]; } } From c0ef63fd746e99f31eb1870e5048108441d11c68 Mon Sep 17 00:00:00 2001 From: Florian Henry Date: Mon, 2 Dec 2013 00:22:49 +0100 Subject: [PATCH 3/9] Bteer fix --- htdocs/comm/propal.php | 4 ++-- htdocs/core/lib/pdf.lib.php | 1 + 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/htdocs/comm/propal.php b/htdocs/comm/propal.php index 33fed6c76d1..60e29a74543 100644 --- a/htdocs/comm/propal.php +++ b/htdocs/comm/propal.php @@ -786,7 +786,7 @@ else if ($action == "addline" && $user->rights->propal->creer) $info_bits=0; if ($tva_npr) $info_bits |= 0x01; - + if (! empty($price_min) && (price2num($pu_ht)*(1-price2num(GETPOST('remise_percent'))/100) < price2num($price_min))) { $mesg = $langs->trans("CantBeLessThanMinPrice",price2num($price_min,'MU').$langs->getCurrencySymbol($conf->currency)); @@ -920,7 +920,7 @@ else if ($action == 'updateligne' && $user->rights->propal->creer && GETPOST('sa $error++; } } - + if (! $error) { $result = $object->updateline( diff --git a/htdocs/core/lib/pdf.lib.php b/htdocs/core/lib/pdf.lib.php index f11a0fa7ec8..475991831e4 100644 --- a/htdocs/core/lib/pdf.lib.php +++ b/htdocs/core/lib/pdf.lib.php @@ -930,6 +930,7 @@ function pdf_getlinedesc($object,$i,$outputlangs,$hideref=0,$hidedesc=0,$issuppl } else { $desctest=$desc; } + //Test with htmlenties for update and no htmlentities for creation if (! empty($prodser->multilangs[$outputlangs->defaultlang]["description"]) && ((strpos($desctest,$prodser->description)!==false) || (strpos($desc,$prodser->description)!==false))) { From 1b38d36f2884a56e3e265f3cf6a1b099489d791f Mon Sep 17 00:00:00 2001 From: Florian Henry Date: Mon, 2 Dec 2013 10:27:41 +0100 Subject: [PATCH 4/9] Better Fix --- htdocs/core/lib/pdf.lib.php | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/htdocs/core/lib/pdf.lib.php b/htdocs/core/lib/pdf.lib.php index 475991831e4..2bc5ebab145 100644 --- a/htdocs/core/lib/pdf.lib.php +++ b/htdocs/core/lib/pdf.lib.php @@ -925,18 +925,14 @@ function pdf_getlinedesc($object,$i,$outputlangs,$hideref=0,$hidedesc=0,$issuppl if (! empty($prodser->multilangs[$outputlangs->defaultlang]["label"]) && $label == $prodser->label) $label=$prodser->multilangs[$outputlangs->defaultlang]["label"]; //Manage HTML entities description test + //Cause $prodser->description is store with htmlentities but $desc no if ($conf->global->FCKEDITOR_ENABLE_PRODUCTDESC) { - $desctest=dol_htmlentities($desc, ENT_COMPAT | ENT_HTML401); + $testDescNeedTranslated=(strpos(dol_html_entity_decode($desc,ENT_QUOTES | ENT_HTML401),dol_html_entity_decode($prodser->description,ENT_QUOTES | ENT_HTML401))!==false); } else { - $desctest=$desc; - } - //Test with htmlenties for update and no htmlentities for creation - if (! empty($prodser->multilangs[$outputlangs->defaultlang]["description"]) && - ((strpos($desctest,$prodser->description)!==false) || - (strpos($desc,$prodser->description)!==false))) { - $desc=$prodser->multilangs[$outputlangs->defaultlang]["description"]; + $testDescNeedTranslated=true; } + if (! empty($prodser->multilangs[$outputlangs->defaultlang]["description"]) && ($testDescNeedTranslated || (strpos($desc,$prodser->description)!==false))) $desc=$prodser->multilangs[$outputlangs->defaultlang]["description"]; if (! empty($prodser->multilangs[$outputlangs->defaultlang]["note"]) && $note == $prodser->note) $note=$prodser->multilangs[$outputlangs->defaultlang]["note"]; } } From 1ad1b25f6e6f19040d0eb559a6a8e2b312f5981f Mon Sep 17 00:00:00 2001 From: Florian Henry Date: Mon, 2 Dec 2013 10:29:58 +0100 Subject: [PATCH 5/9] remove useless space --- htdocs/core/lib/pdf.lib.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/core/lib/pdf.lib.php b/htdocs/core/lib/pdf.lib.php index 2bc5ebab145..dcf5ebff74b 100644 --- a/htdocs/core/lib/pdf.lib.php +++ b/htdocs/core/lib/pdf.lib.php @@ -932,7 +932,7 @@ function pdf_getlinedesc($object,$i,$outputlangs,$hideref=0,$hidedesc=0,$issuppl $testDescNeedTranslated=true; } - if (! empty($prodser->multilangs[$outputlangs->defaultlang]["description"]) && ($testDescNeedTranslated || (strpos($desc,$prodser->description)!==false))) $desc=$prodser->multilangs[$outputlangs->defaultlang]["description"]; + if (! empty($prodser->multilangs[$outputlangs->defaultlang]["description"]) && ($testDescNeedTranslated || (strpos($desc,$prodser->description)!==false))) $desc=$prodser->multilangs[$outputlangs->defaultlang]["description"]; if (! empty($prodser->multilangs[$outputlangs->defaultlang]["note"]) && $note == $prodser->note) $note=$prodser->multilangs[$outputlangs->defaultlang]["note"]; } } From 0907d81fcb816263ae2ddfc1b4b2179b492bde4a Mon Sep 17 00:00:00 2001 From: Florian Henry Date: Mon, 2 Dec 2013 11:05:07 +0100 Subject: [PATCH 6/9] Avoid strpos bug if string is empty or null --- htdocs/core/lib/pdf.lib.php | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/htdocs/core/lib/pdf.lib.php b/htdocs/core/lib/pdf.lib.php index dcf5ebff74b..fdb07237bac 100644 --- a/htdocs/core/lib/pdf.lib.php +++ b/htdocs/core/lib/pdf.lib.php @@ -926,13 +926,21 @@ function pdf_getlinedesc($object,$i,$outputlangs,$hideref=0,$hidedesc=0,$issuppl //Manage HTML entities description test //Cause $prodser->description is store with htmlentities but $desc no + $testHTMLDescNeedTranslated=true; + $testDescNeedTranslated=true; if ($conf->global->FCKEDITOR_ENABLE_PRODUCTDESC) { - $testDescNeedTranslated=(strpos(dol_html_entity_decode($desc,ENT_QUOTES | ENT_HTML401),dol_html_entity_decode($prodser->description,ENT_QUOTES | ENT_HTML401))!==false); + if (!empty($desc) && !empty($prodser->description)) { + $testHTMLDescNeedTranslated=(strpos(dol_html_entity_decode($desc,ENT_QUOTES | ENT_HTML401),dol_html_entity_decode($prodser->description,ENT_QUOTES | ENT_HTML401))!==false); + } } else { - $testDescNeedTranslated=true; + if (!empty($desc) && !empty($prodser->description)) { + $testDescNeedTranslated = (strpos($desc,$prodser->description)!==false); + } else { + $testDescNeedTranslated=false; + } } - if (! empty($prodser->multilangs[$outputlangs->defaultlang]["description"]) && ($testDescNeedTranslated || (strpos($desc,$prodser->description)!==false))) $desc=$prodser->multilangs[$outputlangs->defaultlang]["description"]; + if (! empty($prodser->multilangs[$outputlangs->defaultlang]["description"]) && ($testHTMLDescNeedTranslated || $testDescNeedTranslated)) $desc=$prodser->multilangs[$outputlangs->defaultlang]["description"]; if (! empty($prodser->multilangs[$outputlangs->defaultlang]["note"]) && $note == $prodser->note) $note=$prodser->multilangs[$outputlangs->defaultlang]["note"]; } } From 3e712c9c8c8f33a80d74ab04e965394aeea5d7b3 Mon Sep 17 00:00:00 2001 From: Florian Henry Date: Mon, 2 Dec 2013 11:11:08 +0100 Subject: [PATCH 7/9] Finnaly make it works --- htdocs/core/lib/pdf.lib.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/htdocs/core/lib/pdf.lib.php b/htdocs/core/lib/pdf.lib.php index fdb07237bac..fa8de1c0352 100644 --- a/htdocs/core/lib/pdf.lib.php +++ b/htdocs/core/lib/pdf.lib.php @@ -932,6 +932,7 @@ function pdf_getlinedesc($object,$i,$outputlangs,$hideref=0,$hidedesc=0,$issuppl if (!empty($desc) && !empty($prodser->description)) { $testHTMLDescNeedTranslated=(strpos(dol_html_entity_decode($desc,ENT_QUOTES | ENT_HTML401),dol_html_entity_decode($prodser->description,ENT_QUOTES | ENT_HTML401))!==false); } + $testDescNeedTranslated=false; } else { if (!empty($desc) && !empty($prodser->description)) { $testDescNeedTranslated = (strpos($desc,$prodser->description)!==false); @@ -939,7 +940,7 @@ function pdf_getlinedesc($object,$i,$outputlangs,$hideref=0,$hidedesc=0,$issuppl $testDescNeedTranslated=false; } } - + if (! empty($prodser->multilangs[$outputlangs->defaultlang]["description"]) && ($testHTMLDescNeedTranslated || $testDescNeedTranslated)) $desc=$prodser->multilangs[$outputlangs->defaultlang]["description"]; if (! empty($prodser->multilangs[$outputlangs->defaultlang]["note"]) && $note == $prodser->note) $note=$prodser->multilangs[$outputlangs->defaultlang]["note"]; } From bc4cfd66dbd13c12f498527dcba108dd7abb64a7 Mon Sep 17 00:00:00 2001 From: Florian Henry Date: Mon, 2 Dec 2013 15:07:34 +0100 Subject: [PATCH 8/9] Fix: fix unsubscribe URL into mailing when sending manually (not by script) --- ChangeLog | 1 + htdocs/comm/mailing/fiche.php | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/ChangeLog b/ChangeLog index 2e86e0f7279..d6caeca60c3 100644 --- a/ChangeLog +++ b/ChangeLog @@ -19,6 +19,7 @@ Fix: [ bug #1162 ] Translaction for morning and afternoon Fix: [ bug #1161 ] Search on product label Fix: [ bug #1075 ] POS module doesn't decrement stock of products in delayed payment mode. Fix: [ bug #1171 ] Documents lost in interventions after validating +Fix: fix unsubscribe URL into mailing when sending manually (not by script) ***** ChangeLog for 3.4.1 compared to 3.4.0 ***** Fix: Display buying price on line edit when no supplier price is defined diff --git a/htdocs/comm/mailing/fiche.php b/htdocs/comm/mailing/fiche.php index 88ee011bf8f..c3f87e6e4e8 100644 --- a/htdocs/comm/mailing/fiche.php +++ b/htdocs/comm/mailing/fiche.php @@ -221,8 +221,8 @@ if ($action == 'sendallconfirmed' && $confirm == 'yes') $substitutionarray=array( '__ID__' => $obj->source_id, '__EMAIL__' => $obj->email, - '__CHECK_READ__' => '', - '__UNSUBSCRIBE__' => ''.$langs->trans("MailUnsubcribe").'', + '__CHECK_READ__' => '', + '__UNSUBSCRIBE__' => ''.$langs->trans("MailUnsubcribe").'', '__MAILTOEMAIL__' => ''.$obj->email.'', '__LASTNAME__' => $obj->lastname, '__FIRSTNAME__' => $obj->firstname, From c2a8967b52cf3b154be7d35fdec1eaa427156111 Mon Sep 17 00:00:00 2001 From: Florian Henry Date: Tue, 3 Dec 2013 17:06:19 +0100 Subject: [PATCH 9/9] Much better fix for translated product description into PDF --- htdocs/core/lib/pdf.lib.php | 18 +++++------------- 1 file changed, 5 insertions(+), 13 deletions(-) diff --git a/htdocs/core/lib/pdf.lib.php b/htdocs/core/lib/pdf.lib.php index fa8de1c0352..1f5ef92f711 100644 --- a/htdocs/core/lib/pdf.lib.php +++ b/htdocs/core/lib/pdf.lib.php @@ -926,22 +926,14 @@ function pdf_getlinedesc($object,$i,$outputlangs,$hideref=0,$hidedesc=0,$issuppl //Manage HTML entities description test //Cause $prodser->description is store with htmlentities but $desc no - $testHTMLDescNeedTranslated=true; - $testDescNeedTranslated=true; - if ($conf->global->FCKEDITOR_ENABLE_PRODUCTDESC) { - if (!empty($desc) && !empty($prodser->description)) { - $testHTMLDescNeedTranslated=(strpos(dol_html_entity_decode($desc,ENT_QUOTES | ENT_HTML401),dol_html_entity_decode($prodser->description,ENT_QUOTES | ENT_HTML401))!==false); - } - $testDescNeedTranslated=false; + $needdesctranslation=false; + if (!empty($desc) && dol_textishtml($desc) && !empty($prodser->description) && dol_textishtml($prodser->description)) { + $needdesctranslation=(strpos(dol_html_entity_decode($desc,ENT_QUOTES | ENT_HTML401),dol_html_entity_decode($prodser->description,ENT_QUOTES | ENT_HTML401))!==false); } else { - if (!empty($desc) && !empty($prodser->description)) { - $testDescNeedTranslated = (strpos($desc,$prodser->description)!==false); - } else { - $testDescNeedTranslated=false; - } + $needdesctranslation=($desc == $prodser->description); } - if (! empty($prodser->multilangs[$outputlangs->defaultlang]["description"]) && ($testHTMLDescNeedTranslated || $testDescNeedTranslated)) $desc=$prodser->multilangs[$outputlangs->defaultlang]["description"]; + if (! empty($prodser->multilangs[$outputlangs->defaultlang]["description"]) && ($needdesctranslation)) $desc=$prodser->multilangs[$outputlangs->defaultlang]["description"]; if (! empty($prodser->multilangs[$outputlangs->defaultlang]["note"]) && $note == $prodser->note) $note=$prodser->multilangs[$outputlangs->defaultlang]["note"]; } }