본문 바로가기
셈틀 Com/제로보드

모든 게시판 검색소스

by 길목 2005. 5. 24.
#1 파일 다운로드 및 준비

먼저 첨부파일#1에 올려놓은 search.zip 파일을 다운로드받아서 압축을 풉니다.
그러면 다음과 같은 7개의 파일이 나타납니다.

search.php
name_on.gif
name_off.gif
subject_on.gif
subject_off.gif
content_on.gif
content_off.gif

여기에서 search.php를 제외한 나머지 그림 파일은 여러분의 취향대로 바꿔 사용하셔도 됩니다.


#2 파일 수정

여러분이 수정하셔야할 파일은 search.php 파일입니다.
다음은 search.php파일의 66번째와 67번째 줄입니다.


$_zb_path = "/제로보드의 절대경로를 입력해주세요/"; //이 두가지는 끝에 꼭 "/"를 붙여야함.
$_zb_url = "http://제로보드의 URL을 입력해주세요/";


빨간색 부분이 여러분이 수정해주셔야 할 부분입니다.
외부로그인 달때 하던 부분이니까 쉽게 수정하실 수 있으리라고 믿습니다.



#3 파일 오류 수정

제가 귀차니즘이 생겨서 고친 파일을 업로드 안하고-_-;;
아무튼 들어갑니다.

-----첫번째-----
search.php 파일의 48번째 줄에 보시면


<?=stripslashes($bdata[title])?>


라는 문구가 보일겁니다.
사실 이렇게 해도 별 문제는 없는데, 게시판 설정에서 "타이틀 지정" 부분을 입력하지 않으신 분들은 나오지가 않아버립니다.
그래서 아래와 같이 바꿔줍니다. (카프카님 지적)


<?=stripslashes($bdata[name])?>


-----두번째-----
search.php 파일의 61번째 줄에 보시면


