허접한..게시물의 순서변경하기.. 팁! > 그누4 팁자료실

그누4 팁자료실

그누보드4와 관련된 팁을 여러분들과 함께 공유하세요.
나누면 즐거움이 커집니다.

허접한..게시물의 순서변경하기.. 팁! 정보

허접한..게시물의 순서변경하기.. 팁!

본문

제가 만들고 있는사이트가 컨텐츠 제공사이트라서 해당 컨텐츠를 주기별이나 월별,분기별로
제일 첫페이지에 띄우는 컨텐츠의 순서수정이 불가피 하여 집어 넣게 되었습니다.
컨텐츠는 게시판 글 1개가 하나의 컨텐츠로서 갤러리형으로 뿌려지는데
이 뿌려진 컨텐츠를클릭하면 플래시 컨텐츠가 나오게 되는거지요.
또 faq를 만들다보니 웹디쪽에서 만들어달라고 해서 이차저차해 추가를좀 했습니당..

그누보드의 wr_num를 변경하여 뿌려지는 순서를 변경한겁니다.
아래사진은 관리자 페이지에서 순서변경하는 곳입니당..

1. 순서이동을 사용할 게시판의 스킨폴더내에 있는 list.skin.php파일에 아래의
어드민로그인시 나타나는 버튼들 뒤쪽에 알맞게 이미지와 함께 넣어 줍니다.

2. 2번째 추가내용인 스크립트도 list.skin.php 하단에 추가해주시구요..

3. 3번째 추가내용을 move_update2.php 로 해서 bbs폴더에넣어 줍니다.

4. 관리자로 해당 게시판을 접속하게되면 이동버튼들이 뜨겠지요?
(참고로 저희 사이트는 어드민 아니면 모든것이 불가능 합니다.. ^^ 제공하는사이트니깐요)

5. 중간의 chage버튼은 2개의 게시물들의 체크박스를 체크한후 눌러주면
서로간의 이동이 되구요, 양옆의 prev와 next는 한개의 컨텐츠 체크를 하신후 눌러주면
전으로 다음으로이동이 됩니다.

6. 현재 제작되고있는 저희 사이트에서 사용하는지라.
다른분들의 사이트에는 아무 쓸모가 없을수도 있습니다.^^;;

7. 몇달전에 스크랩을 이용하여 컨텐츠를 담을수 있는 꾸러미를 만들때도 비스므리 하게
만들었던적이..
(mp3플레이어를 만든다면 순서이동이 필요하겠지요..? 워낙 날림이라 허접하지만..ㅡ.ㅡ)

--------------------------------------------------------------------------------------------------------------------
// 해당 게시판의 스킨폴더의 list.skin.php파일에 관리자 버튼 출력쪽에 추가
--------------------------------------------------------------------------------------------------------------------
<a href="javascript:select_move('prev');"><img src="<?=$board_skin_path?>/img/bta_prev.png" border="0"></a>
<a href="javascript:select_move('change');"><img src="<?=$board_skin_path?>/img/bta_change.png" border="0"></a>
<a href="javascript:select_move('next');"><img src="<?=$board_skin_path?>/img/bta_next.png" border="0"></a>

--------------------------------------------------------------------------------------------------------------------
// 해당 게시판의 스킨폴더의 list.skin.php파일에 들어갈 내용 제일하단 스크립트에 추가
--------------------------------------------------------------------------------------------------------------------
// 선택한 순서변경
function select_move(sw)
{
    var f = document.fboardlist;

    if (sw == "prev")
        str = "앞으로 이동";
    else if (sw == "next")
        str = "뒤로 이동";
else
        str = "순서변경";

    if (!check_confirm(str))
        return;

    var sub_win = window.open("", "move", "width=0, height=0, scrollbars=1");

    f.sw.value = sw;
    f.target = "move";
    f.action = "./move_update2.php";
    f.submit();
}
--------------------------------------------------------------------------------------------------------------------
// bbs/move_update2.php 파일내용
--------------------------------------------------------------------------------------------------------------------
<?
// 게시판 관리자 이상 복사, 이동 가능
if ($is_admin != "board" && $is_admin != "group" && $is_admin != "super")
    alert_close("게시판 관리자 이상 접근이 가능합니다.");

