diff --git a/classes/module/ModuleHandler.class.php b/classes/module/ModuleHandler.class.php
index 176ab2016..63cde26e3 100644
--- a/classes/module/ModuleHandler.class.php
+++ b/classes/module/ModuleHandler.class.php
@@ -104,7 +104,7 @@
$xml_info = $oModuleModel->getModuleActionXml($this->module);
// 현재 요청된 act가 있으면 $xml_info에서 type을 찾음, 없다면 기본 action을 이용
- if(!$this->act || !$xml_info->action->{$this->act}) $this->act = $xml_info->default_index_act;
+ if(!$this->act) $this->act = $xml_info->default_index_act;
// act값이 지정이 안되어 있으면 오류 표시
if(!$this->act) {
diff --git a/classes/module/ModuleObject.class.php b/classes/module/ModuleObject.class.php
index fc9c05a96..3b2905fa1 100644
--- a/classes/module/ModuleObject.class.php
+++ b/classes/module/ModuleObject.class.php
@@ -252,6 +252,28 @@
// act가 없으면 action_forward에서 해당하는 act가 있는지 찾아서 대신 실행
} else if(Context::isInstalled()) {
+
+ $oModuleModel = &getModel('module');
+ $forward = $oModuleModel->getActionForward($this->act);
+ if($forward->module && $forward->type && $forward->act) {
+
+ $oModule = &getModule($forward->module, $forward->type);
+ $xml_info = $oModuleModel->getModuleActionXml($forward->module);
+ $oModule->setAct($forward->act);
+ $oModule->init();
+ $oModule->setModuleInfo(null, $xml_info);
+ $output = call_user_method($forward->act, $oModule);
+
+ $this->setTemplatePath($oModule->getTemplatePath());
+ $this->setTemplateFile($oModule->getTemplateFile());
+
+ } else {
+ if($this->xml_info->default_index_act) {
+ $output = call_user_method($this->xml_info->default_index_act, $this);
+ } else {
+ return false;
+ }
+ }
} else {
return false;
diff --git a/modules/file/file.view.php b/modules/file/file.view.php
index f027507b2..10d38f5db 100644
--- a/modules/file/file.view.php
+++ b/modules/file/file.view.php
@@ -55,7 +55,7 @@
Context::set('module_list', $module_list);
// 템플릿 지정
- $this->setTemplatePath($this->module_path.'tpl.admin');
+ $this->setTemplatePath($this->module_path.'tpl');
$this->setTemplateFile('file_list');
}
diff --git a/modules/module/module.model.php b/modules/module/module.model.php
index dcd8976ea..0b6991f27 100644
--- a/modules/module/module.model.php
+++ b/modules/module/module.model.php
@@ -109,6 +109,15 @@
return $module_info;
}
+ /**
+ * @brief act 값에 의한 forward 값을 구함
+ **/
+ function getActionForward($act) {
+ $args->act = $act;
+ $output = executeQuery('module.getActionForward',$args);
+ return $output->data;
+ }
+
/**
* @brief DB에 생성된 mid목록을 구해옴
**/
diff --git a/modules/module/module.view.php b/modules/module/module.view.php
index 34f9ba189..ba56adb70 100644
--- a/modules/module/module.view.php
+++ b/modules/module/module.view.php
@@ -12,14 +12,14 @@
**/
function init() {
// template path 지정
- $this->setTemplatePath($this->module_path.'tpl.admin');
+ $this->setTemplatePath($this->module_path.'tpl');
}
/**
* @brief 모듈 관리자 페이지
**/
function dispModuleAdminContent() {
- $this->dispModuleList();
+ $this->dispModuleAdminList();
}
/**
diff --git a/modules/module/queries/getActionForward.xml b/modules/module/queries/getActionForward.xml
new file mode 100644
index 000000000..bce1ad86b
--- /dev/null
+++ b/modules/module/queries/getActionForward.xml
@@ -0,0 +1,11 @@
+
+