여분필드를 활용한 index 인기글, 추천글 적용하기 정보
여분필드를 활용한 index 인기글, 추천글 적용하기본문
이번에 의뢰받은 웹사이트를 작업하며 알게된 미립자팁을 알려드리겠습다.
이 팁은
1. 영카트의 인기상품,추천상품등의 관리와 같은 기능을 활용하기 위해서 만들어졌습니다.
2. 사용된 스킨은
@팡팡 님의 https://sir.kr/g5_skin/32463
그룹 인기글 최신글 스킨과
@펄스나인 님의 https://sir.kr/g5_plugin/12300
게시글 관리 스킨을 활용하여 만들어졌습니다.
팡팡님의 스킨에서 best10.lib.php 파일 한개만 사용되었고 펄스나인님의 게시글 관리 스킨을 아래 제가 올린 팁처럼 사악한(?) 기운으로 개조하여 응용해서 적용한것입니다.
- 지금은 더 사악하게 리스트에서 본문을 제외한 나머지 모두 수정할 수 있게 숮..읍읍
(물론 펄스나인님의 스킨 없이 개별적으로 필요한 게시글에 여분필드를 체크 input을 활용하여 사용하셔도 됩니다.)
여분필드 9번은 '인기글', 여분필드 10번은 '추천글' 이라는 가정하에
먼저 팡팡님 스킨을 압축해제하고 best10.lib.php 파일을 그누보드가 설치된 루트/lib 폴더에 업로드 하시구요.
에디터를 활용하여 수정합니다.
1. 이 lib파일은 그룹내에 모든 게시판 테이블을 불러오는데 여기서 제외할 게시판 테이블을 적용하기 위해 64라인을 찾아 아래와 같이 수정합니다.
$sql= " select bo_table from {$g5['board_table']} ";
// 이 부분을 아래 코드로 변경(제외할 게시판이 없으면 수정하지 않아도 됩니다)
$exclusion = explode(",",$config['cf_10']);
$excboard = "'" . str_replace(",", "', '", $exclusion) . "'";
$sql= " select bo_table from {$g5['board_table']} WHERE bo_table NOT IN ($excboard) ";
// cf_10필드에 제외할 게시판 테이블을 , 로 구분하여 기록하고 이를 불러와서 explode를 활용하여 , 를 제거한 후 str_replace함수를 활용하여 sql 쿼리문에 자동으로 '테이블명', '테이블명' 방식으로 자동 기입
2. wr_hit(인기글 여분필드 wr_9 체크값으로 변환 value는 1입니다.) 변수가 정의된 쿼리문을 찾아 아래와 같이 수정합니다.
if ($izen_sort == 'wr_hit')
{
$sql_gr_Q = " wr_is_comment <> '1' and date_format(wr_datetime, '%Y%m%d') between '$startYmd' and '$nowYmd' order by $izen_sort desc limit 0, $rows ";
}
// 이 부분을 아래와 같이 변경합니다.
if ($izen_sort == 'wr_hit')
{
$sql_gr_Q = " wr_9 = '1' order by $izen_sort desc limit 0, $rows ";
}
마찬가지로 wr_good(추천글 여분필드 10 체크값으로 변환하고 역시 value값도 1입니다.) 변수가 정의된 쿼리문을 찾아 아래와 같이 변경합니다.
elseif ($izen_sort == 'wr_good') #
{
$sql_gr_Q = " wr_is_comment <> '1' and date_format(wr_datetime, '%Y%m%d') between '$startYmd' and '$nowYmd' and wr_good <> '0' order by $izen_sort desc limit 0, $rows ";
}
// 이 부분을 아래와 같이 변경합니다.
elseif ($izen_sort == 'wr_good') #
{
$sql_gr_Q = " wr_10 = '1' order by $izen_sort desc limit 0, $rows ";
}
3. 테마를 사용하시는 경우 테마의 head.php 파일에 lib 파일을 불러옵니다.
include_once(G5_THEME_PATH.'/head.sub.php');
include_once(G5_LIB_PATH.'/latest.lib.php');
// 이 쯤 어딘가 내 마음 헤메이기 좋은곳(?)에 아래 include문을 하나 추가합니다.
include_once(G5_LIB_PATH.'/best10.lib.php');
4. 이제 마지막 index.php 파일에 불러오고자 하는 위치에 사용할 최신글 스킨을 활용하여 펑션을 깊숙히 삽입(-_-ㅋ)하시면 끝입니다.
<?php echo izen_group('theme/최신글스킨명', '그룹명', wr_hit, 게시물수, 제목글자수, 카운트날짜);?>
// 여분필드9번이 체크된 그룹내 모든 게시물을 최근게시물로 불러오려면 '그룹명' 다음 호출되는 변수에 wr_hit를 기록하면 되구요. 반대로 여분필드10번을 불러오려면 wr_good을 기록하면 됩니다.
카운트 날짜는 넉넉하게 365일 입력하시면 됩니다.
그러면 저처럼 요렇게 활용 할 수 있습니다.
영카트의 인기상품, 추천상품, 세일상품등의 기능을 적용시킬 수 있는것이지요.
※ 원 글 게시자인 @팡팡 님과 @펄스나인 님께서 게시글 내리라 하시면 빛의 속도로 내리겠습니다.
!-->!-->!-->!-->!-->
2
댓글 1개
감사합니다.