Author name update.

NHN
developers@xpressengine.com
http://xpressengine.com/

git-svn-id: http://xe-core.googlecode.com/svn/sandbox@7676 201d5d3c-b55e-5fd7-737f-ddc643e51545
This commit is contained in:
ChanMyeong 2010-09-06 06:35:20 +00:00
parent 7d1fa86e5c
commit 8f385a592b
603 changed files with 67379 additions and 67522 deletions

View file

@ -1,57 +1,57 @@
<?xml version="1.0" encoding="UTF-8"?>
<module version="0.2">
<title xml:lang="ko">통합검색</title>
<title xml:lang="zh-CN">综合搜索</title>
<title xml:lang="jp">統合検索</title>
<title xml:lang="en">Integrated Search</title>
<title xml:lang="vi">Tìm kiếm tích hợp</title>
<title xml:lang="es">Búsqueda Integrada</title>
<title xml:lang="ru">Интегрируемый поиск</title>
<title xml:lang="zh-TW">綜合搜尋</title>
<description xml:lang="ko">
선택한 모듈들을 대상으로 통합검색을 지원합니다.
선택된 모듈의 글중 비밀글만 검색을 하지 않고 나머지는 모두 검색을 하기에 공개되지 않은 모듈은 대상에 포함하지 않도록 하셔야 합니다.
</description>
<description xml:lang="zh-CN">
把所选模块作为搜索对象。
所选模块当中只有密帖不会被搜索,因此请留意您不想搜索的模块。
</description>
<description xml:lang="jp">
選択されたモジュールを対象に統合検索を行う機能をサポートします。
選択されたモジュールのコンテンツ(書き込み)の中で、非公開コンテンツのみ検索から除外されますので、未公開のモジュールは対象にしないようにして下さい。
</description>
<description xml:lang="en">
It supports integration search for chosen modules.
All articles except secret articles will be searched, so you need to be careful not to include secret module to target.
</description>
<description xml:lang="vi">
Hỗ trợ tìm kiếm tích hợp cho những Module được chọn.
Mọi bài viết đều có thể được tìm kiếm (Trừ những bài đặt bí mật), vì vậy bạn hãy cẩn thận khi chọn những Module bí mật.
</description>
<description xml:lang="es">
Soporta la búsqueda integrada de los módulos elegidos.
Todo los documentos excepto los secretos serán buscados, y es necesario tener cuidado de no incluir módulo secreto como objetivo.
</description>
<description xml:lang="ru">
Поддерживает интеграцию поиска в выбранные модули.
Все статьи, за исключением секретных, будут подлежать поиску, поэтому Вам нужно быть осторожным с тем, чтобы не включить модуль секретов в назначение.
</description>
<description xml:lang="zh-TW">
將所選擇的模組當作搜尋對象進行搜尋。
所搜尋的模組中,如有私密文章時將不會被搜尋,因此請注意選擇。
</description>
<version>0.1</version>
<date>2007-07-24</date>
<category>service</category>
<author email_address="zero@zeroboard.com" link="http://blog.nzeo.com">
<name xml:lang="ko">zero</name>
<name xml:lang="vi">zero</name>
<name xml:lang="zh-CN">zero</name>
<name xml:lang="jp">zero</name>
<name xml:lang="en">zero</name>
<name xml:lang="es">zero</name>
<name xml:lang="ru">zero</name>
<name xml:lang="zh-TW">zero</name>
</author>
</module>
<?xml version="1.0" encoding="UTF-8"?>
<module version="0.2">
<title xml:lang="ko">통합검색</title>
<title xml:lang="zh-CN">综合搜索</title>
<title xml:lang="jp">統合検索</title>
<title xml:lang="en">Integrated Search</title>
<title xml:lang="vi">Tìm kiếm tích hợp</title>
<title xml:lang="es">Búsqueda Integrada</title>
<title xml:lang="ru">Интегрируемый поиск</title>
<title xml:lang="zh-TW">綜合搜尋</title>
<description xml:lang="ko">
선택한 모듈들을 대상으로 통합검색을 지원합니다.
선택된 모듈의 글중 비밀글만 검색을 하지 않고 나머지는 모두 검색을 하기에 공개되지 않은 모듈은 대상에 포함하지 않도록 하셔야 합니다.
</description>
<description xml:lang="zh-CN">
把所选模块作为搜索对象。
所选模块当中只有密帖不会被搜索,因此请留意您不想搜索的模块。
</description>
<description xml:lang="jp">
選択されたモジュールを対象に統合検索を行う機能をサポートします。
選択されたモジュールのコンテンツ(書き込み)の中で、非公開コンテンツのみ検索から除外されますので、未公開のモジュールは対象にしないようにして下さい。
</description>
<description xml:lang="en">
It supports integration search for chosen modules.
All articles except secret articles will be searched, so you need to be careful not to include secret module to target.
</description>
<description xml:lang="vi">
Hỗ trợ tìm kiếm tích hợp cho những Module được chọn.
Mọi bài viết đều có thể được tìm kiếm (Trừ những bài đặt bí mật), vì vậy bạn hãy cẩn thận khi chọn những Module bí mật.
</description>
<description xml:lang="es">
Soporta la búsqueda integrada de los módulos elegidos.
Todo los documentos excepto los secretos serán buscados, y es necesario tener cuidado de no incluir módulo secreto como objetivo.
</description>
<description xml:lang="ru">
Поддерживает интеграцию поиска в выбранные модули.
Все статьи, за исключением секретных, будут подлежать поиску, поэтому Вам нужно быть осторожным с тем, чтобы не включить модуль секретов в назначение.
</description>
<description xml:lang="zh-TW">
將所選擇的模組當作搜尋對象進行搜尋。
所搜尋的模組中,如有私密文章時將不會被搜尋,因此請注意選擇。
</description>
<version>0.1</version>
<date>2007-07-24</date>
<category>service</category>
<author email_address="developers@xpressengine.com" link="http://xpressengine.com/">
<name xml:lang="ko">NHN</name>
<name xml:lang="vi">NHN</name>
<name xml:lang="zh-CN">NHN</name>
<name xml:lang="jp">NHN</name>
<name xml:lang="en">NHN</name>
<name xml:lang="es">NHN</name>
<name xml:lang="ru">NHN</name>
<name xml:lang="zh-TW">NHN</name>
</author>
</module>

View file

