Loading the content...

팁 & 테크

  • Home
  • 스터디
  • 팁 & 테크

latest_newpost 수정하여 레벨별 열람 제한 두기

1,957 2015.02.26 16:23

짧은주소

본문

질답게시판에 해주신 질문을 토대로 한번 만들어 보았습니다.

새글보기 스킨에서 view_level 옵션 지정시 비회원이나 회원의 그누 레벨에 따라서 새글을 열람 할지 제한 할 지 정하는 루틴입니다.

 

우선 수정할 파일은 

eyoom/classes/latest.class.php 파일입니다.

문자열 검색하셔서 [ 이미지 세로 사이즈를 ] 를 검색하셔서

 

            // 이미지 세로사이즈
            if($optset['img_height']) $this->img_height = $optset['img_height']; else $this->img_height = '0';

가 나오면 다음에 아래와 같이 추가 해줍니다.

            // 특정레벨 이상 출력 가능
            if($optset['view_level']) $this->view_level = $optset['view_level'];


그런다음 다시 문자열 검색 하셔서 [     // 스킨파일 위치에 출력하기 ] 혹은 latest_print 함수를 검색 하셔서 찾으셨다면 아래와 같이 수정 해줍니다.

수정전

    // 스킨파일 위치에 출력하기
    protected function latest_print($skin, $arr, $mode='single', $folder='latest') {
        global $tpl, $tpl_name, $board;

        if(!$mode) $mode='single';
        if(!$folder) $folder='latest';

        $tpl->define_template($folder,$skin,'latest.skin.html');
        if($this->header_title) $tpl->assign(array('title' => $this->header_title));
        $tpl->assign(array(
            'bo_table' => $this->bo_table,
            'photo' => $this->photo,
            'content' => $this->content,
            'cols' => $this->cols,
        ));
        if($mode=='single') {
            $tpl->assign(array(
                'loop' => $arr,
            ));
        } else if($mode='multiple') {
            $tpl->assign($arr);
        }
        $tpl->print_($tpl_name);
    }

수정후

2
좋아요!
- 나오키 메일보내기 아이디로 검색 - 회원등급 : 씨앗/Level 2 - 포인트 : 1,809
레벨 2
경험치 560

Progress Bar 90%

- 가입일 : 2015-02-24 06:25:10
- 서명 :
- 자기소개 :
댓글목록

꼬마별님의 댓글

오!! 감사합니다~~~!!!

나오키님의 댓글

아직 수정중입니다 ㅠㅠ 글 쓰다보니 소스에 포함되어선 안될 문자열이 포함된것 같아서요 수정 다 하면 다시 읽어 주시기 바랍니다 ㅠ

꼬마별님의 댓글

댓글을 너무 빨리달았나봅니다 ㅎㅎ;;

나오키님의 댓글

수정후

    // 스킨파일 위치에 출력하기
    protected function latest_print($skin, $arr, $mode='single', $folder='latest') {
        global $tpl, $tpl_name, $board, $member;

        if(!$mode) $mode='single';
        if(!$folder) $folder='latest';

        $tpl->define_template($folder,$skin,'latest.skin.html');
        if($this->header_title) $tpl->assign(array('title' => $this->header_title));
        $tpl->assign(array(
            'bo_table' => $this->bo_table,
            'photo' => $this->photo,
            'view_level' => $this->view_level,
            'login_level' => $member['mb_level'],
            'content' => $this->content,
            'cols' => $this->cols,
        ));
        if($mode=='single') {
            $tpl->assign(array(
                'loop' => $arr,
            ));
        } else if($mode='multiple') {
            $tpl->assign($arr);
        }
        $tpl->print_($tpl_name);
    }

자 이제 클래스 수정은 모두 끝났습니다.

이제부터는 스킨 파일을 수정 해주면 됩니다.

스킨파일은 eyoom/theme/basic/skin_bs/newpost/accordion/latest.skin.html 파일을 수정 해주시면 됩니다.

수정전


<div class="panel-group acc-v1" id="accordion-1">
    <div class="panel panel-default">
        <div class="panel-heading">
            <h4 class="panel-title">
                <a class="accordion-toggle" data-toggle="collapse" data-parent="#accordion-1" href="#collapse-One">
                    <i class="fa fa-file-text-o"></i> 새로 등록된 글
                    <i class="fa fa-sort pull-right"></i>
                </a>
            </h4>
        </div>
        <div id="collapse-One" class="panel-collapse collapse in">
            <!--New Post-->
            <div class="panel panel-basic-bs">
                <ul {? !C.G5_IS_MOBILE}id="scrollbar"{/} class="list-unstyled{? !C.G5_IS_MOBILE} contentHolder{:} contentMobile{/} margin-bottom-20">
                <!--{@ write}-->
                    <li class="new-post">
                        <a href="{.href}">
                            <!--{? photo == 'y'}-->
                            <div class="post-photo"><!--{? .mb_photo}-->{.mb_photo}<!--{:}--><span class="user_icon"><i class="fa fa-user"></i></span><!--{/}--></div>
                            <!--{/}-->
                            <div class="overflow-h">
                                <span class="post-subject">
                                    {.wr_subject}
                                </span>
                                <div class="margin-hr-5"></div>
                                <!--{? content == 'y'}-->
                                <span>
                                    <p>{.wr_content}</p>
                                </span>
                                <!--{/}-->
                                <small><strong class="color-black"><i class="fa fa-user"></i> {.mb_nick}</strong></small>
                                <small><i class="fa fa-clock-o"></i> {eb->date_time('Y-m-d H:i',.datetime)}</small>
                                <small><!--{? .wr_comment}--><i class="fa fa-comments color-red"> {.wr_comment}</i><!--{/}--></small>
                                <small><i class="fa fa-eye"></i> {=number_format(.wr_hit)}</small>
                            </div>
                        </a>
                    </li>
                <!--{/}-->

                </ul>
            </div>
            <!--End New Post-->
        </div>
    </div>

    <div class="panel panel-default">
        <div class="panel-heading">
            <h4 class="panel-title">
                <a class="accordion-toggle" data-toggle="collapse" data-parent="#accordion-1" href="#collapse-Two">
                    <i class="fa fa-comments-o"></i> 새로 등록된 댓글
                    <i class="fa fa-sort pull-right"></i>
                </a>
            </h4>
        </div>
        <div id="collapse-Two" class="panel-collapse collapse">
            <!--New Post-->
            <div class="panel panel-basic-bs">
                <ul {? !C.G5_IS_MOBILE}id="scrollbar"{/} class="list-unstyled{? !C.G5_IS_MOBILE} contentHolder{:} contentMobile{/} margin-bottom-20">

                <!--{@ comment}-->
                    <li class="new-post">
                        <a href="{.href}">
                            <!--{? photo == 'y'}-->
                            <div class="post-photo"><!--{? .mb_photo}-->{.mb_photo}<!--{:}--><span class="user_icon"><i class="fa fa-user"></i></span><!--{/}--></div>
                            <!--{/}-->
                            <div class="overflow-h">
                                <span>{.wr_subject}</span>
                                <div class="margin-hr-5"></div>
                                <small><strong class="color-dark"><i class="fa fa-user"></i> {.mb_nick}</strong></small>
                                <small><i class="fa fa-clock-o"></i> {eb->date_time('Y-m-d H:i',.datetime)}</small>
                            </div>
                        </a>
                    </li>
                <!--{/}-->

                </ul>
            </div>
            <!--End New Post-->
        </div>
    </div>
</div>

수정 후

<div class="panel-group acc-v1" id="accordion-1">
    <div class="panel panel-default">
        <div class="panel-heading">
            <h4 class="panel-title">
                <a class="accordion-toggle" data-toggle="collapse" data-parent="#accordion-1" href="#collapse-One">
                    <i class="fa fa-file-text-o"></i> 새로 등록된 글
                    <i class="fa fa-sort pull-right"></i>
                </a>
            </h4>
        </div>
        <div id="collapse-One" class="panel-collapse collapse in">
            <!--New Post-->
            <div class="panel panel-basic-bs">
                <ul {? !C.G5_IS_MOBILE}id="scrollbar"{/} class="list-unstyled{? !C.G5_IS_MOBILE} contentHolder{:} contentMobile{/} margin-bottom-20">
                <!--{? login_level >= view_level}-->

                <!--{@ write}-->
                    <li class="new-post">
                        <a href="{.href}">
                            <!--{? photo == 'y'}-->
                            <div class="post-photo"><!--{? .mb_photo}-->{.mb_photo}<!--{:}--><span class="user_icon"><i class="fa fa-user"></i></span><!--{/}--></div>
                            <!--{/}-->
                            <div class="overflow-h">
                                <span class="post-subject">
                                    {.wr_subject}
                                </span>
                                <div class="margin-hr-5"></div>
                                <!--{? content == 'y'}-->
                                <span>
                                    <p>{.wr_content}</p>
                                </span>
                                <!--{/}-->
                                <small><strong class="color-black"><i class="fa fa-user"></i> {.mb_nick}</strong></small>
                                <small><i class="fa fa-clock-o"></i> {eb->date_time('Y-m-d H:i',.datetime)}</small>
                                <small><!--{? .wr_comment}--><i class="fa fa-comments color-red"> {.wr_comment}</i><!--{/}--></small>
                                <small><i class="fa fa-eye"></i> {=number_format(.wr_hit)}</small>
                            </div>
                        </a>
                    </li>
                <!--{/}-->

                <!--{:}-->
                    <li class="new-post">
                        레벨이 낮아 새글을 볼 수 없습니다.
                    </li>
                <!--{/}-->

                </ul>
            </div>
            <!--End New Post-->
        </div>
    </div>

    <div class="panel panel-default">
        <div class="panel-heading">
            <h4 class="panel-title">
                <a class="accordion-toggle" data-toggle="collapse" data-parent="#accordion-1" href="#collapse-Two">
                    <i class="fa fa-comments-o"></i> 새로 등록된 댓글
                    <i class="fa fa-sort pull-right"></i>
                </a>
            </h4>
        </div>
        <div id="collapse-Two" class="panel-collapse collapse">
            <!--New Post-->
            <div class="panel panel-basic-bs">
                <ul {? !C.G5_IS_MOBILE}id="scrollbar"{/} class="list-unstyled{? !C.G5_IS_MOBILE} contentHolder{:} contentMobile{/} margin-bottom-20">

                <!--{? login_level >= view_level}-->

                <!--{@ comment}-->
                    <li class="new-post">
                        <a href="{.href}">
                            <!--{? photo == 'y'}-->
                            <div class="post-photo"><!--{? .mb_photo}-->{.mb_photo}<!--{:}--><span class="user_icon"><i class="fa fa-user"></i></span><!--{/}--></div>
                            <!--{/}-->
                            <div class="overflow-h">
                                <span>{.wr_subject}</span>
                                <div class="margin-hr-5"></div>
                                <small><strong class="color-dark"><i class="fa fa-user"></i> {.mb_nick}</strong></small>
                                <small><i class="fa fa-clock-o"></i> {eb->date_time('Y-m-d H:i',.datetime)}</small>
                            </div>
                        </a>
                    </li>
                <!--{/}-->

                <!--{:}-->
                    <li class="new-post">
                        레벨이 낮아 새댓글을 볼 수 없습니다.
                    </li>
                <!--{/}-->

                </ul>
            </div>
            <!--End New Post-->
        </div>
    </div>
</div>

나오키님의 댓글

무엇이 바뀌었느냐

스킨 파일에서 새글과 새댓글 부분에 루프문( <!--{@ write}--> )의 겉에 비교연산으로( <!--{? login_level >= view_level}--> )을 넣어주고

루프문의 끝( <!--{/}--> ) 다음에 아래 부분을 추가하여 예외 상황에 레벨이 낮아 새글을 볼 수 없다는 메세지를 출력 해줍니다.

                <!--{:}-->
                    <li class="new-post">
                        레벨이 낮아 새글을 볼 수 없습니다.
                    </li>
                <!--{/}-->



우선 좀 야매스럽게 기능 추가를 해보았습니다.

사용법은

    <!--{latest->latest_newpost('accordion', 'count=10||cut_subject=20||cut_content=50||photo=y||content=y||view_level=4')}-->

처럼 옵션의 맨 끝에 view_level=숫자 의 형식으로 추가 해주시면 됩니다.



이윰님께서 검토 해보시고 괜찮게 쓰일 수 있는 기능이라 생각 되시면 좀 더 보강을 해서 다음 업데이트에 추가 해주실수도 있을거라 생각 됩니다 ^^

그럼 좋은 결과 있으시기 바랍니다.

Total 123건 1 페이지
제목
그림자밟기 아이디로 검색 2015.02.25 2,682 6
l2zeo 아이디로 검색 2015.02.12 3,640 4
레오나르도 아이디로 검색 2015.03.05 1,951 4
fm25 아이디로 검색 2015.03.05 1,948 4
나오키 아이디로 검색 2015.02.24 7,058 3
fm25 아이디로 검색 2015.03.06 1,635 3
크롱크롱 아이디로 검색 2015.03.07 1,913 3
fm25 아이디로 검색 2015.03.24 3,481 3
비즈팔 아이디로 검색 2015.04.16 8,486 3
shadow 아이디로 검색 2015.04.24 2,535 3
l2zeo 아이디로 검색 2015.01.27 1,868 2
그림자밟기 아이디로 검색 2015.02.08 3,621 2
l2zeo 아이디로 검색 2015.02.17 5,575 2
나오키 아이디로 검색 2015.02.24 1,691 2
나오키 아이디로 검색 2015.02.26 1,958 2