$wr_id=$_POST[chk_wr_id][0];

if(count($_POST[chk_wr_id])==2){
$wr_id2=$_POST[chk_wr_id][1];
    $act = "순서변경";
}else{
if ($sw == "prev"){
$act = "앞으로 이동";
$wr_id2=$wr_id-1;
} else if ($sw == "next") {
    $act = "뒤로 이동";
$wr_id2=$wr_id+1;
} else {
    alert("sw 값이 제대로 넘어오지 않았습니다.");
}
}
if($_POST[chk_wr_id][2])
    alert_close("2개만 선택하세욧!");

$wr_sql = " select wr_num from $bo_table where `wr_id`='$wr_id'";
$wr_result = sql_query($wr_sql);
$wr_row=sql_fetch_array($wr_result);

$wr_sql2 = " select wr_num from $bo_table where `wr_id`='$wr_id2'";
$wr_result2 = sql_query($wr_sql2);
$wr_row2=sql_fetch_array($wr_result2);

 sql_query(" update $bo_table set `wr_num`='$wr_row[wr_num]' where `wr_id`='$wr_id' ");
 sql_query(" update $bo_table set `wr_num`='$wr_row2[wr_num]' where `wr_id`='$wr_id2' ");

$msg = "순서변경완료!";
$opener_href = "./board.php?bo_table=$bo_table&page=$page&$qstr";

echo <<<HEREDOC
<script language="javascript">
alert("{$msg}");
opener.document.location.href = "{$opener_href}";
window.close();
</script>
HEREDOC;
?>
추천
2

댓글 15개

g4_board_file 테이블의 파일에 대한 정보들은 해당 게시판테이블 명과 wr_id값만 변경이 됩니다.
게시물 순서 변경은 wr_num값만 변경을 하는것이구요..
그래서 그냥 놔두셔도 될듯 합니다..
실제로 제가 제작하는 사이트의 컨텐츠들이 모두 첨부파일 형식으로 되어있기 때문에
wr_id를 변경해버리면 g4_board_file까지 변경을 해줘야되겠지요..하지만 잘 됩니다..^^;;
이전에 올린팁인데.. 중간에 변경부분이 조금 있었던거 같습니다.
혹시 순서변경이 필요하신데 위 방법으로 않되시는분이 있으시다면..
쿼리부분과 A->B B->A부분을 잘 살펴 보시기 바랍니다..
정 않되시면 쪽지 보내주시구요..^^
이 방법은 잘안되는데요~??

아무래도 wr_id 값이 변경하는 중 변경할 1번째 게시물 번호를 이미 있는 2번째 게시물 번호와 충돌되면서 변동이 안되는것 같군요.

먼저 변경할 1번째 게시물 번호를 새로운 게시물 번호로 변경한 후,
변경할 2번째 게시물 번호를 1번째 게실물 번호로 변경한 후,
새로운 게시물 번호로 바꾸어놓은 1번째 게시물 번호를 2번째 게시물 번호로 바꾸도록 수정해야겠군요..

그런데 wr_id 만 바꾸자니 왠지 불안한듯한..ㅋㅋㅋ

좀 불편하긴해도 새로운 임시 게시판을 생성해서 그 게시판으로 옮겼다가 다시 옮겨오면 되지않겠어요?
단점은 상위에 있는 게시물을 몽땅 옮긴 후에 다시 옮겨와야된다는 점이 버벅대기는 하여도..

제일 안전하고 확실한 방법같습니다.
그누4에서 적용되는 점, 한번 옮긴 게시물이 두번 옮겨지지 않는 점으로 인해 수정하였습니다.
그누5에서 작동합니다.
https://sir.kr/g5_tip/5876
* 웨디님덕분에 개발시간 줄였습니다. 감사합니다.
전체 3,313 |RSS
그누4 팁자료실 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT