[절박한 재질문] 카테고리 순서대로 리스트순서가 나오게 할 순 없을까요?
본문
안녕하세요?
오늘로만 세번째 입니다. ㅜㅜ
절실한 도움 부탁 필요합니다.
가|나|다|라|마|바|사|.. 이런 식으로 분류를 했으면,
리스트에도 위에 순서대로 뿌려 줄 수가 있을까요?
나중에 관리자페이지 게시판 설정에서 분류 순서를 바꿔도 게시물이 분류 순서대로
리스트에 뿌려 줄 수 있었으면 합니다. 흑흑.... 아무리 검색해 봐도 네이버 지식인에 올려도 가능 한게 없네요..
관리자 페이지에서 리스트 순서정렬에 보면 분류순서 정렬이 오름 아니면 내림으로 되어 있어서 의도 되로 안되네요.
고수분들의 도움 기다립니다.^^ 플리즈~~~~~~~~~~~~~~~~~~~~~~~
답변 4
?
if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가
include_once("$board_skin_path/skin.lib.php");
if (!function_exists("imagecopyresampled")) alert("GD 2.0.1 이상 버전이 설치되어 있어야 사용할 수 있는 갤러리 게시판 입니다.");
if (!$board[bo_1]) {
$board[bo_1] = "160";
$sql = " update $g4[board_table] set bo_1 = '$board[bo_1]', bo_1_subj = '목록 가로 픽셀' where bo_table = '$bo_table' ";
sql_query($sql);
}
if (!$board[bo_2]) {
$board[bo_2] = "100";
$sql = " update $g4[board_table] set bo_2 = '$board[bo_2]', bo_2_subj = '목록 세로 픽셀' where bo_table = '$bo_table' ";
sql_query($sql);
}
$mod = $board[bo_gallery_cols];
$td_width = (int)(100 / $mod);
// 선택옵션으로 인해 셀합치기가 가변적으로 변함
$colspan = 5;
if ($is_category) $colspan++;
if ($is_checkbox) $colspan++;
if ($is_good) $colspan++;
if ($is_nogood) $colspan++;
// 제목이 두줄로 표시되는 경우 이 코드를 사용해 보세요.
// <nobr style='display:block; overflow:hidden; width:000px;'>제목</nobr>
?>
<link href="<?=$board_skin_path?>/style.css" rel="stylesheet" type="text/css" />
<!-- 게시판 목록 시작 -->
<table width="<?=$width?>" align="center" cellpadding="0" cellspacing="0">
<tr>
<td>
<!-- 분류 셀렉트 박스, 게시물 몇건, 관리자화면 링크 -->
<!-- <div style="float:left;height:22px;">
<? if ($is_category) { ?>
<? if (!$wr_id) { ?>
<?
$cnt_bo_1 = $bo_1[0] ? $bo_1[0] : 10; // 한줄당 분류 갯수(현재:10)
$cnt = 1;
$cnt0 = 0;
$bb_s=""; $bb_e="";
$b_s=""; $b_e="";
$arr = explode("|", $board[bo_category_list]); // 구분자가 , 로 되어 있음
$str = " <span style='font-family: Tahoma; font-size:10px; color:#D2D2D2;'>|</span> ";
for ($i=0; $i<count($arr); $i++)
if (trim($arr[$i])) {
if ($sca == $arr[$i]) { $cnt0++; $b_s="<b>"; $b_e="</b>"; } else {$b_s=""; $b_e="";}
$str .= " <a href='./board.php?bo_table=$bo_table&sca=".urlencode($arr[$i])."'>$b_s$arr[$i]$b_e</a> <span style='font-family: Tahoma; font-size:10px; color:#D2D2D2;'>|</span> ";
if ($cnt == $cnt_bo_1) { $cnt = 0; $str .= "<br>"; }
$cnt++;
}
if ($cnt0 == 0 ) { $bb_s="<b>"; $bb_e="</b>"; }
?>
<?echo " ";echo $bb_s;?><a href='./board.php?bo_table=<?=$bo_table?>&page=<?=$page?>'>전체</a><?=$bb_e?> <span style="font-size:8pt; color=#AEAEAE;">(<?=number_format($total_count)?>)</span>
<?=$str?>
<? } ?>
<? } ?>
</div>-->
<div class='bbs_count'>
<? if ($is_checkbox) { ?><INPUT onclick="if (this.checked) all_checked(true); else all_checked(false);" type='checkbox'><?}?>
TOTAL <?=number_format($total_count)?>
<? if ($rss_href) { ?><a href='<?=$rss_href?>'><img src='<?=$board_skin_path?>/img/btn_rss.gif' border='0' align='absmiddle'></a><?}?>
<? if ($admin_href) { ?><a href="<?=$admin_href?>"><img src="<?=$board_skin_path?>/img/admin_button.gif" title="관리자" border="0" align="absmiddle"></a><?}?>
</div>
<!-- 목록 -->
<form name="fboardlist" method="post">
<input type='hidden' name='bo_table' value='<?=$bo_table?>'>
<input type='hidden' name='sfl' value='<?=$sfl?>'>
<input type='hidden' name='stx' value='<?=$stx?>'>
<input type='hidden' name='spt' value='<?=$spt?>'>
<input type='hidden' name='page' value='<?=$page?>'>
<input type='hidden' name='sw' value=''>
<table width="100%" cellpadding="0" cellspacing="0">
<tr>
<td colspan=<?=$colspan?> class="bbs_line2"></td>
</tr>
<tr>
<?
for ($i=0; $i<count($list); $i++) {
if ($i && $i%$mod==0)
echo "</tr><tr>";
$style = "";
$subject = "<span $style>{$list[$i][subject]}</span>";
$comment_cnt = "";
if ($list[$i][comment_cnt])
$comment_cnt = " <a href=\"{$list[$i][comment_href]}\"><span style='font-size:10px;'><font face='Tahoma' color='#EE5A00'>{$list[$i][comment_cnt]}</span></a>";
$list[$i][name] = preg_replace("/<img /", "<img style='display:none;' ", $list[$i][name]);
$list[$i][name] = preg_replace("/> <span/", "><span", $list[$i][name]);
$list[$i][name] = preg_replace("/class='member'/", "", $list[$i][name]);
echo "<td width='{$td_width}%' valign=top style='word-break:break-all; padding:8px 0 0 0;'>";
echo "<table align=center>";
echo "<tr><td height=15></td></tr>";
echo "<tr><td align=center><div style='float:left; border:1px solid #ff0000; background:#fff; padding:0px; font-size:0; line-height:0;'><a href='{$list[$i][href]}'>".makeThumbs($g4[path]."/data/file/$bo_table", $list[$i][file][0][file], $board[bo_1], $board[bo_2], cut_str($list[$i][subject],20))."</a></div></td></tr>";
echo "<tr><td align=center class=lh height=26>";
echo "<a href='{$list[$i][href]}'><strong>$subject</strong></a><span class='comment'>{$comment_cnt}</span><br/>";
if ($is_category) echo "<a href='{$list[$i][ca_name_href]}'>[{$list[$i][ca_name]}]</a>";
echo " " . $list[$i][icon_new];
//echo " " . $list[$i][icon_file];
//echo " " . $list[$i][icon_link];
//echo " " . $list[$i][icon_hot];
//echo " " . $list[$i][icon_secret];
echo "</td></tr>";
//echo "<tr><td align=center style='font-size:11px; color:#888;'>Date.".$list[$i][datetime2]." <span style='font-size:9px;color:#CCCCCC;'>|</span> Hit.".$list[$i][wr_hit]."</td></tr>";
if ($is_checkbox) echo "<tr><td align=center><input type=checkbox name=chk_wr_id[] value='{$list[$i][wr_id]}'></td></tr>";
echo "</table></td>\n";
}
// 나머지 td
$cnt = $i%$mod;
if ($cnt)
for ($i=$cnt; $i<$mod; $i++)
echo "<td width='{$td_width}%'> </td>";
?>
</tr>
<? if (count($list) == 0) { echo "<tr><td colspan='$mod' height=400 align=center>게시물이 없습니다.</td></tr>"; } ?>
<tr><td colspan='<?=$mod?>' height="25"></td></tr>
<tr><td colspan=<?=$mod?> class='bbs_line'>
</table>
</form>
<!-- 페이징 -->
<div class="paginate_complex">
<? if ($prev_part_href) { echo "<a href='$prev_part_href' class=\"direction prev\"> <span> </span><span> </span> 이전검색</a>"; } ?>
<?
// 기본으로 넘어오는 페이지를 아래와 같이 변환하여 이미지로도 출력할 수 있습니다.
$write_pages = preg_replace("/<b>([0-9]*)<\/b>/", "<strong>$1</strong>", $write_pages);
$write_pages = str_replace(">처음", " class=\"direction prev\"> <span> </span><span> </span> ", $write_pages);
$write_pages = str_replace(">이전", " class=\"direction prev\"><span> </span> ", $write_pages);
$write_pages = str_replace(">다음", " class=\"direction next\" > <span> </span> ", $write_pages);
$write_pages = str_replace(">맨끝", " class=\"direction next\" ><span> </span><span> </span> ", $write_pages);
$write_pages = str_replace(" ", "", $write_pages);
?>
<?=$write_pages?>
<? if ($next_part_href) { echo "<a href='$next_part_href'> class=\"direction next\">다음검색 <span> </span><span> </span></a>"; } ?>
</div>
<!-- 검색&버튼 -->
<div style="float:left;">
<table cellpadding="0" cellspacing="0">
<tr>
<td align="left">
<form name="fsearch" method="get">
<input type="hidden" name="bo_table" value="<?=$bo_table?>">
<input type="hidden" name="sca" value="<?=$sca?>">
<select name="sfl" class="sel">
<option value="wr_subject">제목</option>
<option value="wr_content">내용</option>
<option value="wr_subject||wr_content">제목+내용</option>
<option value="mb_id,1">아이디</option>
<option value="mb_id,0">아이디(코)</option>
<option value="wr_name,1">글쓴이</option>
<option value="wr_name,0">글쓴이(코)</option>
</select>
</td>
<td align="left"><input name="stx" class="bbs_search" maxlength="33" itemname="검색어" required value='<?=stripslashes($stx)?>'></td>
<td><input type=image src="<?=$board_skin_path?>/img/btn_search.gif" border="0" align="absmiddle"></td>
</tr>
</table>
</form>
</div>
<div style="float:right;">
<? if ($is_checkbox) { ?>
<a href="javascript:select_delete();"><img src="<?=$board_skin_path?>/img/btn_select_delete.gif" border='0'></a><a href="javascript:select_copy('copy');"><img src="<?=$board_skin_path?>/img/btn_select_copy.gif" border='0'></a><a href="javascript:select_copy('move');"><img src="<?=$board_skin_path?>/img/btn_select_move.gif" border='0'></a>
<? } ?>
<? if ($list_href) { ?><a href="<?=$list_href?>"><img src="<?=$board_skin_path?>/img/btn_list.gif" border='0'></a><? } ?>
<? if ($write_href) { ?><a href="<?=$write_href?>"><img src="<?=$board_skin_path?>/img/btn_write.gif" border='0'></a><? } ?>
</div>
</td>
</tr>
</table>
<script language="JavaScript">
if ("<?=$sca?>") document.fcategory.sca.value = "<?=$sca?>";
if ("<?=$stx?>") {
document.fsearch.sfl.value = "<?=$sfl?>";
}
</script>
<? if ($is_checkbox) { ?>
<script language="JavaScript">
function all_checked(sw)
{
var f = document.fboardlist;
for (var i=0; i<f.length; i++) {
if (f.elements[i].name == "chk_wr_id[]")
f.elements[i].checked = sw;
}
}
function check_confirm(str)
{
var f = document.fboardlist;
var chk_count = 0;
for (var i=0; i<f.length; i++) {
if (f.elements[i].name == "chk_wr_id[]" && f.elements[i].checked)
chk_count++;
}
if (!chk_count) {
alert(str + "할 게시물을 하나 이상 선택하세요.");
return false;
}
return true;
}
// 선택한 게시물 삭제
function select_delete()
{
var f = document.fboardlist;
str = "삭제";
if (!check_confirm(str))
return;
if (!confirm("선택한 게시물을 정말 "+str+" 하시겠습니까?\n\n한번 "+str+"한 자료는 복구할 수 없습니다"))
return;
f.action = "./delete_all.php";
f.submit();
}
// 선택한 게시물 복사 및 이동
function select_copy(sw)
{
var f = document.fboardlist;
if (sw == "copy")
str = "복사";
else
str = "이동";
if (!check_confirm(str))
return;
var sub_win = window.open("", "move", "left=50, top=50, width=396, height=550, scrollbars=1");
f.sw.value = sw;
f.target = "move";
f.action = "./move.php";
f.submit();
}
</script>
<? } ?>
<!-- 게시판 목록 끝 -->
$tmp=explode("|", trim($board
[
'bo_category_list'
]));
$key=array_search($ca_name, trim($tmp));
sql_query("update $write_table set wr_good='$key' where wr_id='$wr_id'");
?>
정렬은 추천순
위 thisgun님의 답변이 일반적인 방법이지만 그누보드 특성을 살려 사용하지않는 필드를 이용하면
속도면에서도 유리할 겁니다