BOARD

강좌·기초

그누보드5 최신글 스킨 적용 및 함수 사용법

페이지 정보

profile_image
작성자 최고관리자
댓글 0건 조회 25회 작성일 26-09-30 17:30

본문

그누보드5 최신글 스킨 적용 및 함수 사용법

그누보드5에서 원하는 위치에 최신글 스킨을 출력하는 방법과 최신글 함수(latest) 사용법을 안내합니다.

최신글 라이브러리 파일 포함 경로

그누보드5에서 최신글 함수(latest())를 사용하기 위해서는 먼저 최신글 관련 라이브러리 파일을 불러와야 합니다.

  • 포함해야 할 파일: latest.lib.php
  • 경로 지정 방식: include_once(G5_LIB_PATH.'/latest.lib.php');

그누보드 원본 환경에서는 주로 상단 공통 파일인 head.php에 포함되어 있으나, 독립된 페이지나 커스텀 위치에서 최신글 함수를 단독으로 호출할 때는 해당 라이브러리 파일이 로드되어 있는지 확인하고 필요 시 경로에 맞춰 직접 포함해야 합니다.

latest() 함수 인자 구조와 사용 방법

그누보드5에서 최신글을 출력하기 위해 사용하는 latest() 함수의 기본 인자 구조와 지정 방법은 다음과 같습니다.

사용 방법 및 인자 순서

latest(스킨명, 게시판아이디, 출력라인, 글자수);
  • 스킨명: 사용할 최신글 스킨 폴더명을 지정합니다. 예를 들어 기본 스킨은 "basic"과 같이 지정하며, 테마 내의 스킨을 사용할 때는 "theme/basic"과 같이 지정합니다.
  • 게시판아이디: 최신글을 추출할 대상 게시판의 ID(예: "notice", "free")를 지정합니다.
  • 출력라인: 메인 페이지 등에 출력할 게시물의 개수(예: 숫자 5)를 지정합니다. 출력 개수를 줄이거나 늘리려면 이 숫자를 변경하면 됩니다.
  • 글자수: 출력되는 제목의 최대 글자수(예: 숫자 25)를 지정합니다.

코드 적용 예시

<?php echo latest("basic", "notice", 5, 25);?>

테마 최신글 스킨 경로 설정 방법

그누보드5에서 기본 스킨 경로가 아닌 현재 사용 중인 테마 내에 위치한 최신글 스킨을 지정하려면, 스킨 이름 앞에 theme/ 접두사를 붙여야 합니다.

적용 예시

latest() 함수 내의 첫 번째 인수인 스킨명 자리에 theme/ 뒤에 테마 내 스킨 폴더명을 이어서 작성합니다.

<?php echo latest("theme/basic", "notice", 5, 25);?>
  • theme/basic: 루트의 /skin/latest/ 대신 활성화된 테마 폴더 내부의 최신글 스킨([테마경로]/skin/latest/basic/)을 참조합니다.
  • notice: 추출할 게시판 ID입니다.
  • 5: 출력할 게시물 수(출력라인)입니다.
  • 25: 출력할 제목의 글자수입니다.

테마 내 스킨을 불러올 때 경로 설정을 확인하고 위와 같이 입력하면 기본 스킨 대신 테마 전용 스킨을 오류 없이 출력할 수 있습니다.

메인 페이지 최신글 개별 배치 방법

그누보드 원본 index 파일은 게시판을 생성하면 자동으로 최신글 목록이 추가되도록 긴 코드로 구성되어 있습니다. 이 형태를 그대로 두면 게시판이 계속 반복 출력되므로, 특정 게시판만 개별적으로 배치하려면 기존의 자동 반복 코드를 전부 삭제하고 최신글 함수를 직접 추가해야 합니다.

1. 자동 반복 코드 제거

index.php 파일에서 아래와 같이 복잡하게 반복을 처리하는 원본 코드를 하나도 빠짐없이 전부 삭제합니다.

<h2 class="sound_only">최신글</h2>
<?php
$sql = " select bo_table from `{$g5['board_table']}` a left join `{$g5['group_table']}` b on (a.gr_id=b.gr_id) where a.bo_device <> 'mobile' ";
if(!$is_admin) $sql.= " and a.bo_use_cert = '' ";
$sql.= " order by b.gr_order, a.bo_order ";
$result = sql_query($sql);
for ($i=0; $row=sql_fetch_array($result); $i++) {
 if ($i%2==1) $lt_style = "margin-left:20px";
 else $lt_style = "";
?>
<div style="float:left;<?php echo $lt_style?>">
<?php
echo latest("basic", $row['bo_table'], 5, 25);
?>
</div>
<?php }?>

