제로보드4는 공식적으로 더 이상 개발되지도 배포되지도 않습니다.
제로보드4를 사용하기 위한 팁보다 제로보드4를 안전하고 무사히 다른 툴로 이전하는 팁들을 게재해주시면 감사하겠습니다.
시간이 오래 지난 만큼 오래된 프로그램은 보안 및 사용성에 있어 문제가 많으니 이해 바랍니다.


오랫만에 팁 공유 올립니다^^;
(전에 크레이지 보드 게시물을 제로보드 게시물로 변환하는 팁을 올렸던 사람이랍니다. 아마 그 팁과 함께 쓰실 때 이 팁을 같이 쓰시면 보다 깔끔하고 쉽게 제로보드로 안착시키실 수 있을거라 생각합니다.)


사실 많이 원하시지만, (저도 무척이나 원했지만) 의외로 이부분에 관한 팁이 올라오지 않더군요.
그래서 견디다 못해 제가 만들었습니다orz


진짜 거의 7년만에 SQL 가지고 씨름을 했더니 머리가 터질 것 같아요ㅠㅠ
일단 구문이 깔끔하지 않을 수 있습니다. (저 혼자서는 PHP구문 및 쿼리문을 작성하는 것이 어려워서 대부분 상황에 맞는 제로보드 PHP구문 및 쿼리문을 긁어다 썼기 때문입니다;;;;)
 
아마 저보다 훨씬 많이 유능하신 분들이 이 글을 보시고 다듬어 주실 거라 생각합니다.
기꺼이(=제발) 그렇게 해주세요ㅠㅠ

혹시나 되지 않으시는 분들은 본 게시물의 댓글이나 제 메일 khaiel(at)hanmail.net 으로 연락 부탁드리겠습니다.
제가 할 수 있는 한도 내에서는 알려드리겠습니다만........ 전 컴퓨터 프로그래밍을 때려친지 7년이나 지났고 전공도 이쪽이 아니라 전혀 딴판(심지어 이과도 아닌 문과)이므로, 그냥 제 메일 말고 댓글로 달아주시면 유능하신 분들이 알려주실 거라 생각합니다^^;;;;;;
...제 도움은 많이 기대하지 말아주세요;;;


그럼, 시작하겠습니다^^;


수정할 파일은 세개입니다.

1. Script 폴더의 script_list.php
2. zboard.php 파일이 들어있는 폴더의 select_list_all.php
3.                             〃            list_all.php





1.  Script 폴더의 script_list.php

일단, 게시물 일괄 삭제, 이동 할때 쓰는 란을 이용할 것이기 때문에 그 창의 크기를 키워줘야 합니다. 그때 쓰는 창 크기가 작아서 키워주지 않는 이상은 아마 이동할 카테고리 부분을 넣을 곳이 안보일 것이기 때문입니다.

파일을 여시면 맨 아래 부분으로 쭉 내려가세요. 아래와 같은 부분이 있습니다.


---------------------------
    window.open("select_list_all.php?id=<?=$id?>&selected="+document.list.selected.value,"게시물정리","width=260,height=180,toolbars=no,resize=no,scrollbars=no");
  }
  else {alert('정리할 게시물을 선택하여 주십시요');}
 }

 function category_change() {
  var myindex=list.category.selectedIndex;
  document.search.category.value=list.category.options[myindex].value;
  document.search.submit();
  return true;
 }

//-->

--------------------------------

height=180을 300정도로 키워주시면 충분히 쓰시고도 남을 것 같네요.





2. zboard.php 파일이 들어있는 폴더의 select_list_all.php

이 부분 하느라 제일 고생이었습니다ㅠㅠ
수정할 부분이 군데군데 좀 많습니다. 잘만 따라하시면 될 것 같네요.

진한 글씨가 추가하는 부분입니다.


맨 위쪽에 아래와 같은 부분이 있습니다.
----------------
 include "lib.php";
 if(!$connect) $connect=dbconn();
 $result=mysql_query("select name from $admin_table order by name");
 $chan_category=mysql_query("select * from $t_category"."_$id");

----------------




아래로 내려가시면 자바 스크립트 구문이 보이실 겁니다.
--------------
<script>
function change_board_name()
{
 select.board_name.value=select.select_board_name.value;
}

function change_category()
{
 select.ca_no.value=select.select_category.value;
}

function board_delete()
{
 var check;
 select.exec.value="delete_all";
 check=confirm("삭제하시겠습니까?");
 if(check==true) {document.select.submit();}
}
-----------------


조금 더 아래로 내려가세요.

