Enhance modulebuilder

This commit is contained in:
Laurent Destailleur 2021-05-02 12:15:31 +02:00
parent 24a58b1956
commit 173ef31ad4
5 changed files with 59 additions and 28 deletions

View File

@ -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 '<span class="opacitymedium">'.$langs->trans("KnowledgeManagementSetupPage").'</span><br><br>';

View File

@ -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';

View File

@ -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);

View File

@ -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

View File

@ -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;
}