diff --git a/htdocs/core/lib/modulebuilder.lib.php b/htdocs/core/lib/modulebuilder.lib.php
index e6f36b25d47..4e5cbb92c02 100644
--- a/htdocs/core/lib/modulebuilder.lib.php
+++ b/htdocs/core/lib/modulebuilder.lib.php
@@ -128,17 +128,19 @@ function rebuildObjectClass($destdir, $module, $objectname, $newmask, $readdir =
$i++;
$texttoinsert.= "\t\t'".$key."' => array('type'=>'".$val['type']."', 'label'=>'".$val['label']."',";
$texttoinsert.= " 'enabled'=>".($val['enabled']!=''?$val['enabled']:1).",";
- $texttoinsert.= " 'visible'=>".($val['visible']!=''?$val['visible']:-1).",";
$texttoinsert.= " 'position'=>".($val['position']!=''?$val['position']:50).",";
- $texttoinsert.= " 'notnull'=>".($val['notnull']!=''?$val['notnull']:-1).",";
+ $texttoinsert.= " 'notnull'=>".(empty($val['notnull'])?0:$val['notnull']).",";
+ $texttoinsert.= " 'visible'=>".($val['visible']!=''?$val['visible']:-1).",";
+ if ($val['noteditable']) $texttoinsert.= " 'noteditable'=>'".$val['noteditable']."',";
if ($val['default']) $texttoinsert.= " 'default'=>'".$val['default']."',";
if ($val['index']) $texttoinsert.= " 'index'=>".$val['index'].",";
+ if ($val['foreignkey']) $texttoinsert.= " 'foreignkey'=>'".$val['foreignkey']."',";
if ($val['searchall']) $texttoinsert.= " 'searchall'=>".$val['searchall'].",";
if ($val['isameasure']) $texttoinsert.= " 'isameasure'=>'".$val['isameasure']."',";
- if ($val['foreignkey']) $texttoinsert.= " 'foreignkey'=>'".$val['foreignkey']."',";
+ if ($val['css']) $texttoinsert.= " 'css'=>'".$val['css']."',";
if ($val['help']) $texttoinsert.= " 'help'=>\"".preg_replace('/"/', '', $val['help'])."\",";
- if ($val['comment']) $texttoinsert.= " 'comment'=>\"".preg_replace('/"/', '', $val['comment'])."\",";
if ($val['showoncombobox']) $texttoinsert.= " 'showoncombobox'=>'".$val['showoncombobox']."',";
+ if ($val['disabled']) $texttoinsert.= " 'disabled'=>'".$val['disabled']."',";
if ($val['arrayofkeyval'])
{
$texttoinsert.= " 'arrayofkeyval'=>array(";
@@ -149,8 +151,10 @@ function rebuildObjectClass($destdir, $module, $objectname, $newmask, $readdir =
$texttoinsert.="'".$key2."'=>'".$val2."'";
$i++;
}
- $texttoinsert.= ")";
+ $texttoinsert.= "),";
}
+ if ($val['comment']) $texttoinsert.= " 'comment'=>\"".preg_replace('/"/', '', $val['comment'])."\"";
+
$texttoinsert.= "),\n";
}
}
diff --git a/htdocs/langs/en_US/modulebuilder.lang b/htdocs/langs/en_US/modulebuilder.lang
index 59d16eba2fc..4a0e0daf5c1 100644
--- a/htdocs/langs/en_US/modulebuilder.lang
+++ b/htdocs/langs/en_US/modulebuilder.lang
@@ -129,3 +129,9 @@ IncludeRefGeneration=The reference of object must be generated automatically
IncludeRefGenerationHelp=Check this if you want to include code to manage the generation automatically of the reference
IncludeDocGeneration=I want to generate some documents from the object
IncludeDocGenerationHelp=If you check this, some code will be generated to add a "Generate document" box on the record.
+ShowOnCombobox=Show value into combobox
+KeyForTooltip=Key for tooltip
+CSSClass=CSS Class
+NotEditable=Not editable
+ForeignKey=Foreign key
+TypeOfFieldsHelp=Type of fields:
varchar(99), double(24,8), real, text, html, datetime, timestamp, integer, integer:ClassName:relativepath/to/classfile.class.php:1 (1 means we add a + button after the combo to create the record)
\ No newline at end of file
diff --git a/htdocs/modulebuilder/index.php b/htdocs/modulebuilder/index.php
index a6df5f9db43..7fffdfcd50d 100644
--- a/htdocs/modulebuilder/index.php
+++ b/htdocs/modulebuilder/index.php
@@ -810,18 +810,23 @@ if ($dirins && $action == 'initobject' && $module && $objectname)
//'class/api_mymodule.class.php'=>'class/api_'.strtolower($module).'.class.php',
);
- if (GETPOST('includerefgeneration', 'int'))
+ if (GETPOST('includerefgeneration', 'aZ09'))
{
+ dol_mkdir($destdir.'/core/modules/'.strtolower($module));
+
$filetogenerate += array(
- 'core/modules/myobject/mod_myobject_advanced.php'=>'core/modules/'.strtolower($objectname).'/mod_'.strtolower($objectname).'_advanced.php',
- 'core/modules/myobject/mod_myobject_standard.php'=>'core/modules/'.strtolower($objectname).'/mod_'.strtolower($objectname).'_standard.php',
- 'core/modules/myobject/modules_myobject.php'=>'core/modules/'.strtolower($objectname).'/mod_'.strtolower($objectname).'_advanced.php',
+ 'core/modules/mymodule/mod_myobject_advanced.php'=>'core/modules/'.strtolower($module).'/mod_'.strtolower($objectname).'_advanced.php',
+ 'core/modules/mymodule/mod_myobject_standard.php'=>'core/modules/'.strtolower($module).'/mod_'.strtolower($objectname).'_standard.php',
+ 'core/modules/mymodule/modules_myobject.php'=>'core/modules/'.strtolower($module).'/modules_'.strtolower($objectname).'.php',
);
}
- if (GETPOST('includedocgeneration', 'int'))
+ if (GETPOST('includedocgeneration', 'aZ09'))
{
+ dol_mkdir($destdir.'/core/modules/'.strtolower($module));
+ dol_mkdir($destdir.'/core/modules/'.strtolower($module).'/doc');
+
$filetogenerate += array(
- 'core/modules/myobject/doc/doc_generic_myobject_odt.modules.php'=>'core/modules/'.strtolower($objectname).'/doc/doc_generic_'.strtolower($objectname).'_odt.modules.php'
+ 'core/modules/mymodule/doc/doc_generic_myobject_odt.modules.php'=>'core/modules/'.strtolower($module).'/doc/doc_generic_'.strtolower($objectname).'_odt.modules.php'
);
}
@@ -843,8 +848,21 @@ if ($dirins && $action == 'initobject' && $module && $objectname)
}
}
- //if (! $error) // If there is error copying 1 file, we still have to make the replacement
- //{
+ // Edit the class 'class/'.strtolower($objectname).'.class.php'
+ if (GETPOST('includerefgeneration', 'aZ09')) {
+ // Replace 'visible'=>1, 'noteditable'=>0, 'default'=>''
+ $arrayreplacement = array('/\'visible\'=>1,\s*\'noteditable\'=>0,\s*\'default\'=>\'\'/' => "'visible'=>4, 'noteditable'=>1, 'default'=>'(PROV)'");
+ //var_dump($arrayreplacement);exit;
+ //var_dump($destdir.'/class/'.strtolower($objectname).'.class.php');exit;
+ dolReplaceInFile($destdir.'/class/'.strtolower($objectname).'.class.php', $arrayreplacement, '', 0, 0, 1);
+ }
+
+ // Edit the setup file and the card page
+ if (GETPOST('includedocgeneration', 'aZ09')) {
+ // TODO
+ // dolReplaceInFile();
+ }
+
// Scan for object class files
$listofobject = dol_dir_list($destdir.'/class', 'files', 0, '\.class\.php$');
@@ -917,15 +935,12 @@ if ($dirins && $action == 'initobject' && $module && $objectname)
// Add module descriptor to list of files to replace "MyObject' string with real name of object.
$filetogenerate[]='core/modules/mod'.$module.'.class.php';
-
- // TODO
}
- //}
}
if (! $error)
{
- // Edit PHP files
+ // Edit PHP files to make replacement
foreach($filetogenerate as $destfile)
{
$phpfileval['fullname'] = $destdir.'/'.$destfile;
@@ -970,6 +985,7 @@ if ($dirins && $action == 'initobject' && $module && $objectname)
if (! $error)
{
setEventMessages($langs->trans('FilesForObjectInitialized', $objectname), null);
+ $tabobj = $objectname;
}
}
@@ -1198,14 +1214,15 @@ if ($dirins && $action == 'confirm_deleteobject' && $objectname)
'sql/llx_mymodule_myobject.sql'=>'sql/llx_'.strtolower($module).'_'.strtolower($objectname).'.sql',
'sql/llx_mymodule_myobject_extrafields.sql'=>'sql/llx_'.strtolower($module).'_'.strtolower($objectname).'_extrafields.sql',
'sql/llx_mymodule_myobject.key.sql'=>'sql/llx_'.strtolower($module).'_'.strtolower($objectname).'.key.sql',
+ 'sql/llx_mymodule_myobject_extrafields.key.sql'=>'sql/llx_'.strtolower($module).'_'.strtolower($objectname).'_extrafields.key.sql',
'scripts/myobject.php'=>'scripts/'.strtolower($objectname).'.php',
'img/object_myobject.png'=>'img/object_'.strtolower($objectname).'.png',
'class/myobject.class.php'=>'class/'.strtolower($objectname).'.class.php',
'class/api_myobject.class.php'=>'class/api_'.strtolower($module).'.class.php',
- 'core/modules/myobject/mod_myobject_advanced.php'=>'core/modules/'.strtolower($objectname).'/mod_'.strtolower($objectname).'_advanced.php',
- 'core/modules/myobject/mod_myobject_standard.php'=>'core/modules/'.strtolower($objectname).'/mod_'.strtolower($objectname).'_standard.php',
- 'core/modules/myobject/modules_myobject.php'=>'core/modules/'.strtolower($objectname).'/mod_'.strtolower($objectname).'_advanced.php',
- 'core/modules/myobject/doc/doc_generic_myobject_odt.modules.php'=>'core/modules/'.strtolower($objectname).'/doc/doc_generic_'.strtolower($objectname).'_odt.modules.php'
+ 'core/modules/mymodule/mod_myobject_advanced.php'=>'core/modules/'.strtolower($module).'/mod_'.strtolower($objectname).'_advanced.php',
+ 'core/modules/mymodule/mod_myobject_standard.php'=>'core/modules/'.strtolower($module).'/mod_'.strtolower($objectname).'_standard.php',
+ 'core/modules/mymodule/modules_myobject.php'=>'core/modules/'.strtolower($module).'/modules_'.strtolower($objectname).'.php',
+ 'core/modules/mymodule/doc/doc_generic_myobject_odt.modules.php'=>'core/modules/'.strtolower($module).'/doc/doc_generic_'.strtolower($objectname).'_odt.modules.php'
);
$resultko = 0;
@@ -2460,7 +2477,7 @@ elseif (! empty($module))
print load_fiche_titre($langs->trans("ObjectProperties"), '', '');
-
+ print ''."\n";
print '
| '; print $form->textwithpicto($langs->trans("Label"), $langs->trans("YouCanUseTranslationKey")); print ' | '; - print ''.$langs->trans("Type").''; + print ' | '.$form->textwithpicto($langs->trans("Type"), $langs->trans("TypeOfFieldsHelp")).' | '; print ''.$form->textwithpicto($langs->trans("ArrayOfKeyValues"), $langs->trans("ArrayOfKeyValuesDesc")).' | '; print ''.$form->textwithpicto($langs->trans("NotNull"), $langs->trans("NotNullDesc")).' | '; print ''.$langs->trans("DefaultValue").' | '; print ''.$langs->trans("DatabaseIndex").' | '; + print ''.$langs->trans("ForeignKey").' | '; print ''.$langs->trans("Position").' | '; print ''.$form->textwithpicto($langs->trans("Enabled"), $langs->trans("EnabledDesc")).' | '; print ''.$form->textwithpicto($langs->trans("Visible"), $langs->trans("VisibleDesc")).' | '; - print ''.$form->textwithpicto($langs->trans("IsAMeasure"), $langs->trans("IsAMeasureDesc")).' | '; + print ''.$langs->trans("NotEditable").' | '; print ''.$form->textwithpicto($langs->trans("SearchAll"), $langs->trans("SearchAllDesc")).' | '; + print ''.$form->textwithpicto($langs->trans("IsAMeasure"), $langs->trans("IsAMeasureDesc")).' | '; + print ''.$langs->trans("CSSClass").' | '; + print ''.$langs->trans("KeyForTooltip").' | '; + print ''.$langs->trans("ShowOnCombobox").' | '; + //print ''.$langs->trans("Disabled").' | '; print ''.$langs->trans("Comment").' | '; print ''; print ' | '; print ' | '; print ' | '; + print ' | '; print ' | '; print ' | '; print ' | '; - print ' | '; + print ' | '; print ' | '; + print ' | '; + print ' | '; + print ' | '; + print ' | '; + //print ' | '; print ' | '; print ' | '; print ''; @@ -2531,13 +2560,19 @@ elseif (! empty($module)) $proptype=$propval['type']; $proparrayofkeyval=$propval['arrayofkeyval']; $propnotnull=$propval['notnull']; - $propsearchall=$propval['searchall']; $propdefault=$propval['default']; $propindex=$propval['index']; + $propforeignkey=$propval['foreignkey']; $propposition=$propval['position']; $propenabled=$propval['enabled']; $propvisible=$propval['visible']; + $propnoteditable=$propval['noteditable']; + $propsearchall=$propval['searchall']; $propisameasure=$propval['isameasure']; + $propcss=$propval['css']; + $prophelp=$propval['help']; + $propshowoncombobox=$propval['showoncombobox']; + //$propdisabled=$propval['disabled']; $propcomment=$propval['comment']; print ' |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| '; print $proplabel; print ' | '; - print ''; + print ' | '; print $proptype; print ' | '; print ''; @@ -2565,6 +2600,9 @@ elseif (! empty($module)) print ' | '; print $propindex?'1':''; print ' | '; + print ''; + print $propforeignkey?$propforeignkey:''; + print ' | '; print ''; print $propposition; print ' | '; @@ -2575,16 +2613,34 @@ elseif (! empty($module)) print $propvisible?$propvisible:''; print ''; print ''; - print $propisameasure?$propisameasure:''; + print $propnoteditable?$propnoteditable:''; print ' | '; print ''; print $propsearchall?'1':''; print ' | '; + print ''; + print $propisameasure?$propisameasure:''; + print ' | '; + print ''; + print $propcss?$propcss:''; + print ' | '; + print ''; + print $prophelp?$prophelp:''; + print ' | '; + print ''; + print $propshowoncombobox?$propshowoncombobox:''; + print ' | '; + /*print ''; + print $propdisabled?$propdisabled:''; + print ' | ';*/ print ''; print $propcomment; print ' | '; print ''; - print ''.img_delete().''; + if ($propname != 'rowid') + { + print ''.img_delete().''; + } print ' | '; print '|||||
| trans("MyObject"); ?> | +getNomUrl(1); ?> | ++ | date, 'day'); ?> | ++ | getLibStatut(7); ?> | +id.'&action=dellink&dellinkid='.$key.'">'.img_picto($langs->transnoentitiesnoconv("RemoveLink"), 'unlink'); ?> | +