최신글 스킨 제작 3 - 기초 예제 (웹진 형태)
첨부 이미지가 함께 출력되는 웹진 형태의 최신글 스킨을 만들어보겠습니다.
썸네일과 각 항목 기본 출력 방법은 이전 강좌를 참고하세요.
div+css 구조에 익숙하지 않은 분들을 위해 테이블 형태로 설명하겠습니다.
기본 구조만 이해하신 다음에 코드도 더 간단하게 하고 원하는 방법으로 다양하게 만들면 됩니다.
1. 우선 latest.skin.php 파일 상단에 아래 내용을 넣습니다.
목록 형태의 스킨과 차이점은 빨간색 부분인데 썸네일 생성을 위해 필요한 부분으로 반드시 있어야 합니다.
<?php
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
include_once(G5_LIB_PATH.'/thumbnail.lib.php');
$thumb_width=120; //썸네일 가로사이즈
$thumb_height=100; //썸네일 세로사이즈
// add_stylesheet('css 구문', 출력순서); 숫자가 작을 수록 먼저 출력됨
add_stylesheet('<link rel="stylesheet" href="'.$latest_skin_url.'/style.css">', 0);
?>
2. 그리고 제목, 내용, 썸네일 등 출력 부분을 넣어줍니다.
기본 형태는 다음과 같습니다.
<table>
<?php for ($i=0; $i<count($list); $i++) {
썸네일 생성 코드 추가 할 부분
?>
<tr>
<td>썸네일 이미지</td>
<td>게시물 제목, 내용 출력</td>
</tr>
<?php } ?>
</table>
목록 형태의 스킨에서 썸네일 생성을 위한 코드가 추가되었고 이미지가 들어갈 <td> 칸을 하나 더 추가했습니다.
참고해서 전체 소스를 작성해보면 이렇게 되겠죠.
<table width="350" border="0" cellspacing="0" cellpadding="0">
<?php for ($i=0; $i<count($list); $i++) {
$thumb = get_list_thumbnail($bo_table, $list[$i]['wr_id'], $thumb_width, $thumb_height);
if($thumb['src']) {
$img_content = '<img src="'.$thumb['src'].'" alt="'.$thumb['alt'].'" width="'.$thumb_width.'" height="'.$thumb_height.'">';
} else {
$img_content = '<img src="'.$latest_skin_url.'/img/noimage.gif" width="'.$thumb_width.'" height="'.$thumb_height.'">';
}
?>
<tr>
<td width="<?php echo $thumb_width ?>">
<a href="<?php echo $list[$i]['href'] ?>"><?php echo $img_content ?></a>
</td>
<td valign="top" style="padding:3px 10px">
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td>
<?php
echo "<a href=\"".$list[$i]['href']."\">";
echo "<strong>".$list[$i]['subject']."</strong>";
echo "</a>";
if (isset($list[$i]['icon_new'])) echo " " . $list[$i]['icon_new'];
?>
</td>
</tr>
<tr>
<td style="padding-top:8px;line-height:1.4em">
<?php echo cut_str(strip_tags($list[$i]['wr_content']), 110, "..."); ?>
</td>
</tr>
</table>
</td>
<tr>
<td colspan="2" height="10"></td>
</tr>
</tr>
<?php } ?>
<?php if (count($list) == 0) { //게시물이 없을 때 ?>
<tr><td height="50" colspan="2">등록된 게시물이 없습니다.</td></tr>
<?php } ?>
</table>
목록 형태의 예제 스킨과 기본 구조는 똑같고 이미지가 들어갈 칸을 위해 <td>를 하나 더 추가했고
게시판 타이틀은 없애고 제목 출력 부분에서 필요 없는 코드는 없애고 제목, new 아이콘만 들어가게 해놨습니다.
타이틀이나 다른 부분들이 필요하다면 기본 스킨이나 이전 강좌 참고해서 넣어주면 됩니다.
width="<?php echo $thumb_width ?>" 파란색 부분은 이미지 칸 가로 사이즈 조절 부분인데
처음 상단에 보면 이렇게 썸네일 가로 사이즈를 정하는 부분이 있었죠.
$thumb_width=120; //썸네일 가로사이즈
이미지 사이즈를 변경할 일이 있을 때 저 수치가 자동으로 적용되게끔 해준 겁니다.
물론 상황에 따라 수치를 직접 넣어주셔도 됩니다.
<td width="120">
본문 내용 출력 부분은 글자 수 110자리 까지만 출력되게 해놨습니다.
<?php echo cut_str(strip_tags($list[$i]['wr_content']), 110, "..."); ?>
작성날짜, 작성일, 분류 등 필요한 항목이 더 있다면 이전에 설명한 것처럼 여기에 더 추가해서 만들면 됩니다.
예제에서 설명한 코드 그대로 만들면 이런 모양으로 출력될 겁니다.