여러게시판에서 이미지 불러오는 최신글 스킨
본문
홈페이지 메인페이지에 통합이미지 최신글을 적용하고 싶습니다.
여러개의 갤러리 게시판 메뉴를 통합해서 새 이미지가 올라올때 마다
홈페이지 메인에서 보여지게 하고 싶습니다.
원하는 게시판만 선택해서 갤러리 최신글 형태로 불러오는 스킨이나
방법이 있을까요?
아니면 [전체검색사용] 허용으로 되어있는 전체게시판을 대상으로
불러지는 갤러리 최신글 스킨으로 적용해도 좋을 것 같습니다.
답변 1
1. /extend/latest.extend.php 파일 생성
<?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. 메인페이지에서 다음과 같이 사용
echo latest_multi('pic_list', 'gallery,photo,portfolio', 8, 25, 1, '400,300');
3. pic_list 스킨 수정. ex) 게시판명은 $list[$i]['bo_subject'] !-->!-->
답변을 작성하시기 전에 로그인 해주세요.