@ -1,115 +1,115 @@
<?php
/**
* @class integration_searchAdminController
* @author zero (zero@nzeo.com)
* @brief integration_search module의 admin view class
*
* 통합검색 관리
*
**/
class integration_searchAdminController extends integration_search {
/**
* @brief 초기화
**/
function init() {}
/**
* @brief 설정 저장
**/
function procIntegration_searchAdminInsertConfig() {
// 설정 정보를 받아옴 (module model 객체를 이용)
$oModuleModel = &getModel('module');
$config = $oModuleModel->getModuleConfig('integration_search');
$args->skin = Context::get('skin');
$args->target = Context::get('target');
$args->target_module_srl = Context::get('target_module_srl');
if(!$args->target_module_srl) $args->target_module_srl = '';
$args->skin_vars = $config->skin_vars;
$oModuleController = &getController('module');
return $oModuleController->insertModuleConfig('integration_search',$args);
}
/**
* @brief 스킨 정보 저장
**/
function procIntegration_searchAdminInsertSkin() {
// 설정 정보를 받아옴 (module model 객체를 이용)
$oModuleModel = &getModel('module');
$config = $oModuleModel->getModuleConfig('integration_search');
$args->skin = $config->skin;
$args->target_module_srl = $config->target_module_srl;
// 스킨의 정보를 구해옴 (extra_vars를 체크하기 위해서)
$skin_info = $oModuleModel->loadSkinInfo($this->module_path, $config->skin);
// 입력받은 변수들을 체크 (mo, act, module_srl, page등 기본적인 변수들 없앰)
$obj = Context::getRequestVars();
unset($obj->act);
unset($obj->module_srl);
unset($obj->page);
// 원 skin_info에서 extra_vars의 type이 image일 경우 별도 처리를 해줌
if($skin_info->extra_vars) {
foreach($skin_info->extra_vars as $vars) {
if($vars->type!='image') continue;
$image_obj = $obj->{$vars->name};
// 삭제 요청에 대한 변수를 구함
$del_var = $obj->{"del_".$vars->name};
unset($obj->{"del_".$vars->name});
if($del_var == 'Y') {
FileHandler::removeFile($module_info->{$vars->name});
continue;
}
// 업로드 되지 않았다면 이전 데이터를 그대로 사용
if(!$image_obj['tmp_name']) {
$obj->{$vars->name} = $module_info->{$vars->name};
continue;
}
// 정상적으로 업로드된 파일이 아니면 무시
if(!is_uploaded_file($image_obj['tmp_name'])) {
unset($obj->{$vars->name});
continue;
}
// 이미지 파일이 아니어도 무시
if(!preg_match("/\.(jpg|jpeg|gif|png)$/i", $image_obj['name'])) {
unset($obj->{$vars->name});
continue;
}
// 경로를 정해서 업로드
$path = sprintf("./files/attach/images/%s/", $module_srl);
// 디렉토리 생성
if(!FileHandler::makeDir($path)) return false;
$filename = $path.$image_obj['name'];
// 파일 이동
if(!move_uploaded_file($image_obj['tmp_name'], $filename)) {
unset($obj->{$vars->name});
continue;
}
// 변수를 바꿈
unset($obj->{$vars->name});
$obj->{$vars->name} = $filename;
}
}
// serialize하여 저장
$args->skin_vars = serialize($obj);
$oModuleController = &getController('module');
return $oModuleController->insertModuleConfig('integration_search',$args);
}
}
?>
<?php
/**
* @class integration_searchAdminController
* @author NHN (developers@xpressengine.com)
* @brief integration_search module의 admin view class
*
* 통합검색 관리
*
**/
class integration_searchAdminController extends integration_search {
/**
* @brief 초기화
**/
function init() {}
/**
* @brief 설정 저장
**/
function procIntegration_searchAdminInsertConfig() {
// 설정 정보를 받아옴 (module model 객체를 이용)
$oModuleModel = &getModel('module');
$config = $oModuleModel->getModuleConfig('integration_search');
$args->skin = Context::get('skin');
$args->target = Context::get('target');
$args->target_module_srl = Context::get('target_module_srl');
if(!$args->target_module_srl) $args->target_module_srl = '';
$args->skin_vars = $config->skin_vars;
$oModuleController = &getController('module');
return $oModuleController->insertModuleConfig('integration_search',$args);
}
/**
* @brief 스킨 정보 저장
**/
function procIntegration_searchAdminInsertSkin() {
// 설정 정보를 받아옴 (module model 객체를 이용)
$oModuleModel = &getModel('module');
$config = $oModuleModel->getModuleConfig('integration_search');
$args->skin = $config->skin;
$args->target_module_srl = $config->target_module_srl;
// 스킨의 정보를 구해옴 (extra_vars를 체크하기 위해서)
$skin_info = $oModuleModel->loadSkinInfo($this->module_path, $config->skin);
// 입력받은 변수들을 체크 (mo, act, module_srl, page등 기본적인 변수들 없앰)
$obj = Context::getRequestVars();
unset($obj->act);
unset($obj->module_srl);
unset($obj->page);
// 원 skin_info에서 extra_vars의 type이 image일 경우 별도 처리를 해줌
if($skin_info->extra_vars) {
foreach($skin_info->extra_vars as $vars) {
if($vars->type!='image') continue;
$image_obj = $obj->{$vars->name};
// 삭제 요청에 대한 변수를 구함
$del_var = $obj->{"del_".$vars->name};
unset($obj->{"del_".$vars->name});
if($del_var == 'Y') {
FileHandler::removeFile($module_info->{$vars->name});
continue;
}
// 업로드 되지 않았다면 이전 데이터를 그대로 사용
if(!$image_obj['tmp_name']) {
$obj->{$vars->name} = $module_info->{$vars->name};
continue;
}
// 정상적으로 업로드된 파일이 아니면 무시
if(!is_uploaded_file($image_obj['tmp_name'])) {
unset($obj->{$vars->name});
continue;
}
// 이미지 파일이 아니어도 무시
if(!preg_match("/\.(jpg|jpeg|gif|png)$/i", $image_obj['name'])) {
unset($obj->{$vars->name});
continue;
}
// 경로를 정해서 업로드
$path = sprintf("./files/attach/images/%s/", $module_srl);
// 디렉토리 생성
if(!FileHandler::makeDir($path)) return false;
$filename = $path.$image_obj['name'];
// 파일 이동
if(!move_uploaded_file($image_obj['tmp_name'], $filename)) {
unset($obj->{$vars->name});
continue;
}
// 변수를 바꿈
unset($obj->{$vars->name});
$obj->{$vars->name} = $filename;
}
}
// serialize하여 저장
$args->skin_vars = serialize($obj);
$oModuleController = &getController('module');
return $oModuleController->insertModuleConfig('integration_search',$args);
}
}
?>

View file

@ -1,84 +1,84 @@
<?php
/**
* @class integration_searchAdminView
* @author zero (zero@nzeo.com)
* @brief integration_search module의 admin view class
*
* 통합검색 관리
*
**/
class integration_searchAdminView extends integration_search {
var $config = null;
/**
* @brief 초기화
**/
function init() {
// 설정 정보를 받아옴 (module model 객체를 이용)
$oModuleModel = &getModel('module');
$this->config = $oModuleModel->getModuleConfig('integration_search');
Context::set('config',$this->config);
$this->setTemplatePath($this->module_path."/tpl/");
}
/**
* @brief 모듈 선정 스킨 설정
**/
function dispIntegration_searchAdminContent() {
// 스킨 목록을 구해옴
$oModuleModel = &getModel('module');
$skin_list = $oModuleModel->getSkins($this->module_path);
Context::set('skin_list',$skin_list);
// 모듈 카테고리 목록을 구함
$module_categories = $oModuleModel->getModuleCategories();
// 생성된 mid목록을 구함
$obj->site_srl = 0;
$mid_list = $oModuleModel->getMidList($obj);
// module_category와 module의 조합
if($module_categories) {
foreach($mid_list as $module_srl => $module) {
$module_categories[$module->module_category_srl]->list[$module_srl] = $module;
}
} else {
$module_categories[0]->list = $mid_list;
}
Context::set('mid_list',$module_categories);
// 샘플코드
Context::set('sample_code', htmlspecialchars('<form action="{getUrl()}" method="get"><input type="hidden" name="vid" value="{$vid}" /><input type="hidden" name="mid" value="{$mid}" /><input type="hidden" name="act" value="IS" /><input type="text" name="is_keyword" class="inputTypeText" value="{$is_keyword}" /><span class="button"><input type="submit" value="{$lang->cmd_search}" /></span></form>') );
$this->setTemplateFile("index");
}
/**
* @brief 스킨 설정
**/
function dispIntegration_searchAdminSkinInfo() {
$oModuleModel = &getModel('module');
$skin_info = $oModuleModel->loadSkinInfo($this->module_path, $this->config->skin);
$skin_vars = unserialize($this->config->skin_vars);
// skin_info에 extra_vars 값을 지정
if(count($skin_info->extra_vars)) {
foreach($skin_info->extra_vars as $key => $val) {
$name = $val->name;
$type = $val->type;
$value = $skin_vars->{$name};
if($type=="checkbox"&&!$value) $value = array();
$skin_info->extra_vars[$key]->value= $value;
}
}
Context::set('skin_info', $skin_info);
Context::set('skin_vars', $skin_vars);
$this->setTemplateFile("skin_info");
}
}
?>
<?php
/**
* @class integration_searchAdminView
* @author NHN (developers@xpressengine.com)
* @brief integration_search module의 admin view class
*
* 통합검색 관리
*
**/
class integration_searchAdminView extends integration_search {
var $config = null;
/**
* @brief 초기화
**/
function init() {
// 설정 정보를 받아옴 (module model 객체를 이용)
$oModuleModel = &getModel('module');
$this->config = $oModuleModel->getModuleConfig('integration_search');
Context::set('config',$this->config);
$this->setTemplatePath($this->module_path."/tpl/");
}
/**
* @brief 모듈 선정 스킨 설정
**/
function dispIntegration_searchAdminContent() {
// 스킨 목록을 구해옴
$oModuleModel = &getModel('module');
$skin_list = $oModuleModel->getSkins($this->module_path);
Context::set('skin_list',$skin_list);
// 모듈 카테고리 목록을 구함
$module_categories = $oModuleModel->getModuleCategories();
// 생성된 mid목록을 구함
$obj->site_srl = 0;
$mid_list = $oModuleModel->getMidList($obj);
// module_category와 module의 조합
if($module_categories) {
foreach($mid_list as $module_srl => $module) {
$module_categories[$module->module_category_srl]->list[$module_srl] = $module;
}
} else {
$module_categories[0]->list = $mid_list;
}
Context::set('mid_list',$module_categories);
// 샘플코드
Context::set('sample_code', htmlspecialchars('<form action="{getUrl()}" method="get"><input type="hidden" name="vid" value="{$vid}" /><input type="hidden" name="mid" value="{$mid}" /><input type="hidden" name="act" value="IS" /><input type="text" name="is_keyword" class="inputTypeText" value="{$is_keyword}" /><span class="button"><input type="submit" value="{$lang->cmd_search}" /></span></form>') );
$this->setTemplateFile("index");
}
/**
* @brief 스킨 설정
**/
function dispIntegration_searchAdminSkinInfo() {
$oModuleModel = &getModel('module');
$skin_info = $oModuleModel->loadSkinInfo($this->module_path, $this->config->skin);
$skin_vars = unserialize($this->config->skin_vars);
// skin_info에 extra_vars 값을 지정
if(count($skin_info->extra_vars)) {
foreach($skin_info->extra_vars as $key => $val) {
$name = $val->name;
$type = $val->type;
$value = $skin_vars->{$name};
if($type=="checkbox"&&!$value) $value = array();
$skin_info->extra_vars[$key]->value= $value;
}
}
Context::set('skin_info', $skin_info);
Context::set('skin_vars', $skin_vars);
$this->setTemplateFile("skin_info");
}
}
?>

View file

@ -1,41 +1,41 @@
<?php
/**
* @class integration_search
* @author zero (zero@nzeo.com)
* @brief integration_search module의 view class
**/
class integration_search extends ModuleObject {
/**
* @brief 설치시 추가 작업이 필요할시 구현
**/
function moduleInstall() {
// action forward에 등록
$oModuleController = &getController('module');
$oModuleController->insertActionForward('integration_search', 'view', 'IS');
return new Object();
}
/**
* @brief 설치가 이상이 없는지 체크하는 method
**/
function checkUpdate() {
return false;
}
/**
* @brief 업데이트 실행
**/
function moduleUpdate() {
return new Object(0, 'success_updated');
}
/**
* @brief 캐시 파일 재생성
**/
function recompileCache() {
}
}
?>
<?php
/**
* @class integration_search
* @author NHN (developers@xpressengine.com)
* @brief integration_search module의 view class
**/
class integration_search extends ModuleObject {
/**
* @brief 설치시 추가 작업이 필요할시 구현
**/
function moduleInstall() {
// action forward에 등록
$oModuleController = &getController('module');
$oModuleController->insertActionForward('integration_search', 'view', 'IS');
return new Object();
}
/**
* @brief 설치가 이상이 없는지 체크하는 method
**/
function checkUpdate() {
return false;
}
/**
* @brief 업데이트 실행
**/
function moduleUpdate() {
return new Object(0, 'success_updated');
}
/**
* @brief 캐시 파일 재생성
**/
function recompileCache() {
}
}
?>

View file

