BOARD

문제 해결

그누보드5 메인 화면 특정 게시판 최신글 설정 및 노출 가이드

페이지 정보

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

본문

그누보드5 메인 화면 특정 게시판 최신글 설정 및 노출 가이드

그누보드5 메인 화면에 모든 게시판의 최신글이 무작위로 뜨거나 원하지 않는 형태일 때, 특정 게시판의 글만 골라 노출하도록 <code>latest()</code> 함수와 스킨을 조정하는 방법을 알아봅니다.

그누보드5 메인 페이지 최신글 코드 변경 방법

그누보드5 메인 화면(index.php)에서 모든 게시판이 자동으로 반복 출력되는 기본 최신글 코드를 대신하여, 원하는 특정 게시판만 지정하여 노출하려면 latest() 함수를 수정해야 합니다.

1. 수정 위치 확인

메인 화면 구성은 index.php 파일에서 이루어집니다. 최신글을 출력하는 위젯은 latest() 함수를 사용해 조립됩니다.

2. 최신글 함수 구조 및 변경

기본 코드에서 반복문 형태($row['bo_table'] 등)로 전체 게시판이 호출되도록 설정되어 있는 부분을, 원하는 특정 게시판의 아이디(bo_table 값)를 직접 입력하는 코드로 변경합니다.

  • 기본 함수 문법: latest(스킨, 게시판아이디, 출력라인, 글자수)
  • 테마 스킨 사용 시: theme/스킨명 형식으로 지정

코드 적용 예시:

<?php
// 자유게시판의 최신글 5건을 기본 스킨으로 출력할 때
echo latest("basic", "free", 5, 25);

// 테마 내 스킨을 사용하여 갤러리 게시판의 최신글 4건을 출력할 때
echo latest("theme/basic", "gallery", 4, 36);
?>

3. 주의사항 및 다음 행동

  • 초보 운영자가 자주 하는 실수 중 하나로, $row['bo_table'] 변수 자리에 따옴표 없이 게시판 아이디를 넣거나 문법을 잘못 지정하면 오류가 발생할 수 있으므로 관리자 페이지에서 확인한 정확한 게시판 테이블명(아이디)을 문자열 형태로 입력해야 합니다.
  • 코드를 수정하기 전에 원본 index.php 파일을 백업하여 언제든 되돌릴 수 있도록 준비합니다.

최신글 본문 내용 및 글자수 출력 수정 방법

그누보드5 메인 화면의 최신글에서 제목이 아니라 본문 내용 전체나 특정 글자수까지만 출력되도록 수정하려면, 사용 중인 최신글 스킨 폴더 내의 파일을 수정해야 합니다.

1. 수정할 스킨 파일 위치 확인

  • 최신글 스킨 파일은 기본적으로 /skin/latest/스킨명/latest.skin.php 경로 또는 테마를 사용하는 경우 /theme/테마명/skin/latest/스킨명/latest.skin.php 경로에 위치합니다.
  • 메인 페이지(index.php) 등에서 호출하는 latest() 함수의 첫 번째 인자로 지정된 스킨 경로 및 이름을 확인하여 수정할 latest.skin.php 파일을 찾습니다.

2. 본문 내용 출력을 위한 변수 및 함수 확인

  • 최신글 스킨 파일 내에서 본문 내용을 출력하거나 글자수를 제한하는 방식은 사용하려는 목적에 따라 내부 코드를 조정해야 합니다.
  • 본문 내용을 그대로 모두 출력하는 경우에는 $list[$i]['wr_content'] 변수를 활용할 수 있습니다.
  • 지정된 글자 수만큼 본문 내용을 출력하려면 cut_str(strip_tags($list[$i]['wr_content']), 글자수, "...") 형태의 함수 조합을 스킨 파일 내에서 확인하고 숫자를 수정할 수 있습니다.

3. 수정 전 주의사항

  • 파일 수정 전에는 대상 latest.skin.php 원본 파일을 반드시 백업해두어야 안전합니다.

그누보드5 특정 게시물 메인 최신글 출력 설정 방법

관리자가 여분필드(wr_1 등)를 활용하여 특정 게시물만 메인 화면 최신글로 노출하려면, 기본 latest() 함수를 수정하거나 별도의 커스텀 함수를 생성해야 합니다.

1. 구현 원리

기본 latest() 함수는 게시판의 최신 글을 순서대로 가져오지만, 특정 게시물만 선별하려면 데이터베이스 쿼리 조건(WHERE 절)에 여분필드 값을 추가하는 로직이 필요합니다.

2. 적용 절차

  1. 함수 복사 및 생성: lib/latest.lib.php 파일을 열어 기존 latest 함수를 복사한 뒤, latest_main과 같이 새로운 함수명을 지정하여 하단에 추가합니다.
  2. 쿼리 수정: 새로 만든 함수 내부의 SQL 쿼리 문($sql = " select * from {$tmp_write_table} where wr_is_comment = 0 and wr_1 = '1' order by wr_id desc limit 0, {$rows} ";)과 같이 특정 여분필드(wr_1) 값이 일치하는 게시물만 추출하도록 조건을 추가합니다.
  3. 메인 적용: index.php 등 메인 화면 파일에서 새로 만든 latest_main() 함수를 호출하여 사용합니다.
  4. 게시판 설정: 게시판 글쓰기 스킨(write.skin.php)에 wr_1 값을 체크박스로 입력받는 코드를 추가해야 관리자가 메인 노출 여부를 선택할 수 있습니다.

3. 주의사항

  • 그누보드 버전마다 latest.lib.php의 함수 구조가 다를 수 있으므로, 원본 함수를 직접 수정하기보다 복사하여 별도 함수로 만드는 것이 안전합니다.
  • 여분필드 활용 시 게시판 글 작성 화면에서 해당 필드에 특정 값을 입력(체크)해야 최신글로 추출됩니다.

상황별 가이드

내 상황우선할 판단다음 행동
메인 화면(index.php)에 모든 게시판이 반복 출력되어 특정 게시판만 골라내고 싶을 때기본 반복문 코드 대신 latest() 함수에 정확한 게시판 아이디(bo_table) 직접 입력index.php 파일에서 $row['bo_table'] 부분을 원하는 게시판 ID 문자열로 수정
특정 게시판의 최신글 디자인이나 노출 형태(예: 제목 대신 본문, 썸네일 등)를 변경하고 싶을 때최신글 스킨 폴더 내 전용 파일 수정 필요/skin/latest/스킨명/latest.skin.php 또는 테마 경로의 해당 파일을 열어 출력 변수 변경

실전 FAQ

Q. latest() 함수 사용 시 $row['bo_table'] 대신 게시판 아이디를 직접 넣었더니 출력이 안 되거나 오류가 발생합니다.

  • 원인 및 예외: 게시판 아이디를 입력할 때 따옴표('' 또는 "")를 누락했거나, 관리자 페이지에서 생성한 실제 테이블 아이디(bo_table)와 코드에 입력한 값이 일치하지 않는 경우 발생합니다.
  • 대안: 관리자 페이지의 게시판 관리 메뉴에서 정확한 테이블명을 다시 확인하고, echo latest("basic", "확인된아이디", 5, 25);와 같이 문자열 형태로 정확히 감싸서 입력해야 합니다.

함께 보면 좋은 글

참고자료

기타 참고자료

댓글목록

등록된 댓글이 없습니다.