배너롤링 모든 최신글나올경우 이미지가 없는 게시물 제거하기
아미나 . 미소테마 베이직스킨을 사용하고 있습니다.
아미나는 처음 사용하느데 . 팁이 될만한지 모르겠네요 .
작업을 하다가.
위젯중/
/테마/미소/위젯/miso-board-banner 를 사용하는 부분에서 .
최신글을 모두 보여주는데 .
---------------------------------
// 글추출
$list = apms_board_rows($wset);
-----------------------------------
를 사용하고 있습니다. 여기에서 . 이미지가 없는 최신 게시물도 임의의 이미지를 이용하여 보여주는데요 .
이를 제거 하고 . 보여주기 위해 변경해보았습니다.
1, /테마/미소/위젯/miso-board-banner/widget.rows.php 파일에 .
글추출 윗 부분에
---------
+ $wset['is_banner'] = 1;
// 글추출
$list = apms_board_rows($wset);
$list_cnt = count($list);
--------------------
추가
2. /설치폴더/lib/apms.lib.php 파일의
apms_board_rows 메소드에 . 아래와 같이 추가 하시면됩니다.
for ($i=0; $row=sql_fetch_array($result); $i++) {
$tmp_write_table = $g5['write_prefix'] . $row['bo_table'];
$post = sql_fetch(" select * from $tmp_write_table where wr_id = '{$row['wr_id']}' ", false);
+ ///// 추가 부분 yu1026 파일이 없으면 통과
+ if ($arr['is_banner'] && $post['wr_file'] == 0) {
+ continue;
+ }
+ ///// 추가부분 끝.
$post['img_row'] = $arr['img_rows'];
$list[$i] = thema_widget_write_list($mode, $row['bo_table'], $post, $new, $thumb_w, $thumb_h, false, true);
if($thumb_w) {
if(empty($list[$i]['img']) && $arr['no_img']) {
$list[$i]['img'] = apms_thumbnail($arr['no_img'], $thumb_w, $thumb_h, false, true); // no-image
}
}
}
....
...
///// return 값을 아래와 같이 재 배열
//////////배열 새로 생성 yu1026
- return $list;
+ $nList = array();
+ foreach ($list as $val) {
+ $nList[] = $val;
+ }
+ return $nList;
----------------------------------------
위와 같이 하시면.
이미지가 없는 내용물은 안보여지게 됩니다.
다른 롤링 하는곳도 같이 이용하시면 됩니다.
1. 먼저 // $wset['no_img'] = $widget_url.'/img/no-img.jpg'; 부분 주석처리 해서 이미지 없음 출력되지 않도록 하고...
2. 그리고 아래처럼 한 번 필터링 해 주시는 부분 넣어 주셔도 됩니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | // 랭킹시작 $rank = ( $wset [ 'page' ] > 1) ? (( $wset [ 'page' ] - 1) * $wset [ 'rows' ] + 1) : 1; $tmp = array (); $k = 0; for ( $i =0; $i < $list_cnt ; $i ++) { if (! $list [ $i ][ 'img' ][ 'src' ]) continue ; //이미지 없으면 건너뜀 $tmp [ $k ] = $list [ $i ]; $k ++; } $list = $tmp ; // list로 전환 $lisc_cnt = count ( $list ); |