diff --git a/modules/board/board.controller.php b/modules/board/board.controller.php
index b5df92a19..314523980 100644
--- a/modules/board/board.controller.php
+++ b/modules/board/board.controller.php
@@ -334,7 +334,7 @@
$skin = $module_info->skin;
// 스킨의 정보르 구해옴 (extra_vars를 체크하기 위해서)
- $skin_info = $oModuleModel->loadSkinInfo($this->module, $skin);
+ $skin_info = $oModuleModel->loadSkinInfo($this->module_path, $skin);
// 입력받은 변수들을 체크 (mo, act, module_srl, page등 기본적인 변수들 없앰)
$obj = Context::getRequestVars();
diff --git a/modules/board/board.view.php b/modules/board/board.view.php
index ede863e2a..13d9b29cf 100644
--- a/modules/board/board.view.php
+++ b/modules/board/board.view.php
@@ -531,6 +531,13 @@
$this->module_info->layout_title = $layout_info->layout_title;
}
+ // 정해진 스킨이 있으면 해당 스킨의 정보를 구함
+ if($this->module_info->skin) {
+ $oModuleModel = &getModel('module');
+ $skin_info = $oModuleModel->loadSkinInfo($this->module_path, $this->module_info->skin);
+ $this->module_info->skin_title = $skin_info->title;
+ }
+
// 템플릿 파일 지정
$this->setTemplateFile('board_info');
}
@@ -589,7 +596,7 @@
$skin = $module_info->skin;
$oModuleModel = &getModel('module');
- $skin_info = $oModuleModel->loadSkinInfo($this->module, $skin);
+ $skin_info = $oModuleModel->loadSkinInfo($this->module_path, $skin);
// skin_info에 extra_vars 값을 지정
if(count($skin_info->extra_vars)) {
diff --git a/modules/board/tpl.admin/board_info.html b/modules/board/tpl.admin/board_info.html
index 240df2da8..7ab506253 100644
--- a/modules/board/tpl.admin/board_info.html
+++ b/modules/board/tpl.admin/board_info.html
@@ -23,7 +23,7 @@
| {$lang->skin} |
- {$module_info->skin} |
+ {$module_info->skin_title} ({$module_info->skin}) |
| {$lang->browser_title} |
diff --git a/modules/board/tpl.admin/board_insert.html b/modules/board/tpl.admin/board_insert.html
index df7f876e2..95aeb35d3 100644
--- a/modules/board/tpl.admin/board_insert.html
+++ b/modules/board/tpl.admin/board_insert.html
@@ -67,7 +67,7 @@
|
diff --git a/modules/module/module.controller.php b/modules/module/module.controller.php
index a84fc9e6b..78059b9be 100644
--- a/modules/module/module.controller.php
+++ b/modules/module/module.controller.php
@@ -64,7 +64,8 @@
$oModuleModel = &getModel('module');
// 선택된 스킨정보에서 colorset을 구함
- $skin_info = $oModuleModel->loadSkinInfo($args->module, $args->skin);
+ $module_path = ModuleHandler::getModulePath($args->module);
+ $skin_info = $oModuleModel->loadSkinInfo($module_path, $args->skin);
$skin_vars->colorset = $skin_info->colorset[0]->name;
// DB 객체 생성
diff --git a/modules/module/module.model.php b/modules/module/module.model.php
index 404ece84d..b6b4d7dd0 100644
--- a/modules/module/module.model.php
+++ b/modules/module/module.model.php
@@ -144,15 +144,35 @@
}
/**
- * @brief 특정 모듈의 스킨의 정보를 구해옴
+ * @brief 주어진 곳의 스킨 목록을 구함
+ * 스킨과 skin.xml 파일을 분석 정리한 결과를 return
**/
- function loadSkinInfo($module, $skin) {
+ function getSkins($path) {
+ $skin_path = sprintf("%s/skins/", $path);
+ $list = FileHandler::readDir($skin_path);
+ if(!count($list)) return;
- // 등록하려는 모듈의 path를 구함
- $module_path = ModuleHandler::getModulePath($module);
+ $oXmlParser = new XmlParser();
+
+ foreach($list as $skin_name) {
+ unset($skin_info);
+ $skin_info = $this->loadSkinInfo($path, $skin_name);
+ if(!$skin_info) $skin_info->title = $skin_name;
+
+ $skin_list[$skin_name] = $skin_info;
+ }
+
+ return $skin_list;
+ }
+
+
+ /**
+ * @brief 특정 위치의 특정 스킨의 정보를 구해옴
+ **/
+ function loadSkinInfo($path, $skin) {
// 모듈의 스킨의 정보 xml 파일을 읽음
- $skin_xml_file = sprintf("%sskins/%s/skin.xml", $module_path, $skin);
+ $skin_xml_file = sprintf("%sskins/%s/skin.xml", $path, $skin);
if(!file_exists($skin_xml_file)) return;
// XmlParser 객체 생성
@@ -180,7 +200,7 @@
$name = $color->attrs->name;
$title = $color->title->body;
$screenshot = $color->attrs->src;
- if($screenshot && file_exists($screenshot)) $screenshot = sprintf("%sskins/%s/%s",$module_path,$skin,$screenshot);
+ if($screenshot && file_exists($screenshot)) $screenshot = sprintf("%sskins/%s/%s", $path, $skin, $screenshot);
else $screenshot = "";
unset($obj);
@@ -402,15 +422,6 @@
return $module_info;
}
- /**
- * @brief 모듈의 스킨 목록을 구함
- **/
- function getSkins($module_path) {
- $skins_path = sprintf("%s/skins/", $module_path);
- $list = FileHandler::readDir($skins_path);
- return $list;
- }
-
/**
* @brief 모듈 카테고리의 목록을 구함
**/