';
$out .= '
';
if (! empty($conf->global->OPTIMIZEFORTEXTBROWSER)) $out .= ''.$langs->trans("URLToLink") . ': ';
- $out .= ' ';
+ $out .= ' ';
$out .= '
';
$out .= '
';
if (! empty($conf->global->OPTIMIZEFORTEXTBROWSER)) $out .= ''.$langs->trans("Label") . ': ';
- $out .= ' ';
+ $out .= ' ';
$out .= ' ';
$out .= ' ';
$out .= '
';
@@ -1451,6 +1451,7 @@ class FormFile
else
{
print '
';
+ print img_picto('', 'object_globe').' ';
print '';
print $link->label;
print ' ';
diff --git a/htdocs/core/class/smtps.class.php b/htdocs/core/class/smtps.class.php
index 39a45ad783b..c8ce225e0c2 100644
--- a/htdocs/core/class/smtps.class.php
+++ b/htdocs/core/class/smtps.class.php
@@ -489,14 +489,20 @@ class SMTPs
// and send it out "single file"
foreach ( $this->get_RCPT_list() as $_address )
{
- /*
+ /* Note:
+ * BCC email addresses must be listed in the RCPT TO command list,
+ * but the BCC header should not be printed under the DATA command.
+ * http://stackoverflow.com/questions/2750211/sending-bcc-emails-using-a-smtp-server
+ */
+
+ /*
* TODO
- * After each 'RCPT TO:' is sent, we need to make sure it was kosher,
- * if not, the whole message will fail
- * If any email address fails, we will need to RESET the connection,
- * mark the last address as "bad" and start the address loop over again.
- * If any address fails, the entire message fails.
- */
+ * After each 'RCPT TO:' is sent, we need to make sure it was kosher,
+ * if not, the whole message will fail
+ * If any email address fails, we will need to RESET the connection,
+ * mark the last address as "bad" and start the address loop over again.
+ * If any address fails, the entire message fails.
+ */
$this->socket_send_str('RCPT TO: <' . $_address . '>', '250');
}
@@ -1025,7 +1031,7 @@ class SMTPs
/**
* Returns an array of addresses for a specific type; TO, CC or BCC
*
- * @param string $_which Which collection of adresses to return
+ * @param string $_which Which collection of addresses to return ('to', 'cc', 'bcc')
* @return string|false Array of emaill address
*/
function get_email_list($_which = null)
@@ -1174,9 +1180,17 @@ class SMTPs
if ( $this->getCC() )
$_header .= 'Cc: ' . $this->getCC() . "\r\n";
+ /* Note:
+ * BCC email addresses must be listed in the RCPT TO command list,
+ * but the BCC header should not be printed under the DATA command.
+ * So it is included into the function sendMsg() but not here.
+ * http://stackoverflow.com/questions/2750211/sending-bcc-emails-using-a-smtp-server
+ */
+ /*
if ( $this->getBCC() )
$_header .= 'Bcc: ' . $this->getBCC() . "\r\n";
-
+ */
+
$host=$this->getHost();
$host=preg_replace('@tcp://@i','',$host); // Remove prefix
$host=preg_replace('@ssl://@i','',$host); // Remove prefix
diff --git a/htdocs/core/lib/company.lib.php b/htdocs/core/lib/company.lib.php
index a5866527b50..e99a6913773 100644
--- a/htdocs/core/lib/company.lib.php
+++ b/htdocs/core/lib/company.lib.php
@@ -1159,7 +1159,7 @@ function show_actions_done($conf, $langs, $db, $filterobj, $objcon='', $noprint=
$out.=' ';
}
$out.=getTitleFieldOfList($langs->trans("Ref"), 0, $_SERVER["PHP_SELF"], 'a.id', '', $param, '', $sortfield, $sortorder);
- $out.='
'.$langs->trans("Label").' ';
+ $out.='
'.$langs->trans("Label").' ';
$out.=getTitleFieldOfList($langs->trans("Date"), 0, $_SERVER["PHP_SELF"], 'a.datep, a.id', '', $param, '', $sortfield, $sortorder);
$out.='
'.$langs->trans("Type").' ';
$out.='
';
@@ -1176,7 +1176,7 @@ function show_actions_done($conf, $langs, $db, $filterobj, $objcon='', $noprint=
$out.='
';
}
$out.='
';
- $out.='
';
+ $out.='
';
$out.='
';
$out.='
';
$out.=$formactions->select_type_actions($actioncode, "actioncode", '', empty($conf->global->AGENDA_USE_EVENT_TYPE)?1:-1, 0, 0, 1);
diff --git a/htdocs/core/lib/functions.lib.php b/htdocs/core/lib/functions.lib.php
index b1a9c0b2735..d102e264913 100644
--- a/htdocs/core/lib/functions.lib.php
+++ b/htdocs/core/lib/functions.lib.php
@@ -2241,14 +2241,14 @@ function dol_trunc($string,$size=40,$trunc='right',$stringencoding='UTF-8',$nodo
* Example: picto.png if picto.png is stored into htdocs/theme/mytheme/img
* Example: picto.png@mymodule if picto.png is stored into htdocs/mymodule/img
* Example: /mydir/mysubdir/picto.png if picto.png is stored into htdocs/mydir/mysubdir (pictoisfullpath must be set to 1)
- * @param string $options Add more attribute on img tag (For example 'style="float: right"')
+ * @param string $morealt Add more attribute on img tag (For example 'style="float: right"')
* @param int $pictoisfullpath If 1, image path is a full path
* @param int $srconly Return only content of the src attribute of img.
* @param int $notitle 1=Disable tag title. Use it if you add js tooltip, to avoid duplicate tooltip.
* @return string Return img tag
* @see #img_object, #img_picto_common
*/
-function img_picto($titlealt, $picto, $options = '', $pictoisfullpath = false, $srconly=0, $notitle=0)
+function img_picto($titlealt, $picto, $morealt = '', $pictoisfullpath = false, $srconly=0, $notitle=0)
{
global $conf;
@@ -2300,7 +2300,7 @@ function img_picto($titlealt, $picto, $options = '', $pictoisfullpath = false, $
if (preg_match('/:[^\s0-9]/',$titlealt)) $tmparray=explode(':',$titlealt); // We explode if we have TextA:TextB. Not if we have TextA: TextB
$title=$tmparray[0];
$alt=empty($tmparray[1])?'':$tmparray[1];
- return ' '; // Alt is used for accessibility, title for popup
+ return ' '; // Alt is used for accessibility, title for popup
}
}
@@ -2310,16 +2310,16 @@ function img_picto($titlealt, $picto, $options = '', $pictoisfullpath = false, $
* @param string $titlealt Text on alt and title of image. Alt only if param notitle is set to 1. If text is "TextA:TextB", use Text A on alt and Text B on title.
* @param string $picto Name of image to show object_picto (example: user, group, action, bill, contract, propal, product, ...)
* For external modules use imagename@mymodule to search into directory "img" of module.
- * @param string $options Add more attribute on img tag (ie: class="datecallink")
+ * @param string $morealt Add more attribute on img tag (ie: class="datecallink")
* @param int $pictoisfullpath If 1, image path is a full path
* @param int $srconly Return only content of the src attribute of img.
* @param int $notitle 1=Disable tag title. Use it if you add js tooltip, to avoid duplicate tooltip.
* @return string Return img tag
* @see #img_picto, #img_picto_common
*/
-function img_object($titlealt, $picto, $options = '', $pictoisfullpath = false, $srconly=0, $notitle=0)
+function img_object($titlealt, $picto, $morealt = '', $pictoisfullpath = false, $srconly=0, $notitle=0)
{
- return img_picto($titlealt, 'object_'.$picto, $options, $pictoisfullpath, $srconly, $notitle);
+ return img_picto($titlealt, 'object_'.$picto, $morealt, $pictoisfullpath, $srconly, $notitle);
}
/**
@@ -2327,12 +2327,12 @@ function img_object($titlealt, $picto, $options = '', $pictoisfullpath = false,
*
* @param string $titlealt Text on alt and title of image. Alt only if param notitle is set to 1. If text is "TextA:TextB", use Text A on alt and Text B on title.
* @param string $picto Name of image file to show (If no extension provided, we use '.png'). Image must be stored into htdocs/theme/common directory.
- * @param string $options Add more attribute on img tag
+ * @param string $morealt Add more attribute on img tag
* @param int $pictoisfullpath If 1, image path is a full path
* @return string Return img tag
* @see #img_object, #img_picto
*/
-function img_weather($titlealt, $picto, $options = '', $pictoisfullpath = 0)
+function img_weather($titlealt, $picto, $morealt = '', $pictoisfullpath = 0)
{
global $conf;
@@ -2340,7 +2340,7 @@ function img_weather($titlealt, $picto, $options = '', $pictoisfullpath = 0)
$path = DOL_URL_ROOT.'/theme/'.$conf->theme.'/img/weather/'.$picto;
- return img_picto($titlealt, $path, $options, 1);
+ return img_picto($titlealt, $path, $morealt, 1);
}
/**
@@ -2348,12 +2348,12 @@ function img_weather($titlealt, $picto, $options = '', $pictoisfullpath = 0)
*
* @param string $titlealt Text on alt and title of image. Alt only if param notitle is set to 1. If text is "TextA:TextB", use Text A on alt and Text B on title.
* @param string $picto Name of image file to show (If no extension provided, we use '.png'). Image must be stored into htdocs/theme/common directory.
- * @param string $options Add more attribute on img tag
+ * @param string $morealt Add more attribute on img tag
* @param int $pictoisfullpath If 1, image path is a full path
* @return string Return img tag
* @see #img_object, #img_picto
*/
-function img_picto_common($titlealt, $picto, $options = '', $pictoisfullpath = 0)
+function img_picto_common($titlealt, $picto, $morealt = '', $pictoisfullpath = 0)
{
global $conf;
@@ -2372,7 +2372,7 @@ function img_picto_common($titlealt, $picto, $options = '', $pictoisfullpath = 0
}
}
- return img_picto($titlealt, $path, $options, 1);
+ return img_picto($titlealt, $path, $morealt, 1);
}
/**
@@ -2478,9 +2478,9 @@ function img_view($titlealt = 'default', $float = 0, $other = '')
if ($titlealt == 'default') $titlealt = $langs->trans('View');
- $options = ($float ? 'style="float: right" ' : '').$other;
+ $morealt = ($float ? 'style="float: right" ' : '').$other;
- return img_picto($titlealt, 'view.png', $options);
+ return img_picto($titlealt, 'view.png', $morealt);
}
/**
@@ -2552,16 +2552,16 @@ function img_info($titlealt = 'default')
* Show warning logo
*
* @param string $titlealt Text on alt and title of image. Alt only if param notitle is set to 1. If text is "TextA:TextB", use Text A on alt and Text B on title.
- * @param string $options Add more attribute on img tag (For example 'style="float: right"'). If 1
+ * @param string $morealt Add more attribute on img tag (For example 'style="float: right"'). If 1
* @return string Return img tag
*/
-function img_warning($titlealt = 'default', $options = '')
+function img_warning($titlealt = 'default', $morealt = '')
{
global $conf, $langs;
if ($titlealt == 'default') $titlealt = $langs->trans('Warning');
- return img_picto($titlealt, 'warning.png', 'class="pictowarning"'.($options ? ($options == '1' ? ' style="float: right"' : ' '.$options): ''));
+ return img_picto($titlealt, 'warning.png', 'class="pictowarning"'.($morealt ? ($morealt == '1' ? ' style="float: right"' : ' '.$morealt): ''));
}
/**
@@ -2583,32 +2583,32 @@ function img_error($titlealt = 'default')
* Show next logo
*
* @param string $titlealt Text on alt and title of image. Alt only if param notitle is set to 1. If text is "TextA:TextB", use Text A on alt and Text B on title.
-* @param string $options Add more attribute on img tag (For example 'style="float: right"')
+* @param string $morealt Add more attribute on img tag (For example 'style="float: right"')
* @return string Return img tag
*/
-function img_next($titlealt = 'default', $options='')
+function img_next($titlealt = 'default', $morealt='')
{
global $conf, $langs;
if ($titlealt == 'default') $titlealt = $langs->trans('Next');
- return img_picto($titlealt, 'next.png', $options);
+ return img_picto($titlealt, 'next.png', $morealt);
}
/**
* Show previous logo
*
* @param string $titlealt Text on alt and title of image. Alt only if param notitle is set to 1. If text is "TextA:TextB", use Text A on alt and Text B on title.
- * @param string $options Add more attribute on img tag (For example 'style="float: right"')
+ * @param string $morealt Add more attribute on img tag (For example 'style="float: right"')
* @return string Return img tag
*/
-function img_previous($titlealt = 'default', $options='')
+function img_previous($titlealt = 'default', $morealt='')
{
global $conf, $langs;
if ($titlealt == 'default') $titlealt = $langs->trans('Previous');
- return img_picto($titlealt, 'previous.png', $options);
+ return img_picto($titlealt, 'previous.png', $morealt);
}
/**
@@ -2650,16 +2650,16 @@ function img_up($titlealt = 'default', $selected = 0, $moreclass='')
*
* @param string $titlealt Text on alt and title of image. Alt only if param notitle is set to 1. If text is "TextA:TextB", use Text A on alt and Text B on title.
* @param int $selected Selected
- * @param string $options Add more attribute on img tag (For example 'style="float: right"')
+ * @param string $morealt Add more attribute on img tag (For example 'style="float: right"')
* @return string Return img tag
*/
-function img_left($titlealt = 'default', $selected = 0, $options='')
+function img_left($titlealt = 'default', $selected = 0, $morealt='')
{
global $conf, $langs;
if ($titlealt == 'default') $titlealt = $langs->trans('Left');
- return img_picto($titlealt, ($selected ? '1leftarrow_selected.png' : '1leftarrow.png'), $options);
+ return img_picto($titlealt, ($selected ? '1leftarrow_selected.png' : '1leftarrow.png'), $morealt);
}
/**
@@ -2667,16 +2667,16 @@ function img_left($titlealt = 'default', $selected = 0, $options='')
*
* @param string $titlealt Text on alt and title of image. Alt only if param notitle is set to 1. If text is "TextA:TextB", use Text A on alt and Text B on title.
* @param int $selected Selected
- * @param string $options Add more attribute on img tag (For example 'style="float: right"')
+ * @param string $morealt Add more attribute on img tag (For example 'style="float: right"')
* @return string Return img tag
*/
-function img_right($titlealt = 'default', $selected = 0, $options='')
+function img_right($titlealt = 'default', $selected = 0, $morealt='')
{
global $conf, $langs;
if ($titlealt == 'default') $titlealt = $langs->trans('Right');
- return img_picto($titlealt, ($selected ? '1rightarrow_selected.png' : '1rightarrow.png'), $options);
+ return img_picto($titlealt, ($selected ? '1rightarrow_selected.png' : '1rightarrow.png'), $morealt);
}
/**
diff --git a/htdocs/core/tpl/contacts.tpl.php b/htdocs/core/tpl/contacts.tpl.php
index 28a02fcd38a..845bc30ce13 100644
--- a/htdocs/core/tpl/contacts.tpl.php
+++ b/htdocs/core/tpl/contacts.tpl.php
@@ -110,11 +110,10 @@ if ($permission) {
socid; ?>
dol_use_jmobile))
+ // add company icon before select list
+ if ($selectedCompany)
{
- $companystatic->fetch($selectedCompany);
- echo $companystatic->getNomUrl(2, '', 0, 1);
+ echo img_object('', 'company', 'class="hideonsmartphone"');
}
?>
selectCompaniesForNewContact($object, 'id', $selectedCompany, 'newcompany', '', 0); ?>
diff --git a/htdocs/core/tpl/notes.tpl.php b/htdocs/core/tpl/notes.tpl.php
index bc7cf44ce66..c971a49148f 100644
--- a/htdocs/core/tpl/notes.tpl.php
+++ b/htdocs/core/tpl/notes.tpl.php
@@ -63,8 +63,8 @@ elseif ($module == 'shipping') { $permission=$user->rights->expedition->cr
elseif ($module == 'product') { $permission=$user->rights->produit->creer;}
//else dol_print_error('','Bad value '.$module.' for param module');
-if (! empty($conf->global->FCKEDITOR_ENABLE_SOCIETE)) $typeofdata='ckeditor:dolibarr_notes:100%:200::1:12:100'; // Rem: This var is for all notes, not only thirdparties note.
-else $typeofdata='textarea:12:100';
+if (! empty($conf->global->FCKEDITOR_ENABLE_SOCIETE)) $typeofdata='ckeditor:dolibarr_notes:100%:200::1:12:95%'; // Rem: This var is for all notes, not only thirdparties note.
+else $typeofdata='textarea:12:95%';
?>
@@ -72,14 +72,14 @@ else $typeofdata='textarea:12:100';
-
>editfieldkey("NotePublic", $note_public, $value_public, $object, $permission, $typeofdata, $moreparam); ?>
-
editfieldval("NotePublic", $note_public, $value_public, $object, $permission, $typeofdata, '', null, null, $moreparam); ?>
+
>editfieldkey("NotePublic", $note_public, $value_public, $object, $permission, $typeofdata, $moreparam, '', 0); ?>
+
editfieldval("NotePublic", $note_public, $value_public, $object, $permission, $typeofdata, '', null, null, $moreparam, 1); ?>
societe_id)) { ?>
-
>editfieldkey("NotePrivate", $note_private, $value_private, $object, $permission, $typeofdata, $moreparam); ?>
-
editfieldval("NotePrivate", $note_private, $value_private, $object, $permission, $typeofdata, '', null, null, $moreparam); ?>
+
>editfieldkey("NotePrivate", $note_private, $value_private, $object, $permission, $typeofdata, $moreparam, '', 0); ?>
+
editfieldval("NotePrivate", $note_private, $value_private, $object, $permission, $typeofdata, '', null, null, $moreparam, 1); ?>
diff --git a/htdocs/don/index.php b/htdocs/don/index.php
index 9894de3a2b5..5e4b2966051 100644
--- a/htdocs/don/index.php
+++ b/htdocs/don/index.php
@@ -96,7 +96,7 @@ if (count($listofsearchfields))
{
if ($i == 0) print '
'.$langs->trans("Search").' ';
print '
';
- print ''.$langs->trans($value["text"]).' ';
+ print ''.$langs->trans($value["text"]).' ';
if ($i == 0) print ' ';
print ' ';
$i++;
diff --git a/htdocs/ecm/search.php b/htdocs/ecm/search.php
index 729543eff56..dd37c86592a 100644
--- a/htdocs/ecm/search.php
+++ b/htdocs/ecm/search.php
@@ -140,9 +140,9 @@ print '
';
print '
";
//print $langs->trans("ECMSectionManualDesc");
diff --git a/htdocs/fourn/commande/tpl/linkedobjectblock.tpl.php b/htdocs/fourn/commande/tpl/linkedobjectblock.tpl.php
index 5afde3a4427..ff16f267431 100644
--- a/htdocs/fourn/commande/tpl/linkedobjectblock.tpl.php
+++ b/htdocs/fourn/commande/tpl/linkedobjectblock.tpl.php
@@ -52,7 +52,8 @@ foreach($linkedObjectBlock as $key => $objectlink)
getLibStatut(3); ?>
id.'&action=dellink&dellinkid='.$key; ?>">transnoentitiesnoconv("RemoveLink")); ?>
- 1)
{
?>
diff --git a/htdocs/fourn/facture/tpl/linkedobjectblock.tpl.php b/htdocs/fourn/facture/tpl/linkedobjectblock.tpl.php
index 4df741b8ad4..2ab3b4d215b 100644
--- a/htdocs/fourn/facture/tpl/linkedobjectblock.tpl.php
+++ b/htdocs/fourn/facture/tpl/linkedobjectblock.tpl.php
@@ -54,6 +54,7 @@ foreach($linkedObjectBlock as $key => $objectlink)
id.'&action=dellink&dellinkid='.$key; ?>">transnoentitiesnoconv("RemoveLink")); ?>
1)
{
?>
diff --git a/htdocs/install/mysql/migration/4.0.0-5.0.0.sql b/htdocs/install/mysql/migration/4.0.0-5.0.0.sql
index 1e0f92a1cac..faffe9e53f5 100644
--- a/htdocs/install/mysql/migration/4.0.0-5.0.0.sql
+++ b/htdocs/install/mysql/migration/4.0.0-5.0.0.sql
@@ -202,3 +202,17 @@ create table llx_user_employment
)ENGINE=innodb;
+
+
+-- Sequence to removed duplicated values of llx_links. Use serveral times if you still have duplicate.
+drop table tmp_links_double;
+--select objectid, label, max(rowid) as max_rowid, count(rowid) as count_rowid from llx_links where label is not null group by objectid, label having count(rowid) >= 2;
+create table tmp_links_double as (select objectid, label, max(rowid) as max_rowid, count(rowid) as count_rowid from llx_links where label is not null group by objectid, label having count(rowid) >= 2);
+--select * from tmp_links_double;
+delete from llx_links where (rowid, label) in (select max_rowid, label from tmp_links_double); --update to avoid duplicate, delete to delete
+drop table tmp_links_double;
+
+ALTER TABLE llx_links ADD UNIQUE INDEX uk_links (objectid,label);
+
+
+
diff --git a/htdocs/install/mysql/migration/repair.sql b/htdocs/install/mysql/migration/repair.sql
index 99e4a7c556c..3ba06daabce 100755
--- a/htdocs/install/mysql/migration/repair.sql
+++ b/htdocs/install/mysql/migration/repair.sql
@@ -176,6 +176,7 @@ update llx_opensurvey_sondage set format = 'D' where format = 'D+';
update llx_opensurvey_sondage set format = 'A' where format = 'A+';
update llx_opensurvey_sondage set tms = now();
+
-- ALTER TABLE llx_facture_fourn ALTER COLUMN fk_cond_reglement DROP NOT NULL;
@@ -183,12 +184,21 @@ update llx_product set barcode = null where barcode in ('', '-1', '0');
update llx_societe set barcode = null where barcode in ('', '-1', '0');
+-- Sequence to removed duplicated values of llx_links. Use serveral times if you still have duplicate.
+drop table tmp_links_double;
+--select objectid, label, max(rowid) as max_rowid, count(rowid) as count_rowid from llx_links where label is not null group by objectid, label having count(rowid) >= 2;
+create table tmp_links_double as (select objectid, label, max(rowid) as max_rowid, count(rowid) as count_rowid from llx_links where label is not null group by objectid, label having count(rowid) >= 2);
+--select * from tmp_links_double;
+delete from llx_links where (rowid, label) in (select max_rowid, label from tmp_links_double); --update to avoid duplicate, delete to delete
+drop table tmp_links_double;
+
+
-- Sequence to removed duplicated values of barcode in llx_product. Use serveral times if you still have duplicate.
drop table tmp_product_double;
--select barcode, max(rowid) as max_rowid, count(rowid) as count_rowid from llx_product where barcode is not null group by barcode having count(rowid) >= 2;
create table tmp_product_double as (select barcode, max(rowid) as max_rowid, count(rowid) as count_rowid from llx_product where barcode is not null group by barcode having count(rowid) >= 2);
--select * from tmp_product_double;
-update llx_product set barcode = null where (rowid, barcode) in (select max_rowid, barcode from tmp_product_double);
+update llx_product set barcode = null where (rowid, barcode) in (select max_rowid, barcode from tmp_product_double); --update to avoid duplicate, delete to delete
drop table tmp_product_double;
diff --git a/htdocs/install/mysql/tables/llx_links.key.sql b/htdocs/install/mysql/tables/llx_links.key.sql
new file mode 100644
index 00000000000..7ba509e9d58
--- /dev/null
+++ b/htdocs/install/mysql/tables/llx_links.key.sql
@@ -0,0 +1,22 @@
+-- ========================================================================
+-- Copyright (C) 2016 Laurent Destailleur
+--
+-- This program is free software; you can redistribute it and/or modify
+-- it under the terms of the GNU General Public License as published by
+-- the Free Software Foundation; either version 3 of the License, or
+-- (at your option) any later version.
+--
+-- This program is distributed in the hope that it will be useful,
+-- but WITHOUT ANY WARRANTY; without even the implied warranty of
+-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+-- GNU General Public License for more details.
+--
+-- You should have received a copy of the GNU General Public License
+-- along with this program. If not, see .
+--
+--
+-- Linked files
+-- ========================================================================
+
+ALTER TABLE llx_links ADD UNIQUE INDEX uk_links (objectid,label);
+
diff --git a/htdocs/langs/en_US/admin.lang b/htdocs/langs/en_US/admin.lang
index 27d86696b82..f57dcfdc69d 100644
--- a/htdocs/langs/en_US/admin.lang
+++ b/htdocs/langs/en_US/admin.lang
@@ -1626,7 +1626,7 @@ AddOtherPagesOrServices=Add other pages or services
AddModels=Add document or numbering templates
AddSubstitutions=Add keys substitutions
DetectionNotPossible=Detection not possible
-UrlToGetKeyToUseAPIs=Url to get token to use API (once token has been received it is saved on database user table and will be checked on each future access)
+UrlToGetKeyToUseAPIs=Url to get token to use API (once token has been received it is saved on database user table and must be provided on each API call)
ListOfAvailableAPIs=List of available APIs
activateModuleDependNotSatisfied=Module "%s" depends on module "%s" that is missing, so module "%1$s" may not work correclty. Please install module "%2$s" or disable module "%1$s" if you want to be safe from any surprise
CommandIsNotInsideAllowedCommands=The command you try to run is not inside list of allowed commands defined into parameter $dolibarr_main_restrict_os_commands into conf.php file.
diff --git a/htdocs/langs/en_US/mails.lang b/htdocs/langs/en_US/mails.lang
index 45e8246261a..1c1a3bf3245 100644
--- a/htdocs/langs/en_US/mails.lang
+++ b/htdocs/langs/en_US/mails.lang
@@ -50,7 +50,6 @@ NbOfEMails=Nb of EMails
TotalNbOfDistinctRecipients=Number of distinct recipients
NoTargetYet=No recipients defined yet (Go on tab 'Recipients')
RemoveRecipient=Remove recipient
-CommonSubstitutions=Common substitutions
YouCanAddYourOwnPredefindedListHere=To create your email selector module, see htdocs/core/modules/mailings/README.
EMailTestSubstitutionReplacedByGenericValues=When using test mode, substitutions variables are replaced by generic values
MailingAddFile=Attach this file
diff --git a/htdocs/langs/en_US/members.lang b/htdocs/langs/en_US/members.lang
index c123fed51a5..245f6f3ccc0 100644
--- a/htdocs/langs/en_US/members.lang
+++ b/htdocs/langs/en_US/members.lang
@@ -13,7 +13,7 @@ ListOfValidatedPublicMembers=List of validated public members
ErrorThisMemberIsNotPublic=This member is not public
ErrorMemberIsAlreadyLinkedToThisThirdParty=Another member (name: %s , login: %s ) is already linked to a third party %s . Remove this link first because a third party can't be linked to only a member (and vice versa).
ErrorUserPermissionAllowsToLinksToItselfOnly=For security reasons, you must be granted permissions to edit all users to be able to link a member to a user that is not yours.
-ThisIsContentOfYourCard=This is details of your card
+ThisIsContentOfYourCard=Hi. This is a remind of the information we get about you. Feel free to contact us if something looks wrong.
CardContent=Content of your member card
SetLinkToUser=Link to a Dolibarr user
SetLinkToThirdParty=Link to a Dolibarr third party
diff --git a/htdocs/langs/en_US/users.lang b/htdocs/langs/en_US/users.lang
index 8a09c66989e..4a002fab02c 100644
--- a/htdocs/langs/en_US/users.lang
+++ b/htdocs/langs/en_US/users.lang
@@ -8,7 +8,7 @@ EditPassword=Edit password
SendNewPassword=Regenerate and send password
ReinitPassword=Regenerate password
PasswordChangedTo=Password changed to: %s
-SubjectNewPassword=Your new password for Dolibarr
+SubjectNewPassword=Your new password for %s
GroupRights=Group permissions
UserRights=User permissions
UserGUISetup=User display setup
diff --git a/htdocs/product/stock/tpl/stockcorrection.tpl.php b/htdocs/product/stock/tpl/stockcorrection.tpl.php
index 9277de5b498..0b48be2b0d5 100644
--- a/htdocs/product/stock/tpl/stockcorrection.tpl.php
+++ b/htdocs/product/stock/tpl/stockcorrection.tpl.php
@@ -110,7 +110,7 @@
print '';
print ' ';
print ' ';
- print ''.$langs->trans("InventoryCode").' ';
+ print ''.$langs->trans("InventoryCode").' ';
print '';
print '