[G4] 전체게시판 RSS 생성하기 > 기술자료

본문 바로가기
사이트 내 전체검색

기술자료

그누보드 [G4] 전체게시판 RSS 생성하기

페이지 정보

댓글 0건 조회 848회 수정일 18-05-03 13:24

본문

네이버 웹마스터도구 에서 rss 등록을 할때 사용합니다.
아미나 rss 를 참고해서 만들었습니다.
전체 게시판을 대상으로 추출합니다.
유료강좌이며 비용은 99,000원 입니다.
그누보드4 가 설치된 폴더에 rss.php 로 저장합니다.
네이버 웹마스터도구에 등록할때 사용하면 편리합니다.

그누보드 설치위치가 http://test.com/gnuboard/  인경우에는
http://test.com/gnuboard4/rss.php  의 형식으로 사용하세요


1. utf-8 일때
<?php
// rss ver 1.1 by happyjung 2018-04-23
// please give feedbacks to happyjung.com

$g4_path = "./gnuboard4"; // common.php 의 상대 경로
include_once("$g4_path/common.php");

$sql = "select bo_table from ".$g4['board_table']." where bo_use_rss_view = '1' and bo_read_level = '1' and bo_table <> '' ";
$query=sql_query($sql);
for ($i=0; $row=sql_fetch_array($query); $i++) {
    $bo[$i] = $row['bo_table'];
}

if (!$i) {
    echo 'RSS 보기가 가능한 게시판이 없습니다.';
    exit;
}

// 아래에 사이트 설명문구를 넣으세요
$description = "";

if (!$description) {
    echo '사이트 설명문구를 넣으세요';
    exit;
}

// RSS 갯수
$rss_rows = $config['cf_page_rows'];

header('Content-type: text/xml');
header('Cache-Control: no-cache, must-revalidate');
header('Pragma: no-cache');

echo '<?xml version="1.0" encoding="utf-8" ?>'."\n";

$title = $config['cf_title'];

$base_URL = ($_SERVER['HTTPS'] == 'on') ? 'https://' : 'http://';
$base_URL .= ($_SERVER['SERVER_PORT'] != '80') ? $_SERVER['HTTP_HOST'] . ':' . $_SERVER['SERVER_PORT'] : $_SERVER['HTTP_HOST'];
?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
<channel>

<title><?php echo $title; ?></title>
<link><?php echo $base_URL; ?></link>
<description><?php echo $description; ?></description>
<language>ko</language>
    <?php
    $sql = "select bo_table from ".$g4['board_table']." where bo_read_level='1' and bo_use_search='1' order by bo_table asc";
    
    $tot = mysql_num_rows(sql_query($sql));
    if ($tot > 1) {
        
        $query = sql_query($sql);
        while($temp = sql_fetch_array($query)) {
            $bo_arr[] = $temp['bo_table'];
        }
        
        $i = 1;
        
        foreach($bo_arr as $bo) {
            
            // 게시글 추출
            $sql = "select wr_id,wr_subject,wr_content,wr_name from ".$g4['write_prefix'].$bo." where wr_is_comment='0' AND wr_option NOT LIKE '%secret%' order by wr_id DESC limit 0, $rss_rows ";
            $query=sql_query($sql);
            while($row = sql_fetch_array($query)) {
                // list of each article
                if (strstr($temp['wr_option'], 'html'))
                    $html = 1;
                else
                    $html = 0;
                    
                $temp = sql_fetch("select wr_last from ".$g4['write_prefix'].$bo." where wr_parent='".$row['wr_id']."' order by wr_id DESC limit 0, $rss_rows ", false);
                $lastmod = $temp['wr_last'];
                if(!$lastmod) {
                    $temp = sql_fetch("select * from ".$g4['write_prefix'].$bo." where wr_id='".$row['wr_id']."'");
                    $lastmod = $temp['wr_datetime'];
                }
                //$date = substr($date,0,10) . "T" . substr($date,11,8) . "+09:00";
                $date = date('r', strtotime($lastmod));
                
                $wr_subject = $row['wr_subject'];
                $wr_content = $row['wr_content'];
                $wr_name = $row['wr_name'];
                
                $wr_subject = strip_tags(preg_replace("/&(?!#?[a-z0-9]+;)/", "&amp;",$wr_subject));
                $wr_content = strip_tags(preg_replace("/&(?!#?[a-z0-9]+;)/", "&amp;",$wr_content));
                $wr_name = strip_tags(preg_replace("/&(?!#?[a-z0-9]+;)/", "&amp;",$wr_name));
                ?>

<item>
<title><?php echo $wr_subject; ?></title>
    <link><?php echo $base_URL . preg_replace("`\/[^/]*\.php$`i", "/", $_SERVER['PHP_SELF']); ?>bbs/board.php?bo_table=<?php echo $bo;?>&amp;wr_id=<?php echo $row['wr_id']; ?></link>
    <description><![CDATA[<?php echo $wr_content; ?>]]></description>
    <dc:creator><?php echo $wr_name; ?></dc:creator>
    <dc:date><?php echo $date ?></dc:date>
</item>
                <?php
            }
            $i++;
        }
    }
    
    // 쇼핑몰 사용할때
    /*if ($g4['g4_shop_default_table']) {
        $query = sql_query("select it_id, it_name, it_basic, it_time from ".$g4['g4_shop_item_table']." where it_use='1' order by it_time desc");
        while($row = sql_fetch_array($query)) {
            $html = 1;
            //$date = substr($date,0,10) . "T" . substr($date,11,8) . "+09:00";
            $date = date('r', strtotime($row['it_time']));
            ?>

  <item>
    <title><?php echo conv_content($row['it_name'], $html); ?></title>
    <link><?php echo g4_SHOP_URL ?>/item.php?it_id=<?php echo $row['it_id'];?></link>
    <description><![CDATA[<?php echo conv_content($row['it_basic'], $html) ?>]]></description>
    <dc:creator>Admin</dc:creator>
    <dc:date><?php echo $date ?></dc:date>
  </item>
            <?php
        }
    }*/
    ?>
