<?php
include_once('./_common.php');

// 특수문자 변환
function specialchars_replace($str, $len=0) {
    if ($len) {
        $str = substr($str, 0, $len);
    }

    $str = str_replace(array("&", "<", ">"), array("&amp;", "&lt;", "&gt;"), $str);

    /*
    $str = preg_replace("/&/", "&amp;", $str);
    $str = preg_replace("/</", "&lt;", $str);
    $str = preg_replace("/>/", "&gt;", $str);
    */

    return $str;
}

if ( !isset( $_GET['format'] ) || $_GET['format']  == "" || $_GET['format']  == "xml") {
	$sql = " select gr_id, bo_subject, bo_page_rows, bo_read_level, bo_use_rss_view from {$g5['board_table']} where bo_table = '$bo_table' ";
	$row = sql_fetch($sql);
	$subj2 = specialchars_replace($row['bo_subject'], 255);
	$lines = $row['bo_page_rows'];

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

	$sql = " select gr_subject from {$g5['group_table']} where gr_id = '{$row['gr_id']}' ";
	$row = sql_fetch($sql);
	$subj1 = specialchars_replace($row['gr_subject'], 255);

	echo '<?xml version="1.0" encoding="utf-8" ?>'."\n";
	?>
	<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
	<channel>
	<title><?php echo specialchars_replace($config['cf_title'].' &gt; '.$subj1.' &gt; '.$subj2) ?></title>
	<link><?php echo specialchars_replace(G5_BBS_URL.'/board.php?bo_table='.$bo_table) ?></link>
	<description>RSS Feed Test Version</description>
	<language>ko</language>

	<?php
	$sql = " select wr_id, wr_subject, wr_content, wr_name, wr_datetime, wr_option
				from {$g5['write_prefix']}$bo_table
				where wr_is_comment = 0
				and wr_option not like '%secret%'
				order by wr_num, wr_reply limit 0, $lines ";
	$result = sql_query($sql);
	for ($i=0; $row=sql_fetch_array($result); $i++) {
		$file = '';

		if (strstr($row['wr_option'], 'html'))
			$html = 1;
		else
			$html = 0;
	?>

	<item>
	<title><?php echo specialchars_replace($row['wr_subject']) ?></title>
	<link><?php echo specialchars_replace(G5_BBS_URL.'/board.php?bo_table='.$bo_table.'&amp;wr_id='.$row['wr_id']) ?></link>
	<description><![CDATA[<?php echo $file ?><?php echo conv_content($row['wr_content'], $html) ?>]]></description>
	<dc:creator><?php echo specialchars_replace($row['wr_name']) ?></dc:creator>
	<?php
	$date = $row['wr_datetime'];
	$date = date('r', strtotime($date));
	?>
	<dc:date><?php echo $date ?></dc:date>
	</item>

	<?php
	}

	echo '</channel>'."\n";
	echo '</rss>'."\n";
} elseif ( $_GET['format'] == "json" ){	

	header('Content-Type:application/json; charset=utf-8');
	
	$json_array = array();

		$tmp_write_table = $g5['write_prefix'] . $bo_table; // 게시판 테이블 전체이름
        $sql = " select * from {$tmp_write_table} order by wr_num";
        $result = sql_query($sql);
        for ($i=0; $row = sql_fetch_array($result); $i++) {
           	//$json_array[] =$row ;
			$json_array[$i]["wr_id"]= $row["wr_id"];
			if ($row["ca_name"] ){
				$json_array[$i]["ca_name"] = $row["ca_name"];
			}
			$json_array[$i]["wr_subject"] = $row["wr_subject"];
			$json_array[$i]["wr_content"] = $row["wr_content"];
			if ($row["wr_link1"] ){
				$json_array[$i]["wr_link1"] = $row["wr_link1"];
			}
			if ($row["wr_link2"] ){
				$json_array[$i]["wr_link2"] = $row["wr_link2"];
			}
			if ($row["wr_link1_hit"] ){
				$json_array[$i]["wr_link1_hit"] = $row["wr_link1_hit"];
			}
			if ($row["wr_link2_hit"] ){
				$json_array[$i]["wr_link2_hit"] = $row["wr_link2_hit"];
			}
			if ($row["wr_hit"] ){
				$json_array[$i]["wr_hit"] = $row["wr_hit"];
			}
			if ($row["wr_good"] ){
				$json_array[$i]["wr_good"] = $row["wr_good"];
			}
			if ($row["wr_nogood"] ){
				$json_array[$i]["wr_nogood"] = $row["wr_nogood"];
			}
			if ($row["mb_id"] ){
				$json_array[$i]["mb_id"] = $row["mb_id"];
			}
			$json_array[$i]["wr_name"] = $row["wr_name"];
			if ($row["wr_homepage"] ){
				$json_array[$i]["wr_homepage"] = $row["wr_homepage"];
			}
			$json_array[$i]["wr_datetime"] = $row["wr_datetime"];
			$json_array[$i]["wr_last"] = $row["wr_last"];
			if ($row["wr_facebook_user"] ){
				$json_array[$i]["wr_facebook_user"] = $row["wr_facebook_user"];
			}
			if ($row["wr_twitter_user"] ){
				$json_array[$i]["wr_twitter_user"] = $row["wr_twitter_user"];
			}
			if ($row["wr_1"] ){
				$json_array[$i]["wr_1"] = $row["wr_1"];
			}
			if ($row["wr_2"] ){
				$json_array[$i]["wr_2"] = $row["wr_2"];
			}
			if ($row["wr_3"] ){
				$json_array[$i]["wr_3"] = $row["wr_3"];
			}
			if ($row["wr_4"] ){
				$json_array[$i]["wr_4"] = $row["wr_4"];
			}
			if ($row["wr_5"] ){
				$json_array[$i]["wr_5"] = $row["wr_5"];
			}
			if ($row["wr_6"] ){
				$json_array[$i]["wr_6"] = $row["wr_6"];
			}
			if ($row["wr_7"] ){
				$json_array[$i]["wr_7"] = $row["wr_7"];
			}
			if ($row["wr_8"] ){
				$json_array[$i]["wr_8"] = $row["wr_8"];
			}
			if ($row["wr_9"] ){
				$json_array[$i]["wr_9"] = $row["wr_9"];
			}
			if ($row["wr_10"] ){
				$json_array[$i]["wr_10"] = $row["wr_10"];
			}
		
		}		
		
		$json_array = json_encode($json_array, JSON_UNESCAPED_UNICODE );

		$json_array = prettyPrint( $json_array );

		echo prettyPrint( $json_array );
	}