if(get_private_icon($data[ismember],2)) $name = [img src=\"".get_private_icon($data[ismember],2)."\" border=\"0\" align=\"absmiddle\">";


라고 되어있는데 이렇게만 하면 이미지닉네임은 뜨지 않습니다. (제로보드 폴더에 올린 경우엔 뜹니다)
이미지닉네임을 띄우시려면 아래와 같이 바꿔주세요. (이미지닉네임을 사용하지 않는다면 바꾸지 않아도 상관없음)


if(get_private_icon($data[ismember],2)) $name = "[img src=\"".$_zb_url.get_private_icon($data[ismember],2)."\" border=\"0\" align=\"absmiddle\">";

※부득이하게 < 문자를 [ 으로 표시하였습니다. 양해를 구합니다.


#4 파일 업로드

search.php 파일을 저장한 후, 7개의 파일을 계정에 업로드합니다.
단 이 7개의 파일은 모두 같은 폴더에 업로드하셔야합니다. 그렇지 않으면 search.php를 수정해야합니다
(3단계 끝.. 퍽-)


#5 응용

이제 http://홈페이지주소/업로드경로/search.php 등의 URL을 찾아들어가시면 검색창이 나옵니다.
그런데 나는 홈페이지 한 구석지에 달고싶다! 하시는 분이 분명히 계시리라 믿습니다.
그래서 제가 준비했습니다-_-vvv

아래의 소스는 search.php 파일의 3~61번째 줄입니다.


<!--홈페이지 한 구석에 달고싶으면 아래 부분을 잘라내어 홈페이지에 삽입하세요 (복사가 아님)-->
<script>
<!--
browserName = navigator.appName;
browserVer = parseInt(navigator.appVersion);
if(browserName == "Netscape" && browserVer >= 3){ init = "net"; }
else { init = "ie"; }


if((init=="net" && browserVer >=3) || (init == "ie" && browserVer>=4)) {
       sn_on=new Image;
       sn_off=new Image;
       sn_on.src= "name_on.gif";
       sn_off.src= "name_off.gif";

       ss_on=new Image;
       ss_off=new Image;
       ss_on.src= "subject_on.gif";
       ss_off.src= "subject_off.gif";

       sc_on=new Image;
       sc_off=new Image;
       sc_on.src= "content_on.gif";
       sc_off.src= "content_off.gif";
}

function OnOff(name) {
       if((init=="net" && browserVer >=3) || (init == "ie" && browserVer>=4)) {
               if(document.search[name].value=="on") {
                       document.search[name].value='off';
                       ImgSrc=eval(name+"_off.src");
                       document[name].src=ImgSrc;
               } else {
                       document.search[name].value='on';
                       ImgSrc=eval(name+"_on.src");
                       document[name].src=ImgSrc;
               }
       }
}
-->
</script>
<form name="search" method="post" action="search.php"> <!--search.php의 경로를 맞춰줘야함-->
<input type="hidden" name="sn" value="off">
<input type="hidden" name="ss" value="on">
<input type="hidden" name="sc" value="on">
<table width="150" cellpadding="0" cellspacing="0">
       <tr>
               <td>
                       
<input type="text" name="keyword" size="15" "background-color:#EDF6FF; border:1 solid #AACCFF; height:18px; font-size:8pt; font-family:Tahoma;"><input type="submit" value="ok" style="font-size:8pt; font-family:Tahoma; background-color:#AACCFF; color:white; height:18px; border:0;" ="blur();">


               </td>
       </tr>
       <tr>
               <td>
                       
[a href=".javascriptOnOff('sn')" ="blur();">[img src="name_off.gif" width="23" height="5" border="0" name="sn">[a href=".javascriptOnOff('ss')" ="blur();">[img src="subject_on.gif" width="27" height="5" border="0" name="ss">[/a>[a href=".javascriptOnOff('sc')" ="blur();">[img src="content_on.gif" width="26" height="5" border="0" name="sc">[/a>


               </td>
       </tr>
</table>
</form>
<!--여기까지-->

※부득이하게 < 문자를 [ 으로 표시하였습니다. 양해를 구합니다.



위의 소스를 그대로 복사하셔서 홈페이지에 넣고싶은 부분에 그대로 넣어주시면 됩니다.
혹시 넣었더니 테이블(표)이 이상하게 늘어나거나 깨져보인다면 </form>의 위치를 </tr> 밑의줄이나 </td> 밑의줄 등으로 바꿔보세요.


홈페이지에 삽입하셨으면 수정할 부분이 있습니다.


<form name="search" method="post" action="search.php"> <!--search.php의 경로를 맞춰줘야함-->


위 소스에서 빨간색 부분을 수정하셔야합니다.
경로를 잘 파악해서 입력해주세요.

예를 들어서,

html┌homepage
  │  └ search.html (위의 소스를 복사해서 붙여넣은 HTML파일)
  │  └ 기타 파일들...;
  ├search
  │  ├ search.php (첨부파일에 있던놈)
  │  └ 기타 이미지파일들...;
  └bbs

이렇게 되어있고, search.html 파일에 위의 소스가 들어있다고 하면
search.html 파일에서 빨간 부분을 찾아 ../search/search.php로 수정해주셔야합니다.


그러면 이제 되리라 믿습니다.



#6 특정 게시판만 검색하게 하려면?

몇분의 건의가 들어와서 한번 바꿔봅니다.
하지만 테스트를 해보지 못했으니 에러나면 코멘트 써주시구요..

아래의 소스는 search.php 파일의 41,42,43번째 줄입니다.


$bdata_re = mysql_query("select * from $admin_table order by no");
while($bdata = mysql_fetch_array($bdata_re)) {
       $result = mysql_query("select * from $t_board"."_$bdata[name] $que order by no desc");


이 소스를 아래와 같이 바꿉니다.


$bdata = array("게시판1","게시판2","게시판3","게시판4","게시판5"); //수정해서 사용하세요. 게시판의 DB명을 입력해주세요.
for($i=0; $i<count($bdata); $i++) {
       $result = mysql_query("select * from $t_board"."_$bdata[$i] $que order by no desc");


역시 빨간부분이 수정해야할 부분입니다.
만약 freeboard, question, pds 게시판에서만 검색 결과를 보여주고 싶다면

$bdata = array("freeboard","question","pds");

라고 고쳐주면 됩니다.


그리고 search.php 파일의 48번째 줄에 보시면


<?=stripslashes($bdata[title])?>


라고 되어있는 부분을 아까 위에서 <?=stripslashes($bdata[name])?> 으로 바꿔주셨던 분들은

<?=stripslashes($bdata[$i])?>

로 바꿔주셔야 나타납니다.

*************
헤더와 푸터 넣어서 하려면
search.php 파일제일 위와 제일 아래쪽에 다음과 같이 넣는다.
<? 바로 아래줄에 다음줄을 삽입한다.
include "/header가 있는 위치의 절대경로 혹은 상대경로/";

<?include "/파일위치/";?>

댓글