diff --git a/modules/layout/conf/module.xml b/modules/layout/conf/module.xml
index 935c5fde8..09f34d472 100644
--- a/modules/layout/conf/module.xml
+++ b/modules/layout/conf/module.xml
@@ -9,6 +9,7 @@
+
diff --git a/modules/layout/layout.controller.php b/modules/layout/layout.controller.php
index 08064bf5d..7044022ff 100644
--- a/modules/layout/layout.controller.php
+++ b/modules/layout/layout.controller.php
@@ -92,6 +92,36 @@
$this->add('menu_title', $menu_title);
}
+ /**
+ * @brief 레이아웃 삭제
+ **/
+ function procDeleteLayout() {
+ $layout_srl = Context::get('layout_srl');
+
+ // 캐시 파일 삭제
+ $cache_list = FileHandler::readDir("./files/cache/layout","",false,true);
+ if(count($cache_list)) {
+ foreach($cache_list as $cache_file) {
+ $pos = strpos($cache_file, $layout_srl.'_');
+ if($pos>0) unlink($cache_file);
+ }
+ }
+
+ // DB에서 삭제
+ $oDB = &DB::getInstance();
+
+ // 레이아웃 메뉴 삭제
+ $args->layout_srl = $layout_srl;
+ $output = $oDB->executeQuery("layout.deleteLayoutMenus", $args);
+ if(!$output->toBool()) return $output;
+
+ // 레이아웃 삭제
+ $output = $oDB->executeQuery("layout.deleteLayout", $args);
+ if(!$output->toBool()) return $output;
+
+ $this->setMessage('success_deleted');
+ }
+
/**
* @brief 레이아웃 메뉴 삭제
**/
diff --git a/modules/layout/queries/deleteLayout.xml b/modules/layout/queries/deleteLayout.xml
new file mode 100644
index 000000000..ed7b9bbd4
--- /dev/null
+++ b/modules/layout/queries/deleteLayout.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
diff --git a/modules/layout/queries/deleteLayoutMenus.xml b/modules/layout/queries/deleteLayoutMenus.xml
new file mode 100644
index 000000000..8494bc66e
--- /dev/null
+++ b/modules/layout/queries/deleteLayoutMenus.xml
@@ -0,0 +1,8 @@
+
diff --git a/modules/layout/tpl.admin/filter/delete_layout.xml b/modules/layout/tpl.admin/filter/delete_layout.xml
new file mode 100644
index 000000000..b7d8daa3e
--- /dev/null
+++ b/modules/layout/tpl.admin/filter/delete_layout.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
diff --git a/modules/layout/tpl.admin/index.html b/modules/layout/tpl.admin/index.html
index 0f032b205..de6e05354 100644
--- a/modules/layout/tpl.admin/index.html
+++ b/modules/layout/tpl.admin/index.html
@@ -1,7 +1,14 @@
+
+
+
{$lang->total_count} {number_format(count($layout_list))}
+
+
@@ -19,7 +26,7 @@
{$val->layout} |
{$val->title} |
{zdate($val->regdate,"Y-m-d")} |
-
{$lang->cmd_delete} |
+
{$lang->cmd_delete} |
diff --git a/modules/layout/tpl.admin/js/admin.js b/modules/layout/tpl.admin/js/admin.js
index e929ce2a5..fc31046ab 100644
--- a/modules/layout/tpl.admin/js/admin.js
+++ b/modules/layout/tpl.admin/js/admin.js
@@ -82,3 +82,12 @@ function completeGetMenuInfo(ret_obj, response_tags) {
xInnerHtml("menu_zone_info_"+menu_id, "");
xInnerHtml("menu_zone_info_"+menu_id, tpl);
}
+
+/* 레이아웃 삭제 */
+function doDeleteLayout(layout_srl) {
+ var fo_obj = xGetElementById("fo_layout");
+ if(!fo_obj) return;
+ fo_obj.layout_srl.value = layout_srl;
+
+ procFilter(fo_obj, delete_layout);
+}