테스트 사이트 - 개발 중인 베타 버전입니다

(스벅커피)latest 1주일간 조회수 높은 순서대로 나오게 하는법 질문드립니다. 채택완료

ksoon 3년 전 조회 1,071

</strong></p>

<p><strong><?php

if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가</strong></p>

<p><strong>// add_stylesheet('css 구문', 출력순서); 숫자가 작을 수록 먼저 출력됨

add_stylesheet('<link rel="stylesheet" href="'.$latest_skin_url.'/style.css">', 0);

?></strong></p>

<p><strong><div class="lt">

    <h2 class="lt_title"></h2>

    <div class="lt_box">

        <ul>

        <?php for ($i=0; $i<count($list); $i++) {  ?>

            <li>

                <?php

                if ($list[$i]['icon_secret']) echo "<i class=\"fa fa-lock\" aria-hidden=\"true\"></i><span class=\"sound_only\">비밀글</span> ";

    

                echo "<a href=\"".$list[$i]['href']."\"> ";

                if ($list[$i]['is_notice'])

                    echo "<strong>".$list[$i]['subject']."</strong>";

                else

                    echo $list[$i]['subject'];

    

                echo "</a>";

                

                ?>

                <div class="lt_info">

                    <span class="lt_date"><?php echo $list[$i]['datetime2'] ?></span>              

                </div>

            </li>

        <?php }  ?>

        <?php if (count($list) == 0) { //게시물이 없을 때  ?>

        <li class="empty_li">게시물이 없습니다.</li>

        <?php }  ?>

        </ul>

    </div>

    <div class="lt_more"><a href="<?php echo get_pretty_url($bo_table); ?>"><span class="sound_only"><?php echo $bo_subject ?></span>더보기</a></div>

</div></strong>

 </p>

<p><strong>

 

메인 페이지에 latest로 1주일간 조회수 높은 순서대로 나오게 하고 싶습니다.

 

도와주실 분 있나요? 스벅 커피 보내드립니다.ㅠㅠ

댓글을 작성하려면 로그인이 필요합니다.

답변 3개

채택된 답변
+20 포인트
3년 전

기본 기능만으로는 1주일 , 한달 등의 기간을 정해서 조회수 등위를 낼 수 없습니다

방법은 아래와 같은데 질문 하신 분이 이 설명을 코드화 시키는 것이 가능할지??

1. 여분필드 bo_1 이용

   bo_1 날짜가 오늘보다 작으면 다음주 월요일 일자를 구해서 등록 합니다

2. 여분필드 wr_1에 카운트 기록(bbs/board.php wr_hit 기록 하는 쿼리 수정)

 wr_hit = wr_hit + 1 , wr_1 = wr_1 + 1 

3. bo_1 날짜가 오늘과 같으면 아래 3가지 작업을 합니다

     wr_1 값을 wr_2로 이동, wr_1을 0 으로 , bo_1 값을 다음주 월요일 날짜로 변경

     wr_1, wr_2 필드 타입을 int로 변경해서 사용 하면 더욱 좋겠습니다

4. 기존 latest 함수를 복사하여 하나 만들고(latest2) 코드 중 다음 처럼 변경 

     order by wr_num ==> order by wr_2 *1 desc , wr_num

5. 메인에서 사용 echo latest2(~~~);

 

1,3 항은 extext/user.config.php에 if문 내에 넣으면 됩니다

if($bo_table=='해당게시판'){

내용

}

 

설명하고 보니 그누보드 소스들을 모른다면 커피 한잔으로 처리 가능한 작업은 아닌듯 하군요 ㅎ

 

 

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

1주일간이 어떤 기준이냐에 따라서 방법이 달라집니다.

지난 주(일-토) 조회가지고

이번주 계속 1등을 보여 주는 방식이면 좀? 간단합니다.

 

그런데 기준에 지난 7일간이면

지난 7일간 조회수를 일일 누계를 따로 다 저장해서 합계 내고 순서를 매겨야 합니다.

이 때도 오늘 하루는 계속 어제까지만 집계한 것으로 계산해야 간단합니다.

 

이걸 시간 간격으로 하고 싶다면...

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

e
3년 전

조회수 테이블을 따로 만들어서

게시물별 날짜별 조회수를 따로 저장해야 합니다.

 

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인