@ -1,186 +1,186 @@
<?php
/**
* @class integrationModel
* @author zero (zero@nzeo.com)
* @brief integration 모듈의 Model class
**/
class integration_searchModel extends module {
/**
* @brief 초기화
**/
function init() {
}
/**
* @brief 게시글 검색
**/
function getDocuments($target, $module_srls_list, $search_target, $search_keyword, $page=1, $list_count = 20) {
if(is_array($module_srls_list)) $module_srls = implode(',',$module_srls_list);
else $module_srls = $module_srls_list;
if($target == 'exclude') $args->exclude_module_srl = $module_srls;
else $args->module_srl = $module_srls;
$args->page = $page;
$args->list_count = $list_count;
$args->page_count = 10;
$args->search_target = $search_target;
$args->search_keyword = $search_keyword;
$args->sort_index = 'list_order';
$args->order_type = 'asc';
if(!$args->module_srl) unset($args->module_srl);
// 대상 문서들을 가져옴
$oDocumentModel = &getModel('document');
return $oDocumentModel->getDocumentList($args);
}
/**
* @brief 댓글 검색
**/
function getComments($target, $module_srls_list, $search_keyword, $page=1, $list_count = 20) {
if(is_array($module_srls_list)) $module_srls = implode(',',$module_srls_list);
else $module_srls = $module_srls_list;
if($target == 'exclude') $args->exclude_module_srl = $module_srls;
else $args->module_srl = $module_srls;
$args->page = $page;
$args->list_count = $list_count;
$args->page_count = 10;
$args->search_target = 'content';
$args->search_keyword = $search_keyword;
$args->sort_index = 'list_order';
$args->order_type = 'asc';
// 대상 문서들을 가져옴
$oCommentModel = &getModel('comment');
$output = $oCommentModel->getTotalCommentList($args);
if(!$output->toBool()|| !$output->data) return $output;
return $output;
}
/**
* @brief 엮인글 검색
**/
function getTrackbacks($target, $module_srls_list, $search_target = "title", $search_keyword, $page=1, $list_count = 20) {
if(is_array($module_srls_list)) $module_srls = implode(',',$module_srls_list);
else $module_srls = $module_srls_list;
if($target == 'exclude') $args->exclude_module_srl = $module_srls;
else $args->module_srl = $module_srls;
$args->page = $page;
$args->list_count = $list_count;
$args->page_count = 10;
$args->search_target = $search_target;
$args->search_keyword = $search_keyword;
$args->sort_index = 'list_order';
$args->order_type = 'asc';
// 대상 문서들을 가져옴
$oTrackbackModel = &getAdminModel('trackback');
$output = $oTrackbackModel->getTotalTrackbackList($args);
if(!$output->toBool()|| !$output->data) return $output;
return $output;
}
/**
* @brief 파일 검색
**/
function _getFiles($target, $module_srls_list, $search_keyword, $page, $list_count, $direct_download = 'Y') {
if(is_array($module_srls_list)) $module_srls = implode(',',$module_srls_list);
else $module_srls = $module_srls_list;
if($target == 'exclude') $args->exclude_module_srl = $module_srls;
else $args->module_srl = $module_srls;
$args->page = $page;
$args->list_count = $list_count;
$args->page_count = 10;
$args->search_target = 'filename';
$args->search_keyword = $search_keyword;
$args->sort_index = 'files.file_srl';
$args->order_type = 'desc';
$args->isvalid = 'Y';
$args->direct_download = $direct_download=='Y'?'Y':'N';
// 대상 문서들을 가져옴
$oFileAdminModel = &getAdminModel('file');
$output = $oFileAdminModel->getFileList($args);
if(!$output->toBool() || !$output->data) return $output;
$list = array();
foreach($output->data as $key => $val) {
$obj = null;
$obj->filename = $val->source_filename;
$obj->download_count = $val->download_count;
if(substr($val->download_url,0,2)=='./') $val->download_url = substr($val->download_url,2);
$obj->download_url = Context::getRequestUri().$val->download_url;
$obj->target_srl = $val->upload_target_srl;
$obj->file_size = $val->file_size;
// 이미지
if(preg_match('/\.(jpg|jpeg|gif|png)$/i', $val->source_filename)) {
$obj->type = 'image';
$thumbnail_path = sprintf('files/cache/thumbnails/%s',getNumberingPath($val->file_srl, 3));
if(!is_dir($thumbnail_path)) FileHandler::makeDir($thumbnail_path);
$thumbnail_file = sprintf('%s%dx%d.%s.jpg', $thumbnail_path, 120, 120, 'crop');
$thumbnail_url = Context::getRequestUri().$thumbnail_file;
if(!file_exists($thumbnail_file)) FileHandler::createImageFile($val->uploaded_filename, $thumbnail_file, 120, 120, 'jpg', 'crop');
$obj->src = sprintf('<img src="%s" alt="%s" width="%d" height="%d" />', $thumbnail_url, htmlspecialchars($obj->filename), 120, 120);
// 동영상
} elseif(preg_match('/\.(swf|flv|wmv|avi|mpg|mpeg|asx|asf|mp3)$/i', $val->source_filename)) {
$obj->type = 'multimedia';
$obj->src = sprintf('<script type="text/javascript">displayMultimedia("%s",120,120);</script>', $obj->download_url);
// 기타
} else {
$obj->type = 'binary';
$obj->src = '';
}
$list[] = $obj;
$target_list[] = $val->upload_target_srl;
}
$output->data = $list;
$oDocumentModel = &getModel('document');
$document_list = $oDocumentModel->getDocuments($target_list);
if($document_list) foreach($document_list as $key => $val) {
foreach($output->data as $k => $v) {
if($v->target_srl== $val->document_srl) {
$output->data[$k]->url = $val->getPermanentUrl();
$output->data[$k]->regdate = $val->getRegdate("Y-m-d H:i");
$output->data[$k]->nick_name = $val->getNickName();
}
}
}
$oCommentModel = &getModel('comment');
$comment_list = $oCommentModel->getComments($target_list);
if($comment_list) foreach($comment_list as $key => $val) {
foreach($output->data as $k => $v) {
if($v->target_srl== $val->comment_srl) {
$output->data[$k]->url = $val->getPermanentUrl();
$output->data[$k]->regdate = $val->getRegdate("Y-m-d H:i");
$output->data[$k]->nick_name = $val->getNickName();
}
}
}
return $output;
}
/**
* @brief 멀티미디어 검색
**/
function getImages($target, $module_srls_list, $search_keyword, $page=1, $list_count = 20) {
return $this->_getFiles($target, $module_srls_list, $search_keyword, $page, $list_count);
}
/**
* @brief 첨부파일 검색
**/
function getFiles($target, $module_srls_list, $search_keyword, $page=1, $list_count = 20) {
return $this->_getFiles($target, $module_srls_list, $search_keyword, $page, $list_count, 'N');
}
}
?>
<?php
/**
* @class integrationModel
* @author NHN (developers@xpressengine.com)
* @brief integration 모듈의 Model class
**/
class integration_searchModel extends module {
/**
* @brief 초기화
**/
function init() {
}
/**
* @brief 게시글 검색
**/
function getDocuments($target, $module_srls_list, $search_target, $search_keyword, $page=1, $list_count = 20) {
if(is_array($module_srls_list)) $module_srls = implode(',',$module_srls_list);
else $module_srls = $module_srls_list;
if($target == 'exclude') $args->exclude_module_srl = $module_srls;
else $args->module_srl = $module_srls;
$args->page = $page;
$args->list_count = $list_count;
$args->page_count = 10;
$args->search_target = $search_target;
$args->search_keyword = $search_keyword;
$args->sort_index = 'list_order';
$args->order_type = 'asc';
if(!$args->module_srl) unset($args->module_srl);
// 대상 문서들을 가져옴
$oDocumentModel = &getModel('document');
return $oDocumentModel->getDocumentList($args);
}
/**
* @brief 댓글 검색
**/
function getComments($target, $module_srls_list, $search_keyword, $page=1, $list_count = 20) {
if(is_array($module_srls_list)) $module_srls = implode(',',$module_srls_list);
else $module_srls = $module_srls_list;
if($target == 'exclude') $args->exclude_module_srl = $module_srls;
else $args->module_srl = $module_srls;
$args->page = $page;
$args->list_count = $list_count;
$args->page_count = 10;
$args->search_target = 'content';
$args->search_keyword = $search_keyword;
$args->sort_index = 'list_order';
$args->order_type = 'asc';
// 대상 문서들을 가져옴
$oCommentModel = &getModel('comment');
$output = $oCommentModel->getTotalCommentList($args);
if(!$output->toBool()|| !$output->data) return $output;
return $output;
}
/**
* @brief 엮인글 검색
**/
function getTrackbacks($target, $module_srls_list, $search_target = "title", $search_keyword, $page=1, $list_count = 20) {
if(is_array($module_srls_list)) $module_srls = implode(',',$module_srls_list);
else $module_srls = $module_srls_list;
if($target == 'exclude') $args->exclude_module_srl = $module_srls;
else $args->module_srl = $module_srls;
$args->page = $page;
$args->list_count = $list_count;
$args->page_count = 10;
$args->search_target = $search_target;
$args->search_keyword = $search_keyword;
$args->sort_index = 'list_order';
$args->order_type = 'asc';
// 대상 문서들을 가져옴
$oTrackbackModel = &getAdminModel('trackback');
$output = $oTrackbackModel->getTotalTrackbackList($args);
if(!$output->toBool()|| !$output->data) return $output;
return $output;
}
/**
* @brief 파일 검색
**/
function _getFiles($target, $module_srls_list, $search_keyword, $page, $list_count, $direct_download = 'Y') {
if(is_array($module_srls_list)) $module_srls = implode(',',$module_srls_list);
else $module_srls = $module_srls_list;
if($target == 'exclude') $args->exclude_module_srl = $module_srls;
else $args->module_srl = $module_srls;
$args->page = $page;
$args->list_count = $list_count;
$args->page_count = 10;
$args->search_target = 'filename';
$args->search_keyword = $search_keyword;
$args->sort_index = 'files.file_srl';
$args->order_type = 'desc';
$args->isvalid = 'Y';
$args->direct_download = $direct_download=='Y'?'Y':'N';
// 대상 문서들을 가져옴
$oFileAdminModel = &getAdminModel('file');
$output = $oFileAdminModel->getFileList($args);
if(!$output->toBool() || !$output->data) return $output;
$list = array();
foreach($output->data as $key => $val) {
$obj = null;
$obj->filename = $val->source_filename;
$obj->download_count = $val->download_count;
if(substr($val->download_url,0,2)=='./') $val->download_url = substr($val->download_url,2);
$obj->download_url = Context::getRequestUri().$val->download_url;
$obj->target_srl = $val->upload_target_srl;
$obj->file_size = $val->file_size;
// 이미지
if(preg_match('/\.(jpg|jpeg|gif|png)$/i', $val->source_filename)) {
$obj->type = 'image';
$thumbnail_path = sprintf('files/cache/thumbnails/%s',getNumberingPath($val->file_srl, 3));
if(!is_dir($thumbnail_path)) FileHandler::makeDir($thumbnail_path);
$thumbnail_file = sprintf('%s%dx%d.%s.jpg', $thumbnail_path, 120, 120, 'crop');
$thumbnail_url = Context::getRequestUri().$thumbnail_file;
if(!file_exists($thumbnail_file)) FileHandler::createImageFile($val->uploaded_filename, $thumbnail_file, 120, 120, 'jpg', 'crop');
$obj->src = sprintf('<img src="%s" alt="%s" width="%d" height="%d" />', $thumbnail_url, htmlspecialchars($obj->filename), 120, 120);
// 동영상
} elseif(preg_match('/\.(swf|flv|wmv|avi|mpg|mpeg|asx|asf|mp3)$/i', $val->source_filename)) {
$obj->type = 'multimedia';
$obj->src = sprintf('<script type="text/javascript">displayMultimedia("%s",120,120);</script>', $obj->download_url);
// 기타
} else {
$obj->type = 'binary';
$obj->src = '';
}
$list[] = $obj;
$target_list[] = $val->upload_target_srl;
}
$output->data = $list;
$oDocumentModel = &getModel('document');
$document_list = $oDocumentModel->getDocuments($target_list);
if($document_list) foreach($document_list as $key => $val) {
foreach($output->data as $k => $v) {
if($v->target_srl== $val->document_srl) {
$output->data[$k]->url = $val->getPermanentUrl();
$output->data[$k]->regdate = $val->getRegdate("Y-m-d H:i");
$output->data[$k]->nick_name = $val->getNickName();
}
}
}
$oCommentModel = &getModel('comment');
$comment_list = $oCommentModel->getComments($target_list);
if($comment_list) foreach($comment_list as $key => $val) {
foreach($output->data as $k => $v) {
if($v->target_srl== $val->comment_srl) {
$output->data[$k]->url = $val->getPermanentUrl();
$output->data[$k]->regdate = $val->getRegdate("Y-m-d H:i");
$output->data[$k]->nick_name = $val->getNickName();
}
}
}
return $output;
}
/**
* @brief 멀티미디어 검색
**/
function getImages($target, $module_srls_list, $search_keyword, $page=1, $list_count = 20) {
return $this->_getFiles($target, $module_srls_list, $search_keyword, $page, $list_count);
}
/**
* @brief 첨부파일 검색
**/
function getFiles($target, $module_srls_list, $search_keyword, $page=1, $list_count = 20) {
return $this->_getFiles($target, $module_srls_list, $search_keyword, $page, $list_count, 'N');
}
}
?>

