Add protection against duplicate moduel with similar names

This commit is contained in:
Laurent Destailleur 2017-07-16 13:25:10 +02:00
parent 7b2a71802b
commit 816db0e856
2 changed files with 22 additions and 3 deletions

View File

@ -51,4 +51,5 @@ WidgetFile=Widget file
ReadmeFile=Readme file
ChangeLog=ChangeLog file
SqlFile=Sql file
SqlFileKey=Sql file for keys
SqlFileKey=Sql file for keys
AnObjectAlreadyExistWithThisNameAndDiffCase=An object already exists with this name and a different case

View File

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