2. 개별 최신글 함수 직접 추가

원하는 위치에 출력하고자 하는 게시판 아이디와 스킨명을 지정하여 코드를 직접 입력합니다.

<div style="float:left;">
 <?php echo latest("basic", "notice", 5, 25);?>
</div>
<div style="float:left;margin-left:20px">
 <?php echo latest("basic", "free", 5, 25);?>
</div>

3. 주의사항 및 다음 행동

  • $row['bo_table'] 대신 원하는 게시판 아이디(예: notice, free)를 직접 입력해야 개별 배치가 정상적으로 작동합니다.
  • 최신글 함수를 사용하기 전에 상단에 최신글 함수 파일이 포함되어 있는지 확인합니다.
    include_once(G5_LIB_PATH.'/latest.lib.php');

최신글 출력 개수 및 제목 글자수 조절 방법

그누보드5에서 최신글의 표시 줄 수(출력 개수)와 제목의 글자 길이를 조절하려면 latest() 함수 안의 전달인자(숫자)를 변경해야 합니다.

함수 구문 및 인자 의미

latest() 함수는 다음과 같은 구조로 사용합니다.

latest(스킨명, 게시판아이디, 출력라인, 글자수);
  • 출력라인 (세 번째 인자): 최신글 스킨에 게시물을 몇 행(개) 가져올지 지정하는 숫자입니다. 이 숫자를 줄이거나 늘려서 화면에 표시되는 게시물 개수를 조절할 수 있습니다.
  • 글자수 (네 번째 인자): 게시글 제목의 최대 글자 길이를 지정하는 부분입니다. 지정한 글자수를 초과하면 초과된 글자부터는 ...으로 표시됩니다.

설정 예시

예를 들어 notice 게시판을 basic 스킨으로 출력하면서 최신글 개수를 5개, 제목 글자수를 25자로 지정하는 코드는 다음과 같습니다.

<?php echo latest("basic", "notice", 5, 25);?>

여기서 개수나 길이를 변경하고 싶다면 코드 내의 숫자 5(출력라인)와 25(글자수)를 원하는 값으로 수정하면 됩니다.

상황별 최신글 스킨 적용 및 배치 가이드

내 상황우선할 판단다음 행동
메인 페이지에 원하는 특정 게시판의 최신글을 각각 다르게 출력하고 싶음원본 index 파일의 자동 반복 루프 코드를 개별 호출 코드로 교체복잡한 반복문을 삭제하고 <?php echo latest("스킨명", "게시판아이디", 출력라인, 글자수);?> 코드를 원하는 위치에 각각 직접 삽입
테마 전용 폴더에 있는 최신글 스킨을 지정해서 출력하고 싶음루트 경로 대신 테마 전용 스킨 경로 접두사 사용 여부 확인스킨명 인자에 theme/ 접두사를 붙여 "theme/스킨명" 형태로 지정

실전 FAQ

Q. 최신글 스킨을 지정했는데 함수 실행 시 파일이나 경로를 찾지 못한다는 오류(Warning)가 발생합니다.

  • 예외 및 대안: theme/ 접두사를 사용해 테마 내 스킨을 호출할 때 해당 스킨 폴더가 실제로 지정한 테마 경로 내([테마경로]/skin/latest/[스킨명]/)에 업로드되어 있는지 확인해야 합니다. 파일이 누락되었거나 경로 오타가 있을 경우 발생하므로 폴더 위치와 이름을 재확인하세요.

Q. $row['bo_table'] 대신 게시판 아이디를 직접 넣었더니 최신글이 계속 반복해서 출력됩니다.

  • 막히는 지점: 그누보드 원본 index 파일은 모든 게시판을 자동으로 순회하며 출력하는 for 문 루프 구조를 포함하고 있습니다. 이 전체 반복 코드를 남겨둔 채 내부 인자만 바꾸면 루프 안에서 동일한 처리가 반복됩니다. 특정 게시판만 독립적으로 출력하려면 상단의 반복문 코드 블록을 통째로 삭제하고 단건 출력 코드를 개별 배치해야 합니다.

함께 보면 좋은 글

참고자료

기타 참고자료

댓글목록

등록된 댓글이 없습니다.