diff --git a/common/lang/en.lang.php b/common/lang/en.lang.php
index c108d3fc7..2c3955ab6 100644
--- a/common/lang/en.lang.php
+++ b/common/lang/en.lang.php
@@ -26,6 +26,7 @@
$lang->cmd_cancel = 'Cancel';
$lang->cmd_back = 'Go Back';
$lang->cmd_vote = 'Vote';
+ $lang->cmd_copy = 'Copy';
$lang->cmd_move = 'Move';
$lang->cmd_move_up = 'Up';
$lang->cmd_move_down = 'Down';
diff --git a/common/lang/es.lang.php b/common/lang/es.lang.php
index ebc6a2928..0d1d5d132 100644
--- a/common/lang/es.lang.php
+++ b/common/lang/es.lang.php
@@ -26,6 +26,7 @@
$lang->cmd_cancel = 'Cancelar';
$lang->cmd_back = 'Atrás';
$lang->cmd_vote = 'Recomendar';
+ $lang->cmd_copy = 'Copia';
$lang->cmd_move = 'Mover';
$lang->cmd_move_up = 'Arriba';
$lang->cmd_move_down = 'Abajo';
diff --git a/common/lang/fr.lang.php b/common/lang/fr.lang.php
index 6bbd45d8b..a19486c0d 100644
--- a/common/lang/fr.lang.php
+++ b/common/lang/fr.lang.php
@@ -26,6 +26,7 @@
$lang->cmd_cancel = 'Decommander';
$lang->cmd_back = 'Retour';
$lang->cmd_vote = 'Voter';
+ $lang->cmd_copy = 'Copie';
$lang->cmd_move = 'Deplacer';
$lang->cmd_move_up = 'Relever';
$lang->cmd_move_down = 'Abaisser';
diff --git a/common/lang/jp.lang.php b/common/lang/jp.lang.php
index e8259d999..839f363cf 100644
--- a/common/lang/jp.lang.php
+++ b/common/lang/jp.lang.php
@@ -26,6 +26,7 @@
$lang->cmd_cancel = 'キャンセル';
$lang->cmd_back = '戻る';
$lang->cmd_vote = '推薦';
+ $lang->cmd_copy = 'コピー';
$lang->cmd_move = '移動';
$lang->cmd_move_up = '上へ';
$lang->cmd_move_down = '下へ';
diff --git a/common/lang/ko.lang.php b/common/lang/ko.lang.php
index 78473b3cf..43d53e49a 100644
--- a/common/lang/ko.lang.php
+++ b/common/lang/ko.lang.php
@@ -26,6 +26,7 @@
$lang->cmd_cancel = '취소';
$lang->cmd_back = '돌아가기';
$lang->cmd_vote = '추천';
+ $lang->cmd_copy = '복사';
$lang->cmd_move = '이동';
$lang->cmd_move_up = '위로';
$lang->cmd_move_down = '아래로';
diff --git a/common/lang/zh-CN.lang.php b/common/lang/zh-CN.lang.php
index 2ccdd48a6..7fbccfb25 100644
--- a/common/lang/zh-CN.lang.php
+++ b/common/lang/zh-CN.lang.php
@@ -26,6 +26,7 @@
$lang->cmd_cancel = '取消';
$lang->cmd_back = '返回';
$lang->cmd_vote = '推荐';
+ $lang->cmd_copy = '副本';
$lang->cmd_move = '查看';
$lang->cmd_move_up = '向上';
$lang->cmd_move_down = '向下';
diff --git a/modules/blog/tpl/index.html b/modules/blog/tpl/index.html
index 01fc9b995..d768b1ba3 100644
--- a/modules/blog/tpl/index.html
+++ b/modules/blog/tpl/index.html
@@ -19,6 +19,7 @@
+
| {$lang->no} |
@@ -44,6 +45,7 @@
{$lang->admin_id} |
{$lang->regdate} |
{$lang->cmd_view} |
+ {$lang->cmd_copy} |
{$lang->cmd_delete} |
@@ -66,7 +68,8 @@
{$val->skin} |
{$val->admin_id} |
{zdate($val->regdate,"Y-m-d")} |
- {$lang->cmd_view} |
+ {$lang->cmd_view} |
+ {$lang->cmd_copy} |
{$lang->cmd_delete} |
diff --git a/modules/board/tpl/index.html b/modules/board/tpl/index.html
index cc1669315..d8971fa97 100644
--- a/modules/board/tpl/index.html
+++ b/modules/board/tpl/index.html
@@ -19,6 +19,7 @@
+
| {$lang->no} |
@@ -44,6 +45,7 @@
{$lang->admin_id} |
{$lang->regdate} |
{$lang->cmd_view} |
+ {$lang->cmd_copy} |
{$lang->cmd_delete} |
@@ -65,6 +67,7 @@
{$val->admin_id} |
{zdate($val->regdate,"Y-m-d")} |
{$lang->cmd_view} |
+ {$lang->cmd_copy} |
{$lang->cmd_delete} |
diff --git a/modules/module/conf/module.xml b/modules/module/conf/module.xml
index 090efec80..7208be473 100644
--- a/modules/module/conf/module.xml
+++ b/modules/module/conf/module.xml
@@ -8,7 +8,9 @@
+
+
diff --git a/modules/module/lang/en.lang.php b/modules/module/lang/en.lang.php
index d01596f5e..f63ccf801 100644
--- a/modules/module/lang/en.lang.php
+++ b/modules/module/lang/en.lang.php
@@ -28,6 +28,7 @@
'H' => 'Open summary',
'N' => 'Not open',
);
+ $lang->module_copy = "Copy module";
$lang->cmd_add_shortcut = "Add Shortcut";
$lang->cmd_install = "Install";
diff --git a/modules/module/lang/es.lang.php b/modules/module/lang/es.lang.php
index 61b341747..c4ddf9551 100644
--- a/modules/module/lang/es.lang.php
+++ b/modules/module/lang/es.lang.php
@@ -28,6 +28,7 @@
'H' => 'Abrir el sumario',
'N' => 'No abrir',
);
+ $lang->module_copy = "Copy Module";
$lang->cmd_add_shortcut = "añadir acceso directo";
$lang->cmd_install = "Instalar";
diff --git a/modules/module/lang/jp.lang.php b/modules/module/lang/jp.lang.php
index 9d7d4aebc..2e27d967d 100644
--- a/modules/module/lang/jp.lang.php
+++ b/modules/module/lang/jp.lang.php
@@ -28,6 +28,7 @@
'H' => '要約配信',
'N' => '配信しない',
);
+ $lang->module_copy = "Copy module";
$lang->cmd_add_shortcut = "ショットカット追加";
$lang->cmd_install = "インストール";
diff --git a/modules/module/lang/ko.lang.php b/modules/module/lang/ko.lang.php
index f00e69a6e..ce11e25d8 100644
--- a/modules/module/lang/ko.lang.php
+++ b/modules/module/lang/ko.lang.php
@@ -28,6 +28,7 @@
'H' => '요약 공개',
'N' => '공개하지 않음',
);
+ $lang->module_copy = "모듈 복사";
$lang->cmd_add_shortcut = "바로가기 추가";
$lang->cmd_install = "설치";
diff --git a/modules/module/lang/zh-CN.lang.php b/modules/module/lang/zh-CN.lang.php
index 40f1379c0..241a7050f 100644
--- a/modules/module/lang/zh-CN.lang.php
+++ b/modules/module/lang/zh-CN.lang.php
@@ -28,6 +28,7 @@
'H' => '公开摘要',
'N' => '不公开',
);
+ $lang->module_copy = "Copy Module";
$lang->cmd_add_shortcut = "添加到快捷菜单";
$lang->cmd_install = "安装";
diff --git a/modules/module/module.admin.controller.php b/modules/module/module.admin.controller.php
index 5ab409b8e..8703818f9 100644
--- a/modules/module/module.admin.controller.php
+++ b/modules/module/module.admin.controller.php
@@ -62,5 +62,50 @@
return executeQuery('module.deleteModuleCategory', $args);
}
+ /**
+ * @brief 모듈 복사
+ **/
+ function procModuleAdminCopyModule() {
+ // 복사하려는 대상 모듈의 정보를 구함
+ $module_srl = Context::get('module_srl');
+ if(!$module_srl) return;
+
+ // 새로 생성하려는 모듈들의 이름/브라우저 제목을 구함
+ $clones = array();
+ $args = Context::getAll();
+ for($i=1;$i<=10;$i++) {
+ $mid = $args->{"mid_".$i};
+ $browser_title = $args->{"browser_title_".$i};
+ if(!$mid) continue;
+ if($mid && !$browser_title) $browser_title = $mid;
+ $clones[$mid] = $browser_title;
+ }
+ if(!count($clones)) return;
+
+ // 원 모듈의 정보를 직접 구해옴
+ $obj->module_srl = $module_srl;
+ $output = executeQuery("module.getMidInfo", $obj);
+ $module_info = $output->data;
+ unset($module_info->module_srl);
+ unset($module_info->regdate);
+
+ $oDB = &DB::getInstance();
+ $oDB->begin();
+
+ // 모듈 복사
+ foreach($clones as $mid => $browser_title) {
+ $clone_args = null;
+ $clone_args = clone($module_info);
+ $clone_args->module_srl = getNextSequence();
+ $clone_args->mid = $mid;
+ $clone_args->browser_title = $browser_title;
+ $clone_args->is_default = 'N';
+ $output = executeQuery('module.insertModule', $clone_args);
+ }
+
+ $oDB->commit();
+ $this->setMessage('success_registed');
+ }
+
}
?>
diff --git a/modules/module/module.admin.view.php b/modules/module/module.admin.view.php
index 255e82015..59bebf5ce 100644
--- a/modules/module/module.admin.view.php
+++ b/modules/module/module.admin.view.php
@@ -78,5 +78,24 @@
}
}
+ /**
+ * @brief 모듈 복사 기능
+ **/
+ function dispModuleAdminCopyModule() {
+ // 복사하려는 대상 모듈을 구함
+ $module_srl = Context::get('module_srl');
+
+ // 해당 모듈의 정보를 구함
+ $oModuleModel = &getModel('module');
+ $module_info = $oModuleModel->getModuleInfoByModuleSrl($module_srl);
+ Context::set('module_info', $module_info);
+
+ // 레이아웃을 팝업으로 지정
+ $this->setLayoutFile('popup_layout');
+
+ // 템플릿 파일 지정
+ $this->setTemplateFile('copy_module');
+ }
+
}
?>
diff --git a/modules/module/queries/insertModule.xml b/modules/module/queries/insertModule.xml
index c813b5bb4..8d3e9c887 100644
--- a/modules/module/queries/insertModule.xml
+++ b/modules/module/queries/insertModule.xml
@@ -11,6 +11,7 @@
+
diff --git a/modules/module/tpl/copy_module.html b/modules/module/tpl/copy_module.html
new file mode 100644
index 000000000..1a59dd19b
--- /dev/null
+++ b/modules/module/tpl/copy_module.html
@@ -0,0 +1,87 @@
+
+
+
+
+
{$lang->module_copy}
+
+
+
diff --git a/modules/module/tpl/filter/copy_module.xml b/modules/module/tpl/filter/copy_module.xml
new file mode 100644
index 000000000..5fdad26f3
--- /dev/null
+++ b/modules/module/tpl/filter/copy_module.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
diff --git a/modules/module/tpl/js/module_admin.js b/modules/module/tpl/js/module_admin.js
index 5581e70e0..8c4143694 100644
--- a/modules/module/tpl/js/module_admin.js
+++ b/modules/module/tpl/js/module_admin.js
@@ -50,3 +50,9 @@ function doUpdateModule(module) {
params['module_name'] = module;
exec_xml('install','procInstallAdminUpdate',params, completeInstallModule);
}
+
+/* 모듈 복사후 */
+function completeCopyModule() {
+ if(typeof(opener)!='undefined') opener.location.href = opener.location.href;
+ window.close();
+}
diff --git a/modules/opage/tpl/index.html b/modules/opage/tpl/index.html
index 67863fd5d..cd054f988 100644
--- a/modules/opage/tpl/index.html
+++ b/modules/opage/tpl/index.html
@@ -10,6 +10,15 @@
+
+
+
+
+
+
+
+
+
| {$lang->no} |
@@ -17,7 +26,7 @@
@@ -52,7 +62,8 @@
{$val->browser_title} |
{$val->is_default} |
{zdate($val->regdate,"Y-m-d")} |
- {$lang->cmd_view} |
+ {$lang->cmd_view} |
+ {$lang->cmd_copy} |
{$lang->cmd_delete} |
diff --git a/modules/page/tpl/index.html b/modules/page/tpl/index.html
index ea054e217..b9d70ad4b 100644
--- a/modules/page/tpl/index.html
+++ b/modules/page/tpl/index.html
@@ -18,6 +18,7 @@
+
| {$lang->no} |
@@ -41,6 +42,7 @@
{$lang->is_default} |
{$lang->regdate} |
{$lang->cmd_view} |
+ {$lang->cmd_copy} |
{$lang->cmd_delete} |
@@ -60,7 +62,8 @@
{$val->browser_title} |
{$val->is_default} |
{zdate($val->regdate,"Y-m-d")} |
- {$lang->cmd_view} |
+ {$lang->cmd_view} |
+ {$lang->cmd_copy} |
{$lang->cmd_delete} |