주석을 유념해서 봐주세요..전체검색에 여분필드(wr_1~wr_10)

주석을 유념해서 봐주세요..전체검색에 여분필드(wr_1~wr_10)

QA

주석을 유념해서 봐주세요..전체검색에 여분필드(wr_1~wr_10)

본문

주석을 유념해서 봐주세요...

 

전체검색 스킨 파일명 search.skin.php 을 사용하고 있습니다..

 

아래 코드에서 여분필드(wr_1~wr_10) 가 검색에 나오게 하려면 어디를 수정해야 할까요...?

 

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

 

<?
if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가
?>
<!--
<form name=fsearch method=get onsubmit="return fsearch_submit(this);" style="margin:0px;">
<table align=center width=95% cellpadding=2 cellspacing=0>
<input type="hidden" name="srows" value="<?=$srows?>">
<tr>
    <td align=center>
        <?=$group_select?>
        <script type="text/javascript">document.getElementById("gr_id").value = "<?=$gr_id?>";</script>

        <select name=sfl class=select>
        <option value="wr_subject||wr_content">제목+내용</option>
        <option value="wr_subject">제목</option>
        <option value="wr_content">내용</option>
        <option value="mb_id">회원아이디</option>
        <option value="wr_name">이름</option>
        </select>

        <input type=text name=stx class=ed maxlength=20 required itemname="검색어" value='<?=$text_stx?>'>

        <input type=submit value=" 검 색 ">

        <script type="text/javascript">
        document.fsearch.sfl.value = "<?=$sfl?>";

        function fsearch_submit(f)
        {
            if (f.stx.value.length < 2) {
                alert("검색어는 두글자 이상 입력하십시오.");
                f.stx.select();
                f.stx.focus();
                return false;
            }

            // 검색에 많은 부하가 걸리는 경우 이 주석을 제거하세요.
            var cnt = 0;
            for (var i=0; i<f.stx.value.length; i++) {
                if (f.stx.value.charAt(i) == ' ')
                    cnt++;
            }

            if (cnt > 1) {
                alert("빠른 검색을 위하여 검색어에 공백은 한개만 입력할 수 있습니다.");
                f.stx.select();
                f.stx.focus();
                return false;
            }
           
            f.action = "";
            return true;
        }
        </script>
    </td>
</tr>
<tr>
    <td align=center>
        연산자  
        <input type="radio" name="sop" value="or" <?=($sop == "or") ? "checked" : "";?>>OR  
        <input type="radio" name="sop" value="and" <?=($sop == "and") ? "checked" : "";?>>AND
    </td>
</tr>
</table>
</form>
<p>
-->
  <?
        if ($stx)
        {
            echo "<ul type=circle><li><h2><b>검색된 게시판 리스트</b></h2> <h3>(<b>{$board_count}</b>개의 게시판, <b>".number_format($total_count)."</b>개의 게시글, <b>".number_format($page)."/".number_format($total_page)."</b> 페이지)</h3></ul>";
            if ($board_count)
            {
                echo "<ul><ul type=square style='line-height:130%;'>";
                if ($onetable)
                    echo "<li><a href='?$search_query&gr_id=$gr_id'>전체게시판 검색</a>";
                echo $str_board_list;
                echo "</ul></ul>";
            }
            else
            {
                echo "<ul style='line-height:130%;'><li>검색된 자료가 하나도 없습니다.</ul>";
            }
        }
        ?>

