board api 추가

git-svn-id: http://xe-core.googlecode.com/svn/sandbox@5166 201d5d3c-b55e-5fd7-737f-ddc643e51545
This commit is contained in:
ngleader 2008-12-23 09:06:48 +00:00
parent f788064050
commit c40ea62b34
11 changed files with 175 additions and 31 deletions

View file

@ -0,0 +1,87 @@
<?php
/**
* @class boardAPI
* @author sol(sol@ngleader.com)
* @brief board 모듈의 View Action에 대한 API 처리
**/
class boardAPI extends board {
/* dispBoardContent 사용하지 않는다..
function dispBoardContent(&$oModule) {
}
*/
/**
* @brief 공지사항 목록
**/
function dispBoardNoticeList(&$oModule) {
$oModule->add('notice_list',$this->arrangeContentList(Context::get('notice_list')));
}
/**
* @brief 컨텐츠 목록
**/
function dispBoardContentList(&$oModule) {
$oModule->add('document_list',$this->arrangeContentList(Context::get('document_list')));
$oModule->add('page_navigation',Context::get('page_navigation'));
}
/**
* @brief 카테고리(분류) 목록
**/
function dispBoardCatogoryList(&$oModule) {
$oModule->add('category_list',Context::get('category_list'));
}
/**
* @brief 게시물 보기
**/
function dispBoardContentView(&$oModule) {
$oModule->add('oDocument',$this->arrangeContent(Context::get('oDocument')));
}
/**
* @brief 태그 목록
**/
function dispBoardTagList(&$oModule) {
$oModule->add('tag_list',Context::get('tag_list'));
}
function dispBoardConentCommentList(&$oModule) {
$oModule->add('comment_list',$this->arrangeComment(Context::get('comment_list')));
}
function arrangeContentList($content_list) {
$output = array();
if(count($content_list)) {
foreach($content_list as $key => $val) $output[] = $this->arrangeContent($val);
}
return $output;
}
function arrangeContent($content) {
$output = null;
if($content){
$output= $content->gets('document_srl','category_srl','is_secret','nick_name','user_id','user_name','title','content','tags','voted_count','blamed_count','comment_count','regdate','last_update','extra_vars1','extra_vars2','extra_vars3','extra_vars4','extra_vars5','extra_vars6','extra_vars7','extra_vars8','extra_vars9','extra_vars10','extra_vars11','extra_vars12','extra_vars13','extra_vars14','extra_vars15','extra_vars16','extra_vars17','extra_vars18','extra_vars19','extra_vars20');
}
return $output;
}
function arrangeComment($comment_list) {
$output = array();
if(count($comment_list)) {
foreach($comment_list as $key => $val){
$item = null;
$item = $val->gets('comment_srl','parent_srl','depth','is_secret','content','voted_count','blamed_count','user_id','user_name','nick_name','email_address','homepage','regdate','last_update');
$output[] = $item;
}
}
return $output;
}
}
?>

View file

