<?xml version="1.0" encoding="utf-8" ?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
<channel>
<title>그누엑스퍼트 &amp;gt; 커뮤니티 &amp;gt; 테마 플러그인</title>
<link>https://gnuexport.com/theme_plugin</link>
<language>ko</language>
<description>테마 플러그인 (2026-07-15 21:46:50)</description>

<item>
<title>사이트 태그라인 &amp; 파비콘 (site_tagline_favicon)</title>
<link>https://gnuexport.com/theme_plugin/5</link>
<description><![CDATA[<h2>사이트 태그라인 &amp; 파비콘 (site_tagline_favicon)</h2>
<p>그누보드5 기본환경설정 화면에 <b>사이트 태그라인</b>(meta description)과 <b>파비콘</b> 업로드 항목을 추가하는 확장 스크립트입니다. 설정한 값은 프론트엔드 &lt;head&gt;에 <code>&lt;meta name="description"&gt;</code>과 <code>&lt;link rel="icon"&gt;</code>으로 자동 출력됩니다.</p>
<h3>주요 기능</h3>
<ul><li>기본환경설정 화면에 "사이트 태그라인" 텍스트 입력란 추가</li><li>기본환경설정 화면에 파비콘 업로드 입력란 추가(.ico/.png/.gif/.jpg/.svg 지원, 확장자+MIME 검증)</li><li>저장값은 <code>data/site_meta.json</code>에 보관(그누보드 코어 DB 스키마 변경 없이 별도 파일로 관리)</li><li>프론트엔드 모든 페이지 &lt;head&gt;에 태그라인(meta description)과 파비콘 링크 자동 삽입</li></ul>
<h3>설치 방법 (공통, 모든 테마)</h3>
<ol><li>첨부된 zip을 그누보드 루트에 압축 해제 (결과: <code>extend/site_tagline_favicon.extend.php</code>)</li><li><code>adm/config_form.php</code>에서 "네이버 신디케이션 제외게시판" 입력행 바로 다음(해당 탭의 <code>&lt;/tbody&gt;</code> 직전)에 아래 한 줄을 추가합니다. 이 훅이 없으면 관리자 화면에 입력란 자체가 보이지 않습니다.<br /><pre style="background:#f8f8f8;padding:10px;">&lt;?php run_event('admin_config_form_basic_field'); ?&gt;</pre></li></ol>
<h3>PORTAL 테마가 아닌 다른 테마에서 사용할 경우 추가 작업</h3>
<p>이 확장은 그누보드 코어의 <code>pre_head</code> 이벤트에 훅을 겁니다. 코어 <b>root <code>head.php</code></b>는 이 이벤트를 항상 발생시키지만, 커스텀 테마를 쓰는 사이트는 대부분 <code>index.php</code>/<code>board.php</code> 등이 root <code>head.php</code>를 거치지 않고 <b>테마 자신의 <code>head.php</code></b>(또는 core <code>head.sub.php</code>)를 직접 호출하는 구조입니다. 이 경우 <code>pre_head</code>가 한 번도 발생하지 않아 meta description·파비콘이 출력되지 않습니다.</p>
<p><b>확인 방법:</b> 사용 중인 테마의 <code>head.php</code> 파일을 열어 <code>run_event('pre_head')</code> 호출이 있는지 확인하세요. 없다면 파일 맨 위(<code>_GNUBOARD_</code> 체크 바로 다음)에 아래 한 줄을 추가하면 됩니다.</p>
<pre style="background:#f8f8f8;padding:10px;">run_event('pre_head');</pre>
<h3>(선택) 메인 페이지 브라우저 탭 타이틀에 태그라인 노출하기</h3>
<p>meta description과 별개로, 홈페이지의 브라우저 탭 제목에도 태그라인을 붙이고 싶다면 테마가 쓰는 <code>head.sub.php</code>(테마 자체 파일이 있으면 그 파일, 없으면 core <code>head.sub.php</code>)에서 페이지 타이틀을 조합하는 부분을 찾아 아래처럼 수정하세요. 보통 <code>if (!isset($g5['title']))</code> 분기(= 메인 페이지일 때만 해당) 안에 추가하면 됩니다.</p>
<pre style="background:#f8f8f8;padding:10px;white-space:pre-wrap;">if (!isset($g5['title'])) {
    $g5['title'] = $config['cf_title'];
    $g5_head_title = $g5['title'];

    // 메인 페이지: 사이트 태그라인이 설정되어 있으면 브라우저 타이틀에 함께 노출
    if (function_exists('stf_get_meta')) {
        $g5_tagline = stf_get_meta()['tagline'] ?? '';
        if ($g5_tagline !== '') {
            $g5_head_title = implode(' - ', array_filter([$g5_head_title, $g5_tagline]));
        }
    }
} else {
    $g5_head_title = implode(' | ', array_filter([$g5['title'], $config['cf_title']]));
}</pre>
<p style="color:#888;font-size:13px;">※ 이렇게 하면 홈페이지는 <b>사이트명 - 태그라인</b> 형식으로, 다른 하위 페이지(게시판 등)는 기존처럼 <b>페이지명 | 사이트명</b> 형식 그대로 유지됩니다. <code>$g5['title']</code> 변수 자체가 아니라 &lt;title&gt; 태그 전용 변수만 바꾸는 것이라 접속자 현재 위치 기록 등 다른 기능에는 영향이 없습니다.</p>]]></description>
<dc:creator>최고관리자</dc:creator>
<dc:date>2026-07-15T21:46:50+09:00</dc:date>
</item>


