diff --git a/modules/blog/blog.class.php b/modules/blog/blog.class.php
index c5c9e6989..2addd1815 100644
--- a/modules/blog/blog.class.php
+++ b/modules/blog/blog.class.php
@@ -30,6 +30,9 @@
$oModuleController->insertActionForward('blog', 'view', 'dispBlogAdminGrantInfo');
$oModuleController->insertActionForward('blog', 'controller', 'procBlogAdminUpdateSkinInfo');
+ // 캐쉬로 사용할 디렉토리 생성
+ FileHandler::makeDir('./files/cache/blog_category');
+
return new Object();
}
diff --git a/modules/blog/blog.model.php b/modules/blog/blog.model.php
new file mode 100644
index 000000000..8ec02eea9
--- /dev/null
+++ b/modules/blog/blog.model.php
@@ -0,0 +1,95 @@
+
+module_srl = $module_srl;
+ $output = executeQuery('blog.getCategory', $args);
+ if(!$output->data) return;
+
+ $category_info = $output->data;
+ $category_info->xml_file = sprintf('./files/cache/blog_category/%s.xml.php',$module_srl);
+ $category_info->php_file = sprintf('./files/cache/blog_category/%s.php',$module_srl);
+ return $category_info;
+ }
+
+ /**
+ * @brief 특정 카테고리의 정보를 return
+ * 이 정보중에 group_srls의 경우는 , 로 연결되어 들어가며 사용시에는 explode를 통해 array로 변환 시킴
+ **/
+ function getCategoryInfo($category_srl) {
+ // category_srl이 있으면 해당 메뉴의 정보를 가져온다
+ $args->category_srl= $menu_item_srl;
+ $output = executeQuery('blog.getCategoryInfo', $args);
+ $node = $output->data;
+ if($node->group_srls) $node->group_srls = explode(',',$node->group_srls);
+ else $node->group_srls = array();
+ return $node;
+ }
+
+ /**
+ * @brief 특정 카테고리의 정보를 이용하여 템플릿을 구한후 return
+ * 관리자 페이지에서 특정 메뉴의 정보를 추가하기 위해 서버에서 tpl을 컴파일 한후 컴파일 된 html을 직접 return
+ **/
+ function getCategoryAdminTplInfo() {
+ // 해당 메뉴의 정보를 가져오기 위한 변수 설정
+ $category_srl = Context::get('category_srl');
+ $parent_srl = Context::get('parent_srl');
+
+ // 회원 그룹의 목록을 가져옴
+ $oMemberModel = &getModel('member');
+ $group_list = $oMemberModel->getGroups();
+ Context::set('group_list', $group_list);
+
+ // parent_srl이 있고 category_srl 이 없으면 하부 메뉴 추가임
+ if(!$category_srl && $parent_srl) {
+ // 상위 메뉴의 정보를 가져옴
+ $parent_info = $this->getCategoryInfo($parent_srl);
+
+ // 추가하려는 메뉴의 기본 변수 설정
+ $category_info->category_srl = getNextSequence();
+ $category_info->parent_srl = $parent_srl;
+ $category_info->parent_category_name = $parent_info->name;
+
+ // root에 메뉴 추가하거나 기존 메뉴의 수정일 경우
+ } else {
+ // category_srl 이 있으면 해당 메뉴의 정보를 가져온다
+ if($category_srl) $category_info = $this->getCategoryInfo($category_srl);
+
+ // 찾아진 값이 없다면 신규 메뉴 추가로 보고 category_srl값만 구해줌
+ if(!$category_info->category_srl) {
+ $category_info->category_srl = getNextSequence();
+ }
+ }
+
+ Context::set('category_info', $category_info);
+
+ // template 파일을 직접 컴파일한후 tpl변수에 담아서 return한다.
+ require_once("./classes/template/TemplateHandler.class.php");
+ $oTemplate = new TemplateHandler();
+ $tpl = $oTemplate->compile($this->module_path.'tpl', 'category_info');
+
+ // return 할 변수 설정
+ $this->add('tpl', $tpl);
+ }
+
+ }
+?>
diff --git a/modules/blog/blog.view.php b/modules/blog/blog.view.php
index 3d48335a7..e08e5792b 100644
--- a/modules/blog/blog.view.php
+++ b/modules/blog/blog.view.php
@@ -530,10 +530,15 @@
* @brief 카테고리의 정보 출력
**/
function dispBlogAdminCategoryInfo() {
-
// module_srl을 구함
$module_srl = Context::get('module_srl');
+ // 메뉴의 정보를 가져옴
+ $oMenuModel = &getModel('blog');
+ $category_info = $oMenuModel->getCategory($module_srl);
+
+ Context::set('category_info', $category_info);
+
$this->setTemplateFile('category_list');
}
diff --git a/modules/blog/lang/ko.lang.php b/modules/blog/lang/ko.lang.php
index ca58d4ca8..d4d44ed17 100644
--- a/modules/blog/lang/ko.lang.php
+++ b/modules/blog/lang/ko.lang.php
@@ -13,12 +13,17 @@
$lang->cmd_manage_grant = '권한관리';
$lang->cmd_manage_skin = '스킨관리';
$lang->cmd_manage_document = '게시글 관리';
+ $lang->cmd_make_child = '하위 카테고리 추가';
// 항목
$lang->header_text = '상단 내용';
$lang->footer_text = '하단 내용';
$lang->use_category = '분류 사용';
$lang->category_title = '분류명';
+ $lang->parent_category_name = '상위 카테고리명';
+ $lang->category_name = '카테고리명';
+ $lang->expand = '펼침';
+ $lang->category_group_srls = '그룹제한';
$lang->checked_count = '선택된 글 수';
$lang->skin_default_info = '스킨 기본정보';
@@ -44,6 +49,10 @@
$lang->about_admin_id = '해당 모듈에 대해 최고 권한을 가지는 관리자를 지정할 수 있습니다.
,(콤마)로 다수 아이디 지정이 가능합니다. (관리자페이지 접근은 불가능)';
$lang->about_grant = '특정 권한의 대상을 모두 해제하시면 로그인하지 않은 회원까지 권한을 가질 수 있습니다';
+ $lang->about_category_name = '카테고리 이름을 입력해주세요';
+ $lang->about_expand = '선택하시면 늘 펼쳐진 상태로 있게 합니다';
+ $lang->category_group_srls = '선택하신 그룹만 현재 카테고리가 보이게 됩니다. (xml파일을 직접 열람하면 노출이 됩니다)';
+
$lang->msg_new_module = '모듈 생성';
$lang->msg_update_module = '모듈 수정';
$lang->msg_category_is_null = '등록된 분류가 없습니다';
diff --git a/modules/blog/queries/getCategory.xml b/modules/blog/queries/getCategory.xml
new file mode 100644
index 000000000..ac2827142
--- /dev/null
+++ b/modules/blog/queries/getCategory.xml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/modules/blog/queries/getCategoryInfo.xml b/modules/blog/queries/getCategoryInfo.xml
new file mode 100644
index 000000000..3ebe79059
--- /dev/null
+++ b/modules/blog/queries/getCategoryInfo.xml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/modules/blog/tpl/category_info.html b/modules/blog/tpl/category_info.html
new file mode 100644
index 000000000..9f8382174
--- /dev/null
+++ b/modules/blog/tpl/category_info.html
@@ -0,0 +1,50 @@
+
+
+
+