@ -67,10 +67,8 @@
/**
* 카테고리를 사용하는지 확인후 사용시 카테고리 목록을 구해와서 Context에 세팅
**/
if($this->module_info->use_category=='Y') {
$oDocumentModel = &getModel('document');
Context::set('category_list', $oDocumentModel->getCategoryList($this->module_srl));
}
$this->dispBoardCatogoryList();
/**
* 목록이 노출될때 같이 나오는 검색 옵션을 정리하여 스킨에서 있도록 context set
@ -82,14 +80,34 @@
for($i=1;$i<=20;$i++) {
$ex_name = trim($this->module_info->extra_vars[$i]->name);
if(!$ex_name) continue;
if($this->module_info->extra_vars[$i]->search == 'Y') $search_option['extra_vars'.$i] = $ex_name;
}
Context::set('search_option', $search_option);
/**
* 게시글 목록을 추출함
**/
// 게시글을 가져옴
$this->dispBoardContentView();
// 공지사항 목록을 구해서 context set (공지사항을 매페이지 제일 상단에 위치하기 위해서)
$this->dispBoardNoticeList();
// 목록
$this->dispBoardContentList();
// template_file을 list.html로 지정
$this->setTemplateFile('list');
}
function dispBoardCatogoryList(){
if($this->module_info->use_category=='Y') {
$oDocumentModel = &getModel('document');
Context::set('category_list', $oDocumentModel->getCategoryList($this->module_srl));
}
}
function dispBoardContentView(){
$oDocumentModel = &getModel('document');
$args->module_srl = $this->module_srl; ///< 현재 모듈의 module_srl
// 목록 구현에 필요한 변수들을 가져온다
$document_srl = Context::get('document_srl');
@ -135,9 +153,7 @@
if(!$this->grant->view && !$oDocument->isGranted()) {
$oDocument = null;
$oDocument = $oDocumentModel->getDocument(0);
Context::set('document_srl','',true);
$this->alertMessage('msg_not_permitted');
} else {
// 브라우저 타이틀에 글의 제목을 추가
@ -145,21 +161,49 @@
// 조회수 증가 (비밀글일 경우 권한 체크)
if(!$oDocument->isSecret() || $oDocument->isGranted()) $oDocument->updateReadedCount();
// 비밀글일때 컨텐츠를 보여주지 말자.
if($oDocument->isSecret() && !$oDocument->isGranted()){
$oDocument->add('content',Context::getLang('thisissecret'));
$obj = null;
for($i=1;$i<=20;$i++) $obj->{"extra_vars".$i} = '';
$oDocument->adds($obj);
}
}
}
}
// 스킨에서 사용하기 위해 context set
Context::set('oDocument', $oDocument);
}
// 공지사항 목록을 구해서 context set (공지사항을 매페이지 제일 상단에 위치하기 위해서)
function dispBoardContentCommentList(){
$oDocumentModel = &getModel('document');
$document_srl = Context::get('document_srl');
$oDocument = $oDocumentModel->getDocument($document_srl);
$comment_list = $oDocument->getComments();
// 비밀글일때 컨텐츠를 보여주지 말자.
foreach($comment_list as $key => $val){
if(!$val->isAccessible()){
$val->add('content',Context::getLang('thisissecret'));
}
}
Context::set('comment_list',$comment_list);
}
function dispBoardNoticeList(){
$oDocumentModel = &getModel('document');
$args->module_srl = $this->module_srl; ///< 현재 모듈의 module_srl
$notice_output = $oDocumentModel->getNoticeList($args);
Context::set('notice_list', $notice_output->data);
}
function dispBoardContentList(){
$oDocumentModel = &getModel('document');
$args->module_srl = $this->module_srl; ///< 현재 모듈의 module_srl
// 목록을 구하기 위한 대상 모듈/ 페이지 수/ 목록 수/ 페이지 목록 수에 대한 옵션 설정
$args->page = $page; ///< 페이지
$args->page = Context::get('page');; ///< 페이지
$args->list_count = $this->list_count; ///< 한페이지에 보여줄 글 수
$args->page_count = $this->page_count; ///< 페이지 네비게이션에 나타날 페이지의 수
@ -199,11 +243,9 @@
Context::set('total_page', $output->total_page);
Context::set('page', $output->page);
Context::set('page_navigation', $output->page_navigation);
// template_file을 list.html로 지정
$this->setTemplateFile('list');
}
/**
* @brief 태그 목록 모두 보기
**/

View file