<item>
<title>출석부 플러그인 (attendance)</title>
<link>https://gnuexport.com/theme_plugin/4</link>
<description><![CDATA[<h2>출석부 플러그인 (attendance)</h2>
<p>회원이 매일 출석체크를 하면 기본 포인트가 적립되고, 연속 출석 시 보너스 포인트가 추가로 지급되는 플러그인입니다. 본인의 최근 출석 내역과 전체 회원 출석 랭킹(TOP 10)도 함께 볼 수 있습니다. <code>plugin/</code> 폴더(화면)와 <code>extend/</code> 폴더(포인트 지급 로직 + 자체 DB 테이블 생성)가 함께 필요한 구성입니다.</p>
<h3>주요 기능</h3>
<ul><li>오늘의 출석체크 버튼 — 1일 1회, 이미 출석했으면 완료 배지로 표시</li><li>연속 출석 일수 계산 및 보너스 지급(어제도 출석했는지 확인)</li><li>나의 최근 출석 내역(적립 포인트 포함), 누적 출석일수 표시</li><li>전체 회원 출석 랭킹 TOP 10</li><li>관리자 설정 화면 — 기본 출석 포인트 / 연속 출석 보너스 포인트를 직접 조정</li></ul>
<h3>구성 파일</h3>
<ul><li><code>plugin/attendance/index.php</code> — 회원용 출석체크 화면</li><li><code>plugin/attendance/admin.php</code> — 관리자 설정(기본/보너스 포인트) 및 현황</li><li><code>plugin/attendance/ajax.process.php</code> — 출석체크 처리 AJAX 엔드포인트</li><li><code>extend/attendance.extend.php</code> — 출석 기록/보너스 계산 로직, 최초 로드 시 <code>attendance_log</code>/<code>attendance_cfg</code> 테이블 자동 생성</li></ul>
<h3>설치 방법</h3>
<ol><li>첨부된 zip을 그누보드 루트에 압축 해제 (내부 경로가 <code>plugin/attendance/</code>, <code>extend/attendance.extend.php</code>로 그대로 들어갑니다)</li><li><code>extend/attendance.extend.php</code>가 첫 로드 시 필요한 DB 테이블을 자동 생성하므로 별도 SQL 실행은 필요 없습니다</li><li>메뉴관리에서 원하는 메뉴를 <code>/plugin/attendance/index.php</code>로 연결</li><li>관리자로 <code>/plugin/attendance/admin.php</code> 접속 후 기본 포인트 / 연속 보너스 포인트 설정</li></ol>]]></description>
<dc:creator>최고관리자</dc:creator>
<dc:date>2026-07-15T21:13:31+09:00</dc:date>
</item>


