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 @@
- {$lang->edit_sitemap}
- {$lang->add_menu}
+ - {$lang->sitemap_batch_design}
@@ -131,6 +132,38 @@
+
+
+ {$lang->sitemap_batch_design}
+
+
+ -
+
+
+
+ -
+
+
+
+
+
+
+
+
+
+
+
+
{$lang->add_menu}
@@ -366,14 +399,14 @@
-
+