그룹 최신글 또또 질문드립니다..ㅠㅠ 채택완료
안녕하세요
그룹 최신글 사용하고 있습니다. ㅎ
wr_1 과 wr_2 둘다 Y값이 있어야 최신글에 노출됩니다.
기능 자체는 잘되는데..
다른 게시판에 Y값이 없는 글이 올라오면
최신글에 노출이 안되어야 하는데..
최신글 4개 있던것이 3개가 되고
또 올라오면 3개 있던것이 2개가 되는 현상이 발생합니다.
Y값이 없는 글들이 밀어내고 있는것 같습니다..
카운터 문제인것 같은데 도저히 모르겠네요..ㅠ
아래는 스킨
<?php if ($list[$i]['wr_1'] == 'Y' && $list[$i]['wr_2'] == 'Y') { ?>
<dl>
<dd>
<h2><a href="<?php echo $list[$i]['href']; ?>"><?php echo cut_str(strip_tags($list[$i]['wr_subject']),35,'');?></a></h2>
<div class="img">
<?php if($thumb['src']) { ?>
<a href="<?php echo $list[$i]['href']; ?>"><?php echo $img; ?></a>
<?php } ?>
</div>
<div class="content">
<p><a href="<?php echo $list[$i]['href']; ?>"><?php echo $wr_subject ?></a></p>
<strong><?php echo $list[$i]['wr_name'];?><span>|</span> <?php echo $list[$i]['datetime'];?></strong>
</div>
</dd>
</dl></p>
<p> <?php } ?></p>
<p>
아래는 lib 파일입니다.
</p>
<p><?php
if (!defined('_GNUBOARD_')) exit;</p>
<p>// 최신글 추출
// $cache_time 캐시 갱신시간
function latest_group($skin_dir='', $gr_id, $rows=10, $subject_len=40, $cache_time=1, $options='')</p>
<p>{
global $g5;</p>
<p> if (!$skin_dir) $skin_dir = 'basic';</p>
<p> if(preg_match('#^theme/(.+)$#', $skin_dir, $match)) {
if (G5_IS_MOBILE) {
$latest_skin_path = G5_THEME_MOBILE_PATH.'/'.G5_SKIN_DIR.'/latest/'.$match[1];
if(!is_dir($latest_skin_path))
$latest_skin_path = G5_THEME_PATH.'/'.G5_SKIN_DIR.'/latest/'.$match[1];
$latest_skin_url = str_replace(G5_PATH, G5_URL, $latest_skin_path);
} else {
$latest_skin_path = G5_THEME_PATH.'/'.G5_SKIN_DIR.'/latest/'.$match[1];
$latest_skin_url = str_replace(G5_PATH, G5_URL, $latest_skin_path);
}
$skin_dir = $match[1];
} else {
if(G5_IS_MOBILE) {
$latest_skin_path = G5_MOBILE_PATH.'/'.G5_SKIN_DIR.'/latest/'.$skin_dir;
$latest_skin_url = G5_MOBILE_URL.'/'.G5_SKIN_DIR.'/latest/'.$skin_dir;
} else {
$latest_skin_path = G5_SKIN_PATH.'/latest/'.$skin_dir;
$latest_skin_url = G5_SKIN_URL.'/latest/'.$skin_dir;
}
}</p>
<p> $cache_fwrite = false;
if(G5_USE_CACHE) {
$cache_file = G5_DATA_PATH."/cache/latest-group-{$gr_id}-{$skin_dir}-{$rows}-{$subject_len}.php";</p>
<p> if(!file_exists($cache_file)) {
$cache_fwrite = true;
} else {
if($cache_time > 0) {
$filetime = filemtime($cache_file);
if($filetime && $filetime < (G5_SERVER_TIME - 3600 * $cache_time)) {
@unlink($cache_file);
$cache_fwrite = true;
}
}</p>
<p> if(!$cache_fwrite)
include($cache_file);
}
}</p>
<p> if(!G5_USE_CACHE || $cache_fwrite) {
$list = array();
$sql_common = " from {$g5['board_new_table']} a, {$g5['board_table']} b, {$g5['group_table']} c where a.bo_table = b.bo_table and b.gr_id = c.gr_id and b.bo_use_search = 1 ";
$sql_common .= " and b.gr_id = '$gr_id' ";
// $sql_common .= " and a.bo_table not in ('aaaa', 'bbbb') ";
$sql_common .= " and a.wr_id = a.wr_parent ";
$sql_order = " order by a.bn_id desc ";
$sql = " select a.*, b.bo_subject, c.gr_subject, c.gr_id {$sql_common} {$sql_order} limit 0, {$rows}";
$result = sql_query($sql);</p>
<p> for ($i=0; $row=sql_fetch_array($result); $i++) {</p>
<p> $sql = " select * from {$g5['board_table']} where bo_table = '{$row['bo_table']}' ";
$board = sql_fetch($sql);
$gr_subject = $row['gr_subject'];</p>
<p> $tmp_write_table = $g5['write_prefix'] . $row['bo_table'];
$row2 = sql_fetch(" select * from {$tmp_write_table} where wr_id = '{$row['wr_id']}' ");</p>
<p> $list[$i] = $row2;
$list[$i] = get_list($row2, $board, $latest_skin_url, $subject_len);
$list[$i]['bo_subject'] = $row['bo_subject'];
$list[$i]['bo_table'] = $row['bo_table'];
}</p>
<p> if($cache_fwrite) {
$handle = fopen($cache_file, 'w');
$cache_content = "<?php\nif (!defined('_GNUBOARD_')) exit;\n\$gr_subject='".$gr_subject."';\n\$list=".var_export($list, true)."?>";
fwrite($handle, $cache_content);
fclose($handle);
}
}</p>
<p> ob_start();
include $latest_skin_path.'/latest.skin.php';
$content = ob_get_contents();
ob_end_clean();</p>
<p> return $content;
}
?></p>
<p>
똑같은 질문 계속 올려서 죄송합니다..ㅠ
댓글을 작성하려면 로그인이 필요합니다.
답변 1개
채택된 답변
+20 포인트
7년 전
하실줄 아신다면 g5_board_new 테이블에
wr_1, wr_2 필드도 추가해서 글쓰면 이 값도 g5_board_new 테이블에 저장해서 이용하는 게 편하긴 합니다.
원본 g5_board_new 테이블에는 저 값이 없어서 특정 조건으로 뽑으려면 조금 번거롭죠.
로그인 후 평가할 수 있습니다
답변에 대한 댓글 4개
�
다나한포션
7년 전
�
7년 전
원본보다는 스킨에서 처리해보세요.
write_update.skin.php 파일 넣고 이런식으로..
sql_query(" update {$g5['board_new_table']} set wr_1 = '$wr_1', wr_2 = '$wr_2' where bo_table = '{$bo_table}' and wr_id = '{$wr_id}' ");
write_update.skin.php 파일 넣고 이런식으로..
sql_query(" update {$g5['board_new_table']} set wr_1 = '$wr_1', wr_2 = '$wr_2' where bo_table = '{$bo_table}' and wr_id = '{$wr_id}' ");
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인전체 질문 목록
답변대기
채택
채택
답변대기
채택
답변대기
답변대기
채택
채택
답변대기
답변대기
채택
채택
답변대기
채택
답변대기
채택
답변대기
채택
board_new_table 에 값들을 넣어보니 잘되네요
write_update.php 에
// 새글 INSERT
sql_query(" insert into {$g5['board_new_table']} ( bo_table, wr_id, wr_parent, bn_datetime, mb_id, wr_1, wr_2 ) values ( '{$bo_table}', '{$wr_id}', '{$wr_id}', '".G5_TIME_YMDHIS."', '{$member['mb_id']}', '{$wr_1}', '{$wr_2}') ");
이런식으로 여분필드를 board_new에 집어넣으려고 하는데요
다른곳에서 또 넣을곳이 있나요 안들어가네요..ㅠ