diff --git a/htdocs/admin/knowledgemanagement.php b/htdocs/admin/knowledgemanagement.php
index e9e7f971575..5bc994bb086 100644
--- a/htdocs/admin/knowledgemanagement.php
+++ b/htdocs/admin/knowledgemanagement.php
@@ -210,7 +210,7 @@ print load_fiche_titre($langs->trans($page_name), $linkback, 'title_setup');
// Configuration header
$head = knowledgemanagementAdminPrepareHead();
-print dol_get_fiche_head($head, 'knowledgemanagement', $langs->trans('ModuleKnowledgeManagementName'), -1, "knowledgemanagement");
+print dol_get_fiche_head($head, 'setup', $langs->trans('ModuleKnowledgeManagementName'), -1, "knowledgemanagement");
// Setup page goes here
echo ''.$langs->trans("KnowledgeManagementSetupPage").'
';
diff --git a/htdocs/admin/knowledgerecord_extrafields.php b/htdocs/admin/knowledgerecord_extrafields.php
index 34d3b4858e9..823366e1fbe 100644
--- a/htdocs/admin/knowledgerecord_extrafields.php
+++ b/htdocs/admin/knowledgerecord_extrafields.php
@@ -103,7 +103,7 @@ print load_fiche_titre($langs->trans($page_name), $linkback, 'title_setup');
$head = knowledgemanagementAdminPrepareHead();
-print dol_get_fiche_head($head, 'knowledgerecord_extrafields', $langs->trans("KnowledgeRecordExtraFields"), -1, 'knowledgemanagement');
+print dol_get_fiche_head($head, 'extra', $langs->trans("KnowledgeRecordExtraFields"), -1, 'knowledgemanagement');
require DOL_DOCUMENT_ROOT.'/core/tpl/admin_extrafields_view.tpl.php';
diff --git a/htdocs/knowledgemanagement/lib/knowledgemanagement.lib.php b/htdocs/knowledgemanagement/lib/knowledgemanagement.lib.php
index 15279f01983..ba81dd49057 100644
--- a/htdocs/knowledgemanagement/lib/knowledgemanagement.lib.php
+++ b/htdocs/knowledgemanagement/lib/knowledgemanagement.lib.php
@@ -37,13 +37,13 @@ function knowledgemanagementAdminPrepareHead()
$head[$h][0] = dol_buildpath("/admin/knowledgemanagement.php", 1);
$head[$h][1] = $langs->trans("Setup");
- $head[$h][2] = 'settings';
+ $head[$h][2] = 'setup';
$h++;
$head[$h][0] = dol_buildpath("admin/knowledgerecord_extrafields.php", 1);
$head[$h][1] = $langs->trans("ExtraFields");
- $head[$h][2] = 'settings';
+ $head[$h][2] = 'extra';
$h++;
/*$head[$h][0] = dol_buildpath("/knowledgemanagement/admin/about.php", 1);
diff --git a/htdocs/langs/en_US/modulebuilder.lang b/htdocs/langs/en_US/modulebuilder.lang
index 9fdaa1a533a..7ba539d3bd4 100644
--- a/htdocs/langs/en_US/modulebuilder.lang
+++ b/htdocs/langs/en_US/modulebuilder.lang
@@ -143,3 +143,4 @@ AsciiToHtmlConverter=Ascii to HTML converter
AsciiToPdfConverter=Ascii to PDF converter
TableNotEmptyDropCanceled=Table not empty. Drop has been canceled.
ModuleBuilderNotAllowed=The module builder is available but not allowed to your user.
+ImportExportProfiles=Import and export profiles
\ No newline at end of file
diff --git a/htdocs/modulebuilder/index.php b/htdocs/modulebuilder/index.php
index dc5a84071d7..c56c37d00c3 100644
--- a/htdocs/modulebuilder/index.php
+++ b/htdocs/modulebuilder/index.php
@@ -726,9 +726,33 @@ if ($dirins && $action == 'initdoc' && !empty($module)) {
// add Language
if ($dirins && $action == 'addlanguage' && !empty($module)) {
$newlangcode = GETPOST('newlangcode', 'aZ09');
- $srcfile = $dirins.'/'.strtolower($module).'/langs/en_US';
- $destfile = $dirins.'/'.strtolower($module).'/langs/'.$newlangcode;
- $result = dolCopyDir($srcfile, $destfile, 0, 0);
+
+ if ($newlangcode) {
+ $modulelowercase = strtolower($module);
+
+ // Dir for module
+ $diroflang = dol_buildpath($modulelowercase, 0);
+
+ if ($diroflang == $dirread.'/'.$modulelowercase) {
+ // This is not a custom module, we force diroflang to htdocs root
+ $diroflang = $dirread;
+
+ $srcfile = $diroflang.'/langs/en_US/'.$modulelowercase.'.lang';
+ $destfile = $diroflang.'/langs/'.$newlangcode.'/'.$modulelowercase.'.lang';
+
+ $result = dol_copy($srcfile, $destfile, 0, 0);
+ if ($result < 0) {
+ setEventMessages($langs->trans("ErrorFailToCopyFile", $srcfile, $destfile), null, 'errors');
+ }
+ } else {
+ $srcfile = $diroflang.'/langs/en_US';
+ $destfile = $diroflang.'/langs/'.$newlangcode;
+
+ $result = dolCopyDir($srcfile, $destfile, 0, 0);
+ }
+ } else {
+ setEventMessages($langs->trans("ErrorFieldRequired", $langs->transnoentitiesnoconv("Language")), null, 'errors');
+ }
}
@@ -1448,17 +1472,37 @@ if ($dirins && $action == 'confirm_deleteobject' && $objectname) {
$tabobj = 'deleteobject';
}
+if ($dirins && $action == 'generatedoc') {
+ $modulelowercase = strtolower($module);
+
+ // Dir for module
+ $dirofmodule = dol_buildpath($modulelowercase, 0).'/doc';
+
+ $FILENAMEDOC = strtolower($module).'.html';
+
+ $util = new Utils($db);
+ $result = $util->generateDoc($module);
+
+ if ($result > 0) {
+ setEventMessages($langs->trans("DocFileGeneratedInto", $dirofmodule), null);
+ } else {
+ setEventMessages($util->error, $util->errors, 'errors');
+ }
+}
if ($dirins && $action == 'generatepackage') {
$modulelowercase = strtolower($module);
+ $pathtofile = $listofmodules[strtolower($module)]['moduledescriptorrelpath'];
+
// Dir for module
- $dir = $dirins.'/'.$modulelowercase;
+ $dir = dol_buildpath($modulelowercase, 0);
+
// Zip file to build
$FILENAMEZIP = '';
// Load module
- dol_include_once($modulelowercase.'/core/modules/mod'.$module.'.class.php');
+ dol_include_once($pathtofile);
$class = 'mod'.$module;
if (class_exists($class)) {
@@ -1466,18 +1510,18 @@ if ($dirins && $action == 'generatepackage') {
$moduleobj = new $class($db);
} catch (Exception $e) {
$error++;
- dol_print_error($e->getMessage());
+ dol_print_error($db, $e->getMessage());
}
} else {
$error++;
$langs->load("errors");
- dol_print_error($langs->trans("ErrorFailedToLoadModuleDescriptorForXXX", $module));
+ dol_print_error($db, $langs->trans("ErrorFailedToLoadModuleDescriptorForXXX", $module));
exit;
}
$arrayversion = explode('.', $moduleobj->version, 3);
if (count($arrayversion)) {
- $FILENAMEZIP = "module_".$modulelowercase.'-'.$arrayversion[0].'.'.$arrayversion[1].($arrayversion[2] ? ".".$arrayversion[2] : "").".zip";
+ $FILENAMEZIP = "module_".$modulelowercase.'-'.$arrayversion[0].($arrayversion[1] ? '.'.$arrayversion[1] : '').($arrayversion[2] ? '.'.$arrayversion[2] : '').'.zip';
$dirofmodule = dol_buildpath($modulelowercase, 0).'/bin';
$outputfilezip = $dirofmodule.'/'.$FILENAMEZIP;
@@ -1504,20 +1548,6 @@ if ($dirins && $action == 'generatepackage') {
}
}
-if ($dirins && $action == 'generatedoc') {
- $FILENAMEDOC = strtolower($module).'.html';
- $dirofmodule = dol_buildpath(strtolower($module), 0).'/doc';
-
- $util = new Utils($db);
- $result = $util->generateDoc($module);
-
- if ($result > 0) {
- setEventMessages($langs->trans("DocFileGeneratedInto", $dirofmodule), null);
- } else {
- setEventMessages($util->error, $util->errors, 'errors');
- }
-}
-
// Save file
if ($action == 'savefile' && empty($cancel)) {
@@ -3812,12 +3842,12 @@ if ($module == 'initmodule') {
$moduleobj = new $class($db);
} catch (Exception $e) {
$error++;
- dol_print_error($e->getMessage());
+ dol_print_error($db, $e->getMessage());
}
} else {
$error++;
$langs->load("errors");
- dol_print_error($langs->trans("ErrorFailedToLoadModuleDescriptorForXXX", $module));
+ dol_print_error($db, $langs->trans("ErrorFailedToLoadModuleDescriptorForXXX", $module));
exit;
}