</channel>
</rss>


2-1. euc-kr 일때
<?php
// rss ver 1.1 by happyjung 2018-04-23
// please give feedbacks to happyjung.com

$g4_path = "./gnuboard4"; // common.php 의 상대 경로
include_once("$g4_path/common.php");

// 아래에 사이트 설명문구를 넣으세요
$description = "";

if ($description=="") {
    echo '사이트 설명문구를 넣으세요';
    exit;
}

function convStr($str) {
    $dect_str = mb_detect_encoding($str, "UTF-8, EUC-KR");
    if ($dect_str != "EUC-KR") {
        $conv_result = iconv("UTF-8", "EUC-KR" ,$str);
    } else {
        $conv_result = iconv("EUC-KR", "UTF-8", $str);
    }
    return $conv_result;
}

$sql = "select bo_table from {$g4['board_table']} where bo_use_rss_view = '1' and bo_read_level = '1' and bo_table <> '' ";
$query=sql_query($sql);
for ($i=0; $row=sql_fetch_array($query); $i++) {
    $bo[$i] = $row['bo_table'];
}

if (!$i) {
    echo 'RSS 보기가 가능한 게시판이 없습니다.';
    exit;
}

// RSS 갯수
$rss_rows = $config['cf_page_rows'];

header('Content-type: text/xml');
header('Cache-Control: no-cache, must-revalidate');
header('Pragma: no-cache');

echo '<?xml version="1.0" encoding="euc-kr" ?>'."\n";

$title = $config['cf_title'];
$title = convStr($title);

$base_URL = ($_SERVER['HTTPS'] == 'on') ? 'https://' : 'http://';
$base_URL .= ($_SERVER['SERVER_PORT'] != '80') ? $_SERVER['HTTP_HOST'] . ':' . $_SERVER['SERVER_PORT'] : $_SERVER['HTTP_HOST'];
?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
<channel>

