diff --git a/htdocs/.htaccess b/htdocs/.htaccess
new file mode 100644
index 00000000000..5a928f6da25
--- /dev/null
+++ b/htdocs/.htaccess
@@ -0,0 +1 @@
+Options -Indexes
diff --git a/htdocs/accountancy/admin/account.php b/htdocs/accountancy/admin/account.php
index 0876dd81a19..395c9587b7e 100644
--- a/htdocs/accountancy/admin/account.php
+++ b/htdocs/accountancy/admin/account.php
@@ -51,6 +51,7 @@ $confirm = GETPOST('confirm', 'alpha');
$chartofaccounts = GETPOST('chartofaccounts', 'int');
+$permissiontoadd = $user->rights->accounting->chartofaccount;
$permissiontodelete = $user->rights->accounting->chartofaccount;
// Security check
@@ -118,9 +119,11 @@ if (empty($reshook)) {
if (!empty($cancel)) {
$action = '';
}
+
$objectclass = 'AccountingAccount';
$uploaddir = $conf->accounting->multidir_output[$conf->entity];
include DOL_DOCUMENT_ROOT.'/core/actions_massactions.inc.php';
+
if ($action == "delete") {
$action = "";
}
@@ -136,7 +139,7 @@ if (empty($reshook)) {
}
if ((GETPOST('valid_change_chart', 'alpha') && GETPOST('chartofaccounts', 'int') > 0) // explicit click on button 'Change and load' with js on
|| (GETPOST('chartofaccounts', 'int') > 0 && GETPOST('chartofaccounts', 'int') != $conf->global->CHARTOFACCOUNTS)) { // a submit of form is done and chartofaccounts combo has been modified
- if ($chartofaccounts > 0) {
+ if ($chartofaccounts > 0 && $permissiontoadd) {
// Get language code for this $chartofaccounts
$sql = 'SELECT code FROM '.MAIN_DB_PREFIX.'c_country as c, '.MAIN_DB_PREFIX.'accounting_system as a';
$sql .= ' WHERE c.rowid = a.fk_country AND a.rowid = '.(int) $chartofaccounts;
@@ -180,7 +183,7 @@ if (empty($reshook)) {
}
}
- if ($action == 'disable') {
+ if ($action == 'disable' && $permissiontoadd) {
if ($accounting->fetch($id)) {
$mode = GETPOST('mode', 'int');
$result = $accounting->accountDeactivate($id, $mode);
@@ -190,7 +193,7 @@ if (empty($reshook)) {
if ($result < 0) {
setEventMessages($accounting->error, $accounting->errors, 'errors');
}
- } elseif ($action == 'enable') {
+ } elseif ($action == 'enable' && $permissiontoadd) {
if ($accounting->fetch($id)) {
$mode = GETPOST('mode', 'int');
$result = $accounting->account_activate($id, $mode);
@@ -277,6 +280,7 @@ if (strlen(trim($search_pcgtype))) {
$sql .= natural_search("aa.pcg_type", $search_pcgtype);
}
$sql .= $db->order($sortfield, $sortorder);
+//print $sql;
// Count total nb of records
$nbtotalofrecords = '';
@@ -454,7 +458,7 @@ if ($resql) {
$totalarray['nbfield']++;
}
if (!empty($arrayfields['aa.pcg_type']['checked'])) {
- print_liste_field_titre($arrayfields['aa.pcg_type']['label'], $_SERVER["PHP_SELF"], 'aa.pcg_type', '', $param, '', $sortfield, $sortorder, '', $arrayfields['aa.pcg_type']['help'], 1);
+ print_liste_field_titre($arrayfields['aa.pcg_type']['label'], $_SERVER["PHP_SELF"], 'aa.pcg_type,aa.account_number', '', $param, '', $sortfield, $sortorder, '', $arrayfields['aa.pcg_type']['help'], 1);
$totalarray['nbfield']++;
}
if ($conf->global->MAIN_FEATURES_LEVEL >= 2) {
diff --git a/htdocs/accountancy/admin/card.php b/htdocs/accountancy/admin/card.php
index caf98c7d91c..b629e45cf0d 100644
--- a/htdocs/accountancy/admin/card.php
+++ b/htdocs/accountancy/admin/card.php
@@ -34,7 +34,6 @@ $error = 0;
// Load translation files required by the page
$langs->loadLangs(array("bills", "accountancy", "compta"));
-$mesg = '';
$action = GETPOST('action', 'aZ09');
$backtopage = GETPOST('backtopage', 'alpha');
$id = GETPOST('id', 'int');
@@ -139,7 +138,7 @@ if ($action == 'add' && $user->rights->accounting->chartofaccount) {
} else {
$result = $object->fetch($id);
- $sql = 'SELECT pcg_version FROM ' . MAIN_DB_PREFIX . 'accounting_system WHERE rowid=' . $conf->global->CHARTOFACCOUNTS;
+ $sql = 'SELECT pcg_version FROM '.MAIN_DB_PREFIX.'accounting_system WHERE rowid='.((int) $conf->global->CHARTOFACCOUNTS);
dol_syslog('accountancy/admin/card.php:: $sql=' . $sql);
$result2 = $db->query($sql);
@@ -148,7 +147,7 @@ if ($action == 'add' && $user->rights->accounting->chartofaccount) {
// Clean code
// To manage zero or not at the end of the accounting account
- if ($conf->global->ACCOUNTING_MANAGE_ZERO == 1) {
+ if (isset($conf->global->ACCOUNTING_MANAGE_ZERO) && $conf->global->ACCOUNTING_MANAGE_ZERO == 1) {
$account_number = $account_number;
} else {
$account_number = clean_account($account_number);
@@ -169,13 +168,12 @@ if ($action == 'add' && $user->rights->accounting->chartofaccount) {
$object->labelshort = GETPOST('labelshort', 'alpha');
$result = $object->update($user);
-
if ($result > 0) {
$urltogo = $backtopage ? $backtopage : ($_SERVER["PHP_SELF"] . "?id=" . $id);
header("Location: " . $urltogo);
exit();
} else {
- $mesg = $object->error;
+ setEventMessages($object->error, null, 'errors');
}
}
} else {
@@ -255,13 +253,17 @@ if ($action == 'create') {
print '';
// Chart of accounts type
- print '
| '.$langs->trans("Pcgtype").' | ';
+ print '
| ';
+ print $form->textwithpicto($langs->trans("Pcgtype"), $langs->transnoentitiesnoconv("PcgtypeDesc"));
+ print ' | ';
print '';
print '';
print ' |
';
// Category
- print '| '.$langs->trans("AccountingCategory").' | ';
+ print '
| ';
+ print $form->textwithpicto($langs->trans("AccountingCategory"), $langs->transnoentitiesnoconv("AccountingAccountGroupsDesc"));
+ print ' | ';
print '';
$formaccounting->select_accounting_category($object->account_category, 'account_category', 1, 0, 1);
print ' |
';
@@ -281,8 +283,6 @@ if ($action == 'create') {
$result = $object->fetch($id, $ref, 1);
if ($result > 0) {
- dol_htmloutput_mesg($mesg);
-
$head = accounting_prepare_head($object);
// Edit mode
@@ -316,13 +316,17 @@ if ($action == 'create') {
print '';
// Chart of accounts type
- print '| '.$langs->trans("Pcgtype").' | ';
+ print '
| ';
+ print $form->textwithpicto($langs->trans("Pcgtype"), $langs->transnoentitiesnoconv("PcgtypeDesc"));
+ print ' | ';
print '';
print '';
print ' |
';
// Category
- print '| '.$langs->trans("AccountingCategory").' | ';
+ print '
| ';
+ print $form->textwithpicto($langs->trans("AccountingCategory"), $langs->transnoentitiesnoconv("AccountingAccountGroupsDesc"));
+ print ' | ';
print '';
$formaccounting->select_accounting_category($object->account_category, 'account_category', 1);
print ' |
';
@@ -368,13 +372,17 @@ if ($action == 'create') {
print '| '.$langs->trans("Accountparent").' | ';
print ''.$accp->account_number.' - '.$accp->label.' |
';
- // Category
- print "| ".$langs->trans("AccountingCategory")." | ".$object->account_category_label." | ";
-
- // Chart of accounts type
- print '
| '.$langs->trans("Pcgtype").' | ';
+ // Group of accounting account
+ print '
| ';
+ print $form->textwithpicto($langs->trans("Pcgtype"), $langs->transnoentitiesnoconv("PcgtypeDesc"));
+ print ' | ';
print ''.$object->pcg_type.' |
';
+ // Custom group of accounting account
+ print "| ";
+ print $form->textwithpicto($langs->trans("AccountingCategory"), $langs->transnoentitiesnoconv("AccountingAccountGroupsDesc"));
+ print " | ".$object->account_category_label." | ";
+
print '';
print '';
diff --git a/htdocs/accountancy/admin/categories.php b/htdocs/accountancy/admin/categories.php
index 7e77817ac5c..bee481bebd6 100644
--- a/htdocs/accountancy/admin/categories.php
+++ b/htdocs/accountancy/admin/categories.php
@@ -55,7 +55,7 @@ $accountingcategory = new AccountancyCategory($db);
* Actions
*/
-// si ajout de comptes
+// If we add account
if (!empty($selectcpt)) {
$cpts = array();
foreach ($selectcpt as $selectedoption) {
@@ -72,6 +72,7 @@ if (!empty($selectcpt)) {
setEventMessages($langs->trans('RecordModifiedSuccessfully'), null, 'mesgs');
}
}
+
if ($action == 'delete') {
if ($cpt_id) {
if ($accountingcategory->deleteCptCat($cpt_id)) {
@@ -93,8 +94,9 @@ $formaccounting = new FormAccounting($db);
llxheader('', $langs->trans('AccountingCategory'));
$linkback = ''.$langs->trans("BackToList").'';
+$titlepicto = 'setup';
-print load_fiche_titre($langs->trans('AccountingCategory'), $linkback);
+print load_fiche_titre($langs->trans('AccountingCategory'), $linkback, $titlepicto);
print '
';
print '';
print '| '.$langs->trans("BANK_DISABLE_DIRECT_INPUT").' | ';
if (!empty($conf->global->BANK_DISABLE_DIRECT_INPUT)) {
- print '';
+ print ' | ';
print img_picto($langs->trans("Activated"), 'switch_on');
print ' | ';
} else {
- print '';
+ print ' | ';
print img_picto($langs->trans("Disabled"), 'switch_off');
print ' | ';
}
@@ -282,11 +305,11 @@ print '
';
print '| '.$langs->trans("ACCOUNTANCY_COMBO_FOR_AUX").' | ';
if (!empty($conf->global->ACCOUNTANCY_COMBO_FOR_AUX)) {
- print '';
+ print ' | ';
print img_picto($langs->trans("Activated"), 'switch_on');
print ' | ';
} else {
- print '';
+ print ' | ';
print img_picto($langs->trans("Disabled"), 'switch_off');
print ' | ';
}
@@ -295,11 +318,11 @@ print '
';
print '';
print '| '.$langs->trans("ACCOUNTING_MANAGE_ZERO").' | ';
if (!empty($conf->global->ACCOUNTING_MANAGE_ZERO)) {
- print '';
+ print ' | ';
print img_picto($langs->trans("Activated"), 'switch_on');
print ' | ';
} else {
- print '';
+ print ' | ';
print img_picto($langs->trans("Disabled"), 'switch_off');
print ' | ';
}
@@ -336,11 +359,11 @@ print "
\n";
print '';
print '| '.$langs->trans("ACCOUNTING_LIST_SORT_VENTILATION_TODO").' | ';
if (!empty($conf->global->ACCOUNTING_LIST_SORT_VENTILATION_TODO)) {
- print '';
+ print ' | ';
print img_picto($langs->trans("Activated"), 'switch_on');
print ' | ';
} else {
- print '';
+ print ' | ';
print img_picto($langs->trans("Disabled"), 'switch_off');
print ' | ';
}
@@ -349,11 +372,11 @@ print '
';
print '';
print '| '.$langs->trans("ACCOUNTING_LIST_SORT_VENTILATION_DONE").' | ';
if (!empty($conf->global->ACCOUNTING_LIST_SORT_VENTILATION_DONE)) {
- print '';
+ print ' | ';
print img_picto($langs->trans("Activated"), 'switch_on');
print ' | ';
} else {
- print '';
+ print ' | ';
print img_picto($langs->trans("Disabled"), 'switch_off');
print ' | ';
}
@@ -385,7 +408,7 @@ print '
';
print '| '.$langs->trans("ACCOUNTING_DISABLE_BINDING_ON_SALES").' | ';
if (!empty($conf->global->ACCOUNTING_DISABLE_BINDING_ON_SALES)) {
print '';
- print img_picto($langs->trans("Activated"), 'switch_on');
+ print img_picto($langs->trans("Activated"), 'switch_on', '', false, 0, 0, '', 'warning');
print ' | ';
} else {
print '';
@@ -398,7 +421,7 @@ print '';
print '| '.$langs->trans("ACCOUNTING_DISABLE_BINDING_ON_PURCHASES").' | ';
if (!empty($conf->global->ACCOUNTING_DISABLE_BINDING_ON_PURCHASES)) {
print '';
- print img_picto($langs->trans("Activated"), 'switch_on');
+ print img_picto($langs->trans("Activated"), 'switch_on', '', false, 0, 0, '', 'warning');
print ' | ';
} else {
print '';
@@ -411,7 +434,7 @@ print '';
print '| '.$langs->trans("ACCOUNTING_DISABLE_BINDING_ON_EXPENSEREPORTS").' | ';
if (!empty($conf->global->ACCOUNTING_DISABLE_BINDING_ON_EXPENSEREPORTS)) {
print '';
- print img_picto($langs->trans("Activated"), 'switch_on');
+ print img_picto($langs->trans("Activated"), 'switch_on', '', false, 0, 0, '', 'warning');
print ' | ';
} else {
print '';
diff --git a/htdocs/accountancy/class/accountancycategory.class.php b/htdocs/accountancy/class/accountancycategory.class.php
index 3e171110c8b..9550933f2d8 100644
--- a/htdocs/accountancy/class/accountancycategory.class.php
+++ b/htdocs/accountancy/class/accountancycategory.class.php
@@ -418,10 +418,10 @@ class AccountancyCategory // extends CommonObject
/**
- * Function to select all accounting accounts from an accounting category
+ * Function to select into ->lines_display all accounting accounts for a given custom accounting group
*
- * @param int $id Id
- * @return int <0 if KO, 0 if not found, >0 if OK
+ * @param int $id Id
+ * @return int <0 if KO, 0 if not found, >0 if OK
*/
public function display($id)
{
@@ -453,23 +453,23 @@ class AccountancyCategory // extends CommonObject
}
/**
- * Function to select accounting category of an accounting account present in chart of accounts
+ * Function to fill ->lines_cptbk with accounting account used (into bookkeeping) and not yet into a custom group
*
- * @param int $id Id category
- *
- * @return int <0 if KO, 0 if not found, >0 if OK
+ * @param int $id Id of custom group
+ * @return int <0 if KO, 0 if not found, >0 if OK
*/
+ /*
public function getCptBK($id)
{
global $conf;
- $sql = "SELECT t.numero_compte, t.label_operation, t.doc_ref";
+ $sql = "SELECT DISTINCT t.numero_compte, t.label_operation, t.doc_ref";
$sql .= " FROM ".MAIN_DB_PREFIX."accounting_bookkeeping as t";
- $sql .= " WHERE t.numero_compte NOT IN (";
+ $sql .= " WHERE t.numero_compte NOT IN ("; // account not into a custom group
$sql .= " SELECT t.account_number";
$sql .= " FROM ".MAIN_DB_PREFIX."accounting_account as t";
- $sql .= " WHERE t.fk_accounting_category = ".$id." AND t.entity = ".$conf->entity.")";
- $sql .= " AND t.numero_compte IN (";
+ $sql .= " WHERE t.fk_accounting_category = ".((int) $id)." AND t.entity = ".$conf->entity.")";
+ $sql .= " AND t.numero_compte IN ("; // account into current chart of account
$sql .= " SELECT DISTINCT aa.account_number";
$sql .= " FROM ".MAIN_DB_PREFIX."accounting_account as aa";
$sql .= " INNER JOIN ".MAIN_DB_PREFIX."accounting_system as asy ON aa.fk_pcg_version = asy.pcg_version";
@@ -479,7 +479,7 @@ class AccountancyCategory // extends CommonObject
$sql .= " GROUP BY t.numero_compte, t.label_operation, t.doc_ref";
$sql .= " ORDER BY t.numero_compte";
- $this->lines_CptBk = array();
+ $this->lines_cptbk = array();
dol_syslog(__METHOD__, LOG_DEBUG);
$resql = $this->db->query($sql);
@@ -500,13 +500,13 @@ class AccountancyCategory // extends CommonObject
return -1;
}
}
+ */
/**
- * Function to select accounting category of an accounting account present in chart of accounts
+ * Function to fill ->lines_cptbk with accounting account (defined in chart of account) and not yet into a custom group
*
- * @param int $id Id of category to know which account to exclude
- *
- * @return int <0 if KO, 0 if not found, >0 if OK
+ * @param int $id Id of category to know which account to exclude
+ * @return int <0 if KO, 0 if not found, >0 if OK
*/
public function getAccountsWithNoCategory($id)
{
@@ -515,14 +515,14 @@ class AccountancyCategory // extends CommonObject
$sql = "SELECT aa.account_number as numero_compte, aa.label as label_compte";
$sql .= " FROM ".MAIN_DB_PREFIX."accounting_account as aa";
$sql .= " INNER JOIN ".MAIN_DB_PREFIX."accounting_system as asy ON aa.fk_pcg_version = asy.pcg_version";
- $sql .= " WHERE (aa.fk_accounting_category != ".$id." OR aa.fk_accounting_category IS NULL)";
- $sql .= " AND asy.rowid = ".$conf->global->CHARTOFACCOUNTS;
+ $sql .= " WHERE (aa.fk_accounting_category <> ".((int) $id)." OR aa.fk_accounting_category IS NULL)";
+ $sql .= " AND asy.rowid = ".((int) $conf->global->CHARTOFACCOUNTS);
$sql .= " AND aa.active = 1";
$sql .= " AND aa.entity = ".$conf->entity;
$sql .= " GROUP BY aa.account_number, aa.label";
$sql .= " ORDER BY aa.account_number, aa.label";
- $this->lines_CptBk = array();
+ $this->lines_cptbk = array();
dol_syslog(__METHOD__, LOG_DEBUG);
$resql = $this->db->query($sql);
@@ -656,7 +656,7 @@ class AccountancyCategory // extends CommonObject
}
/**
- * Function to know all category from accounting account
+ * Function to know all custom groupd from an accounting account
*
* @return array|integer Result in table (array), -1 if KO
*/
@@ -785,7 +785,7 @@ class AccountancyCategory // extends CommonObject
}
/**
- * Return list of personalized groups that are active
+ * Return list of custom groups that are active
*
* @param int $categorytype -1=All, 0=Only non computed groups, 1=Only computed groups
* @return array|int Array of groups or -1 if error
@@ -843,11 +843,11 @@ class AccountancyCategory // extends CommonObject
/**
- * Get all accounting account of a group.
+ * Get all accounting account of a custom group (or a list of custom groups).
* You must choose between first parameter (personalized group) or the second (free criteria filter)
*
* @param int $cat_id Id if personalized accounting group/category
- * @param string $predefinedgroupwhere Sql criteria filter to select accounting accounts
+ * @param string $predefinedgroupwhere Sql criteria filter to select accounting accounts. This value must not come from an input of a user.
* @return array|int Array of accounting accounts or -1 if error
*/
public function getCptsCat($cat_id, $predefinedgroupwhere = '')
diff --git a/htdocs/adherents/admin/member_emails.php b/htdocs/adherents/admin/member_emails.php
index cdda83b4714..c55d44d391f 100644
--- a/htdocs/adherents/admin/member_emails.php
+++ b/htdocs/adherents/admin/member_emails.php
@@ -50,15 +50,15 @@ $error = 0;
// Editing global variables not related to a specific theme
$constantes = array(
'MEMBER_REMINDER_EMAIL'=>array('type'=>'yesno', 'label'=>$langs->trans('MEMBER_REMINDER_EMAIL', $langs->transnoentities("Module2300Name"))),
- 'ADHERENT_EMAIL_TEMPLATE_REMIND_EXPIRATION' =>'emailtemplate:member',
- 'ADHERENT_EMAIL_TEMPLATE_AUTOREGISTER' =>'emailtemplate:member', /* old was ADHERENT_AUTOREGISTER_MAIL */
- 'ADHERENT_EMAIL_TEMPLATE_MEMBER_VALIDATION' =>'emailtemplate:member', /* old was ADHERENT_MAIL_VALID */
- 'ADHERENT_EMAIL_TEMPLATE_SUBSCRIPTION' =>'emailtemplate:member', /* old was ADHERENT_MAIL_COTIS */
- 'ADHERENT_EMAIL_TEMPLATE_CANCELATION' =>'emailtemplate:member', /* old was ADHERENT_MAIL_RESIL */
- 'ADHERENT_EMAIL_TEMPLATE_EXCLUSION' =>'emailtemplate:member',
- 'ADHERENT_MAIL_FROM'=>'string',
- 'ADHERENT_AUTOREGISTER_NOTIF_MAIL_SUBJECT'=>'string',
- 'ADHERENT_AUTOREGISTER_NOTIF_MAIL'=>'html',
+ 'ADHERENT_EMAIL_TEMPLATE_REMIND_EXPIRATION' =>'emailtemplate:member',
+ 'ADHERENT_EMAIL_TEMPLATE_AUTOREGISTER' =>'emailtemplate:member', // until Dolibarr 7 it was ADHERENT_AUTOREGISTER_MAIL
+ 'ADHERENT_EMAIL_TEMPLATE_MEMBER_VALIDATION' =>'emailtemplate:member', // until Dolibarr 7 it was ADHERENT_MAIL_VALID
+ 'ADHERENT_EMAIL_TEMPLATE_SUBSCRIPTION' =>'emailtemplate:member', // until Dolibarr 7 it was ADHERENT_MAIL_COTIS
+ 'ADHERENT_EMAIL_TEMPLATE_CANCELATION' =>'emailtemplate:member', // until Dolibarr 7 it was ADHERENT_MAIL_RESIL
+ 'ADHERENT_EMAIL_TEMPLATE_EXCLUSION' =>'emailtemplate:member',
+ 'ADHERENT_MAIL_FROM' =>'string',
+ 'ADHERENT_AUTOREGISTER_NOTIF_MAIL_SUBJECT' =>'string',
+ 'ADHERENT_AUTOREGISTER_NOTIF_MAIL' =>'html',
);
@@ -128,7 +128,7 @@ if ($action == 'update' || $action == 'add') {
$form = new Form($db);
-$help_url = 'EN:Module_Foundations|FR:Module_Adhérents|ES:Módulo_Miembros';
+$help_url = 'EN:Module_Foundations|FR:Module_Adhérents|ES:Módulo_Miembros|DE:Modul_Mitglieder';
llxHeader('', $langs->trans("MembersSetup"), $help_url);
diff --git a/htdocs/adherents/admin/member_type_extrafields.php b/htdocs/adherents/admin/member_type_extrafields.php
index 91a9233e5d0..68916df624f 100644
--- a/htdocs/adherents/admin/member_type_extrafields.php
+++ b/htdocs/adherents/admin/member_type_extrafields.php
@@ -67,7 +67,7 @@ require DOL_DOCUMENT_ROOT.'/core/actions_extrafields.inc.php';
$textobject = $langs->transnoentitiesnoconv("MembersTypes");
-$help_url = 'EN:Module_Foundations|FR:Module_Adhérents|ES:Módulo_Miembros';
+$help_url = 'EN:Module_Foundations|FR:Module_Adhérents|ES:Módulo_Miembros|DE:Modul_Mitglieder';
llxHeader('', $langs->trans("MembersSetup"), $help_url);
diff --git a/htdocs/admin/eventorganization.php b/htdocs/admin/eventorganization.php
index 9338aa3a6dd..b6a964d8617 100644
--- a/htdocs/admin/eventorganization.php
+++ b/htdocs/admin/eventorganization.php
@@ -60,7 +60,7 @@ $arrayofparameters = array(
'EVENTORGANIZATION_TEMPLATE_EMAIL_AFT_SUBS_EVENT'=>array('type'=>'emailtemplate:eventorganization_send', 'enabled'=>1),
'EVENTORGANIZATION_TEMPLATE_EMAIL_BULK_SPEAKER'=>array('type'=>'emailtemplate:eventorganization_send', 'enabled'=>1),
'EVENTORGANIZATION_TEMPLATE_EMAIL_BULK_ATTENDES'=>array('type'=>'emailtemplate:eventorganization_send', 'enabled'=>1),
- 'EVENTORGANIZATION_SECUREKEY'=>array('type'=>'securekey', 'enabled'=>1),
+ 'EVENTORGANIZATION_SECUREKEY'=>array('type'=>'securekey', 'enabled'=>1),
);
$error = 0;
diff --git a/htdocs/bom/bom_card.php b/htdocs/bom/bom_card.php
index eaea02cda3a..37ec67e1ba3 100644
--- a/htdocs/bom/bom_card.php
+++ b/htdocs/bom/bom_card.php
@@ -239,7 +239,10 @@ if (empty($reshook)) {
$form = new Form($db);
$formfile = new FormFile($db);
-llxHeader('', $langs->trans("BOM"), '');
+
+$title = $langs->trans('BOM');
+
+llxHeader('', $title, '');
// Example : Adding jquery code
print ' | | |