mirror of
https://github.com/Dolibarr/dolibarr.git
synced 2025-12-10 19:41:26 +01:00
Add tab for import/export profiles
This commit is contained in:
@@ -119,7 +119,8 @@ function rebuildObjectClass($destdir, $module, $objectname, $newmask, $readdir =
|
|||||||
if (count($object->fields)) {
|
if (count($object->fields)) {
|
||||||
foreach ($object->fields as $key => $val) {
|
foreach ($object->fields as $key => $val) {
|
||||||
$i++;
|
$i++;
|
||||||
$texttoinsert .= "\t\t'".$key."' => array('type'=>'".$val['type']."', 'label'=>'".$val['label']."',";
|
$texttoinsert .= "\t\t'".$key."' => array('type'=>'".$val['type']."',";
|
||||||
|
$texttoinsert .= " 'label'=>'".$val['label']."',";
|
||||||
$texttoinsert .= " 'enabled'=>'".($val['enabled'] !== '' ? $val['enabled'] : 1)."',";
|
$texttoinsert .= " 'enabled'=>'".($val['enabled'] !== '' ? $val['enabled'] : 1)."',";
|
||||||
$texttoinsert .= " 'position'=>".($val['position'] !== '' ? $val['position'] : 50).",";
|
$texttoinsert .= " 'position'=>".($val['position'] !== '' ? $val['position'] : 50).",";
|
||||||
$texttoinsert .= " 'notnull'=>".(empty($val['notnull']) ? 0 : $val['notnull']).",";
|
$texttoinsert .= " 'notnull'=>".(empty($val['notnull']) ? 0 : $val['notnull']).",";
|
||||||
@@ -145,6 +146,12 @@ function rebuildObjectClass($destdir, $module, $objectname, $newmask, $readdir =
|
|||||||
if ($val['css']) {
|
if ($val['css']) {
|
||||||
$texttoinsert .= " 'css'=>'".$val['css']."',";
|
$texttoinsert .= " 'css'=>'".$val['css']."',";
|
||||||
}
|
}
|
||||||
|
if ($val['cssview']) {
|
||||||
|
$texttoinsert .= " 'cssview'=>'".$val['cssview']."',";
|
||||||
|
}
|
||||||
|
if ($val['csslist']) {
|
||||||
|
$texttoinsert .= " 'csslist'=>'".$val['csslist']."',";
|
||||||
|
}
|
||||||
if ($val['help']) {
|
if ($val['help']) {
|
||||||
$texttoinsert .= " 'help'=>\"".preg_replace('/"/', '', $val['help'])."\",";
|
$texttoinsert .= " 'help'=>\"".preg_replace('/"/', '', $val['help'])."\",";
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -92,6 +92,7 @@ SearchAllDesc=Le champ doit-il être utilisé pour effectuer une recherche à pa
|
|||||||
SpecDefDesc=Entrez ici toute la documentation que vous souhaitez joindre au module et qui n'a pas encore été définis dans d'autres onglets. Vous pouvez utiliser .md ou, mieux, la syntaxe enrichie .asciidoc.
|
SpecDefDesc=Entrez ici toute la documentation que vous souhaitez joindre au module et qui n'a pas encore été définis dans d'autres onglets. Vous pouvez utiliser .md ou, mieux, la syntaxe enrichie .asciidoc.
|
||||||
LanguageDefDesc=Entrez dans ces fichiers, toutes les clés et la traduction pour chaque fichier de langue.
|
LanguageDefDesc=Entrez dans ces fichiers, toutes les clés et la traduction pour chaque fichier de langue.
|
||||||
MenusDefDesc=Définissez ici les menus fournis par votre module
|
MenusDefDesc=Définissez ici les menus fournis par votre module
|
||||||
|
ImportExportProfiles=You will find here the Export or Import profiles provided by your module
|
||||||
DictionariesDefDesc=Définissez ici les dictionnaires fournis par le module
|
DictionariesDefDesc=Définissez ici les dictionnaires fournis par le module
|
||||||
PermissionsDefDesc=Définissez ici les nouvelles permissions fournies par votre module
|
PermissionsDefDesc=Définissez ici les nouvelles permissions fournies par votre module
|
||||||
MenusDefDescTooltip=Les menus fournis par votre module / application sont définis dans le tableau <strong>$this->menus</strong> dans le fichier descripteur de module. Vous pouvez modifier manuellement ce fichier ou utiliser l'éditeur intégré. <br><br> Remarque: une fois définis (et les modules réactivés), les menus sont également visibles dans l'éditeur de menus mis à la disposition des utilisateurs administrateurs sur %s.
|
MenusDefDescTooltip=Les menus fournis par votre module / application sont définis dans le tableau <strong>$this->menus</strong> dans le fichier descripteur de module. Vous pouvez modifier manuellement ce fichier ou utiliser l'éditeur intégré. <br><br> Remarque: une fois définis (et les modules réactivés), les menus sont également visibles dans l'éditeur de menus mis à la disposition des utilisateurs administrateurs sur %s.
|
||||||
|
|||||||
@@ -1245,7 +1245,8 @@ if ($dirins && $action == 'addproperty' && !empty($module) && !empty($tabobj)) {
|
|||||||
'arrayofkeyval'=>GETPOST('proparrayofkeyval', 'restricthtml'), // Example json string '{"0":"Draft","1":"Active","-1":"Cancel"}'
|
'arrayofkeyval'=>GETPOST('proparrayofkeyval', 'restricthtml'), // Example json string '{"0":"Draft","1":"Active","-1":"Cancel"}'
|
||||||
'visible'=>GETPOST('propvisible', 'int'), 'enabled'=>GETPOST('propenabled', 'int'),
|
'visible'=>GETPOST('propvisible', 'int'), 'enabled'=>GETPOST('propenabled', 'int'),
|
||||||
'position'=>GETPOST('propposition', 'int'), 'notnull'=>GETPOST('propnotnull', 'int'), 'index'=>GETPOST('propindex', 'int'), 'searchall'=>GETPOST('propsearchall', 'int'),
|
'position'=>GETPOST('propposition', 'int'), 'notnull'=>GETPOST('propnotnull', 'int'), 'index'=>GETPOST('propindex', 'int'), 'searchall'=>GETPOST('propsearchall', 'int'),
|
||||||
'isameasure'=>GETPOST('propisameasure', 'int'), 'comment'=>GETPOST('propcomment', 'alpha'), 'help'=>GETPOST('prophelp', 'alpha')
|
'isameasure'=>GETPOST('propisameasure', 'int'), 'comment'=>GETPOST('propcomment', 'alpha'), 'help'=>GETPOST('prophelp', 'alpha'),
|
||||||
|
'css'=>GETPOST('propcss', 'aZ09'), 'cssview'=>GETPOST('propcssview', 'aZ09'), 'csslist'=>GETPOST('propcsslist', 'aZ09')
|
||||||
);
|
);
|
||||||
|
|
||||||
if (!empty($addfieldentry['arrayofkeyval']) && !is_array($addfieldentry['arrayofkeyval'])) {
|
if (!empty($addfieldentry['arrayofkeyval']) && !is_array($addfieldentry['arrayofkeyval'])) {
|
||||||
@@ -1827,11 +1828,6 @@ if ($module == 'initmodule') {
|
|||||||
$head2 = array();
|
$head2 = array();
|
||||||
$h = 0;
|
$h = 0;
|
||||||
|
|
||||||
$head2[$h][0] = '';
|
|
||||||
$head2[$h][1] = $morehtmlleft;
|
|
||||||
$head2[$h][2] = '';
|
|
||||||
$h++;
|
|
||||||
|
|
||||||
$head2[$h][0] = $_SERVER["PHP_SELF"].'?tab=description&module='.$module.($forceddirread ? '@'.$dirread : '');
|
$head2[$h][0] = $_SERVER["PHP_SELF"].'?tab=description&module='.$module.($forceddirread ? '@'.$dirread : '');
|
||||||
$head2[$h][1] = $langs->trans("Description");
|
$head2[$h][1] = $langs->trans("Description");
|
||||||
$head2[$h][2] = 'description';
|
$head2[$h][2] = 'description';
|
||||||
@@ -1877,6 +1873,11 @@ if ($module == 'initmodule') {
|
|||||||
$head2[$h][2] = 'widgets';
|
$head2[$h][2] = 'widgets';
|
||||||
$h++;
|
$h++;
|
||||||
|
|
||||||
|
$head2[$h][0] = $_SERVER["PHP_SELF"].'?tab=exportimport&module='.$module.($forceddirread ? '@'.$dirread : '');
|
||||||
|
$head2[$h][1] = $langs->trans("Export").'-'.$langs->trans("Import");
|
||||||
|
$head2[$h][2] = 'exportimport';
|
||||||
|
$h++;
|
||||||
|
|
||||||
$head2[$h][0] = $_SERVER["PHP_SELF"].'?tab=css&module='.$module.($forceddirread ? '@'.$dirread : '');
|
$head2[$h][0] = $_SERVER["PHP_SELF"].'?tab=css&module='.$module.($forceddirread ? '@'.$dirread : '');
|
||||||
$head2[$h][1] = $langs->trans("CSS");
|
$head2[$h][1] = $langs->trans("CSS");
|
||||||
$head2[$h][2] = 'css';
|
$head2[$h][2] = 'css';
|
||||||
@@ -1907,7 +1908,7 @@ if ($module == 'initmodule') {
|
|||||||
$head2[$h][2] = 'buildpackage';
|
$head2[$h][2] = 'buildpackage';
|
||||||
$h++;
|
$h++;
|
||||||
|
|
||||||
print '<br>';
|
print '<!-- Section for a given module -->';
|
||||||
|
|
||||||
// Note module is inside $dirread
|
// Note module is inside $dirread
|
||||||
|
|
||||||
@@ -3340,6 +3341,45 @@ if ($module == 'initmodule') {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ($tab == 'exportimport') {
|
||||||
|
$pathtofile = $listofmodules[strtolower($module)]['moduledescriptorrelpath'];
|
||||||
|
|
||||||
|
$exportlist = $moduleobj->export_label;
|
||||||
|
$importlist = $moduleobj->import_label;
|
||||||
|
|
||||||
|
if ($action != 'editfile' || empty($file)) {
|
||||||
|
print '<span class="opacitymedium">'.$langs->transnoentities('ImportExportProfiles').'</span><br>';
|
||||||
|
print '<br>';
|
||||||
|
|
||||||
|
print '<span class="fa fa-file-o"></span> '.$langs->trans("DescriptorFile").' : <strong>'.$pathtofile.'</strong>';
|
||||||
|
print ' <a class="editfielda paddingleft paddingright" href="'.$_SERVER['PHP_SELF'].'?tab='.$tab.'&module='.$module.($forceddirread ? '@'.$dirread : '').'&action=editfile&format=php&file='.urlencode($pathtofile).'">'.img_picto($langs->trans("Edit"), 'edit').'</a>';
|
||||||
|
print '<br>';
|
||||||
|
} else {
|
||||||
|
$fullpathoffile = dol_buildpath($file, 0);
|
||||||
|
|
||||||
|
$content = file_get_contents($fullpathoffile);
|
||||||
|
|
||||||
|
// New module
|
||||||
|
print '<form action="'.$_SERVER["PHP_SELF"].'" method="POST">';
|
||||||
|
print '<input type="hidden" name="token" value="'.newToken().'">';
|
||||||
|
print '<input type="hidden" name="action" value="savefile">';
|
||||||
|
print '<input type="hidden" name="file" value="'.dol_escape_htmltag($file).'">';
|
||||||
|
print '<input type="hidden" name="tab" value="'.$tab.'">';
|
||||||
|
print '<input type="hidden" name="module" value="'.$module.'">';
|
||||||
|
|
||||||
|
$doleditor = new DolEditor('editfilecontent', $content, '', '300', 'Full', 'In', true, false, 'ace', 0, '99%');
|
||||||
|
print $doleditor->Create(1, '', false, $langs->trans("File").' : '.$file, (GETPOST('format', 'aZ09') ?GETPOST('format', 'aZ09') : 'html'));
|
||||||
|
print '<br>';
|
||||||
|
print '<center>';
|
||||||
|
print '<input type="submit" class="button buttonforacesave button-save" id="savefile" name="savefile" value="'.dol_escape_htmltag($langs->trans("Save")).'">';
|
||||||
|
print ' ';
|
||||||
|
print '<input type="submit" class="button button-cancel" name="cancel" value="'.dol_escape_htmltag($langs->trans("Cancel")).'">';
|
||||||
|
print '</center>';
|
||||||
|
|
||||||
|
print '</form>';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if ($tab == 'cli') {
|
if ($tab == 'cli') {
|
||||||
$clifiles = array();
|
$clifiles = array();
|
||||||
$i = 0;
|
$i = 0;
|
||||||
|
|||||||
Reference in New Issue
Block a user