XE tag_list 위젯의 태그를 4개의 단계로 rank를 부여하도록 기능을 변경하고 위젯의 모듈 선택 대상을 1개 이상 가능하도록 하여 1개 선택시 해당 mid로 그렇지 않으면 통합검색을 이용하도록 코드 변경

git-svn-id: http://xe-core.googlecode.com/svn/sandbox@5211 201d5d3c-b55e-5fd7-737f-ddc643e51545
This commit is contained in:
zero 2009-01-05 03:33:03 +00:00
parent 31542a73a4
commit 8dade33f8f
3 changed files with 45 additions and 35 deletions

View file

@ -387,7 +387,7 @@
* tail -f ./files/_debug_message.php 하여 계속 살펴 있다
**/
function debugPrint($buff = null, $display_line = true) {
if(__DEBUG__ != 0 && __DEBUG_OUTPUT__ === 1) {
if(__DEBUG__ != 0 && __DEBUG_OUTPUT__ !== 1) {
$debug_file = _XE_PATH_."files/_debug_message.php";
$bt = debug_backtrace();
if(is_array($bt)) $first = array_shift($bt);

View file

@ -62,22 +62,22 @@
<description xml:lang="ru">Вы можете сконфигурировать число тегов для показа. (стандарт: 20)</description>
<description xml:lang="zh-TW">可設置要顯示的標籤數。(預設是 20個)</description>
</var>
<var id="mid">
<type>mid</type>
<name xml:lang="ko">대상 모듈</name>
<name xml:lang="zh-CN">模块对象</name>
<name xml:lang="jp">モジュール</name>
<name xml:lang="en">Target Module</name>
<name xml:lang="es">Módulo Objetivo</name>
<name xml:lang="ru">Модуль назначения</name>
<name xml:lang="zh-TW">目標模組</name>
<description xml:lang="ko">선택하신 모듈에 등록된 꼬리표를 대상으로 합니다.</description>
<description xml:lang="zh-CN">将把被选模块当中的标签作为对象。</description>
<description xml:lang="jp">チェックされたモジュールに登録されたタグを対象とします。</description>
<description xml:lang="en">Tag list will be shown based on this target module.</description>
<description xml:lang="es">Objetivo de la lista de etiquetas será la del módulo seleccionado.</description>
<description xml:lang="ru">Список тегов будет показан на основании этого модуля назначения.</description>
<description xml:lang="zh-TW">所選擇的模組作為目標。</description>
</var>
<var id="mid_list">
<type>mid_list</type>
<name xml:lang="ko">대상 모듈</name>
<name xml:lang="zh-CN">模块对象</name>
<name xml:lang="jp">モジュール</name>
<name xml:lang="en">Target Module</name>
<name xml:lang="es">Módulo objetivo</name>
<name xml:lang="ru">Модуль назначения</name>
<name xml:lang="zh-TW">目標模組</name>
<description xml:lang="ko">선택하신 모듈에 등록된 글을 대상으로 합니다.</description>
<description xml:lang="zh-CN">将把被选模块当中的主题作为对象。</description>
<description xml:lang="jp">チェックされたモジュールに登録されたコンテンツ(書き込み)を対象とします。</description>
<description xml:lang="en">The target articles for the newest comments will be the ones submitted in the selected module.</description>
<description xml:lang="es">El objetivo de los comentarios recientes serán los comentarios agragados en el módulo selccionado.</description>
<description xml:lang="ru">Статьи назначения для последних комментариев будут теми, что были размещены в выбранном модуле.</description>
<description xml:lang="zh-TW">所選擇的模組作為目標。</description>
</var>
</extra_vars>
</widget>
</widget>

View file

@ -19,15 +19,9 @@
$title = $args->title;
$list_count = (int)$args->list_count;
if(!$list_count) $list_count = 20;
if($args->mid_list) {
$tmp_mid = explode(",",$args->mid_list);
$mid = $tmp_mid[0];
} else {
$mid = $args->mid;
}
// TagModel::getTagList()를 이용하기 위한 변수 정리
$obj->mid = $mid;
$obj->mid = $args->mid_list;
$obj->list_count = $list_count;
// tag 모듈의 model 객체를 받아서 getTagList() method를 실행
@ -35,21 +29,37 @@
$output = $oTagModel->getTagList($obj);
// 템플릿 파일에서 사용할 변수들을 세팅
$widget_info->module_name = $mid;
if(preg_match('/^([0-9a-z\_]+)$/i', $args->mid_list)) $widget_info->mid = $widget_info->module_name = $args->mid_list;
$widget_info->title = $title;
$widget_info->mid = $mid;
if(count($output->data)) {
// 내용을 랜던으로 정렬
$numbers = array_keys($output->data);
shuffle($numbers);
foreach($numbers as $k => $v) {
$widget_info->tag_list[] = $output->data[$v];
$tags = array();
$max = 0;
$min = 99999999;
foreach($output->data as $key => $val) {
$tag = trim($val->tag);
if(!$tag) continue;
$count = $val->count;
if($max < $count) $max = $count;
if($min > $count) $min = $count;
$tags[] = $val;
}
$mid2 = $min+(int)(($max-$min)/2);
$mid1 = $mid2+(int)(($max-$mid2)/2);
$mid3 = $min+(int)(($mid2-$min)/2);
foreach($tags as $key => $item) {
if($item->count > $mid1) $rank = 1;
elseif($item->count > $mid2) $rank = 2;
elseif($item->count > $mid3) $rank = 3;
else $rank= 4;
$tags[$key]->rank = $rank;
}
shuffle($tags);
}
$widget_info->tag_list = $tags;
Context::set('widget_info', $widget_info);