@ -3,43 +3,43 @@
<grants>
<grant name="list" default="guest">
<title xml:lang="ko">목록</title>
<title xml:lang="zh-CN">目录</title>
<title xml:lang="zh-CN">目录</title>
<title xml:lang="jp">リスト</title>
<title xml:lang="en">list</title>
<title xml:lang="es">Lista</title>
<title xml:lang="zh-TW">列表</title>
<title xml:lang="es">Lista</title>
<title xml:lang="zh-TW">列表</title>
</grant>
<grant name="view" default="guest">
<title xml:lang="ko">열람</title>
<title xml:lang="zh-CN">查看</title>
<title xml:lang="zh-CN">查看</title>
<title xml:lang="jp">閲覧</title>
<title xml:lang="en">view</title>
<title xml:lang="es">Opinión</title>
<title xml:lang="zh-TW">檢視</title>
<title xml:lang="es">Opinión</title>
<title xml:lang="zh-TW">檢視</title>
</grant>
<grant name="write_document" default="guest">
<title xml:lang="ko">글 작성</title>
<title xml:lang="zh-CN">发表新主题</title>
<title xml:lang="zh-CN">发表新主题</title>
<title xml:lang="jp">書き込み作成</title>
<title xml:lang="en">write document</title>
<title xml:lang="es">Escribir el documento</title>
<title xml:lang="zh-TW">發表主題</title>
<title xml:lang="es">Escribir el documento</title>
<title xml:lang="zh-TW">發表主題</title>
</grant>
<grant name="write_comment" default="guest">
<title xml:lang="ko">댓글 작성</title>
<title xml:lang="zh-CN">发表评论</title>
<title xml:lang="zh-CN">发表评论</title>
<title xml:lang="jp">コメント作成</title>
<title xml:lang="en">write comment</title>
<title xml:lang="es">Escribir comentario</title>
<title xml:lang="zh-TW">發表評論</title>
<title xml:lang="es">Escribir comentario</title>
<title xml:lang="zh-TW">發表評論</title>
</grant>
<grant name="manager" default="root">
<title xml:lang="ko">관리</title>
<title xml:lang="zh-CN">管理</title>
<title xml:lang="zh-CN">管理</title>
<title xml:lang="jp">管理</title>
<title xml:lang="en">manager</title>
<title xml:lang="es">Administrador</title>
<title xml:lang="zh-TW">管理</title>
<title xml:lang="es">Administrador</title>
<title xml:lang="zh-TW">管理</title>
</grant>
</grants>
<permissions>
@ -81,6 +81,13 @@
</permissions>
<actions>
<action name="dispBoardContent" type="view" index="true" />
<action name="dispBoardNoticeList" type="view" />
<action name="dispBoardContentList" type="view" />
<action name="dispBoardContentView" type="view" />
<action name="dispBoardCatogoryList" type="view" />
<action name="dispBoardContentCommentList" type="view" />
<action name="dispBoardTagList" type="view" />
<action name="dispBoardWrite" type="view" />
<action name="dispBoardDelete" type="view" />

View file

@ -22,6 +22,7 @@
$lang->search_result = 'Search Result';
$lang->consultation = 'Consultation';
$lang->secret = 'Secret';
$lang->thisissecret = '비밀글입니다.';
$lang->admin_mail = "Administrator's Mail";
// words used in button

View file

@ -24,6 +24,7 @@
$lang->search_result = 'Resultado de la búsqueda';
$lang->consultation = '상담 기능';
$lang->secret = '비밀글 기능';
$lang->thisissecret = '비밀글입니다.';
$lang->admin_mail = '관리자 메일';
// Palabras utilizadas en los botones

View file

@ -21,6 +21,7 @@
$lang->search_result = 'Résultat de la Recherche';
$lang->consultation = 'Consultation';
$lang->secret = '비밀글 기능';
$lang->thisissecret = '비밀글입니다.';
$lang->admin_mail = 'Mél de l\'administrateur';
// Mots utilisés en bouton

View file

@ -23,6 +23,7 @@
$lang->search_result = '検索結果';
$lang->consultation = '相談機能';
$lang->secret = '秘密文機能';
$lang->thisissecret = '비밀글입니다.';
$lang->admin_mail = '管理者メールアドレス';

View file

@ -23,6 +23,7 @@
$lang->search_result = '검색결과';
$lang->consultation = '상담 기능';
$lang->secret = '비밀글 기능';
$lang->thisissecret = '비밀글입니다.';
$lang->admin_mail = '관리자 메일';

View file

@ -26,6 +26,7 @@
$lang->search_result = 'Результат поиска';
$lang->consultation = '상담 기능';
$lang->secret = '비밀글 기능';
$lang->thisissecret = '비밀글입니다.';
$lang->admin_mail = '관리자 메일';
// слова, использованные в кнопке

View file

@ -25,6 +25,7 @@
$lang->search_result = '搜索结果';
$lang->consultation = '咨询功能';
$lang->secret = '密帖';
$lang->thisissecret = '비밀글입니다.';
$lang->admin_mail = '管理员电子邮件';
// 按钮语言

View file

@ -22,6 +22,7 @@
$lang->search_result = '搜尋結果';
$lang->consultation = '咨詢功能';
$lang->secret = '秘密';
$lang->thisissecret = '비밀글입니다.';
$lang->admin_mail = '管理員電子郵件';
// 按鈕語言