채택완료

여러게시판에서 이미지 불러오는 최신글 스킨

홈페이지 메인페이지에 통합이미지 최신글을 적용하고 싶습니다.

여러개의 갤러리 게시판 메뉴를 통합해서 새 이미지가 올라올때 마다

홈페이지 메인에서 보여지게 하고 싶습니다.

원하는 게시판만 선택해서 갤러리 최신글 형태로 불러오는 스킨이나 

방법이 있을까요?

아니면 [전체검색사용] 허용으로 되어있는 전체게시판을 대상으로

불러지는 갤러리 최신글 스킨으로 적용해도 좋을 것 같습니다.

답변 1개 / 댓글 3개

채택된 답변
+20 포인트

1. /extend/latest.extend.php 파일 생성

Copy
<?php
if (!defined('_GNUBOARD_')) exit;

function latest_multi($skin_dir='', $bo_tables='', $rows=10, $subject_len=40, $cache_time=1, $options='')
{
   global $g5;

   // 스킨 설정
   if (!$skin_dir) $skin_dir = 'pic_list';
   $latest_skin_path = G5_IS_MOBILE ? G5_MOBILE_PATH.'/'.G5_SKIN_DIR.'/latest/'.$skin_dir : G5_SKIN_PATH.'/latest/'.$skin_dir;
   $latest_skin_url = G5_IS_MOBILE ? G5_MOBILE_URL.'/'.G5_SKIN_DIR.'/latest/'.$skin_dir : G5_SKIN_URL.'/latest/'.$skin_dir;

   // 게시물 추출
   $sql = " select a.*, b.* 
            from {$g5['board_new_table']} a
            left join {$g5['board_table']} b on (a.bo_table = b.bo_table)
            where find_in_set(a.bo_table, '{$bo_tables}')
              and a.wr_id = a.wr_parent
            order by a.bn_id desc ";
   $result = sql_query($sql);

   $list = array();
   $bo_subject = '';
   $bo_table = '';
   $list_count = 0;

   for ($i=0; $row=sql_fetch_array($result); $i++) {
       // 게시글 정보 가져오기
       $tmp_write_table = $g5['write_prefix'].$row['bo_table'];
       $row2 = sql_fetch(" select * from $tmp_write_table where wr_id = '{$row['wr_id']}' ");
       
       // 첨부파일이 있는 경우만 처리
       if($row2 && $row2['wr_file'] > 0) {
           $list[$list_count] = get_list($row2, $row, $latest_skin_url, $subject_len);
           $list[$list_count]['bo_subject'] = $row['bo_subject']; 
           $list[$list_count]['bo_table'] = $row['bo_table'];

           // 첫 번째 게시판 정보 저장
           if($list_count == 0) {
               $bo_subject = $row['bo_subject'];
               $bo_table = $row['bo_table'];
           }

           $list_count++;
           if($list_count == $rows) break;
       }
   }

   // 썸네일 크기
   $thumb_width = 297;
   $thumb_height = 212;
   if($options) {
       list($thumb_width, $thumb_height) = explode(',', $options);
   }

   ob_start();
   include $latest_skin_path.'/latest.skin.php';
   $content = ob_get_contents();
   ob_end_clean();

   return $content;
}

2. 메인페이지에서 다음과 같이 사용

Copy
echo latest_multi('pic_list', 'gallery,photo,portfolio', 8, 25, 1, '400,300');


3. pic_list 스킨 수정. ex) 게시판명은 $list[$i]['bo_subject']

답변에 대한 댓글 3개

네 상세한 답변 감사합니다. 혹시 extend 파일 내용을 다른 파일에 넣을수도 있을까요? extend 파일에 넣으면 전체에 적용되서 종종 충돌이 날때가 있어서요.

저렇게 함수로 호출하고, 스킨은 원하는 최신글 스킨으로 적용하면 되는거죠?
실제 함수를 사용하는 파일에 넣어도 됩니다.

스킨은 다른 것을 사용해도 됩니다.
네~ 답변 감사 드립니다.^^

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