묻고답하기
다른 게시판 권한 읽어서 페이지에 적용
2008.05.08 11:17
제로보드 XE 에서 페이지를 하나 생성 하여, MH 최신글 멀티 스킨 위젯을 이용하여
게시판의 글을 읽어, 페이지에 뿌려주고 있습니다.
최근 글을 뽑아 오는 게시판이 두 개인데,
하나는 공개 게시판이어서, 로그인 하지 않아도 글을 읽을 수 있고,
다른 하나는 읽기 권한이 없을 경우, 글을 읽을 수 없게 되어 있습니다.
여기서, 최근 글을 뽑아 왔을 때, 최근 글 리스트에 링크가 활성화 되어 있어, 클릭을 하면
해당 게시판으로 이동하여 게시물을 읽을 수 있는데, 공개 게시판이야 상관 없지만,
읽기 권한이 필요 한 게시판의 경우, "권한이 없습니다." 라는 메세지를 보게 됩니다.
여기서, 권한이 없다는 메세지를 보게 하기 전에
최근 글을 출력 할 때, 해당 게시판의 권한을 읽어 와서, 그 권한에 따라 최근 글에 글 목록과 링크를 걸어주거나,
글 목록만 보이고, 링크는 걸어주지 않게 하였으면 합니다.
따라서, 최근 글을 뽑아 올 때, 권한을 체크 하여 링크를 활성화 시키고자 하는데,
xe_board 게시판 스킨에는 <!--@if($grant->view)--> 를 이용하여 수정 하였는데,
페이지의 경우 위의 코드가 적용되지 않는 것 같습니다.
인터넷을 한참 뒤지다가, <!--@if($logged_info)--> 로 처리하면 된다고 하셔서 적용 해 보았더니,
공개 게시판의 최근 글에 대한 링크 역시 사라져버렸습니다.
최근 글을 읽어 올 게시판의 설정을 읽어 와서, <!--@if($grant->view)--> 를 적용하면 되지 않을까 하고
생각 해 보았는데, 구글이나, 제로보드 검색에서 찾지 못하였습니다.
도움 말씀 부탁 드립니다.
읽어 주셔서 감사합니다. ^^
아래는 해당 위젯의 list.html 파일 입니다.
<!-- 설정된 컬러셋의 종류에 따라서 css파일을 import 합니다 -->
<!--@if($colorset=="slive")-->
<!--%import("css/slive.css")-->
<!--@elseif($colorset=="white")-->
<!--%import("css/white.css")-->
<!--@elseif($colorset=="aqua_blue")-->
<!--%import("css/aqua_blue.css")-->
<!--@elseif($colorset=="blue")-->
<!--%import("css/blue.css")-->
<!--@elseif($colorset=="gray")-->
<!--%import("css/gray.css")-->
<!--@elseif($colorset=="orange")-->
<!--%import("css/orange.css")-->
<!--@elseif($colorset=="red")-->
<!--%import("css/red.css")-->
<!--@elseif($colorset=="sky")-->
<!--%import("css/sky.css")-->
<!--@else-->
<!--%import("css/green.css")-->
<!--@end-->
<div class="mh_{$colorset}">
<div class="t_m">
<div class="b_m">
<div class="box_m_l">
<div class="box_m_r">
<div class="b_l">
<div class="b_r">
<div class="l-c">
<div class="r-c">
<!--@if($widget_info->title)-->
<a href="{getUrl('','mid',$widget_info->module_name)}" class="sub">{$widget_info->title}</a>
<!--@end-->
<ul>
<!--@foreach($widget_info->document_list as $oDocument)-->
<li>
<!--@if($widget_info->display_regdate == 'Y')-->
<span class="regdate">{$oDocument->getRegdate('y-m-d')}</span>
<!--@end-->
<span class="title">
<!--@if($logged_info)-->
<a href="{$oDocument->getPermanentUrl()}#{$oDocument->getCommentCount()}">
<!--@end-->
{$oDocument->getTitle($widget_info->subject_cut_size)}
<!--@if($logged_info)-->
</a>
<!--@end-->
<!--@if($oDocument->getCommentCount())-->
<span class="comment"><a href="{$oDocument->getPermanentUrl()}#comment">©{$oDocument->getCommentCount()}</a></span>
<!--@end-->
{$oDocument->printExtraImages($widget_info->duration_new)}
<!--@if($widget_info->display_readed_count == 'Y')-->
<span class="read">®{$oDocument->get('readed_count')}</span>
<!--@end-->
<!--@if($widget_info->display_voted_count == 'Y' && $oDocument->get('voted_count')>0 )-->
<span class="voted">{$lang->voted_count} <strong>{$oDocument->get('voted_count')}</strong></span>
<!--@end-->
<!--@if($widget_info->display_author == 'Y')-->
<span class="author">by {$oDocument->getNickName()}</span>
<!--@end-->
</span>
</li>
<!--@end-->
</ul>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<!--@if($widget_info->module_name)-->
<a href="{getUrl('','mid',$widget_info->module_name)}" class="more">More >></a>
<!--@end-->
</div>
</div>
<span class="title">
<!--@if($logged_info)-->
<a href="{$oDocument->getPermanentUrl()}#{$oDocument->getCommentCount()}">{$oDocument->getTitle($widget_info->subject_cut_size)}</a>
<!--@else-->
{$oDocument->getTitle($widget_info->subject_cut_size)}
<!--@end-->
로그인하면 하이퍼링크가 나오고 로그아웃하면 링크 나타나지 않습니다.
그리고 권한별로 설정을 해 볼려니 권한에 관계된 함수를 제가 잘 모르겠네요.
일단 관리자만 보게 할려면
<span class="title">
<!--@if($logged_info->is_admin=="Y")-->
<a href="{$oDocument->getPermanentUrl()}#{$oDocument->getCommentCount()}">{$oDocument->getTitle($widget_info->subject_cut_size)}</a>
<!--@else-->
{$oDocument->getTitle($widget_info->subject_cut_size)}
<!--@end-->
여기서 is_admin=="Y"이부분에 권한별 함수를 넣어주면 될 것 같네요.
함수 아시는분은 좀 알려주세요.