<?
if (!defined('_GNUBOARD_')) exit;

// 최신글 추출
function latest($skin_dir="", $bo_table, $rows=10, $subject_len=40, $options="")
{
    global $g4;

    if ($skin_dir)
        $latest_skin_path = "$g4[path]/skin/latest/$skin_dir";
    else
        $latest_skin_path = "$g4[path]/skin/latest/basic";

    $list = array();

    $sql = " select * from $g4[board_table] where bo_table = '$bo_table'";
    $board = sql_fetch($sql);

    $tmp_write_table = $g4['write_prefix'] . $bo_table; // 게시판 테이블 전체이름
    //$sql = " select * from $tmp_write_table where wr_is_comment = 0 order by wr_id desc limit 0, $rows ";
    // 위의 코드 보다 속도가 빠름
    $sql = " select * from $tmp_write_table where wr_is_comment = 0 order by wr_num limit 0, $rows ";
    //explain($sql);
    $result = sql_query($sql);
    for ($i=0; $row = sql_fetch_array($result); $i++) 
        $list[$i] = get_list($row, $board, $latest_skin_path, $subject_len);
    
    ob_start();
    include "$latest_skin_path/latest.skin.php";
    $content = ob_get_contents();
    ob_end_clean();

    return $content;
} 

// 최신글 추출 - 선택한 그룹별로 원하는 게시판을 제외하고 원하는 수만큼 보여줌
function latest_my_group($skin_dir="", $gr_id, $rows=10, $subject_len=40, $no_table="", $category="", $orderby="", $target="", $same="")
{
	global $config;
	global $g4;

	$list = array(); $limitrows = $rows;

	$sqlgroup = " select bo_table, bo_subject from $g4[board_table] where gr_id = '$gr_id' ";

	// 제거할 테이블들
	if ($no_table) {
		$t_flag = serialize($no_table);
		if ($t_flag[0] == "a") {	//Array이면
			for ($ic=0; $ic<count($no_table); $ic++) {
				$sqlgroup .= " and bo_table != '$no_table[$ic]' ";
			}
		} else if ($t_flag[0] == "s") {	//String이면
			$sqlgroup .= " and bo_table != '$no_table' ";
		}
	}

	$sqlgroup .= " and bo_use_search=1 order by bo_order_search ";
	$rsgroup = sql_query($sqlgroup);

	if ($skin_dir)
		$latest_skin_path = "$g4[path]/skin/latest/$skin_dir";
	else
		$latest_skin_path = "$g4[path]/skin/latest/$config[cf_latest_skin]";

	for ($j=0, $k=0; $rowgroup=sql_fetch_array($rsgroup); $j++) {
		$bo_table = $rowgroup[bo_table];

		// 테이블 이름구함
		$sql = " select * from {$g4[board_table]} where bo_table = '$bo_table'";
		$board = sql_fetch($sql);

		$tmp_write_table = $g4[write_prefix] . $bo_table; // 게시판 테이블 실제이름

		$sql = "select * from $tmp_write_table where wr_is_comment = 0 ";
		$sql .= (!$target) ? "" : " and $target = '$same' ";
		$sql .= (!$orderby) ? "  order by wr_id desc " : "  order by $orderby desc ";
		$sql .= " limit 0, $limitrows";
		$result = sql_query($sql);

		for ($i=0; $row = sql_fetch_array($result); $i++, $k++) {

			if(!$orderby) $op_list[$k] = $row[wr_datetime];
			else  {
				$op_list[$k] = is_string($row[$orderby]) ? sprintf("%-256s", $row[$orderby]) : sprintf("%016d", $row[$orderby]);
				$op_list[$k] .= $row[wr_datetime];
			}

			$list[$k] = get_list($row, $board, $latest_skin_path, $subject_len);

			$list[$k][bo_table] = $board[bo_table];
			$list[$k][bo_subject] = $board[bo_subject];

			$list[$k][bo_wr_subject] = cut_str($board[bo_subject] . $list[$k][wr_subject], $subject_len);
		}
	}
	if($k>0) array_multisort($op_list, SORT_DESC, $list);
	if($k>$rows) array_splice($list, $rows);

	ob_start();
	include "$latest_skin_path/latest.skin.php";
	$content = ob_get_contents();
	ob_end_clean();
	return $content;
}
/// 함수 정의 끝
?>