From 173ef31ad4b22c70e87028c782572605f4ee9a04 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Sun, 2 May 2021 12:15:31 +0200 Subject: [PATCH] Enhance modulebuilder --- htdocs/admin/knowledgemanagement.php | 2 +- htdocs/admin/knowledgerecord_extrafields.php | 2 +- .../lib/knowledgemanagement.lib.php | 4 +- htdocs/langs/en_US/modulebuilder.lang | 1 + htdocs/modulebuilder/index.php | 78 +++++++++++++------ 5 files changed, 59 insertions(+), 28 deletions(-) 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; }