Qual: More robust error management for menu description

This commit is contained in:
Laurent Destailleur 2013-03-30 19:11:52 +01:00
parent 000fe2c864
commit 4c1f17f42f

View File

@ -433,7 +433,7 @@ abstract class DolibarrModules
if (is_resource($handle)) if (is_resource($handle))
{ {
$dirfound++; $dirfound++;
// Run llx_mytable.sql files // Run llx_mytable.sql files
while (($file = readdir($handle))!==false) while (($file = readdir($handle))!==false)
{ {
@ -443,7 +443,7 @@ abstract class DolibarrModules
if ($result <= 0) $error++; if ($result <= 0) $error++;
} }
} }
rewinddir($handle); rewinddir($handle);
// Run llx_mytable.key.sql files (Must be done after llx_mytable.sql) // Run llx_mytable.key.sql files (Must be done after llx_mytable.sql)
@ -457,7 +457,7 @@ abstract class DolibarrModules
} }
rewinddir($handle); rewinddir($handle);
// Run data_xxx.sql files (Must be done after llx_mytable.key.sql) // Run data_xxx.sql files (Must be done after llx_mytable.key.sql)
while (($file = readdir($handle))!==false) while (($file = readdir($handle))!==false)
{ {
@ -467,9 +467,9 @@ abstract class DolibarrModules
if ($result <= 0) $error++; if ($result <= 0) $error++;
} }
} }
rewinddir($handle); rewinddir($handle);
// Run update_xxx.sql files // Run update_xxx.sql files
while (($file = readdir($handle))!==false) while (($file = readdir($handle))!==false)
{ {
@ -479,7 +479,7 @@ abstract class DolibarrModules
if ($result <= 0) $error++; if ($result <= 0) $error++;
} }
} }
closedir($handle); closedir($handle);
} }
@ -990,7 +990,7 @@ abstract class DolibarrModules
//print 'xxx'.$this->menu[$key]['fk_menu'];exit; //print 'xxx'.$this->menu[$key]['fk_menu'];exit;
$foundparent=0; $foundparent=0;
$fk_parent=$this->menu[$key]['fk_menu']; $fk_parent=$this->menu[$key]['fk_menu'];
if (preg_match('/r=/',$fk_parent)) if (preg_match('/^r=/',$fk_parent)) // old deprecated method
{ {
$fk_parent=str_replace('r=','',$fk_parent); $fk_parent=str_replace('r=','',$fk_parent);
if (isset($this->menu[$fk_parent]['rowid'])) if (isset($this->menu[$fk_parent]['rowid']))
@ -999,14 +999,14 @@ abstract class DolibarrModules
$foundparent=1; $foundparent=1;
} }
} }
elseif (preg_match('/fk_mainmenu=(.*),fk_leftmenu=(.*)/',$fk_parent,$reg)) elseif (preg_match('/^fk_mainmenu=([a-zA-Z0-9_]+),fk_leftmenu=([a-zA-Z0-9_]+)$/',$fk_parent,$reg))
{ {
$menu->fk_menu=-1; $menu->fk_menu=-1;
$menu->fk_mainmenu=$reg[1]; $menu->fk_mainmenu=$reg[1];
$menu->fk_leftmenu=$reg[2]; $menu->fk_leftmenu=$reg[2];
$foundparent=1; $foundparent=1;
} }
elseif (preg_match('/fk_mainmenu=(.*)/',$fk_parent,$reg)) elseif (preg_match('/^fk_mainmenu=([a-zA-Z0-9_]+)$/',$fk_parent,$reg))
{ {
$menu->fk_menu=-1; $menu->fk_menu=-1;
$menu->fk_mainmenu=$reg[1]; $menu->fk_mainmenu=$reg[1];