From 7de9347ff39672f64142d1d7627be028e2f28ea5 Mon Sep 17 00:00:00 2001 From: zero Date: Thu, 26 Apr 2007 00:54:54 +0000 Subject: [PATCH] git-svn-id: http://xe-core.googlecode.com/svn/trunk@1339 201d5d3c-b55e-5fd7-737f-ddc643e51545 --- classes/db/DBCubrid.class.php | 4 ++ classes/db/DBMysql.class.php | 4 ++ classes/db/DBMysql_innodb.class.php | 3 ++ classes/db/DBSqlite2.class.php | 4 ++ classes/db/DBSqlite3_pdo.class.php | 4 ++ classes/xml/XmlQueryParser.class.php | 9 ++++- modules/blog/blog.view.php | 3 +- modules/tag/queries/getTagList.xml | 19 ++++++++++ modules/tag/tag.model.php | 38 +++++++++++++++++++ .../newest_comment/newest_comment.class.php | 2 +- .../newest_document/newest_document.class.php | 2 +- .../newest_trackback.class.php | 2 +- .../tag_list/skins/blog_tag_list/list.html | 13 +++---- .../skins/blog_tag_list/normal/style.css | 31 +++++++-------- plugins/tag_list/tag_list.class.php | 17 ++++----- 15 files changed, 117 insertions(+), 38 deletions(-) create mode 100644 modules/tag/queries/getTagList.xml create mode 100644 modules/tag/tag.model.php diff --git a/classes/db/DBCubrid.class.php b/classes/db/DBCubrid.class.php index 054c52652..adc5d9608 100644 --- a/classes/db/DBCubrid.class.php +++ b/classes/db/DBCubrid.class.php @@ -461,6 +461,8 @@ $query = sprintf("select %s from %s %s", $columns, implode(',',$table_list), $condition); + if(count($output->groups)) $query .= sprintf(' group by %s', implode(',',$output->groups)); + if($output->order) { foreach($output->order as $key => $val) { $index_list[] = sprintf('%s %s', $val[0], $val[1]); @@ -508,6 +510,8 @@ $query = sprintf("select %s from %s %s", $columns, implode(',',$table_list), $condition); + if(count($output->groups)) $query .= sprintf(' group by %s', implode(',',$output->groups)); + if($output->order) { foreach($output->order as $key => $val) { $index_list[] = sprintf('%s %s', $val[0], $val[1]); diff --git a/classes/db/DBMysql.class.php b/classes/db/DBMysql.class.php index e8551865b..93c83bafc 100644 --- a/classes/db/DBMysql.class.php +++ b/classes/db/DBMysql.class.php @@ -414,6 +414,8 @@ $query = sprintf("select %s from %s %s", $columns, implode(',',$table_list), $condition); + if(count($output->groups)) $query .= sprintf(' group by %s', implode(',',$output->groups)); + if($output->order) { foreach($output->order as $key => $val) { $index_list[] = sprintf('%s %s', $val[0], $val[1]); @@ -461,6 +463,8 @@ $query = sprintf("select %s from %s %s", $columns, implode(',',$table_list), $condition); + if(count($output->groups)) $query .= sprintf(' group by %s', implode(',',$output->groups)); + if(count($output->order)) { foreach($output->order as $key => $val) { $index_list[] = sprintf('%s %s', $val[0], $val[1]); diff --git a/classes/db/DBMysql_innodb.class.php b/classes/db/DBMysql_innodb.class.php index 400189102..dc1604f88 100644 --- a/classes/db/DBMysql_innodb.class.php +++ b/classes/db/DBMysql_innodb.class.php @@ -423,6 +423,8 @@ $query = sprintf("select %s from %s %s", $columns, implode(',',$table_list), $condition); + if(count($output->groups)) $query .= sprintf(' group by %s', implode(',',$output->groups)); + if($output->order) { foreach($output->order as $key => $val) { $index_list[] = sprintf('%s %s', $val[0], $val[1]); @@ -469,6 +471,7 @@ $start_count = ($page-1)*$list_count; $query = sprintf("select %s from %s %s", $columns, implode(',',$table_list), $condition); + if(count($output->groups)) $query .= sprintf(' group by %s', implode(',',$output->groups)); if($output->order) { foreach($output->order as $key => $val) { diff --git a/classes/db/DBSqlite2.class.php b/classes/db/DBSqlite2.class.php index 295c3f1be..e3b611eed 100644 --- a/classes/db/DBSqlite2.class.php +++ b/classes/db/DBSqlite2.class.php @@ -418,6 +418,8 @@ $query = sprintf("select %s from %s %s", $columns, implode(',',$table_list), $condition); + if(count($output->groups)) $query .= sprintf(' group by %s', implode(',',$output->groups)); + if($output->order) { foreach($output->order as $key => $val) { $index_list[] = sprintf('%s %s', $val[0], $val[1]); @@ -465,6 +467,8 @@ $query = sprintf("select %s from %s %s", $columns, implode(',',$table_list), $condition); + if(count($output->groups)) $query .= sprintf(' group by %s', implode(',',$output->groups)); + if($output->order) { foreach($output->order as $key => $val) { $index_list[] = sprintf('%s %s', $val[0], $val[1]); diff --git a/classes/db/DBSqlite3_pdo.class.php b/classes/db/DBSqlite3_pdo.class.php index 02282a777..3d8481470 100644 --- a/classes/db/DBSqlite3_pdo.class.php +++ b/classes/db/DBSqlite3_pdo.class.php @@ -461,6 +461,8 @@ $query = sprintf("select %s from %s %s", $columns, implode(',',$table_list), $condition); + if(count($output->groups)) $query .= sprintf(' group by %s', implode(',',$output->groups)); + if($output->order) { foreach($output->order as $key => $val) { $index_list[] = sprintf('%s %s', $val[0], $val[1]); @@ -508,6 +510,8 @@ $query = sprintf("select %s from %s %s", $columns, implode(',',$table_list), $condition); + if(count($output->groups)) $query .= sprintf(' group by %s', implode(',',$output->groups)); + if($output->order) { foreach($output->order as $key => $val) { $index_list[] = sprintf('%s %s', $val[0], $val[1]); diff --git a/classes/xml/XmlQueryParser.class.php b/classes/xml/XmlQueryParser.class.php index cce0b3e01..3e15618d7 100644 --- a/classes/xml/XmlQueryParser.class.php +++ b/classes/xml/XmlQueryParser.class.php @@ -126,8 +126,8 @@ } // group 정리 - $groups = $xml_obj->query->groups->group; - if($groups) { + $group_list = $xml_obj->query->groups->group; + if($group_list) { if(!is_array($group_list)) $group_list = array($group_list); for($i=0;$ipage = array("var"=>"%s", "value"=>$args->%s?$args->%s:"%s");%s', $output->page->var, $output->page->var, $output->page->var, $output->list->default,"\n"); } + // group by 정리 + if($output->groups) { + $buff .= sprintf('$output->groups = array("%s");%s', implode('","',$output->groups),"\n"); + } + // default check if(count($default_list)) { foreach($default_list as $key => $val) { diff --git a/modules/blog/blog.view.php b/modules/blog/blog.view.php index 93f3bc84f..0ff97464e 100644 --- a/modules/blog/blog.view.php +++ b/modules/blog/blog.view.php @@ -163,8 +163,9 @@ $args->page_count = $this->page_count; ///< 페이지 네비게이션에 나타날 페이지의 수 // 검색 옵션 + $args->search_target = trim(Context::get('search_target')); ///< 검색대상 $args->search_keyword = trim(Context::get('search_keyword')); ///< 검색어 - if($args->search_keyword) $args->search_target = "title_content"; ///< 검색 고정 + if($args->search_keyword && !$args->search_target) $args->search_target = "title_content"; ///< 검색 고정 $args->category_srl = $this->category_srl; $args->sort_index = 'list_order'; ///< 소팅 값 diff --git a/modules/tag/queries/getTagList.xml b/modules/tag/queries/getTagList.xml new file mode 100644 index 000000000..63561b3e4 --- /dev/null +++ b/modules/tag/queries/getTagList.xml @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + diff --git a/modules/tag/tag.model.php b/modules/tag/tag.model.php new file mode 100644 index 000000000..581f209b5 --- /dev/null +++ b/modules/tag/tag.model.php @@ -0,0 +1,38 @@ +mid) { + $oModuleModel = &getModel('module'); + $obj->module_srl = $oModuleModel->getModuleSrlByMid($obj->mid); + unset($obj->mid); + } + + // 넘어온 module_srl은 array일 수도 있기에 array인지를 체크 + if(is_array($obj->module_srl)) $args->module_srl = implode(',', $obj->module_srl); + else $args->module_srl = $obj->module_srl; + $args->list_count = $obj->list_count; + + $output = executeQuery('tag.getTagList', $args); + if(!$output->toBool()) return $output; + + return $output; + } + } +?> diff --git a/plugins/newest_comment/newest_comment.class.php b/plugins/newest_comment/newest_comment.class.php index e6088c515..7e67459fd 100644 --- a/plugins/newest_comment/newest_comment.class.php +++ b/plugins/newest_comment/newest_comment.class.php @@ -19,7 +19,7 @@ $title = $args->title; $order_target = $args->order_target; $order_type = $args->order_type; - $list_count = (int)$args->list_order; + $list_count = (int)$args->list_count; if(!$list_count) $list_count = 5; $mid_list = explode(",",$args->mid_list); diff --git a/plugins/newest_document/newest_document.class.php b/plugins/newest_document/newest_document.class.php index 5bcc2dba7..2a5407e98 100644 --- a/plugins/newest_document/newest_document.class.php +++ b/plugins/newest_document/newest_document.class.php @@ -19,7 +19,7 @@ $title = $args->title; $order_target = $args->order_target; $order_type = $args->order_type; - $list_count = (int)$args->list_order; + $list_count = (int)$args->list_count; if(!$list_count) $list_count = 5; $mid_list = explode(",",$args->mid_list); diff --git a/plugins/newest_trackback/newest_trackback.class.php b/plugins/newest_trackback/newest_trackback.class.php index 1c82e449f..d25f77aca 100644 --- a/plugins/newest_trackback/newest_trackback.class.php +++ b/plugins/newest_trackback/newest_trackback.class.php @@ -19,7 +19,7 @@ $title = $args->title; $order_target = $args->order_target; $order_type = $args->order_type; - $list_count = (int)$args->list_order; + $list_count = (int)$args->list_count; if(!$list_count) $list_count = 5; $mid_list = explode(",",$args->mid_list); diff --git a/plugins/tag_list/skins/blog_tag_list/list.html b/plugins/tag_list/skins/blog_tag_list/list.html index c5f56f40d..4341c0fe7 100644 --- a/plugins/tag_list/skins/blog_tag_list/list.html +++ b/plugins/tag_list/skins/blog_tag_list/list.html @@ -4,8 +4,8 @@ -
-
+
+
@@ -16,11 +16,10 @@
-
- -
- {cut_str($val->title,15,'...')} - - {cut_str($val->blog_name,10,'...')} + diff --git a/plugins/tag_list/skins/blog_tag_list/normal/style.css b/plugins/tag_list/skins/blog_tag_list/normal/style.css index cb507b4ba..1e8342710 100644 --- a/plugins/tag_list/skins/blog_tag_list/normal/style.css +++ b/plugins/tag_list/skins/blog_tag_list/normal/style.css @@ -1,24 +1,24 @@ -.newest_trackback_default_normal { +.newest_tag_default_normal { } -.newest_trackback_default_normal .newest_trackback_default_box { +.newest_tag_default_normal .newest_tag_default_box { margin-bottom:5px; } -.newest_trackback_default_normal .newest_trackback_default_box .title_box { +.newest_tag_default_normal .newest_tag_default_box .title_box { padding:5px; height:14px; overflow:hidden; color:#888888; } -.newest_trackback_default_normal .newest_trackback_default_box .title_box .title { +.newest_tag_default_normal .newest_tag_default_box .title_box .title { font-weight:bold; height:14px; float:left; } -.newest_trackback_default_normal .newest_trackback_default_box .title_box .more A { +.newest_tag_default_normal .newest_tag_default_box .title_box .more A { float:right; color:#AAAAAA; text-decoration:none; @@ -26,47 +26,48 @@ font-weight:bold; } -.newest_trackback_default_normal .newest_trackback_default_box .trackback_box { - padding:5px 3px 3px 1px; +.newest_tag_default_normal .newest_tag_default_box .tag_box { + padding:5px; clear:both; border:3px solid #EEEEEE; overflow:hidden; } -.newest_trackback_default_normal .newest_trackback_default_box .trackback { - padding:0px 0px 5px 5px; +.newest_tag_default_normal .newest_tag_default_box .tag { + float:left; + margin-right:5px; color:#AAAAAA; } -.newest_trackback_default_normal .newest_trackback_default_box .trackback A { +.newest_tag_default_normal .newest_tag_default_box .tag A { text-decoration:none; color:#555555; } -.newest_trackback_default_normal .newest_trackback_default_box .trackback A:hover { +.newest_tag_default_normal .newest_tag_default_box .tag A:hover { text-decoration:underline; color:#000000; } -.newest_trackback_default_normal .newest_trackback_default_box .trackback A:visited { +.newest_tag_default_normal .newest_tag_default_box .tag A:visited { color:#AAAAAA; } -.newest_trackback_default_normal .newest_trackback_default_box .trackback .trackback A { +.newest_tag_default_normal .newest_tag_default_box .tag .tag A { font-size:7pt; font-family:tahoma; color:#AAAAAA; letter-spacing:-1px; } -.newest_trackback_default_normal .newest_trackback_default_box .trackback .writer { +.newest_tag_default_normal .newest_tag_default_box .tag .writer { font-size:9pt; font-family:tahoma; color:#AAAAAA; } -.newest_trackback_default_normal .newest_trackback_default_box .regdate { +.newest_tag_default_normal .newest_tag_default_box .regdate { color:#AAAAAA; font-size:8pt; font-family:tahoma; diff --git a/plugins/tag_list/tag_list.class.php b/plugins/tag_list/tag_list.class.php index 34514ca8e..01328ca44 100644 --- a/plugins/tag_list/tag_list.class.php +++ b/plugins/tag_list/tag_list.class.php @@ -17,26 +17,23 @@ function proc($args) { // 플러그인 자체적으로 설정한 변수들을 체크 $title = $args->title; - $order_target = $args->order_target; - $order_type = $args->order_type; - $list_count = (int)$args->list_order; - if(!$list_count) $list_count = 5; + $list_count = (int)$args->list_count; + if(!$list_count) $list_count = 20; $mid_list = explode(",",$args->mid_list); - // TrackbackModel::getTrackbackList()를 이용하기 위한 변수 정리 + // TagModel::getTagList()를 이용하기 위한 변수 정리 $obj->mid = $mid_list; - $obj->sort_index = $order_target; $obj->list_count = $list_count; - // trackback 모듈의 model 객체를 받아서 getTrackbackList() method를 실행 - $oTrackbackModel = &getModel('trackback'); - $output = $oTrackbackModel->getNewestTrackbackList($obj); + // tag 모듈의 model 객체를 받아서 getTagList() method를 실행 + $oTagModel = &getModel('tag'); + $output = $oTagModel->getTagList($obj); // 템플릿 파일에서 사용할 변수들을 세팅 if(count($mid_list)==1) $plugin_info->module_name = $mid_list[0]; $plugin_info->title = $title; - $plugin_info->trackback_list = $output->data; + $plugin_info->tag_list = $output->data; preg_match_all('/(width|height)([^[:digit:]]+)([0-9]+)/i',$args->style,$matches); $plugin_info->width = trim($matches[3][0]);