[천상재회의파워팁02]스크랩에도 검색기능을 적용하자(1) > 그누4 팁자료실

그누4 팁자료실

그누보드4와 관련된 팁을 여러분들과 함께 공유하세요.
나누면 즐거움이 커집니다.

[천상재회의파워팁02]스크랩에도 검색기능을 적용하자(1) 정보

[천상재회의파워팁02]스크랩에도 검색기능을 적용하자(1)

본문

부득이하게 원본 수정을 요하는 부분이기에 스킨이 아닌 팁에 총 4회에 걸쳐 기재합니다.
또한 스킨의 경우 해당 스킨을 다운받아야 내용을 볼 수 있기에 적절한 피드백을 요하면서 시작합니다.

기본적으로 데이타베이스에 접속하셔서 스크랩테이블의  wr_id 다음에

wr_subject varchar(255) 필드를 생성하셔야 합니다.(제목으로 검색하기 위함)

bbs/scrap.php 입니다(항상 원본은 백업해 두시고 적용하십시오)

1번이미지는 일반 목록보기 입니다.

2번 이미지는 검색후 입니다.

태클은 환영합니다......^^

<?
include_once("./_common.php");

if (!$member[mb_id])
    alert_close("회원만 조회하실 수 있습니다.");

$g4[title] = $member[mb_nick] . "님의 스크랩";
include_once("$g4[path]/head.sub.php");

//$list = array();

$sql_common = " from $g4[scrap_table] where mb_id = '$member[mb_id]' ";

//스크랩에서 검색기능추가(천상재회 http://www.triplecubic.om 2006/12/08)
if ($stx)
{
    //$stx = trim($stx);
    $stx = preg_replace("/\//", "\/", trim($stx));
    $sop = strtolower($sop);
    //if (!$sop || !($sop == "and" || $sop == "or")) $sop = "and"; // 연산자 and , or   

    $search_query = "sfl=".urlencode($sfl)."&stx=".urlencode($stx)."&sop=$sop";
    $text_stx = get_text(stripslashes($stx));

    $op1 = "";

    // 검색어를 구분자로 나눈다. 여기서는 공백
    $s = explode(" ", $stx);

    // 검색필드를 구분자로 나눈다. 여기서는 +
    $field = trim($sfl);
    $str = " and ";
    $str .= "(";
    for ($i=0; $i<count($s); $i++)
    {
        //$search_str = strtolower($s[$i]);
        $search_str = $s[$i];
        $str .= $op1;
        $str .= "(";       
        $op2 = "";       
        $str .= $op2;           
            if (preg_match("/[a-zA-Z]/", $search_str))
        $str .= "INSTR(LOWER($field), LOWER('$search_str'))";
            else
        $str .= "INSTR($field, '$search_str')";           
           
            $op2 = " or ";
       
        $str .= ")";

        $op1 = " $sop ";

       
    }
    $str .= ")";

    //$sql_search = $str . " and wr_option not like '%secret%' "; // 비밀글은 제외
    $sql_common .= $str;

}
//스크랩에서 검색기능추가 끝

$sql_order = " order by ms_id desc ";

$sql = " select count(*) as cnt $sql_common ";
$row = sql_fetch($sql);
$total_count = $row[cnt];

$rows = $config[cf_page_rows];
$total_page  = ceil($total_count / $rows);  // 전체 페이지 계산
if (!$page) $page = 1; // 페이지가 없으면 첫 페이지 (1 페이지)
$from_record = ($page - 1) * $rows; // 시작 열을 구함

$list = array();

$sql = " select *
          $sql_common
          $sql_order
          limit $from_record, $rows ";
$result = sql_query($sql);



for ($i=0; $row=sql_fetch_array($result); $i++)
{
    $list[$i] = $row;

    // 순차적인 번호 (순번)
    $num = $total_count - ($page - 1) * $rows - $i;

    // 게시판 제목
    $sql2 = " select bo_subject from $g4[board_table] where bo_table = '$row[bo_table]' ";
    $row2 = sql_fetch($sql2);
    if (!$row2[bo_subject]) $row2[bo_subject] = "[게시판 없음]";

    // 게시물 제목
    $tmp_write_table = $g4[write_prefix] . $row[bo_table];
    $sql3 = " select wr_subject from $tmp_write_table where wr_id = '$row[wr_id]' ";
    $row3 = sql_fetch($sql3, FALSE);
    $subject = get_text(cut_str($row3[wr_subject], 100));
    if (!$row3[wr_subject])
        $row3[wr_subject] = "[글 없음]";

//스크랩에서 첫번째 이미지를 뽑자(천상재회 http://www.triplecubic.com 2006/11/29)
    $sql4 = " select * from $g4[board_file_table] where bo_table = '$row[bo_table]' and wr_id = '$row[wr_id]' and bf_no = '0' ";
    $result4 = sql_query($sql4);
    $row4 = sql_fetch_array($result4);
    $list[$i][bf_file] = $row4['bf_file'];
    $list[$i][bf_source] = $row4['bf_source'];
    $list[$i][bo_table] = $row4['bo_table'];
    //스크랩에서 첫번째 이미지를 뽑자 끝

    $list[$i][num] = $num;
    $list[$i][opener_href] = "./board.php?bo_table=$row[bo_table]";
    $list[$i][opener_href_wr_id] = "./board.php?bo_table=$row[bo_table]&wr_id=$row[wr_id]";
    $list[$i][bo_subject] = $row2[bo_subject];
    $list[$i][subject] = $subject;
    $list[$i][del_href] = "./scrap_delete.php?ms_id=$row[ms_id]&page=$page";
}

$member_skin_path = "$g4[path]/skin/member/$config[cf_member_skin]";
include_once("$member_skin_path/scrap.skin.php");

include_once("$g4[path]/tail.sub.php");
?>
추천
2

댓글 3개

에구..

기본적으로 데이타베이스에 접속하셔서 스크랩테이블의  wr_id 다음에

wr_subject varchar(255) 필드를 생성하셔야 합니다.(제목으로 검색하기 위함)

//접속해서 추가한다고 만졌는데 에러가....
초보는 그림에 떡^^

자동으로 만들어주삼...
업그레이드 버전 작업 완료되었고 정리중입니다...^^

필드가 하나 더 추가가 되기에 칠쟁이님만을 위한 셋업 화일을.....ㅠ.ㅠ
전체 37 |RSS
그누4 팁자료실 내용 검색

회원로그인

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