-------------------
function board_move()
{
 var check;
 select.exec.value="move_all";
 check=confirm(select.board_name.value+"게시판으로 이동하시겠습니까?");
 if(check==true) {document.select.submit();}
}

function category_move()
{
 var check;
 select.exec.value="cat_move";
 check=confirm(select.ca_no.value+"카테고리로 이동하시겠습니까?");
 if(check==true) {document.select.submit();}
}

--------------

참고로 위와 같이 해놨기 때문에 "~~카테고리로 이동하시겠습니까?"라고 할때 카테고리 명으로 뜨지 않습니다. 카테고리 ID숫자로 나와요. 카테고리 명으로 띄울 수도 있었지만 저게 더 쉬웠고 굳이 바꾸려면 귀찮아서;;;;; 물론 나중에 바꿀 카테고리 선턱할 때에 카테고리 이름 앞에 ID 숫자를 ()안에 명시해서 구분하실 수 있도록 해 놓았답니다^^


 자, 조금 더 내려가봅시다.

------------------
</tr>
<tr>
 <td background=images/m_back.gif align=center>
  <img src=images/m_text.gif border=0><a href=javascript:void(board_copy()) onfocus=blur()><img src=images/m_copy.gif border=0></a> <a href=javascript:void(board_move()) onfocus=blur()><img src=images/m_move.gif border=0></a><br>
 </td>
</tr>
<tr>
 <td background=images/m_back.gif align=center>
 <table border=0 width=240>
 <tr>
  <td><select name=select_category onchange=change_category() style=width:100%>
<?
 $c_select="selected";
 $ca_no = "";
 while($c_data=mysql_fetch_array($chan_category)) {
  if(!$ca_no) $ca_no = $c_data[no];
?>
   <option value="<?=$c_data[no]?>" <?=$c_select?>>(<?=$c_data[no]?>)<?=$c_data[name]?></option>
<?
  $c_select="";
 }
?>
  </select>
</td>
 </tr>
 </table>
 </td>
</tr>
<tr>
 <td background=images/m_back.gif align=center>
   선택한 카테고리로<a href=javascript:void(category_move()) onfocus=blur()><img src=images/m_move.gif border=0></a>
 </td>
</tr>

<tr>
 <td><img src=images/m_bottom.gif border=0></td>
</tr>
-------------------------

"이동"버튼은 따로 만들기가 귀찮으므로, 그냥 위의 게시물 이동 할때 쓰는 아이콘을 그대로 사용하겠습니다.
사실 저 위에서 $c_select 가 왜 들어가야 하는지는 저도 잘 모르겠습니다;; 위쪽의 게시판 이동 시에 쓰는 구문을 그대로 가져왔기 때문에 일단 전부 복사하고 봤거든요;;; 그러다가 기존의 구문과 충돌할 까봐 앞쪽에 c_를 붙여줬을 뿐입니다;;;

마지막입니다!

-------------------------
</tr>
<input type=hidden name=board_name value="<?=$s_name?>">
<input type=hidden name=ca_no value="<?=$ca_no?>">
</form>
</table>
--------------------------


자, 이제 저장하고 닫으세요.




3. zboard.php 파일이 들어있는 폴더의 list_all.php

파일을 여셨으면 맨 아래로 내려가세요.

----------------------
  $total=mysql_fetch_array(mysql_query("select count(*) from $t_board"."_$board_name",$connect));
  mysql_query("update $admin_table set total_article='$total[0]' where name='$board_name'");

  if($exec=="copy_all") {
   echo"<script> opener.window.history.go(0); window.close(); </script>";
  } elseif($exec=="move_all") {
   echo" <script> location.href='list_all.php?id=$id&exec=delete_all&selected=$select_list'; </script>";
   exit;
  }
 }

/**********************************************************************************
 * Category Move 일때 (선택된 게시물 카테고리 일괄변경)
 *********************************************************************************/

 elseif($exec=="cat_move"){

  for($i=0;$i<count($selected)-1;$i++) {
   $cc_temp=mysql_fetch_array(mysql_query("select * from $t_board"."_$id where no='$selected[$i]'"));

   //카테고리 변경
    mysql_query("update $t_board"."_$id set category='$ca_no' where no='$selected[$i]'")  or Error(mysql_error());
   //카테고리 테이블에서 숫자 하나 더하기
    mysql_query("update $t_category"."_$id set num=num+1 where no='$ca_no'",$connect);
   // 카테고리에서 숫자 하나 뺌
    mysql_query("update $t_category"."_$id set num=num-1 where no='$cc_temp[category]'",$connect);
  }
  echo"<script>opener.window.history.go(0);window.close();</script>";
 }

 //MySQL 종료 /////////////////////////////////////
 if($connect) mysql_close($connect); $connect="";
