diff --git a/htdocs/langs/en_US/modulebuilder.lang b/htdocs/langs/en_US/modulebuilder.lang index 91035a6ab97..2c3744b1b93 100644 --- a/htdocs/langs/en_US/modulebuilder.lang +++ b/htdocs/langs/en_US/modulebuilder.lang @@ -51,4 +51,5 @@ WidgetFile=Widget file ReadmeFile=Readme file ChangeLog=ChangeLog file SqlFile=Sql file -SqlFileKey=Sql file for keys \ No newline at end of file +SqlFileKey=Sql file for keys +AnObjectAlreadyExistWithThisNameAndDiffCase=An object already exists with this name and a different case \ No newline at end of file diff --git a/htdocs/modulebuilder/index.php b/htdocs/modulebuilder/index.php index 528f22fe67a..eb3591fefa9 100644 --- a/htdocs/modulebuilder/index.php +++ b/htdocs/modulebuilder/index.php @@ -160,11 +160,29 @@ if ($dirins && $action == 'initobject' && $module && $objectname) setEventMessages($langs->trans("SpaceOrSpecialCharAreNotAllowed"), null, 'errors'); } + $srcdir = DOL_DOCUMENT_ROOT.'/modulebuilder/template'; + $destdir = $dirins.'/'.strtolower($module); + + // Scan dir class to find if an object with same name already exists. if (! $error) { - $srcdir = DOL_DOCUMENT_ROOT.'/modulebuilder/template'; - $destdir = $dirins.'/'.strtolower($module); + $dirlist=dol_dir_list($destdir.'/class','files',0,'\.txt$'); + $alreadyfound=false; + foreach($dirlist as $key => $val) + { + $filefound=preg_replace('/\.txt$/','',$val['name']); + if (strtolower($objectname) == strtolower($filefound) && $objectname != $filefound) + { + $alreadyfound=true; + $error++; + setEventMessages($langs->trans("AnObjectAlreadyExistWithThisNameAndDiffCase"), null, 'errors'); + break; + } + } + } + if (! $error) + { // Delete some files $filetogenerate = array( 'myobject_card.php'=>strtolower($objectname).'_card.php',