diff --git a/classes/db/DBCubrid.class.php b/classes/db/DBCubrid.class.php index c23cf46a8..054c52652 100644 --- a/classes/db/DBCubrid.class.php +++ b/classes/db/DBCubrid.class.php @@ -499,7 +499,8 @@ if(!$page) $page = 1; // 전체 페이지를 구함 - $total_page = (int)(($total_count-1)/$list_count)+1; + if($total_count) $total_page = (int)( ($total_count-1) / $list_count) + 1; + else $total_page = 1; // 페이지 변수를 체크 if($page > $total_page) $page = $total_page; diff --git a/classes/db/DBMysql.class.php b/classes/db/DBMysql.class.php index 25fed955d..e8551865b 100644 --- a/classes/db/DBMysql.class.php +++ b/classes/db/DBMysql.class.php @@ -452,7 +452,8 @@ if(!$page) $page = 1; // 전체 페이지를 구함 - $total_page = (int)(($total_count-1)/$list_count)+1; + if($total_count) $total_page = (int)( ($total_count-1) / $list_count) + 1; + else $total_page = 1; // 페이지 변수를 체크 if($page > $total_page) $page = $total_page; diff --git a/classes/db/DBMysql_innodb.class.php b/classes/db/DBMysql_innodb.class.php index 3b307d665..400189102 100644 --- a/classes/db/DBMysql_innodb.class.php +++ b/classes/db/DBMysql_innodb.class.php @@ -461,7 +461,8 @@ if(!$page) $page = 1; // 전체 페이지를 구함 - $total_page = (int)(($total_count-1)/$list_count) +1; + if($total_count) $total_page = (int)( ($total_count-1) / $list_count) + 1; + else $total_page = 1; // 페이지 변수를 체크 if($page > $total_page) $page = $total_page; diff --git a/classes/db/DBSqlite2.class.php b/classes/db/DBSqlite2.class.php index 1a7a82ea1..295c3f1be 100644 --- a/classes/db/DBSqlite2.class.php +++ b/classes/db/DBSqlite2.class.php @@ -456,7 +456,8 @@ if(!$page) $page = 1; // 전체 페이지를 구함 - $total_page = (int)(($total_count-1)/$list_count) +1; + if($total_count) $total_page = (int)( ($total_count-1) / $list_count) + 1; + else $total_page = 1; // 페이지 변수를 체크 if($page > $total_page) $page = $total_page; diff --git a/classes/db/DBSqlite3_pdo.class.php b/classes/db/DBSqlite3_pdo.class.php index 63ba246e6..02282a777 100644 --- a/classes/db/DBSqlite3_pdo.class.php +++ b/classes/db/DBSqlite3_pdo.class.php @@ -499,7 +499,8 @@ if(!$page) $page = 1; // 전체 페이지를 구함 - $total_page = (int)(($total_count-1)/$list_count) +1; + if($total_count) $total_page = (int)( ($total_count-1) / $list_count) + 1; + else $total_page = 1; // 페이지 변수를 체크 if($page > $total_page) $page = $total_page; diff --git a/common/js/tree_menu.js b/common/js/tree_menu.js index 292fb8099..42c6ff147 100644 --- a/common/js/tree_menu.js +++ b/common/js/tree_menu.js @@ -41,7 +41,7 @@ var node_callback_func = new Array(); var node_move_callback_func = new Array(); // 트리메뉴의 정보를 담고 있는 xml파일을 읽고 drawTreeMenu()를 호출하는 함수 -function loadTreeMenu(url, menu_id, zone_id, title, callback_func, manual_select_node_srl, callback_move_func) { +function loadTreeMenu(url, menu_id, zone_id, title, index_url , callback_func, manual_select_node_srl, callback_move_func) { // 일단 그릴 곳을 찾아서 사전 작업을 함 (그릴 곳이 없다면 아예 시도를 안함) var zone = xGetElementById(zone_id); if(typeof(zone)=="undefined") return; @@ -77,8 +77,10 @@ function loadTreeMenu(url, menu_id, zone_id, title, callback_func, manual_select oXml.reset(); oXml.xml_path = url; + if(!index_url) index_url= "#"; + // menu_id, zone_id는 계속 달고 다녀야함 - var param = {menu_id:menu_id, zone_id:zone_id, title:title, manual_select_node_srl:manual_select_node_srl} + var param = {"menu_id":menu_id, "zone_id":zone_id, "title":title, "index_url":index_url, "manual_select_node_srl":manual_select_node_srl} // 요청후 drawTreeMenu()함수를 호출 (xml_handler.js에서 request method를 직접 이용) oXml.request(drawTreeMenu, oXml, null, null, null, param); @@ -91,11 +93,12 @@ function drawTreeMenu(oXml, callback_func, resopnse_tags, null_func, param) { var menu_id = param.menu_id; var zone_id = param.zone_id; var title = param.title; + var index_url = param.index_url; if(param.manual_select_node_srl) manual_select_node_srl = param.manual_select_node_srl; var zone = xGetElementById(zone_id); var html = ""; - if(title) html = '
'+title+'
'; + if(title) html = '
'+title+'
'; var xmlDoc = oXml.getResponseXml(); if(!xmlDoc) { @@ -395,7 +398,7 @@ function moveTreeMenu(menu_id, node) { // url이 있으면 url을 분석한다 (제로보드 특화된 부분. url이 http나 ftp등으로 시작하면 그냥 해당 url 열기) if(url) { // http, ftp등의 연결이 아닌 경우 제로보드용으로 처리 - if(url.indexOf('://')==-1) { + if(url.indexOf('://')==-1 && url.indexOf('.')==-1) { url = "./?"+url; } diff --git a/modules/blog/blog.controller.php b/modules/blog/blog.controller.php index 6acb2f606..8c5dafa72 100644 --- a/modules/blog/blog.controller.php +++ b/modules/blog/blog.controller.php @@ -514,18 +514,19 @@ function makeXmlFile($module_srl) { // xml파일 생성시 필요한 정보가 없으면 그냥 return if(!$module_srl) return; - - // DB에서 module_srl 에 해당하는 메뉴 아이템 목록을 listorder순으로 구해옴 - $args->module_srl = $module_srl; - $args->sort_index = 'listorder'; - $output = executeQuery('blog.getBlogCategories', $args); - if(!$output->toBool()) return; // 캐시 파일의 이름을 지정 $xml_file = sprintf("./files/cache/blog_category/%s.xml.php", $module_srl); + // 모듈정보를 구해옴 + $oModuleModel = &getModel('module'); + $this->module_info = $oModuleModel->getModuleInfoByModuleSrl($module_srl); + + // DB에서 module_srl 에 해당하는 메뉴 아이템 목록을 listorder순으로 구해옴 + $oBlogModel = &getModel('blog'); + $list = $oBlogModel->getCategoryList($module_srl); + // 구해온 데이터가 없다면 노드데이터가 없는 xml 파일만 생성 - $list = $output->data; if(!$list) { $xml_buff = ""; FileHandler::writeFile($xml_file, $xml_buff); @@ -576,10 +577,11 @@ else $group_check_code = "true"; $attribute = sprintf( - 'node_srl="%s" text=\'\' expand="%s" ', + 'node_srl="%s" text="" url="%s" expand="%s" ', $category_srl, $group_check_code, $name, + sprintf('./?mid=%s&category=%d', $this->module_info->mid, $category_srl), $expand ); diff --git a/modules/blog/blog.model.php b/modules/blog/blog.model.php index 76f45ce9c..97ee7b6b1 100644 --- a/modules/blog/blog.model.php +++ b/modules/blog/blog.model.php @@ -24,6 +24,17 @@ return $category_info; } + /** + * @brief 특정 모듈의 전체 카테고리를 구함 + **/ + function getCategoryList($module_srl) { + $args->module_srl = $module_srl; + $args->sort_index = 'listorder'; + $output = executeQuery('blog.getBlogCategories', $args); + if(!$output->toBool()) return; + return $output->data; + } + /** * @brief 특정 카테고리의 정보를 return * 이 정보중에 group_srls의 경우는 , 로 연결되어 들어가며 사용시에는 explode를 통해 array로 변환 시킴 diff --git a/modules/blog/blog.view.php b/modules/blog/blog.view.php index 1eb713e1d..51678d53f 100644 --- a/modules/blog/blog.view.php +++ b/modules/blog/blog.view.php @@ -87,6 +87,15 @@ // rss url if($this->grant->list) Context::set('rss_url', getUrl('','mid',$this->mid,'act','dispBlogRss')); + // 카테고리 목록을 가져오고 선택된 카테고리의 값을 설정 + $oBlogModel = &getModel('blog'); + $category_list = $oBlogModel->getCategoryList($this->module_info->module_srl); + if(count($category_list)) { + foreach($category_list as $key => $val) { + $this->category_list[$val->category_srl] = $val; + } + } + Context::set('module_info',$this->module_info); } @@ -146,6 +155,9 @@ $args->search_target = Context::get('search_target'); ///< 검색 대상 (title, contents...) $args->search_keyword = Context::get('search_keyword'); ///< 검색어 + $category_srl = Context::get('category'); + if($this->category_list[$category_srl]) $args->category_srl = $category_srl; + $args->sort_index = 'list_order'; ///< 소팅 값 // 목록 구함, document->getDocumentList 에서 걍 알아서 다 해버리는 구조이다... (아.. 이거 나쁜 버릇인데.. ㅡ.ㅜ 어쩔수 없다) @@ -165,11 +177,6 @@ } Context::set('search_option', $search_option); - // 관리자일 경우 체크한 문서들의 목록을 세팅 - if($this->grant->is_admin) { - Context::set('check_list',$_SESSION['document_management'][$this->module_srl]); - } - $this->setTemplateFile('list'); } diff --git a/modules/blog/skins/default/css/layout.css b/modules/blog/skins/default/css/layout.css index 7d43400e4..a7b6f5314 100644 --- a/modules/blog/skins/default/css/layout.css +++ b/modules/blog/skins/default/css/layout.css @@ -95,7 +95,7 @@ body { .layout_profile .profile{ color:#555555; text-align:left; - padding:0px 10px 0px 10px; + padding:0px 10px 10px 10px; } /* rss 버튼 */ @@ -126,10 +126,10 @@ body { /* 좌측 관리자 메뉴 */ .layout_admin { - border:3px solid #EEEEEE; - padding:5px; + border-top:1px solid #EEEEEE; text-align:center; - margin-bottom:10px; + padding-top:10px; + margin:10px 5px 0px 10px; } .layout_admin A { diff --git a/modules/blog/skins/default/layout.html b/modules/blog/skins/default/layout.html index cc6a0a1d4..62a3cab71 100644 --- a/modules/blog/skins/default/layout.html +++ b/modules/blog/skins/default/layout.html @@ -3,7 +3,7 @@ @@ -57,6 +57,13 @@ {$module_info->profile} + + + +
+ {$lang->cmd_management} +
+ @@ -84,13 +91,6 @@ - - -
- {$lang->cmd_management} -
- - diff --git a/modules/blog/tpl/category_list.html b/modules/blog/tpl/category_list.html index 31d4f659e..47d501d53 100644 --- a/modules/blog/tpl/category_list.html +++ b/modules/blog/tpl/category_list.html @@ -43,6 +43,6 @@ diff --git a/modules/blog/tpl/js/blog_admin.js b/modules/blog/tpl/js/blog_admin.js index a180f0405..b9dc55524 100644 --- a/modules/blog/tpl/js/blog_admin.js +++ b/modules/blog/tpl/js/blog_admin.js @@ -169,7 +169,7 @@ function completeInsertCategory(ret_obj) { if(!xml_file) return; - loadTreeMenu(xml_file, 'category', 'zone_category', category_title, doGetCategoryInfo, category_srl, doMoveTree); + loadTreeMenu(xml_file, 'category', 'zone_category', category_title, '',doGetCategoryInfo, category_srl, doMoveTree); if(!category_srl) xInnerHtml("category_info", ""); else { @@ -200,7 +200,7 @@ function completeMoveCategory(ret_obj) { var source_category_srl = ret_obj['source_category_srl']; var xml_file = ret_obj['xml_file']; - loadTreeMenu(xml_file, 'category', "zone_category", category_title, doGetCategoryInfo, source_category_srl, doMoveTree); + loadTreeMenu(xml_file, 'category', "zone_category", category_title, '', doGetCategoryInfo, source_category_srl, doMoveTree); } /* 카테고리 목록 갱신 */ @@ -228,7 +228,7 @@ function completeDeleteCategory(ret_obj) { var xml_file = ret_obj['xml_file']; alert(ret_obj['message']); - loadTreeMenu(xml_file, 'category', 'zone_category', category_title, doGetCategoryInfo, category_srl, doMoveTree); + loadTreeMenu(xml_file, 'category', 'zone_category', category_title, '', doGetCategoryInfo, category_srl, doMoveTree); xInnerHtml("category_info", ""); } diff --git a/modules/menu/menu.controller.php b/modules/menu/menu.controller.php index 6af82c6f6..6b026df81 100644 --- a/modules/menu/menu.controller.php +++ b/modules/menu/menu.controller.php @@ -318,7 +318,7 @@ if($group_srls) $group_check_code = sprintf('($_SESSION["is_admin"]==true||(is_array($_SESSION["group_srls"])&&count(array_intersect($_SESSION["group_srls"], array(%s)))))',$group_srls); else $group_check_code = "true"; $attribute = sprintf( - 'node_srl="%s" text=\'\' url=\'\' open_window="%s" expand="%s" normal_btn="%s" hover_btn="%s" active_btn="%s" ', + 'node_srl="%s" text="" url="" open_window="%s" expand="%s" normal_btn="%s" hover_btn="%s" active_btn="%s" ', $menu_item_srl, $group_check_code, $name, diff --git a/modules/menu/tpl/js/menu_admin.js b/modules/menu/tpl/js/menu_admin.js index 2614f5d4b..2dcde6456 100644 --- a/modules/menu/tpl/js/menu_admin.js +++ b/modules/menu/tpl/js/menu_admin.js @@ -72,7 +72,7 @@ function completeInsertMenuItem(ret_obj) { if(!xml_file) return; - loadTreeMenu(xml_file, 'menu', 'menu_zone_menu', menu_title, doGetMenuItemInfo, menu_item_srl, doMoveTree); + loadTreeMenu(xml_file, 'menu', 'menu_zone_menu', menu_title, '', doGetMenuItemInfo, menu_item_srl, doMoveTree); if(!menu_srl) xInnerHtml("menu_zone_info", ""); else { @@ -106,7 +106,7 @@ function completeMoveMenuItem(ret_obj) { if(!fo_menu) return; var title = fo_menu.title.value; - loadTreeMenu(xml_file, 'menu', "menu_zone_menu", title, doGetMenuItemInfo, source_item_srl, doMoveTree); + loadTreeMenu(xml_file, 'menu', "menu_zone_menu", title, '', doGetMenuItemInfo, source_item_srl, doMoveTree); } /* 메뉴 목록 갱신 */ @@ -135,7 +135,7 @@ function completeDeleteMenuItem(ret_obj) { var xml_file = ret_obj['xml_file']; alert(ret_obj['message']); - loadTreeMenu(xml_file, 'menu', 'menu_zone_menu', menu_title, doGetMenuItemInfo, menu_item_srl, doMoveTree); + loadTreeMenu(xml_file, 'menu', 'menu_zone_menu', menu_title, '', doGetMenuItemInfo, menu_item_srl, doMoveTree); xInnerHtml("menu_zone_info", ""); } diff --git a/modules/menu/tpl/menu_management.html b/modules/menu/tpl/menu_management.html index f171376d8..a019f6d40 100644 --- a/modules/menu/tpl/menu_management.html +++ b/modules/menu/tpl/menu_management.html @@ -75,6 +75,6 @@