채택완료

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

2024-11-26 (화) 17:27:55 1,559

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

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

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

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

방법이 있을까요?

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

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

답변 1개 / 댓글 3개

채택된 답변
+20 포인트
2024-11-26 (화) 17:57:46

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 파일에 넣으면 전체에 적용되서 종종 충돌이 날때가 있어서요.

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

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

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