<title><?php echo $title; ?></title>
<link><?php echo $base_URL; ?></link>
<description><?php echo $description; ?></description>
<language>ko</language>
    <?php
    $sql = "select bo_table from {$g4['board_table']} where bo_read_level='1' and bo_use_search='1' order by bo_table asc";
    
    $tot = mysql_num_rows(sql_query($sql));
    if ($tot > 1) {
        
        $query = sql_query($sql);
        while($temp = sql_fetch_array($query)) {
            $bo_arr[] = $temp['bo_table'];
        }
        
        $i = 1;
        
        foreach($bo_arr as $bo) {
            
            // 게시글 추출
            $sql = "select wr_id,wr_subject,wr_content,wr_name from ".$g4['write_prefix'].$bo." where wr_is_comment='0' AND wr_option NOT LIKE '%secret%' order by wr_id DESC limit 0, $rss_rows ";
            $query=sql_query($sql);
            while($row = sql_fetch_array($query)) {
                // list of each article
                if (strstr($temp['wr_option'], 'html'))
                    $html = 1;
                else
                    $html = 0;
                    
                $temp = sql_fetch("select wr_last from ".$g4['write_prefix'].$bo." where wr_parent='{$row['wr_id']}' order by wr_id DESC limit 0, $rss_rows ", false);
                $lastmod = $temp['wr_last'];
                if(!$lastmod) {
                    $temp = sql_fetch("select * from ".$g4['write_prefix'].$bo." where wr_id='{$row['wr_id']}'");
                    $lastmod = $temp['wr_datetime'];
                }
                //$date = substr($date,0,10) . "T" . substr($date,11,8) . "+09:00";
                $date = date('r', strtotime($lastmod));
                
                $wr_subject = $row['wr_subject'];
                $wr_content = $row['wr_content'];
                $wr_name = $row['wr_name'];
                
                // euc-kr 을 utf-8로 인코딩
                $wr_subject = convStr($wr_subject);
                $wr_content = convStr($wr_content);
                $wr_name = convStr($wr_name);
                
                $wr_subject = strip_tags(preg_replace("/&(?!#?[a-z0-9]+;)/", "&amp;",$wr_subject));
                $wr_content = strip_tags(preg_replace("/&(?!#?[a-z0-9]+;)/", "&amp;",$wr_content));
                $wr_name = strip_tags(preg_replace("/&(?!#?[a-z0-9]+;)/", "&amp;",$wr_name));
                ?>

<item>
<title><?php echo $wr_subject; ?></title>
    <link><?php echo $base_URL . preg_replace("`\/[^/]*\.php$`i", "/", $_SERVER['PHP_SELF']); ?>bbs/board.php?bo_table=<?php echo $bo;?>&amp;wr_id=<?php echo $row['wr_id']; ?></link>
    <description><![CDATA[<?php echo $wr_content; ?>]]></description>
    <dc:creator><?php echo $wr_name; ?></dc:creator>
    <dc:date><?php echo $date ?></dc:date>
</item>
                <?php
            }
            $i++;
        }
    }
    
    // 쇼핑몰 사용할때
    /*
    if ($g4['g4_shop_default_table']) {
        $query = sql_query("select it_id, it_name, it_basic, it_time from ".$g4['g4_shop_item_table']." where it_use='1' order by it_time desc");
        while($row = sql_fetch_array($query)) {
            $html = 1;
            //$date = substr($date,0,10) . "T" . substr($date,11,8) . "+09:00";
            $date = date('r', strtotime($row['it_time']));
            $it_basic = $row['it_basic'];
                
            // euc-kr 을 utf-8로 인코딩
            $wr_subject = convStr($it_basic);
            ?>

  <item>
    <title><?php echo conv_content($row['it_name'], $html); ?></title>
    <link><?php echo g4_SHOP_URL ?>/item.php?it_id=<?php echo $row['it_id'];?></link>
    <description><![CDATA[<?php echo conv_content($it_basic, $html) ?>]]></description>
    <dc:creator>Admin</dc:creator>
    <dc:date><?php echo $date ?></dc:date>
  </item>
            <?php
        }
    }
    */
    ?>
</channel>
</rss>


2-2. 위 euc-kr 에러날때
<?php
// rss ver 1.1 by happyjung 2018-04-23
// please give feedbacks to happyjung.com

$g4_path = "./gnuboard4"; // common.php 의 상대 경로
include_once("$g4_path/common.php");

// 아래에 사이트 설명문구를 넣으세요
$description = "";

if ($description=="") {
    echo '사이트 설명문구를 넣으세요';
    exit;
}