View file

@ -1,103 +1,103 @@
<?php
/**
* @class integration_searchView
* @author zero (zero@nzeo.com)
* @brief integration_search module의 view class
*
* 통합검색 출력
*
**/
class integration_searchView extends integration_search {
var $target_mid = array();
var $skin = 'default';
/**
* @brief 초기화
**/
function init() {
}
/**
* @brief 통합 검색 출력
**/
function IS() {
$oFile = &getClass('file');
$oModuleModel = &getModel('module');
// 권한 체크
if(!$this->grant->access) return new Object(-1,'msg_not_permitted');
$config = $oModuleModel->getModuleConfig('integration_search');
if(!$config->skin) $config->skin = 'default';
Context::set('module_info', unserialize($config->skin_vars));
$this->setTemplatePath($this->module_path."/skins/".$config->skin."/");
$target = $config->target;
if(!$target) $target = 'include';
$module_srl_list = explode(',',$config->target_module_srl);
// 검색어 변수 설정
$is_keyword = Context::get('is_keyword');
// 페이지 변수 설정
$page = (int)Context::get('page');
if(!$page) $page = 1;
// 검색탭에 따른 검색
$where = Context::get('where');
// integration search model객체 생성
if($is_keyword) {
$oIS = &getModel('integration_search');
switch($where) {
case 'document' :
$search_target = Context::get('search_target');
if(!in_array($search_target, array('title','content','title_content','tag'))) $search_target = 'title';
Context::set('search_target', $search_target);
$output = $oIS->getDocuments($target, $module_srl_list, $search_target, $is_keyword, $page, 10);
Context::set('output', $output);
$this->setTemplateFile("document", $page);
break;
case 'comment' :
$output = $oIS->getComments($target, $module_srl_list, $is_keyword, $page, 10);
Context::set('output', $output);
$this->setTemplateFile("comment", $page);
break;
case 'trackback' :
$search_target = Context::get('search_target');
if(!in_array($search_target, array('title','url','blog_name','excerpt'))) $search_target = 'title';
Context::set('search_target', $search_target);
$output = $oIS->getTrackbacks($target, $module_srl_list, $search_target, $is_keyword, $page, 10);
Context::set('output', $output);
$this->setTemplateFile("trackback", $page);
break;
case 'multimedia' :
$output = $oIS->getImages($target, $module_srl_list, $is_keyword, $page,20);
Context::set('output', $output);
$this->setTemplateFile("multimedia", $page);
break;
case 'file' :
$output = $oIS->getFiles($target, $module_srl_list, $is_keyword, $page, 20);
Context::set('output', $output);
$this->setTemplateFile("file", $page);
break;
default :
$output['document'] = $oIS->getDocuments($target, $module_srl_list, 'title', $is_keyword, $page, 5);
$output['comment'] = $oIS->getComments($target, $module_srl_list, $is_keyword, $page, 5);
$output['trackback'] = $oIS->getTrackbacks($target, $module_srl_list, 'title', $is_keyword, $page, 5);
$output['multimedia'] = $oIS->getImages($target, $module_srl_list, $is_keyword, $page, 5);
$output['file'] = $oIS->getFiles($target, $module_srl_list, $is_keyword, $page, 5);
Context::set('search_result', $output);
$this->setTemplateFile("index", $page);
break;
}
} else {
$this->setTemplateFile("no_keywords");
}
}
}
?>
<?php
/**
* @class integration_searchView
* @author NHN (developers@xpressengine.com)
* @brief integration_search module의 view class
*
* 통합검색 출력
*
**/
class integration_searchView extends integration_search {
var $target_mid = array();
var $skin = 'default';
/**
* @brief 초기화
**/
function init() {
}
/**
* @brief 통합 검색 출력
**/
function IS() {
$oFile = &getClass('file');
$oModuleModel = &getModel('module');
// 권한 체크
if(!$this->grant->access) return new Object(-1,'msg_not_permitted');
$config = $oModuleModel->getModuleConfig('integration_search');
if(!$config->skin) $config->skin = 'default';
Context::set('module_info', unserialize($config->skin_vars));
$this->setTemplatePath($this->module_path."/skins/".$config->skin."/");
$target = $config->target;
if(!$target) $target = 'include';
$module_srl_list = explode(',',$config->target_module_srl);
// 검색어 변수 설정
$is_keyword = Context::get('is_keyword');
// 페이지 변수 설정
$page = (int)Context::get('page');
if(!$page) $page = 1;
// 검색탭에 따른 검색
$where = Context::get('where');
// integration search model객체 생성
if($is_keyword) {
$oIS = &getModel('integration_search');
switch($where) {
case 'document' :
$search_target = Context::get('search_target');
if(!in_array($search_target, array('title','content','title_content','tag'))) $search_target = 'title';
Context::set('search_target', $search_target);
$output = $oIS->getDocuments($target, $module_srl_list, $search_target, $is_keyword, $page, 10);
Context::set('output', $output);
$this->setTemplateFile("document", $page);
break;
case 'comment' :
$output = $oIS->getComments($target, $module_srl_list, $is_keyword, $page, 10);
Context::set('output', $output);
$this->setTemplateFile("comment", $page);
break;
case 'trackback' :
$search_target = Context::get('search_target');
if(!in_array($search_target, array('title','url','blog_name','excerpt'))) $search_target = 'title';
Context::set('search_target', $search_target);
$output = $oIS->getTrackbacks($target, $module_srl_list, $search_target, $is_keyword, $page, 10);
Context::set('output', $output);
$this->setTemplateFile("trackback", $page);
break;
case 'multimedia' :
$output = $oIS->getImages($target, $module_srl_list, $is_keyword, $page,20);
Context::set('output', $output);
$this->setTemplateFile("multimedia", $page);
break;
case 'file' :
$output = $oIS->getFiles($target, $module_srl_list, $is_keyword, $page, 20);
Context::set('output', $output);
$this->setTemplateFile("file", $page);
break;
default :
$output['document'] = $oIS->getDocuments($target, $module_srl_list, 'title', $is_keyword, $page, 5);
$output['comment'] = $oIS->getComments($target, $module_srl_list, $is_keyword, $page, 5);
$output['trackback'] = $oIS->getTrackbacks($target, $module_srl_list, 'title', $is_keyword, $page, 5);
$output['multimedia'] = $oIS->getImages($target, $module_srl_list, $is_keyword, $page, 5);
$output['file'] = $oIS->getFiles($target, $module_srl_list, $is_keyword, $page, 5);
Context::set('search_result', $output);
$this->setTemplateFile("index", $page);
break;
}
} else {
$this->setTemplateFile("no_keywords");
}
}
}
?>

View file

@ -1,7 +1,7 @@
<?php
/**
* @file modules/integration_search/lang/ko.lang.php
* @author zero <zero@nzeo.com>
* @author NHN (developers@xpressengine.com)
* @brief English Language Pack (For only basic things)
**/

View file

@ -1,7 +1,7 @@
<?php
/**
* @archivo modules/integration_search/lang/es.lang.php
* @autor zero <zero@nzeo.com>
* @autor NHN (developers@xpressengine.com)
* @sumario Paquete del idioma español (sólo informaciones básicas).
**/

View file

@ -1,7 +1,7 @@
<?php
/**
* @file modules/integration_search/lang/fr.lang.php
* @author zero <zero@nzeo.com> Traduit par Pierre Duvent <PierreDuvent@gmail.com>
* @author NHN (developers@xpressengine.com) Traduit par Pierre Duvent <PierreDuvent@gmail.com>
* @brief Paquet du langage en français pour le module de Recherche Unie
**/

View file

@ -1,43 +1,43 @@
<?php
/**
* @file modules/integration_search/lang/jp.lang.php
* @author zero <zero@nzeo.com> 翻訳RisaPapa、ミニミ
* @brief 日本語言語パッケージ(基本的な内容のみう)
**/
$lang->integration_search = '統合検索';
$lang->sample_code = 'サンプルコード';
$lang->about_target_module = '選択されたモジュールだけを検索対象とします。各モジュールの権限設定にも注意して下さい。';
$lang->about_sample_code = '上のコードをレイアウトなどに挿入すると統合検索が可能になります。';
$lang->msg_no_keyword = '検索語を入力して下さい。';
$lang->msg_document_more_search = '継続サーチボタンを選択すると、まだ検索結果として引っかからなかった箇所を引き続き検索を行います。';
$lang->is_result_text = "<strong>'%s'</strong>に対する検索結果<strong>%d</strong>件";
$lang->multimedia = '画像/動画';
$lang->include_search_target = '選択された対象のみ';
$lang->exclude_search_target = '選択した対象を検索から除外';
$lang->is_search_option = array(
'document' => array(
'title_content' => 'タイトル+内容',
'title' => 'タイトル',
'content' => '内容',
'tag' => 'タグ',
),
'trackback' => array(
'url' => '対象URL',
'blog_name' => '対象サイト(ブログ)名',
'title' => 'タイトル',
'excerpt' => '内容',
),
);
$lang->is_sort_option = array(
'regdate' => '登録日',
'comment_count' => 'コメント数',
'readed_count' => '閲覧数',
'voted_count' => '推薦数',
);
?>
<?php
/**
* @file modules/integration_search/lang/jp.lang.php
* @author NHN (developers@xpressengine.com) 翻訳RisaPapa、ミニミ
* @brief 日本語言語パッケージ(基本的な内容のみう)
**/
$lang->integration_search = '統合検索';
$lang->sample_code = 'サンプルコード';
$lang->about_target_module = '選択されたモジュールだけを検索対象とします。各モジュールの権限設定にも注意して下さい。';
$lang->about_sample_code = '上のコードをレイアウトなどに挿入すると統合検索が可能になります。';
$lang->msg_no_keyword = '検索語を入力して下さい。';
$lang->msg_document_more_search = '継続サーチボタンを選択すると、まだ検索結果として引っかからなかった箇所を引き続き検索を行います。';
$lang->is_result_text = "<strong>'%s'</strong>に対する検索結果<strong>%d</strong>件";
$lang->multimedia = '画像/動画';
$lang->include_search_target = '選択された対象のみ';
$lang->exclude_search_target = '選択した対象を検索から除外';
$lang->is_search_option = array(
'document' => array(
'title_content' => 'タイトル+内容',
'title' => 'タイトル',
'content' => '内容',
'tag' => 'タグ',
),
'trackback' => array(
'url' => '対象URL',
'blog_name' => '対象サイト(ブログ)名',
'title' => 'タイトル',
'excerpt' => '内容',
),
);
$lang->is_sort_option = array(
'regdate' => '登録日',
'comment_count' => 'コメント数',
'readed_count' => '閲覧数',
'voted_count' => '推薦数',
);
?>

View file

@ -1,43 +1,43 @@
<?php
/**
* @file modules/integration_search/lang/ko.lang.php
* @author zero <zero@nzeo.com>
* @brief 한국어 언어팩 (기본적인 내용만 수록)
**/
$lang->integration_search = '통합검색';
$lang->sample_code = '샘플코드';
$lang->about_target_module = '선택된 모듈만 검색 대상으로 정합니다. 권한설정에 대한 주의를 바랍니다.';
$lang->about_sample_code = '위 코드를 레이아웃, 스킨 등에 추가하시면 통합검색이 가능합니다.';
$lang->msg_no_keyword = '검색어를 입력해주세요.';
$lang->msg_document_more_search = '\'계속 검색\' 버튼을 선택하시면 아직 검색하지 않은 부분까지 계속 검색 하실 수 있습니다.';
$lang->is_result_text = "<strong>'%s'</strong> 에 대한 검색결과 <strong>%d</strong>건";
$lang->multimedia = '이미지/동영상';
$lang->include_search_target = '선택된 대상만 검색';
$lang->exclude_search_target = '선택된 대상을 검색에서 제외';
$lang->is_search_option = array(
'document' => array(
'title_content' => '제목+내용',
'title' => '제목',
'content' => '내용',
'tag' => '태그',
),
'trackback' => array(
'url' => '대상 URL',
'blog_name' => '대상 사이트 이름',
'title' => '제목',
'excerpt' => '내용',
),
);
$lang->is_sort_option = array(
'regdate' => '등록일',
'comment_count' => '댓글 수',
'readed_count' => '조회 수',
'voted_count' => '추천 수',
);
?>
<?php
/**
* @file modules/integration_search/lang/ko.lang.php
* @author NHN (developers@xpressengine.com)
* @brief 한국어 언어팩 (기본적인 내용만 수록)
**/
$lang->integration_search = '통합검색';
$lang->sample_code = '샘플코드';
$lang->about_target_module = '선택된 모듈만 검색 대상으로 정합니다. 권한설정에 대한 주의를 바랍니다.';
$lang->about_sample_code = '위 코드를 레이아웃, 스킨 등에 추가하시면 통합검색이 가능합니다.';
$lang->msg_no_keyword = '검색어를 입력해주세요.';
$lang->msg_document_more_search = '\'계속 검색\' 버튼을 선택하시면 아직 검색하지 않은 부분까지 계속 검색 하실 수 있습니다.';
$lang->is_result_text = "<strong>'%s'</strong> 에 대한 검색결과 <strong>%d</strong>건";
$lang->multimedia = '이미지/동영상';
$lang->include_search_target = '선택된 대상만 검색';
$lang->exclude_search_target = '선택된 대상을 검색에서 제외';
$lang->is_search_option = array(
'document' => array(
'title_content' => '제목+내용',
'title' => '제목',
'content' => '내용',
'tag' => '태그',
),
'trackback' => array(
'url' => '대상 URL',
'blog_name' => '대상 사이트 이름',
'title' => '제목',
'excerpt' => '내용',
),
);
$lang->is_sort_option = array(
'regdate' => '등록일',
'comment_count' => '댓글 수',
'readed_count' => '조회 수',
'voted_count' => '추천 수',
);
?>

View file

@ -1,7 +1,7 @@
<?php
/**
* @file ru.lang.php
* @author zero <zero@nzeo.com> | translation by Maslennikov Evgeny aka X-[Vr]bL1s5 | e-mail: x-bliss[a]tut.by; ICQ: 225035467;
* @author NHN (developers@xpressengine.com) | translation by Maslennikov Evgeny aka X-[Vr]bL1s5 | e-mail: x-bliss[a]tut.by; ICQ: 225035467;
* @brief Russian basic language pack
**/

View file

@ -1,7 +1,7 @@
<?php
/* ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
░░ * @File : common/lang/vi.lang.php ░░
░░ * @Author : zero (zero@nzeo.com) ░░
░░ * @Author : NHN (developers@xpressengine.com) ░░
░░ * @Trans : Đào Đức Duy (ducduy.dao.vn@vietxe.net) ░░
░░ * @Website: http://vietxe.net ░░
░░ * @Brief : Vietnamese Language Pack (Only basic words are included here) ░░

View file

@ -1,43 +1,43 @@
<?php
/**
* @file modules/integration_search/lang/ko.lang.php
* @author zero <zero@nzeo.com> 翻译guny
* @brief 综合搜索简体中文语言包
**/
$lang->integration_search = "综合搜索";
$lang->sample_code = "代码";
$lang->about_target_module = "所选模块作为搜索对象。请注意权限设置。";
$lang->about_sample_code = "可把上述代码插入到相应布局当中即可实现搜索功能。";
$lang->msg_no_keyword = '请输入搜索关键词。';
$lang->msg_document_more_search = '利用\'继续搜索\'按钮可以进一步搜索。';
$lang->is_result_text = "符合<strong>'%s'</strong>的搜索结果约有<strong>%d</strong>项";
$lang->multimedia = "图片/视频";
$lang->include_search_target = '只搜索所选对象';
$lang->exclude_search_target = '所选对象从搜索中排除';
$lang->is_search_option = array(
'document' => array(
'title_content' => '标题+内容',
'title' => '标题',
'content' => '内容',
'tag' => '标签',
),
'trackback' => array(
'url' => '对象URL',
'blog_name' => '对象网站名称',
'title' => '标题',
'excerpt' => '内容',
),
);
$lang->is_sort_option = array(
'regdate' => '日期',
'comment_count' => '评论',
'readed_count' => '查看',
'voted_count' => '推荐',
);
?>
<?php
/**
* @file modules/integration_search/lang/ko.lang.php
* @author NHN (developers@xpressengine.com) 翻译guny
* @brief 综合搜索简体中文语言包
**/
$lang->integration_search = "综合搜索";
$lang->sample_code = "代码";
$lang->about_target_module = "所选模块作为搜索对象。请注意权限设置。";
$lang->about_sample_code = "可把上述代码插入到相应布局当中即可实现搜索功能。";
$lang->msg_no_keyword = '请输入搜索关键词。';
$lang->msg_document_more_search = '利用\'继续搜索\'按钮可以进一步搜索。';
$lang->is_result_text = "符合<strong>'%s'</strong>的搜索结果约有<strong>%d</strong>项";
$lang->multimedia = "图片/视频";
$lang->include_search_target = '只搜索所选对象';
$lang->exclude_search_target = '所选对象从搜索中排除';
$lang->is_search_option = array(
'document' => array(
'title_content' => '标题+内容',
'title' => '标题',
'content' => '内容',
'tag' => '标签',
),
'trackback' => array(
'url' => '对象URL',
'blog_name' => '对象网站名称',
'title' => '标题',
'excerpt' => '内容',
),
);
$lang->is_sort_option = array(
'regdate' => '日期',
'comment_count' => '评论',
'readed_count' => '查看',
'voted_count' => '推荐',
);
?>

