테스트 사이트 - 개발 중인 베타 버전입니다

인기검색어 특정단어 db 저장 제외 시키기 채택완료

떳다이장님 7년 전 조회 2,532

그누보드 4 에서는

아래와 같이 하면 된다는 글을 봤습니다. 응용을 하면 그누보드 5에서도 가능할것같은데

 

여분필드 cf_2에 기록 제외용 필터 언어 cf-2의 db종류를 VARCHAR에서 TEXT로 변경   "기본환경설정"에서 여분필드의 "여분필드 2 설정값"에 필터할 단어를 적습니다.(콤마를 구분자로 사용) 

bbs/search.php에서 검색어 기록부분을 다음과 같이 변경하여줍니다. 

</strong> 

//그누보드4 검색어기록 필터 20121221 

$filter = explode(",", $config[cf_2]); 

 if(!in_array($search_str, $filter)) { 



$sql = " insert into $g4[popular_table] set pp_word = '$search_str', pp_date = '$g4[time_ymd]', pp_ip = '$_SERVER[REMOTE_ADDR]' "; 

sql_query($sql, FALSE); 



} </p>

<p><strong>
 

 

 

그누보드 5 seacrh.php 파일 인기검색어 저장 부분 어디쯤에 넣어줘야할지 

 

감이 안잡히네요.. 아래가 그누보드 4 인기검색어 insert 부분인것같은데..

 

</strong> </p>

<p>$str = '(';</p>

<p>for ($i=0; $i<count($s); $i++) {</p>

<p>if (trim($s[$i]) == '') continue;</p>

<p> </p>

<p>$search_str = $s[$i];</p>

<p> </p>

<p>// 인기검색어</p>

<p>insert_popular($field, $search_str);</p>

<p> </p>

<p>$str .= $op1;</p>

<p>$str .= "(";</p>

<p> </p>

<p>$op2 = '';</p>

<p>// 필드의 수만큼 다중 필드 검색 가능 (필드1+필드2...)</p>

<p>for ($k=0; $k<count($field); $k++) {</p>

<p>$str .= $op2;</p>

<p>switch ($field[$k]) {</p>

<p>case 'mb_id' :</p>

<p>case 'wr_name' :</p>

<p>$str .= "$field[$k] = '$s[$i]'";</p>

<p>break;</p>

<p>case 'wr_subject' :</p>

<p>case 'wr_content' :</p>

<p>if (preg_match("/[a-zA-Z]/", $search_str))</p>

<p>$str .= "INSTR(LOWER({$field[$k]}), LOWER('{$search_str}'))";</p>

<p>else</p>

<p>$str .= "INSTR({$field[$k]}, '{$search_str}')";</p>

<p>break;</p>

<p>default :</p>

<p>$str .= "1=0"; // 항상 거짓</p>

<p>break;</p>

<p>}</p>

<p>$op2 = " or ";</p>

<p>}</p>

<p>$str .= ")";</p>

<p> </p>

<p>$op1 = " {$sop} ";</p>

<p> </p>

<p>}</p>

<p><strong>

댓글을 작성하려면 로그인이 필요합니다.

답변 1개

채택된 답변
+20 포인트

lib > common.lib.php 파일에서 insert_popular 함수 (2980라인 정도)를 수정하세요.

 

</p>

<p>// 인기검색어 입력

function insert_popular($field, $str)

{

    global $g5, $config; // 변경</p>

<p>    $filter = explode(",", $config[cf_2]);  // 추가</p>

<p>    if(!in_array('mb_id', $field) && !in_array($str, $filter)) { // 변경</p>

<p>        $sql = " insert into {$g5['popular_table']} set pp_word = '{$str}', pp_date = '".G5_TIME_YMD."', pp_ip = '{$_SERVER['REMOTE_ADDR']}' ";

        sql_query($sql, FALSE);

    }

}</p>

<p>

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인