My encyclopaedia

제로보드 팁

알 수 없는 사용자 2008. 4. 4. 11:34
제로보드 게시판  - 엘라이어님의 글 -
원본글 링크 :
http://www.zeroboard.com/?mid=zb4_tip&search_target=user_id&search_keyword=elayer&document_srl=16586623


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


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


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




2. 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 부분을 통째로 긁어 붙이시면 되겠습니다.




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


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




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

'My encyclopaedia' 카테고리의 다른 글

법정동코드  (0) 2008.11.05
블루스크린 코드및 해결책  (0) 2008.11.01
슈뢰딩거의 고양이  (0) 2008.05.24
kmp 720p 고화질 동영상 설정법  (0) 2008.04.26
autocad objectData관련된 리습함수  (0) 2006.10.17