묻고 답하기란에 진우님이 질문하신 내용의 답변을 팁으로 정리합니다.
[질문요지]
[질문요지]
최근 글 위젯에서, 해당 게시판의 권한을 읽어서 게시물의 링크 여부를 적용 후
최근 게시물로 출력 했으면 합니다.
게시물의 링크가 걸려 있을 때, 그 게시물을 클릭 했는데 페이지 이동 후 만나게 되는 메시지가
"권한이 없습니다" 라는 문구 일 경우 기분이 그렇게 좋을 것 같지는 않을 것 같아서,
그러한 일을 사전에 방지 하고자 권한이 없을 경우, 리스트만 출력 하여 보여 주고,
해당 글에 대한 링크는 없애고자 합니다.
최근 게시물로 출력 했으면 합니다.
게시물의 링크가 걸려 있을 때, 그 게시물을 클릭 했는데 페이지 이동 후 만나게 되는 메시지가
"권한이 없습니다" 라는 문구 일 경우 기분이 그렇게 좋을 것 같지는 않을 것 같아서,
그러한 일을 사전에 방지 하고자 권한이 없을 경우, 리스트만 출력 하여 보여 주고,
해당 글에 대한 링크는 없애고자 합니다.
해당 최근게시물 위젯의 list.html을 엽니다.(예 : newest_document/skins/xe_official)
수정파일 zbxe/widgets/newest_document/skins/xe_official/list.html 16줄 부터
[수정전]
[수정후]
빨간색 부분만 추가하시면 로그인한 회원만 내용을 클릭해서 볼 수 있습니다.
당연히 비회원은 클릭자체가 되지를 않겠죠!
그럼 위에 있는 파란색부분은 무엇인가 하면은?
최근게시물설정시 "회원만 내용 글읽기" 를 껴고 끄는 옵션입니다.
이것을 구현 할려면 약간의 스크립트 수정이 필요합니다.
총3개의 파일을 수정해야 됩니다.
이렇게 해 주면 위젯설정에서 "회원만 내용 글읽기" 설정을 추가 할 수 있습니다.
p.s 위의 파일들을 변형 해 보면서 한가지 아쉬운 점은 멤버 그룹별로 권한을 주는 문제였는데,
실력이 미천하여 그 것 까지는 구현을 하지 못했습니다.
이 부분을 설명해 주실 수 있으신 고수님들의 자문을 구합니다.
수정파일 zbxe/widgets/newest_document/skins/xe_official/list.html 16줄 부터
[수정전]
<span class="title">
<a href="{$oDocument->getPermanentUrl()}#{$oDocument->getCommentCount()}">{$oDocument->getTitle($widget_info->subject_cut_size)}</a>
<a href="{$oDocument->getPermanentUrl()}#{$oDocument->getCommentCount()}">{$oDocument->getTitle($widget_info->subject_cut_size)}</a>
[수정후]
<span class="title">
<!--@if($widget_info->member_read == 'Y')-->
<!--@if($logged_info->member_srl)-->
<a href="{$oDocument->getPermanentUrl()}#{$oDocument->getCommentCount()}">{$oDocument->getTitle($widget_info->subject_cut_size)}</a>
<!--@else-->
{$oDocument->getTitle($widget_info->subject_cut_size)}
<!--@end-->
<!--@end--><!--@else-->
<a href="{$oDocument->getPermanentUrl()}#{$oDocument->getCommentCount()}">{$oDocument->getTitle($widget_info->subject_cut_size)}</a>
<!--@end-->
<!--@if($widget_info->member_read == 'Y')-->
<!--@if($logged_info->member_srl)-->
<a href="{$oDocument->getPermanentUrl()}#{$oDocument->getCommentCount()}">{$oDocument->getTitle($widget_info->subject_cut_size)}</a>
<!--@else-->
{$oDocument->getTitle($widget_info->subject_cut_size)}
<!--@end-->
<!--@end--><!--@else-->
<a href="{$oDocument->getPermanentUrl()}#{$oDocument->getCommentCount()}">{$oDocument->getTitle($widget_info->subject_cut_size)}</a>
<!--@end-->
빨간색 부분만 추가하시면 로그인한 회원만 내용을 클릭해서 볼 수 있습니다.
당연히 비회원은 클릭자체가 되지를 않겠죠!
그럼 위에 있는 파란색부분은 무엇인가 하면은?
최근게시물설정시 "회원만 내용 글읽기" 를 껴고 끄는 옵션입니다.
이것을 구현 할려면 약간의 스크립트 수정이 필요합니다.
총3개의 파일을 수정해야 됩니다.
수정1 zbxe/widgets/newest_document/newest_document.class.php 파일을 열어서 아래의 스크립트추가
// 노출 여부 체크
if($args->member_read!='Y') $widget_info->member_read = 'N';
else $widget_info->member_read = 'Y';
수정2 zbxe/widgets/newest_document/conf/info.xml 파일을 열어서 아래의 스크립트를 적당한 위치에 추가
<var id="member_read">
<name xml:lang="ko">회원만 내용 글읽기</name>
<type>select</type>
<description xml:lang="ko">회원으로 로그인해야만 내용글 보기 가능</description>
<options>
<name xml:lang="ko">표시</name>
<value>Y</value>
</options>
<options>
<name xml:lang="ko">표시하지 않음</name>
<value>N</value>
</options>
</var>
수정3 zbxe/widgets/newest_document/skins/xe_official/list.html 위에 있는 수정후 내용중에 파란색부분 까지 추가
// 노출 여부 체크
if($args->member_read!='Y') $widget_info->member_read = 'N';
else $widget_info->member_read = 'Y';
수정2 zbxe/widgets/newest_document/conf/info.xml 파일을 열어서 아래의 스크립트를 적당한 위치에 추가
<var id="member_read">
<name xml:lang="ko">회원만 내용 글읽기</name>
<type>select</type>
<description xml:lang="ko">회원으로 로그인해야만 내용글 보기 가능</description>
<options>
<name xml:lang="ko">표시</name>
<value>Y</value>
</options>
<options>
<name xml:lang="ko">표시하지 않음</name>
<value>N</value>
</options>
</var>
수정3 zbxe/widgets/newest_document/skins/xe_official/list.html 위에 있는 수정후 내용중에 파란색부분 까지 추가
이렇게 해 주면 위젯설정에서 "회원만 내용 글읽기" 설정을 추가 할 수 있습니다.
p.s 위의 파일들을 변형 해 보면서 한가지 아쉬운 점은 멤버 그룹별로 권한을 주는 문제였는데,
실력이 미천하여 그 것 까지는 구현을 하지 못했습니다.
이 부분을 설명해 주실 수 있으신 고수님들의 자문을 구합니다.