-------------------------------


//My SQl 종료 부분 위에 bold 부분을 통째로 긁어 붙이시면 되겠습니다.




혹시 이상한 부분이 있다면 알려주세요.
오류 구문이나 쓸데 없는 구문이 있다면 알려주세요. 수정하겠습니다.


일단 저는 지금 잘 쓰고 있습니다.
완성한 파일도 함께 올려드리고 싶습니다만, 공지사항에서 올리지 말라는 글을 봤네요;; 돌아와서 수정합니다;




그럼,
제 팁이 부디 도움이 되셨길 바라겠습니다^^


[레벨:30]조민 

2008.03.09 22:29:34
*.129.241.151

좋은 팁이네요
수고 많으셨습니다.^^
팁 잘 보고 갑니다..

[레벨:3]하날

2008.03.13 15:55:25
*.161.157.48

감사합니다.
나중에 시간나면 적용을 꼭 해야겠네요.
정말 필요한 좋은 팁입니다.

[레벨:0]솔터

2008.03.18 10:10:07
*.244.25.130

서버이전 후 등록했던 글의 카테고리가 모두 일반으로 변경되어서
하나 하나 카테고리를 수정하다 포기하고 있었는데...
덕분에 많은 도움이 되었습니다.
감사합니다. ^^

[레벨:6]나무냄새

2008.03.18 15:05:51
*.159.170.53

오우 ~ 굿 !!

[레벨:6]php,cgi어렵네

2008.08.17 23:19:43
*.43.85.38

감사합니다 ^^

[레벨:1]진혁군

2008.11.17 16:27:32
*.159.153.90

오옷 >_< 유용하게 잘 쓰고 있습니다!!!

미니커뮤니티

2009.02.12 01:13:44
*.128.210.7

구분인자로 게시판 아이디와 카테고리넘버를 나누고
list_all.php 에서 구분인자를 파열시켜 처리하면 더 간편합니다..
첨부
List of Articles
번호 제목 글쓴이 날짜 조회 수
4429 아싸대박!!! 파일업로더 입니다. file [9] 이창욱 2008-04-11 16160
4428 글 등록,수정후 목록을 카테고리 구분없이 전체 리스트로 [3] [레벨:3]하날 2008-04-05 10705
4427 [1분 투자] 홈피를 들어갔을때 하트마우스로 바꿔보자 ^ㅡ^ [레벨:3]kmsang1493 2008-04-01 11242
4426 로그인이 안될때 [3] [레벨:1]김규태735 2008-04-01 1405
4425 최근덧글(코멘트) 출력하고 선택된 셀을 반전시키기 file [4] [레벨:2]gegoori 2008-03-31 11636
4424 UTF-8에서 php.ini 수정 후 관리자 로그인 문제해결 [레벨:1]Taijisk 2008-03-25 12148
4423 제로보드에 레인에디터 설치하기 - 웹편집기 [3] 김종갑 2008-03-24 12925
4422 제로보드에 음성/화상 채팅 추가하기 [3] [레벨:6]digirave 2008-03-09 12841
» 카테고리 일괄 이동하기(동시에 여러 글 카테고리 변경하기). [7] [레벨:2]엘라이어 2008-03-08 12026
4420 ... 질문게시판에 올리던 노프레임 아웃로그인 관련, 해결했습니다~ [1] [레벨:2]fansasypia2 2008-02-26 11361
4419 특정회원의 아이디로 로그인해야할때 [3] [레벨:2]And310 2008-02-26 11571
4418 간단한 이메일 인증법 (개요) [8] 이메일 2008-02-23 13841
4417 제로보드uft-8 현재접속자 스킨변경시 나오는 오류해결 [18] [레벨:2]코코로링 2008-02-18 13200
4416 스패머 가입자 막는방법 [19] [레벨:5]템플러 2008-02-17 15012
4415 특정게시판 파일업로드시 업로드되는 폴더위치 바꾸기 [3] [레벨:5]템플러 2008-02-17 10431
4414 줄바꿈이 ■ 다음과 같은 기호로 바뀌었을때.. file [3] 쮸니 2008-02-16 9762
4413 백업복구 후 신규가입자의 포인트가 올라가지 않는 버그.. [1] [레벨:2]Centell 2008-02-09 13766
4412 사진전용 게시판 리스트에 촬영날짜 보여주기.. file [레벨:2]pixyman.com 2008-01-30 9762
4411 스패머 쩐 가입자 가입못하게... [22] [레벨:3]하날 2008-01-28 9478
4410 제로보드 연동 채팅방 file [8] [레벨:1]넓은세상 2008-01-17 11901