function convStr($str) {
    $dect_str = mb_detect_encoding($str, "UTF-8, EUC-KR");
    if ($dect_str != "EUC-KR") {
        $conv_result = iconv("UTF-8", "EUC-KR" ,$str);
    } else {
        $conv_result = iconv("EUC-KR", "UTF-8", $str);
    }
    return $conv_result;
}

$sql = "select bo_table from {$g4['board_table']} where bo_use_rss_view = '1' and bo_read_level = '1' and bo_table <> '' ";
$query=sql_query($sql);
for ($i=0; $row=sql_fetch_array($query); $i++) {
    $bo[$i] = $row['bo_table'];
}

if (!$i) {
    echo 'RSS 보기가 가능한 게시판이 없습니다.';
    exit;
}

// RSS 갯수
$rss_rows = $config['cf_page_rows'];

header('Content-type: text/xml');
header('Cache-Control: no-cache, must-revalidate');
header('Pragma: no-cache');

echo '<?xml version="1.0" encoding="euc-kr" ?>'."\n";

$title = $config['cf_title'];
//$title = convStr($title);

$base_URL = ($_SERVER['HTTPS'] == 'on') ? 'https://' : 'http://';
$base_URL .= ($_SERVER['SERVER_PORT'] != '80') ? $_SERVER['HTTP_HOST'] . ':' . $_SERVER['SERVER_PORT'] : $_SERVER['HTTP_HOST'];
?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
<channel>

<title><?php echo $title; ?></title>
<link><?php echo $base_URL; ?></link>
<description><?php echo $description; ?></description>
<language>ko</language>
    <?php
    $sql = "select bo_table from {$g4['board_table']} where bo_read_level='1' and bo_use_search='1' order by bo_table asc";
    
    $tot = mysql_num_rows(sql_query($sql));
    if ($tot > 0) {
        
        $query = sql_query($sql);
        while($temp = sql_fetch_array($query)) {
            $bo_arr[] = $temp['bo_table'];
        }
        
        $i = 1;
        
        foreach($bo_arr as $bo) {
            
            // 게시글 추출
            $sql = "select wr_id,wr_subject,wr_content,wr_name from ".$g4['write_prefix'].$bo." where wr_is_comment='0' AND wr_option NOT LIKE '%secret%' order by wr_id DESC limit 0, $rss_rows ";
            $query=sql_query($sql);
            while($row = sql_fetch_array($query)) {
                // list of each article
                if (strstr($temp['wr_option'], 'html'))
                    $html = 1;
                else
                    $html = 0;
                    
                $temp = sql_fetch("select wr_last from ".$g4['write_prefix'].$bo." where wr_parent='{$row['wr_id']}' order by wr_id DESC limit 0, $rss_rows ", false);
                $lastmod = $temp['wr_last'];
                if(!$lastmod) {
                    $temp = sql_fetch("select * from ".$g4['write_prefix'].$bo." where wr_id='{$row['wr_id']}'");
                    $lastmod = $temp['wr_datetime'];
                }
                //$date = substr($date,0,10) . "T" . substr($date,11,8) . "+09:00";
                $date = date('r', strtotime($lastmod));
                
                $wr_subject = $row['wr_subject'];
                $wr_content = $row['wr_content'];
                $wr_name = $row['wr_name'];
                
                // euc-kr 을 utf-8로 인코딩 , ut-8 디비인경우엔 아래 주석
                //$wr_subject = convStr($wr_subject);
                //$wr_content = convStr($wr_content);
                //$wr_name = convStr($wr_name);
                
                $wr_subject = strip_tags(preg_replace("/&(?!#?[a-z0-9]+;)/", "&amp;",$wr_subject));
                $wr_content = strip_tags(preg_replace("/&(?!#?[a-z0-9]+;)/", "&amp;",$wr_content));
                $wr_name = strip_tags(preg_replace("/&(?!#?[a-z0-9]+;)/", "&amp;",$wr_name));
                ?>

<item>
<title><?php echo $wr_subject; ?></title>
    <link><?php echo $base_URL . preg_replace("`\/[^/]*\.php$`i", "/", $_SERVER['PHP_SELF']); ?>bbs/board.php?bo_table=<?php echo $bo;?>&amp;wr_id=<?php echo $row['wr_id']; ?></link>
    <description><![CDATA[<?php echo $wr_content; ?>]]></description>
    <dc:creator><?php echo $wr_name; ?></dc:creator>
    <dc:date><?php echo $date ?></dc:date>
</item>
                <?php
            }
            $i++;
        }
    }
    
    // 쇼핑몰 사용할때
    /*
    if ($g4['g4_shop_default_table']) {
        $query = sql_query("select it_id, it_name, it_basic, it_time from {$g4['g4_shop_item_table']} where it_use='1' order by it_time desc");
        while($row = sql_fetch_array($query)) {
            $html = 1;
            //$date = substr($date,0,10) . "T" . substr($date,11,8) . "+09:00";
            $date = date('r', strtotime($row['it_time']));
            $it_basic = $row['it_basic'];
                
            // euc-kr 을 utf-8로 인코딩
            //$wr_subject = convStr($it_basic);
            ?>

  <item>
    <title><?php echo conv_content($row['it_name'], $html); ?></title>
    <link><?php echo g4_SHOP_URL ?>/item.php?it_id=<?php echo $row['it_id'];?></link>
    <description><![CDATA[<?php echo conv_content($it_basic, $html) ?>]]></description>
    <dc:creator>Admin</dc:creator>
    <dc:date><?php echo $date ?></dc:date>
  </item>
            <?php
        }
    }
    */
    ?>
</channel>
</rss>
  • 트위터로 보내기
  • 페이스북으로 보내기
  • 구글플러스로 보내기

댓글목록

등록된 댓글이 없습니다.


Total 367건 1 페이지
기술자료 목록
번호 제목
367 그누보드
366 그누보드
XE -> 그누보드5 변경 v7 ( update. 2018-06-12 13:13 ) Hit.86
365 그누보드
364 그누보드
363 그누보드
362 그누보드
[G5] XpressEngine 와 그누보드5 테이블 비교 ( update. 2018-05-25 14:05 ) Hit.141
361 그누보드
[G5] 글 가장 위로 순서 변경하기 ( update. 2018-05-08 12:40 ) Hit.184
360 그누보드
359 그누보드
358 그누보드
357 그누보드
356 그누보드
[G4] 스팸게시글 한방에 삭제하기 ( update. 2018-03-23 15:54 ) Hit.593
355 그누보드
[G4/G5] 현재 접속자 환경설정과 연동하기 ( update. 2018-03-02 09:32 ) Hit.738
354 그누보드
353 그누보드
[G5] 서버 이전후 글쓰기 안될때 ( update. 2018-02-05 19:35 ) Hit.1117
352 그누보드
[G5] 그누컨텐츠 설치하기 ( update. 2018-03-07 06:06 ) Hit.974
351 그누보드
[G5/Amina] 스팸게시글 한방에 삭제하기 ( update. 2018-06-07 12:45 ) Hit.1152
350 그누보드
[G5] select 로 추출하는 최신게시글 ( write. 2018-01-19 ) Hit.1189
349 그누보드
348 그누보드
[G5] 동창회 (동문회) 주소록 연동 회원관리 ( update. 2018-01-17 12:50 ) Hit.1021
347 그누보드
346 그누보드
[G5] 스마트폰과 PC에서 다른 테마 적용하기 ( update. 2018-05-31 03:51 ) Hit.1011
345 그누보드
[G5] 최고관리자 자동로그인 허용 ( write. 2018-01-06 ) Hit.972
344 그누보드
343 그누보드
[G5] 회원가입시 성별 받기 ( update. 2018-01-12 10:37 ) Hit.984
게시물 검색

회원로그인

계좌이체 or 신용카드 결제하기
해피정닷컴으로 대금결제를 할 수 있습니다

접속자집계

오늘
2,424
어제
2,955
최대
3,174
전체
4,060,995

회사명: 해피정닷컴   사업자번호: 119-05-36414   전화: 070-7600-3500   팩스: 02-865-3528   주소: 08394 서울시 구로구 디지털로 242 한화비즈메트로1차 1502호
대표: 정창용   개인정보보호책임자: 정창용   통신판매업신고번호: 2014-서울구로-0074 [사업자등록정보확인]   건강기능식품영업신고번호 제2018-0080452호
Copyright 2001~2018 해피정닷컴. All Rights Reserved.