<item>
<title>럭키라이팅 (lucky_writing.extend.php)</title>
<link>https://gnuexport.com/theme_plugin/3</link>
<description><![CDATA[<h2>럭키라이팅 (lucky_writing.extend.php)</h2>
<p>회원이 글을 작성할 때마다 일정 확률로 포인트를 즉석에서 지급하고, "럭키라이팅"이라는 봇 이름으로 당첨 축하 댓글을 자동으로 남기는 확장(extend) 스크립트입니다. 그누보드5의 <code>plugin/</code> 디렉터리형 플러그인이 아니라 <code>extend/</code> 폴더에 파일 하나만 넣으면 동작하는 훅(hook) 방식입니다.</p>
<h3>주요 기능</h3>
<ul><li>글쓰기 완료 시(<code>write_update_after</code> 이벤트) 지정한 확률로 당첨 판정</li><li>당첨 시 최소~최대 범위의 랜덤 포인트를 <code>insert_point()</code>로 즉시 지급</li><li>당첨 사실을 봇 이름으로 해당 글에 자동 댓글로 남김</li><li>봇 댓글의 프로필 이미지를 지정한 URL로 표시(<code>html_end</code> 이벤트로 주입되는 JS가 글보기 페이지에서 봇 이름을 찾아 이미지 삽입/교체)</li></ul>
<h3>설정 항목 (파일 상단)</h3>
<ul><li><code>LUCKY_MIN_POINT</code> / <code>LUCKY_MAX_POINT</code> — 지급 포인트 범위</li><li><code>LUCKY_PROBABILITY</code> — 당첨 확률(%)</li><li><code>LUCKY_BOT_NAME</code> — 댓글을 작성할 봇 이름</li><li><code>LUCKY_AVATAR_URL</code> — 봇 프로필 이미지 URL</li></ul>
<h3>설치 방법</h3>
<ol><li>첨부된 zip을 <code>/extend/</code> 경로에 압축 해제 (결과: <code>/extend/lucky_writing.extend.php</code>)</li><li>파일 상단의 <code>LUCKY_*</code> 상수 값을 원하는 대로 조정</li><li>별도 DB 테이블이나 관리자 설정 화면은 없으며, 파일을 넣는 즉시 모든 게시판에 적용됩니다</li></ol>
<p style="color:#888;font-size:13px;">※ extend 폴더의 파일은 사이트 전역에 적용되므로, 특정 게시판에만 적용하고 싶다면 함수 내부에 <code>bo_table</code> 조건을 추가해야 합니다.</p>]]></description>
<dc:creator>최고관리자</dc:creator>
<dc:date>2026-07-15T21:10:27+09:00</dc:date>
</item>


<item>
<title>포인트 충전 플러그인 (point-charging)</title>
<link>https://gnuexport.com/theme_plugin/2</link>
<description><![CDATA[<h2>포인트 충전 플러그인 (point-charging)</h2>
<p>회원이 무통장 입금으로 포인트를 충전 신청하고, 관리자가 입금을 확인하면 즉시 포인트가 지급되는 플러그인입니다.</p>
<h3>주요 기능</h3>
<ul><li>회원용 충전 화면 — 금액 직접입력/±버튼/빠른선택 칩, 무통장 입금 선택, 입금자명 입력, 본인 신청 내역 확인</li><li>관리자 설정 팝업 — 무통장 계좌 정보(은행명/계좌번호/예금주/안내문구) 저장, 전체 충전 신청 내역 조회</li><li>입금확인 처리 시 <code>insert_point()</code>로 실제 포인트 즉시 지급, 대기중 신청은 취소도 가능</li><li>중복 지급 방지: 상태 전이 조건부 UPDATE + <code>insert_point()</code>의 rel_table/rel_id/rel_action 내장 dedup 이중 안전장치</li><li>관리자(super) 로그인 시 충전 페이지 우측 상단에 톱니바퀴 버튼으로 설정 팝업 진입</li></ul>
<h3>설치 방법</h3>
<ol><li>첨부된 zip을 <code>/plugin/</code> 경로에 압축 해제 (결과: <code>/plugin/point-charging/</code>)</li><li>DB에 <code>g5_point_charge</code> 테이블 생성 (충전 신청/상태 기록용)</li><li>메뉴관리에서 "포인트 충전" 메뉴를 <code>/plugin/point-charging/index.php</code>로 연결</li><li>최고관리자로 접속 후 충전 페이지 우측 상단 톱니바퀴 → 무통장 계좌 정보 입력</li></ol>
<p style="color:#888;font-size:13px;">※ 첨부파일에는 실제 저장된 계좌 정보(data/settings.json)는 포함되어 있지 않습니다. 설치 후 관리자 설정에서 새로 입력해야 합니다.</p>]]></description>
<dc:creator>최고관리자</dc:creator>
<dc:date>2026-07-15T21:04:54+09:00</dc:date>
</item>


<item>
<title>다중 상단 공지/광고 배너 플러그인</title>
<link>https://gnuexport.com/theme_plugin/1</link>
<description><![CDATA[<p>관리자 페이지에서 여러 개의 배너를 동시에 관리하고 디자인을 커스터마이징할 수 있는 기능의 플러그인입니다.</p>]]></description>
<dc:creator>최고관리자</dc:creator>
<dc:date>2026-07-15T20:14:04+09:00</dc:date>
</item>

</channel>
</rss>
