혹시 그룹 베스트글을 게시판명으로 지정해서 쓸수있을까요? 채택완료
welcome
4년 전
조회 2,450
혹시 그룹이 아니라 게시판을 지정해서도 가능할까요? 예) free, qna, guestbook, news... 이런식으로 여러 게시판 id값을 넣어서 바꾸고싶습니다.
소스코드는 아래와 같습니다.
https://sir.kr/g5_tip/5803#c_15171
그리고 특정 게시판만 불어오는 최신글 소스도 찾았는데
https://sir.kr/g5_tip/4103 와 같습니다.
어떻게 합치면 될것 같은데 잘안되서 문의드립니다.
</p>
<p><?php
if (!defined('_GNUBOARD_')) exit;</p>
<p>function popular_bbs_compare($a, $b)
{
return $b['wr_hit'] - $a['wr_hit'];
}</p>
<p>function popular_bbs($skin_dir = '', $gr_id, $rows = 10, $subject_len = 40, $days = 7, $cache_time = 5)
{
global $g5;</p>
<p> if (!$skin_dir) $skin_dir = 'basic';</p>
<p> if (preg_match('#^theme/(.+)$#', $skin_dir, $match)) {
if (G5_IS_MOBILE) {
$popular_bbs_skin_path = G5_THEME_MOBILE_PATH . '/' . G5_SKIN_DIR . '/popular_bbs/' . $match[1];
if (!is_dir($popular_bbs_skin_path))
$popular_bbs_skin_path = G5_THEME_PATH . '/' . G5_SKIN_DIR . '/popular_bbs/' . $match[1];
$popular_bbs_skin_url = str_replace(G5_PATH, G5_URL, $popular_bbs_skin_path);
} else {
$popular_bbs_skin_path = G5_THEME_PATH . '/' . G5_SKIN_DIR . '/popular_bbs/' . $match[1];
$popular_bbs_skin_url = str_replace(G5_PATH, G5_URL, $popular_bbs_skin_path);
}
$skin_dir = $match[1];
} else {
if (G5_IS_MOBILE) {
$popular_bbs_skin_path = G5_MOBILE_PATH . '/' . G5_SKIN_DIR . '/popular_bbs/' . $skin_dir;
$popular_bbs_skin_url = G5_MOBILE_URL . '/' . G5_SKIN_DIR . '/popular_bbs/' . $skin_dir;
} else {
$popular_bbs_skin_path = G5_SKIN_PATH . '/popular_bbs/' . $skin_dir;
$popular_bbs_skin_url = G5_SKIN_URL . '/popular_bbs/' . $skin_dir;
}
}</p>
<p> $cache_fwrite = false;
if(G5_USE_CACHE) {
$cache_file = G5_DATA_PATH."/cache/popular_bbs-{$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();</p>
<p> $nowYmd = date(Ymd, G5_SERVER_TIME);
$startYmd = date('Ymd', strtotime('-'.$days." day", G5_SERVER_TIME));</p>
<p> $sql = " select bo_table, bo_subject from {$g5['board_table']} where gr_id = '{$gr_id}' ";
$board_list = sql_query($sql);
for ($i = 0; $board = sql_fetch_array($board_list); $i++) {
$tmp_write_table = $g5['write_prefix'] . $board['bo_table'];</p>
<p> $sql = " select * from {$tmp_write_table} WHERE date_format(wr_datetime, '%Y%m%d') between '{$startYmd}' and '{$nowYmd}' order by wr_hit desc limit 0, {$rows}";
$result = sql_query($sql);
for ($i = 0; $row = sql_fetch_array($result); $i++) {
$tmp_list = get_list($row, $board, $popular_bbs_skin_url, $subject_len);
$tmp_list['bo_table'] = $board['bo_table'];
$tmp_list['bo_subject'] = $board['bo_subject'];
array_push($list, $tmp_list);
}
}</p>
<p> usort($list, 'popular_bbs_compare');
$list = array_slice($list, 0, $rows);</p>
<p> if($cache_fwrite) {
$handle = fopen($cache_file, 'w');
$cache_content = "<?php\nif (!defined('_GNUBOARD_')) exit;\n\$list=".var_export($list, true)."?>";
fwrite($handle, $cache_content);
fclose($handle);
}
}</p>
<p> ob_start();
include $popular_bbs_skin_path . '/latest.skin.php';
$content = ob_get_contents();
ob_end_clean();</p>
<p> return $content;
}</p>
<p>
댓글을 작성하려면 로그인이 필요합니다.
답변 1개
채택된 답변
+20 포인트
4년 전
가장 손쉬운 방법은 해당하는 게시판만 그룹을 별도로 하나더 만들면 됩니다
그룹을 만들지 않고하려면 다음처럼
</p>
<p> <span class="token variable">$sql</span> <span class="token operator">=</span> <span class="token double-quoted-string string">" select bo_table, bo_subject from <span class="token interpolation"><span class="token punctuation">{</span><span class="token variable">$g5</span><span class="token punctuation">[</span><span class="token single-quoted-string string">'board_table'</span><span class="token punctuation">]</span><span class="token punctuation">}</span></span> where gr_id = '<span class="token interpolation"><span class="token punctuation">{</span><span class="token variable">$gr_id</span><span class="token punctuation">}</span></span>' "</span><span class="token punctuation">;</span>
<span class="token variable">$board_list</span> <span class="token operator">=</span> <span class="token function">sql_query</span><span class="token punctuation">(</span><span class="token variable">$sql</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token keyword keyword-for">for</span> <span class="token punctuation">(</span><span class="token variable">$i</span> <span class="token operator">=</span> <span class="token number">0</span><span class="token punctuation">;</span> <span class="token variable">$board</span> <span class="token operator">=</span> <span class="token function">sql_fetch_array</span><span class="token punctuation">(</span><span class="token variable">$board_list</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token variable">$i</span><span class="token operator">++</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
<span class="token variable">$tmp_write_table</span> <span class="token operator">=</span> <span class="token variable">$g5</span><span class="token punctuation">[</span><span class="token single-quoted-string string">'write_prefix'</span><span class="token punctuation">]</span> <span class="token punctuation">.</span> <span class="token variable">$board</span><span class="token punctuation">[</span><span class="token single-quoted-string string">'bo_table'</span><span class="token punctuation">]</span><span class="token punctuation">;</span></p>
<p><span class="token punctuation">-------------- 위 코드 삭제후 변경</span></p>
<p><span class="token punctuation"> $bo_table= explode(',', $gr_id)</span></p>
<p><span class="token punctuation"> foreach(</span>$bo_table as $table){</p>
<p> <span class="token variable">$tmp_write_table</span> <span class="token operator">=</span> <span class="token variable">$g5</span><span class="token punctuation">[</span><span class="token single-quoted-string string">'write_prefix'</span><span class="token punctuation">]</span> <span class="token punctuation">.</span> <span class="token variable">$</span><span class="token single-quoted-string string">table</span><span class="token punctuation">;</span></p>
<p><span class="token punctuation">---------------- 호출</span></p>
<p><span class="token function">popular_bbs</span><span class="token punctuation">(스킨</span><span class="token punctuation">,</span> 'free,qna,guestbook, news' ~~~~);</p>
<p> </p>
<p>
로그인 후 평가할 수 있습니다
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인