diff --git a/modules/menu/conf/module.xml b/modules/menu/conf/module.xml index e2c694229..5bf186446 100644 --- a/modules/menu/conf/module.xml +++ b/modules/menu/conf/module.xml @@ -15,6 +15,7 @@ + diff --git a/modules/menu/lang/en.php b/modules/menu/lang/en.php index 7ae79997d..b2775978d 100644 --- a/modules/menu/lang/en.php +++ b/modules/menu/lang/en.php @@ -8,6 +8,7 @@ $lang->collapsing = 'Collapse'; $lang->expanding = 'Expand'; $lang->edit_sitemap = 'Edit Sitemap'; $lang->sitemap_name = 'Sitemap Name'; +$lang->sitemap_batch_design = 'Select Design'; $lang->add_menu = 'Add Menu Item'; $lang->edit_menu = 'Edit Menu'; $lang->sitemap = 'Sitemap'; diff --git a/modules/menu/lang/ko.php b/modules/menu/lang/ko.php index 083dfb737..a7fba746e 100644 --- a/modules/menu/lang/ko.php +++ b/modules/menu/lang/ko.php @@ -8,6 +8,7 @@ $lang->collapsing = '접기'; $lang->expanding = '펼치기'; $lang->edit_sitemap = '사이트맵 편집'; $lang->sitemap_name = '사이트맵 이름'; +$lang->sitemap_batch_design = '디자인 일괄 적용'; $lang->add_menu = '메뉴 추가'; $lang->edit_menu = '메뉴 편집'; $lang->sitemap = '사이트맵'; diff --git a/modules/menu/menu.admin.controller.php b/modules/menu/menu.admin.controller.php index 794f6c7cf..0d0d76972 100644 --- a/modules/menu/menu.admin.controller.php +++ b/modules/menu/menu.admin.controller.php @@ -239,6 +239,57 @@ class menuAdminController extends menu $returnUrl = Context::get('success_return_url') ? Context::get('success_return_url') : getNotEncodedUrl('', 'module', 'admin', 'act', 'dispMenuAdminManagement', 'menu_srl', $args->menu_srl); $this->setRedirectUrl($returnUrl); } + + /** + * Change the menu design (layout) + */ + public function procMenuAdminUpdateDesign() + { + $vars = Context::getRequestVars(); + $menu_srl = intval($vars->menu_srl); + $layout_P = intval($vars->layout_P); + $layout_M = intval($vars->layout_M); + if (!$layout_P && !$layout_M) + { + return; + } + + $args = new stdClass; + $args->menu_srl = $menu_srl; + $output = executeQueryArray('layout.getLayoutModules', $args); + if ($output->data) + { + $module_srls = array_map(function($item) { return $item->module_srl; }, $output->data); + if (count($module_srls)) + { + $args = new stdClass; + $args->module_srls = $module_srls; + if ($layout_P) + { + $args->layout_srl = $layout_P; + $output = executeQuery('layout.updateModuleLayout', $args); + if (!$output->toBool()) + { + Rhymix\Framework\Cache::clearGroup('site_and_module'); + return $output; + } + } + if ($layout_M) + { + $args->layout_srl = $layout_M; + $args->use_mobile = 'Y'; + $output = executeQuery('layout.updateModuleMLayout', $args); + if (!$output->toBool()) + { + Rhymix\Framework\Cache::clearGroup('site_and_module'); + return $output; + } + } + + Rhymix\Framework\Cache::clearGroup('site_and_module'); + } + } + } /** * Delete menu process method diff --git a/modules/menu/menu.admin.view.php b/modules/menu/menu.admin.view.php index cf14289af..2dd414685 100644 --- a/modules/menu/menu.admin.view.php +++ b/modules/menu/menu.admin.view.php @@ -85,6 +85,13 @@ class menuAdminView extends menu } } Context::set('group_list', $groupList); + + // Get layout instance list + $oLayoutModel = getModel('layout'); + $layouts_P = $oLayoutModel->getLayoutList(0, 'P') ?: []; + $layouts_M = $oLayoutModel->getLayoutList(0, 'M') ?: []; + Context::set('layouts_P', $layouts_P); + Context::set('layouts_M', $layouts_M); $this->setTemplateFile('sitemap'); } diff --git a/modules/menu/ruleset/updateMenuDesign.xml b/modules/menu/ruleset/updateMenuDesign.xml new file mode 100644 index 000000000..cc2ddc82c --- /dev/null +++ b/modules/menu/ruleset/updateMenuDesign.xml @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/modules/menu/tpl/sitemap.html b/modules/menu/tpl/sitemap.html index a8cf1baba..873213605 100644 --- a/modules/menu/tpl/sitemap.html +++ b/modules/menu/tpl/sitemap.html @@ -82,6 +82,7 @@