<?php

/*
=====================================================================

  프로젝트 이름 : 피리 웹프로그램

  만든사람 : 피리 PIREE ( piree1977@gmail.com )

  홈페이지 : www.piree.kr

  작성날짜 : 2020년 07월 24일 금요일 오전 02시 07분 - 날씨 흐림, 18, 18, 22, 20 / 최고 좋음, 2, 0

  저 작 권 : Copyright ⓒ 2014-2023 피리 PIREE . All right reserved
            그누보드 외에 추가된 소스는~
            만든사람의 허락없이 무단으로 사용할수 없습니다.
            사용하고자 할 경우 만든사람의 허락을 받아야 합니다.
            http://.piree.kr 에 문의해 주세요.

=====================================================================
 피리 SAM > 라이브러리 > 피리 웹프로그램 > p770008 - 새알림, 내글반응
=====================================================================

//*****************************************************************
//** SAM_SOSS
//*****************************************************************

*/

/*
  ▣ 작업자 : 피리 PIREE ( piree1977@gmail.com )
  ▣ 작업일시 : 2020년 07월 24일 금요일 오전 05시 23분 - 날씨 
  ▣ 작업내용 : 
*/

  IF ( !defined('_GNUBOARD_') )                  EXIT;

  # PWP__770008__BO_CATE

  function get_770008_sql_search($search_field, $search_text, $search_operator='and')
  {

      global $g5;

      $str = "";

      $search_text = strip_tags($search_text);
      $search_text = trim(stripslashes($search_text) );

// 높이기 위하여 ( ) 는 최소화 한다.
      $op1 = "";

// 나눈다. 여기서는 공백
      $s = array();
      $s = explode(" ", $search_text);

// 나눈다. 여기서는 +
      $tmp = array();
      $tmp = explode(", ", trim($search_field) );
      $field = explode("||", $tmp[0]);
      $not_comment = "";
      if ( !empty($tmp[1] ) )
          $not_comment = $tmp[1];

//$str .= "(";
      FOR ( $i=0; $i<count($s); $i++ ) {

          $search_str = trim($s[$i]);
          IF ( $search_str == "") continue;

          $str .= $op1;
          $str .= "(";

          $op2 = "";
          FOR ( $k=0; $k<count($field); $k++ ) { // 다중 필드 검색 가능 (필드1+필드2...)

// 방지
// A-Z 0-9 _ , | 이외의 값이 있다면 검색필드를 wr_subject 로 설정한다.
              $field[$k] = preg_match("/^[\w\,\|]+$/", $field[$k] ) ? $field[$k] : "wr_subject";

              $str .= $op2;
              switch ($field[$k] ) {
                  case "mb_id" :
                  case "wr_name" :
                      $str .= " $field[$k] = '$s[$i]' ";
                      break;
                  case "wr_hit" :
                  case "wr_good" :
                  case "wr_nogood" :
                      $str .= " $field[$k] >= '$s[$i]' ";
                      break;
// 검색어에 -1 을 곱함
                  case "wr_num" :
                      $str .= "$field[$k] = ". ((-1)*$s[$i]);
                      break;
                  case "wr_ip" :
                  case "wr_password" :
                      $str .= "1=0"; // 
                      break;
// INSTR 속도가 빠름
                  default :
                      if ( preg_match("/[a-zA-Z]/", $search_str) )
                          $str .= "INSTR(LOWER($field[$k] ), LOWER('$search_str') )";
                      else
                          $str .= "INSTR($field[$k], '$search_str')";
                      break;
              }
              $op2 = " or ";
          }
          $str .= ")";

          $op1 = " $search_operator ";
      }
//$str .= " ) ";
      IF ( $not_comment)
          $str .= " AND wr_is_comment = '0' ";

      return $str;
  }

?>