From 0bac63ffbca058e77dcb75651960abaff74ea2d5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20PASCAL?= Date: Sat, 16 Nov 2024 17:16:37 +0100 Subject: [PATCH 1/2] feat: add entity in custom translation with multicompany --- htdocs/admin/translation.php | 56 ++++++++++++++++++++++++++++++++---- 1 file changed, 51 insertions(+), 5 deletions(-) diff --git a/htdocs/admin/translation.php b/htdocs/admin/translation.php index 045c32ef64a..c35f486dc02 100644 --- a/htdocs/admin/translation.php +++ b/htdocs/admin/translation.php @@ -59,6 +59,10 @@ if ($mode == 'searchkey') { $transvalue = GETPOST('transvalue', 'restricthtml'); } +if (isModEnabled('multicompany') && !$user->entity) { + $entity = GETPOST('entity', 'int'); +} + // Load variable for pagination $limit = GETPOSTINT('limit') ? GETPOSTINT('limit') : $conf->liste_limit; $sortfield = GETPOST('sortfield', 'aZ09comma'); @@ -128,10 +132,19 @@ if ($action == 'update') { setEventMessages($langs->trans("ErrorFieldRequired", $langs->transnoentitiesnoconv("NewTranslationStringToShow")), null, 'errors'); $error++; } + if ($entity == '') { + setEventMessages($langs->trans("ErrorFieldRequired", $langs->transnoentitiesnoconv("Entity")), null, 'errors'); + $error++; + } if (!$error) { $db->begin(); - $sql = "UPDATE ".MAIN_DB_PREFIX."overwrite_trans set transkey = '".$db->escape($transkey)."', transvalue = '".$db->escape($transvalue)."' WHERE rowid = ".(GETPOSTINT('rowid')); + $sql = "UPDATE " . MAIN_DB_PREFIX . "overwrite_trans set transkey = '" . $db->escape( + $transkey + ) . "', transvalue = '" . $db->escape($transvalue) . "', entity = '" . $db->escape( + $entity + ) . "' WHERE rowid = " . ((int) GETPOST('rowid', 'int')); + $result = $db->query($sql); if ($result) { $db->commit(); @@ -368,7 +381,9 @@ if ($mode == 'overwrite') { print_liste_field_titre("Language_en_US_es_MX_etc", $_SERVER["PHP_SELF"], 'lang,transkey', '', $param, '', $sortfield, $sortorder); print_liste_field_titre("TranslationKey", $_SERVER["PHP_SELF"], 'transkey', '', $param, '', $sortfield, $sortorder); print_liste_field_titre("NewTranslationStringToShow", $_SERVER["PHP_SELF"], 'transvalue', '', $param, '', $sortfield, $sortorder); - //if (isModEnabled('multicompany') && !$user->entity) print_liste_field_titre("Entity", $_SERVER["PHP_SELF"], 'entity,transkey', '', $param, '', $sortfield, $sortorder); + if (isModEnabled('multicompany') && !$user->entity) { + print_liste_field_titre("Entity", $_SERVER["PHP_SELF"], 'Entity', '', $param, '', $sortfield, $sortorder); + } print ''; print "\n"; @@ -376,21 +391,36 @@ if ($mode == 'overwrite') { // Line to add new record print "\n"; - print ''; + print ''; + + // Lang + print ''; print $formadmin->select_language(GETPOST('langcode'), 'langcode', 0, array(), 1, 0, $disablededit ? 1 : 0, 'maxwidth250', 1); print ''."\n"; + + // Trans key print ''; print ''; - print ''; + print ''; + + // Value + print ''; print ''; print ''; + + // Multi company + if (isModEnabled('multicompany') && !$user->entity) { + print ''; + print ''; + print ''; + } + print ''; print ''; print ''; print "\n"; print ''; - // Show constants $sql = "SELECT rowid, entity, lang, transkey, transvalue"; $sql .= " FROM ".MAIN_DB_PREFIX."overwrite_trans"; @@ -411,7 +441,10 @@ if ($mode == 'overwrite') { print ''; + // Lang print ''.dol_escape_htmltag($obj->lang).''."\n"; + + // Trans key print ''; if ($action == 'edit' && $obj->rowid == GETPOSTINT('rowid')) { print ''; @@ -441,6 +474,19 @@ if ($mode == 'overwrite') { } print ''; + // Entity limit to superadmin + if (isModEnabled('multicompany') && empty($user->entity)) { + print ''; + if ($action == 'edit' && $obj->rowid == GETPOSTINT('rowid')) { + print ''; + } else { + print dol_escape_htmltag($obj->entity); + } + print ''; + } else { + print ''; + } + print ''; if ($action == 'edit' && $obj->rowid == GETPOSTINT('rowid')) { print ''; From bcf7031a0419a4a0387ac06cf8185dd85d638868 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20PASCAL?= Date: Sat, 16 Nov 2024 17:32:30 +0100 Subject: [PATCH 2/2] fix: declare entity before using it --- htdocs/admin/translation.php | 1 + 1 file changed, 1 insertion(+) diff --git a/htdocs/admin/translation.php b/htdocs/admin/translation.php index c35f486dc02..78679cc16e5 100644 --- a/htdocs/admin/translation.php +++ b/htdocs/admin/translation.php @@ -59,6 +59,7 @@ if ($mode == 'searchkey') { $transvalue = GETPOST('transvalue', 'restricthtml'); } +$entity = $conf->entity; if (isModEnabled('multicompany') && !$user->entity) { $entity = GETPOST('entity', 'int'); }