<style>
.line {clear:both;margin:10px auto;border-top:1px solid #ddd;margin-bottom:20px;}
#search_alist h3 {font:bold 16px gulim;margin:0;padding:0}
#search_alist ul {list-style-type:none;margin:0;padding:0}
#search_alist li {clear:both;list-style-type:none;margin:0;padding:2px;}

#search_alist .s_subject a {font:normal 15px dotum;color:#1424c3;letter-spacing:-1px;text-decoration:underline;}
#search_alist .s_content {font:normal 12px dotum;color:#333;line-height:170%;}
#search_alist .s_content img.s_thm {border:1px solid #ccc;margin-right:8px;margin-bottom:8px;padding:0;}
#search_alist .s_name {font:normal 12px dotum;color:#009933}
#search_alist .s_date {font:normal 12px dotum;color:#aaa}
#search_alist .s_word1 {font:bold 15px dotum;color:#1424c3}
#search_alist .s_word2 {font:bold 12px dotum;color:#000}
</style>
<div id="search_alist">
<?
$k=0;
for($idx=$table_index, $k=0; $idx<count($search_table) && $k<$rows; $idx++) {
?> 
 <div class="line"></div>
 <h3><a href='./board.php?bo_table=<?=$search_table[$idx]?>&<?=$search_query?>'><?=$bo_subject[$idx]?>(<?=count($list[$idx])?>)</a></h3>
 <ul>
 <?
 $comment_href = "";  

 $data_path = $g4[path]."/data/file/".$search_table[$idx];
 $thumb_data_path = $g4[path]."/data/file/$search_table[$idx]/thumb";

 for($i=0; $i<count($list[$idx]) && $k<$rows; $i++, $k++){

  //내용에서 html코드가 보이면 주석해제 후 사용***1
  $list[$idx][$i][content]=cut_str(strip_tags($list[$idx][$i][wr_content]),300,"...");

  $comment_href=$comment=$img=$file_name="";

  $list[$idx][$i][subject]=str_replace("<span style='background-color:YELLOW; color:RED;'>","<span class='s_word1'>",$list[$idx][$i][subject]);
  //$list[$idx][$i][content]=str_replace("<span style='background-color:YELLOW; color:RED;'>","<span class='s_word2'>",$list[$idx][$i][content]);
  
  //내용에서 html코드가 보이면 주석해제 후 사용***2
  $list[$idx][$i][content]=str_replace($stx,"<span class='s_word2'>".$stx."</span>",$list[$idx][$i][content]);

  // 가변 파일
  $file['file'] = get_file($search_table[$idx], $list[$idx][$i][wr_id]);

  $file_name=$file[file][0][file];

  $file_reading=$data_path."/".$file_name;
  $simg=$thumb_data_path."/s".$file_name;

  if($file_name && file_exists($file_reading) && preg_match("/\.jpg|\.gif|\.png|\.bmp|\.jpeg/",strtolower($file_name))){

   if(file_exists($simg)) $img=$simg;
   else $img=$file_reading;
  }

  if($list[$idx][$i][wr_is_comment]) {
   
   $comment_href = "#c_".$list[$idx][$i][wr_id];

   $comment="[코멘트] ";
  }
 ?>
 <li>
  <p class="s_subject"><a href="<?=$list[$idx][$i][href].$comment_href?>"><?=$comment.$list[$idx][$i][subject]?></a>  <a href="<?=$list[$idx][$i][href].$comment_href?>" target="_blank9eaecd">[새창]</a></p>
  <p class="s_content">
   <?if($img){?>
   <a href="<?=$list[$idx][$i][href]?>"><img src="<?=$img?>" width="90" align="left" class="s_thm"></a>
   <?}?>
   <?=$list[$idx][$i][file]?><?=$list[$idx][$i][content]?></p>
  <p><span class="s_date"><?=$list[$idx][$i][wr_datetime]?></span></p>
 </li>
 <?}?>
 </ul>
<?}?>
</div>

<p style="text-align:center;"><?=$write_pages?></p>

 

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

이 질문에 댓글 쓰기 :

답변 2

주석은 <!-- -->은 없애주시고요.

search.skin.php 통합 검색 스킨은 출력을 뿌려주는 것이 아니라 통합 검색 페이지를 바꾸는 스킨입니다

사용할때는 아래와 같이 search.php 페이지에서 사용하게 됩니다.

http://demo.sir.co.kr/gnuboard5/bbs/search.php

메인 페이지에 출력을 뿌려줄려면 ​메인페이지를 수정해서 아래와 같은 형태로 해주세요.

        <fieldset id="hd_sch">
            <legend>사이트 내 전체검색</legend>
            <form name="fsearchbox" method="get" action="<?php echo G5_BBS_URL ?>/search.php" onsubmit="return fsearchbox_submit(this);">

            <input type="hidden" name="sfl" value="wr_subject||wr_content||wr_1||wr_2||wr_3||wr_4||wr_5||wr_6||wr_7||wr_8||wr_9||wr_10">
            <input type="hidden" name="sop" value="and">
            <label for="sch_stx" class="sound_only">검색어<strong class="sound_only"> 필수</strong></label>
            <input type="text" name="stx" id="sch_stx" maxlength="20">
            <input type="submit" id="sch_submit" value="검색">
            </form>

            <script>
            function fsearchbox_submit(f)
            {
                if (f.stx.value.length < 2) {
                    alert("검색어는 두글자 이상 입력하십시오.");
                    f.stx.select();
                    f.stx.focus();
                    return false;
                }

                // 검색에 많은 부하가 걸리는 경우 이 주석을 제거하세요.
                var cnt = 0;
                for (var i=0; i<f.stx.value.length; i++) {
                    if (f.stx.value.charAt(i) == ' ')
                        cnt++;
                }

                if (cnt > 1) {
                    alert("빠른 검색을 위하여 검색어에 공백은 한개만 입력할 수 있습니다.");
                    f.stx.select();
                    f.stx.focus();
                    return false;
                }

                return true;
            }
            </script>
        </fieldset>
 

 

그누4 기준은 아래와 같습니다.

<!-- 검색 시작 -->
<table width="<?=$table_width?>" cellspacing="0" cellpadding="0">
<tr>
    <td width="43" height="11"></td>
    <td width="220"></td>
    <td width=""></td>
    <td width="234"><img src="<?=$g4['path']?>/img/search_top.gif" width="234" height="11"></td>
    <td width="35"></td>
</tr>
<tr>
    <td height="33"><img src="<?=$g4['path']?>/img/bar_01.gif" width="43" height="33"></td>
    <td><img src="<?=$g4['path']?>/img/bar_02.gif" width="220" height="33"></td>
    <td background="<?=$g4['path']?>/img/bar_03.gif" width="472" height="33"><table width=100% cellpadding=0 cellspacing=0><tr><td width=25> </td><td><?//=popular();?></td></tr></table></td>
    <td>
        <form name="fsearchbox" method="get" onsubmit="return fsearchbox_submit(this);" style="margin:0px;">
        <!-- <input type="hidden" name="sfl" value="concat(wr_subject,wr_content)"> -->
        <input type="hidden" name="sfl" value="wr_subject||wr_content||wr_1||wr_2||wr_3||wr_4||wr_5||wr_6||wr_7||wr_8||wr_9||wr_10">
        <input type="hidden" name="sop" value="and">
        <table width="100%" height="33" cellspacing="0" cellpadding="0">
        <tr>
            <td width="25" height="25"><img src="<?=$g4['path']?>/img/search_01.gif" width="25" height="25"></td>
            <td width="136" valign="middle" bgcolor="#F4F4F4"><INPUT name="stx" type="text" style="BORDER : 0px solid; width: 125px; HEIGHT: 20px; BACKGROUND-COLOR: #F4F4F4" maxlength="20"></td>
            <td width="12"><img src="<?=$g4['path']?>/img/search_02.gif" width="12" height="25"></td>
            <td width="48"><input type="image" src="<?=$g4['path']?>/img/search_button.gif" width="48" height="25" border="0"></td>
            <td width="13"><img src="<?=$g4['path']?>/img/search_03.gif" width="13" height="25"></td>
        </tr>
        <tr>
            <td width="234" height="8" colspan="5"><img src="<?=$g4['path']?>/img/search_down.gif" width="234" height="8"></td>
        </tr>
        </table>
        </form>
    </td>
    <td></td>
</tr>
</table>

<script type="text/javascript">
function fsearchbox_submit(f)
{
    if (f.stx.value.length < 2) {
        alert("검색어는 두글자 이상 입력하십시오.");
        f.stx.select();
        f.stx.focus();
        return false;
    }

    // 검색에 많은 부하가 걸리는 경우 이 주석을 제거하세요.
    var cnt = 0;
    for (var i=0; i<f.stx.value.length; i++) {
        if (f.stx.value.charAt(i) == ' ')
            cnt++;
    }

    if (cnt > 1) {
        alert("빠른 검색을 위하여 검색어에 공백은 한개만 입력할 수 있습니다.");
        f.stx.select();
        f.stx.focus();
        return false;
    }

    f.action = "<?=$g4['bbs_path']?>/search.php";
    return true;
}
</script>
<!-- 검색 끝 -->
 

답변을 작성하시기 전에 로그인 해주세요.
전체 73
QA 내용 검색

회원로그인

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