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

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

QA

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

본문


<?php
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
// add_stylesheet('css 구문', 출력순서); 숫자가 작을 수록 먼저 출력됨
add_stylesheet('<link rel="stylesheet" href="'.$latest_skin_url.'/style.css">', 0);
?>
<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>
 

 

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

 

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

이 질문에 댓글 쓰기 :

답변 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일간 조회수를 일일 누계를 따로 다 저장해서 합계 내고 순서를 매겨야 합니다.

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

 

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

답변을 작성하시기 전에 로그인 해주세요.
전체 123,666 | RSS
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT