테스트 사이트 - 개발 중인 베타 버전입니다

소스 변형 질문드립니다.

· 12년 전 · 1100 · 3
아래 소스는 1개의 게시판에서 wr_1에 값에 따라 최신글을 보여주는 소스입니다.
이 소스를 1개의 그룹에서 wr_1에 값이 있는 게시물만 최신글로 출력할려면 어떻게 수정해야 하는지요?
며칠째 이 문제로 이래저래 해봐도 도저히 해답을 못찾아서 질문드립니다.
회원님들의 귀한 답변 부탁드려봅니다.


-----------소스(lib.php)-----------------

<?
//--- yesmoa님의 디렉토리 스킨을 활용하기 위한 최신글
function wr1_latest($skin_dir="", $bo_table, $rows=10, $subject_len=40, $wr_1)
{
global $config;
global $g4;

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

$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_1 desc limit 0, $rows ";
//explain($sql);
$result = sql_query($sql);
//--- $wr_1 = "1"; 필요없어 제외함(에러발생시 한번 살려보세요.)
for ($i=0; $row = sql_fetch_array($result); $i++)
$list[$i] = get_list($row, $board, $latest_skin_path, $subject_len, $wr_1);

ob_start();
include "$latest_skin_path/latest.skin.php";
$content = ob_get_contents();
ob_end_clean();

return $content;
}
?>

댓글 작성

댓글을 작성하시려면 로그인이 필요합니다.

로그인하기

댓글 3개

$sql = " select * from $tmp_write_table where wr_is_comment = 0 order by wr_1 desc limit 0, $rows ";
==>
$sql = " select * from $tmp_write_table where wr_is_comment = 0 and wr_1!='' order by wr_1 desc limit 0, $rows ";
12년 전
귀한 시간 내어 주셔서 감사드립니다.
그런데 정상적으로 작동이 되지 않습니다.
그래도 감사드립니다.
12년 전
<?
if (!defined('_GNUBOARD_')) exit;
/// 함수 정의 시작
// 원본은 http://www.sir.co.kr/bbs/board.php?bo_table=g4_tiptech&wr_id=1843
// 최신글 추출 - 선택한 그룹별로 원하는 수만큼 보여줌
function latest_group_wr_1($skin_dir="", $gr_id, $rows=10, $subject_len=40, $category="", $orderby="")
{
global $config;
global $g4;

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

$sql = " select bo_table, bo_subject from $g4[board_table] where gr_id = '$gr_id' and bo_use_search = '1' order by bo_order_search ";
$rsgroup = sql_query($sql);

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 .= "and wr_1 "; //네잎클로버가 추가함
$sql .= (!$category) ? "" : " and ca_name = '$category' ";
$sql .= (!$orderby) ? " order by wr_id desc " : " order by $orderby desc, wr_id desc ";
$sql .= " limit $limitrows";

$result = sql_query($sql);

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

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

$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;
}
/// 함수 정의 끝
?>

이 소스로 해결이 되었습니다.
필요하신 분들은 사용하시면 될듯합니다.
소스를 제공해주신 분께 감사드립니다.

게시글 목록

번호 제목
284172
284170
284167
284164
284161
284159
284155
284152
284151
284148
284142
284141
284137
284136
284135
284127
284121
284120
284116
284115