View file

@ -1,7 +1,7 @@
<?php
/**
* @file modules/integration_search/lang/zh-TW.lang.php
* @author zero <zero@nzeo.com> 翻譯royallin
* @author NHN (developers@xpressengine.com) 翻譯royallin
* @brief 綜合搜尋(integration_search)模組正體中文語言
**/

View file

@ -1,54 +1,54 @@
<?xml version="1.0" encoding="UTF-8"?>
<skin version="0.2">
<title xml:lang="ko">통합 검색 기본 스킨</title>
<title xml:lang="vi">Skin trang tìm kiếm</title>
<title xml:lang="zh-CN">搜索默认皮肤</title>
<title xml:lang="jp">統合検索のデフォルトスキン</title>
<title xml:lang="en">Default Skin of Integration Search</title>
<title xml:lang="zh-TW">預設綜合搜尋面板</title>
<description xml:lang="vi">Skin mặc định của trang tìm kiếm.</description>
<description xml:lang="ko">통합검색 모듈의 기본 스킨</description>
<description xml:lang="zh-CN">搜索模块的默认皮肤。</description>
<description xml:lang="jp">統合検索モジュールのデフォルトスキンです。</description>
<description xml:lang="en">Default skin of integration search module</description>
<description xml:lang="zh-TW">預設綜合搜尋面板。</description>
<version>0.1</version>
<date>2007-07-24</date>
<author email_address="zero@zeroboard.com" link="http://blog.nzeo.com">
<name xml:lang="ko">zero</name>
<name xml:lang="vi">zero</name>
<name xml:lang="zh-CN">zero</name>
<name xml:lang="jp">zero</name>
<name xml:lang="en">zero</name>
<name xml:lang="zh-TW">zero</name>
</author>
<colorset>
<color name="normal" src="screenshot/normal.gif">
<title xml:lang="ko">기본</title>
<title xml:lang="zh-CN">默认</title>
<title xml:lang="jp">デフォルト</title>
<title xml:lang="en">Default</title>
<title xml:lang="vi">Mặc định</title>
<title xml:lang="zh-TW">預設</title>
</color>
</colorset>
<extra_vars>
<var name="memo" type="textarea">
<title xml:lang="ko">설명</title>
<title xml:lang="zh-CN">说明</title>
<title xml:lang="jp">説明</title>
<title xml:lang="en">Description</title>
<title xml:lang="vi">Mô tả</title>
<title xml:lang="zh-TW">說明</title>
<description xml:lang="ko">검색결과 상단에 결과가 출력됩니다.</description>
<description xml:lang="zh-CN">显示在搜索结果上端。</description>
<description xml:lang="jp">検索結果が上段に表示されます。</description>
<description xml:lang="en">Result will be displayed on top of search result.</description>
<description xml:lang="vi">Mô tả sẽ hiển thị trên đầu trang kết quả tìm kiếm.</description>
<description xml:lang="zh-TW">在最頂端顯示搜尋結果。</description>
</var>
</extra_vars>
</skin>
<?xml version="1.0" encoding="UTF-8"?>
<skin version="0.2">
<title xml:lang="ko">통합 검색 기본 스킨</title>
<title xml:lang="vi">Skin trang tìm kiếm</title>
<title xml:lang="zh-CN">搜索默认皮肤</title>
<title xml:lang="jp">統合検索のデフォルトスキン</title>
<title xml:lang="en">Default Skin of Integration Search</title>
<title xml:lang="zh-TW">預設綜合搜尋面板</title>
<description xml:lang="vi">Skin mặc định của trang tìm kiếm.</description>
<description xml:lang="ko">통합검색 모듈의 기본 스킨</description>
<description xml:lang="zh-CN">搜索模块的默认皮肤。</description>
<description xml:lang="jp">統合検索モジュールのデフォルトスキンです。</description>
<description xml:lang="en">Default skin of integration search module</description>
<description xml:lang="zh-TW">預設綜合搜尋面板。</description>
<version>0.1</version>
<date>2007-07-24</date>
<author email_address="developers@xpressengine.com" link="http://xpressengine.com/">
<name xml:lang="ko">NHN</name>
<name xml:lang="vi">NHN</name>
<name xml:lang="zh-CN">NHN</name>
<name xml:lang="jp">NHN</name>
<name xml:lang="en">NHN</name>
<name xml:lang="zh-TW">NHN</name>
</author>
<colorset>
<color name="normal" src="screenshot/normal.gif">
<title xml:lang="ko">기본</title>
<title xml:lang="zh-CN">默认</title>
<title xml:lang="jp">デフォルト</title>
<title xml:lang="en">Default</title>
<title xml:lang="vi">Mặc định</title>
<title xml:lang="zh-TW">預設</title>
</color>
</colorset>
<extra_vars>
<var name="memo" type="textarea">
<title xml:lang="ko">설명</title>
<title xml:lang="zh-CN">说明</title>
<title xml:lang="jp">説明</title>
<title xml:lang="en">Description</title>
<title xml:lang="vi">Mô tả</title>
<title xml:lang="zh-TW">說明</title>
<description xml:lang="ko">검색결과 상단에 결과가 출력됩니다.</description>
<description xml:lang="zh-CN">显示在搜索结果上端。</description>
<description xml:lang="jp">検索結果が上段に表示されます。</description>
<description xml:lang="en">Result will be displayed on top of search result.</description>
<description xml:lang="vi">Mô tả sẽ hiển thị trên đầu trang kết quả tìm kiếm.</description>
<description xml:lang="zh-TW">在最頂端顯示搜尋結果。</description>
</var>
</extra_vars>
</skin>

View file

@ -1,5 +1,5 @@
/**
* @file modules/board/js/board_admin.js
* @author zero (zero@nzeo.com)
* @brief integration_search 모듈의 관리자용 javascript
**/
/**
* @file modules/board/js/board_admin.js
* @author NHN (developers@xpressengine.com)
* @brief integration_search 모듈의 관리자용 javascript
**/