Fix #1629 error when more than one menu is named '__ADMINMENU_V17__'

This commit is contained in:
Kijin Sung 2021-02-22 21:27:20 +09:00
parent 9412cc4a22
commit 0188bb817b
4 changed files with 24 additions and 26 deletions

View file

@ -30,18 +30,25 @@ class adminAdminController extends admin
*/ */
function procAdminMenuReset() function procAdminMenuReset()
{ {
$menuSrl = Context::get('menu_srl'); $oMenuAdminModel = getAdminModel('menu');
if(!$menuSrl)
{
throw new Rhymix\Framework\Exceptions\InvalidRequest;
}
$oMenuAdminController = getAdminController('menu'); $oMenuAdminController = getAdminController('menu');
$output = $oMenuAdminController->deleteMenu($menuSrl); for ($i = 0; $i < 100; $i++)
if(!$output->toBool()) {
$output = $oMenuAdminModel->getMenuByTitle($this->getAdminMenuName());
$admin_menu_srl = $output->menu_srl ?? 0;
if ($admin_menu_srl)
{
$output = $oMenuAdminController->deleteMenu($admin_menu_srl);
if (!$output->toBool())
{ {
return $output; return $output;
} }
}
else
{
break;
}
}
Rhymix\Framework\Cache::delete('admin_menu_langs:' . Context::getLangType()); Rhymix\Framework\Cache::delete('admin_menu_langs:' . Context::getLangType());
Rhymix\Framework\Storage::deleteDirectory(\RX_BASEDIR . 'files/cache/menu/admin_lang/'); Rhymix\Framework\Storage::deleteDirectory(\RX_BASEDIR . 'files/cache/menu/admin_lang/');

View file

@ -770,11 +770,8 @@ class adminAdminView extends admin
*/ */
function dispAdminSetup() function dispAdminSetup()
{ {
$oModuleModel = getModel('module');
$oAdmin = getClass('admin');
$oMenuAdminModel = getAdminModel('menu'); $oMenuAdminModel = getAdminModel('menu');
$output = $oMenuAdminModel->getMenuByTitle($oAdmin->getAdminMenuName()); $output = $oMenuAdminModel->getMenuByTitle($this->getAdminMenuName());
Context::set('menu_srl', $output->menu_srl); Context::set('menu_srl', $output->menu_srl);
Context::set('menu_title', $output->title); Context::set('menu_title', $output->title);

View file

@ -12,7 +12,7 @@
class admin extends ModuleObject class admin extends ModuleObject
{ {
private $adminMenuName = '__ADMINMENU_V17__'; protected $adminMenuName = '__ADMINMENU_V17__';
public function getAdminMenuName() public function getAdminMenuName()
{ {
return $this->adminMenuName; return $this->adminMenuName;

View file

@ -83,20 +83,14 @@ function iconDeleteMessage(ret_obj){
} }
function doRecompileCacheFile() { function doRecompileCacheFile() {
if (!confirm(xe.lang.confirm_run)) return; if (!confirm(xe.lang.confirm_run)) return;
var params = []; exec_json('admin.procAdminRecompileCacheFile', {}, function(data) {
exec_xml("admin","procAdminRecompileCacheFile", params, completeCacheMessage); alert(data.message);
} });
function completeCacheMessage(ret_obj) {
alert(ret_obj.message);
} }
function doResetAdminMenu() { function doResetAdminMenu() {
if (!confirm(xe.lang.confirm_reset_admin_menu)) return; if (!confirm(xe.lang.confirm_reset_admin_menu)) return;
var params = []; exec_json('admin.procAdminMenuReset', {}, function() {
params.menu_srl = admin_menu_srl; window.location.reload();
exec_xml("admin","procAdminMenuReset", params, completeResetAdminMenu); });
} }
function completeResetAdminMenu(ret_obj) {
document.location.reload();
}