(스벅커피)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일간 조회수를 일일 누계를 따로 다 저장해서 합계 내고 순서를 매겨야 합니다.
이 때도 오늘 하루는 계속 어제까지만 집계한 것으로 계산해야 간단합니다.
이걸 시간 간격으로 하고 싶다면...