function prettyPrint( $json )
{
    $result = '';
    $level = 0;
    $in_quotes = false;
    $in_escape = false;
    $ends_line_level = NULL;
    $json_length = strlen( $json );
 
    for( $i = 0; $i < $json_length; $i++ ) {
        $char = $json[$i];
        $new_line_level = NULL;
        $post = "";
        if( $ends_line_level !== NULL ) {
            $new_line_level = $ends_line_level;
            $ends_line_level = NULL;
        }
        if ( $in_escape ) {
            $in_escape = false;
        } else if( $char === '"' ) {
            $in_quotes = !$in_quotes;
        } else if( ! $in_quotes ) {
            switch( $char ) {
                case '}': case ']':
                    $level--;
                    $ends_line_level = NULL;
                    $new_line_level = $level;
                    break;
 
                case '{': case '[':
                    $level++;
                case ',':
                    $ends_line_level = $level;
                    break;
 
                case ':':
                    $post = " ";
                    break;
 
                case " ": case "\t": case "\n": case "\r":
                    $char = "";
                    $ends_line_level = $new_line_level;
                    $new_line_level = NULL;
                    break;
            }
        } else if ( $char === '\\' ) {
            $in_escape = true;
        }
        if( $new_line_level !== NULL ) {
            $result .= "\n".str_repeat( "\t", $new_line_level );
        }
        $result .= $char.$post;
    }
     return $result;
}

?>
