• 북마크
  • 1:1문의
  • 새글
  • 회원가입
  • 로그인

팁 & 테크

  • Home
  • 스터디
  • 팁 & 테크

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

1,954 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
좋아요!
3
- 나오키 메일보내기 아이디로 검색 - 회원등급 : 씨앗/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 페이지
번호 제목 글쓴이 날짜 추천
123 그림자밟기 아이디로 검색 2015.02.25 2,674 6
122 l2zeo 아이디로 검색 2015.02.12 3,619 4
121 레오나르도 아이디로 검색 2015.03.05 1,946 4
120 fm25 아이디로 검색 2015.03.05 1,944 4
119 나오키 아이디로 검색 2015.02.24 7,054 3
118 fm25 아이디로 검색 2015.03.06 1,632 3
117 크롱크롱 아이디로 검색 2015.03.07 1,910 3
116 fm25 아이디로 검색 2015.03.24 3,443 3
115 비즈팔 아이디로 검색 2015.04.16 8,470 3
114 shadow 아이디로 검색 2015.04.24 2,534 3
113 l2zeo 아이디로 검색 2015.01.27 1,859 2
112 그림자밟기 아이디로 검색 2015.02.08 3,615 2
111 l2zeo 아이디로 검색 2015.02.17 5,568 2
110 나오키 아이디로 검색 2015.02.24 1,687 2
열람 나오키 아이디로 검색 2015.02.26 1,955 2
108 나오키 아이디로 검색 2015.02.26 1,594 2
107 fm25 아이디로 검색 2015.03.04 3,095 2
106 maxform 아이디로 검색 2015.03.13 1,207 2
105 fm25 아이디로 검색 2015.03.18 2,542 2
104 김군 아이디로 검색 2015.03.19 5,294 2
LOGIN
사이드 메뉴

최신글이 없습니다.

최신글이 없습니다.

출석 랭킹

오늘의 랭킹

회원사진

닉네임

개근왕

최다1위

shadow shadow
Ranking

    출력할 랭킹이 없습니다.

  • 01 shadow
    674,374
  • 02 신비
    335,419
  • 03 가을하늘
    204,735
  • 04 mame
    202,630
  • 05 이윰MOUNT
    199,181
  • 06 미스코리아
    163,939
  • 07 레오나르도
    147,576
  • 08 테크니션
    142,655
  • 09 이윰IN
    135,258
  • 10 비온뒤맑음
    127,882
  • 01 shadow
    28,938
  • 02 joosam
    23,606
  • 03 티보리
    21,954
  • 04 홍인
    18,644
  • 05 레오나르도
    18,088
  • 06 이윰IN
    17,983
  • 07 도깨비
    16,614
  • 08 이윰EGG
    16,105
  • 09 자이언트
    14,698
  • 10 미스트
    14,379