스크랩 검색기능 부여하기 정보
스크랩 검색기능 부여하기관련링크
첨부파일
본문
이 기능은 그누보드 원본소스를 수정하는 기능으로 그누보드 패치시에 해당 파일을 업데이트 하는 경우에는 프로그램을 다시 수정하셔야 합니다.
사용법은 최고관리자로 로그인하여 http://작업자도메인/bbs/scrap.php?data=conversion 을 한번 호출하여
스크랩 테이블에 wr_subject 필드를 생성하고, 이 생성된 필드에 기존 게시물의 제목을 업데이트 한후에
기존에 사용하시던 방법과 동일한 방법으로 사용하시면 됩니다.
작업내용은 아래1~4의 내용을 참고하시고
첨부파일은 g5 5.2.4 파일을 기준으로 수정한 파일을 첨부합니다.
1. 스크랩 테이블에 wr_subject 필드 생성, 기존 데이타 update, 검색 sql 수정
수정파일 : bbs/scrap.php
1) 최고관리자로 로그인하여 http://작업자도메인/bbs/scrap.php?data=conversion 을 실행하여
wr_subject 필드를 생성하고, 게시판 테이블에 있는 제목을 스크랩 테이블에 업데이트 처리
2) 검색어로 입력받은 문자를 기준으로 검색조건 sql 생성(공백을 기준으로 복수개의 단어 입력가능)
3) 스크랩테이블에 wr_subject가 있으므로 각 게시판의 제목 조회는 기능 주석처리
4) 위3의 제목을 가져오던 것에서 스크랩 테이블의 데이타를 가져오도록 처리
2. 스크랩등록시 제목 또는 사용자가 입력한 값을 저장하도록 insert문 수정
수정파일 : bbs/scrap_popin_update.php
3. 스크랩화면에 검색 버턴 추가
수정파일 : skin/member/basic/scrap.skin.php
4. 스크랩하는 화면에서 게시글 제목을 보여주는 항목추가, 사용자의 검색어는 등록하지 않고 글제목을 그대로 저장하려면, input 박스를 hidden 처리해야함
수정파일 : skin/member/basic/scrap_popin.skin.php
사용법은 최고관리자로 로그인하여 http://작업자도메인/bbs/scrap.php?data=conversion 을 한번 호출하여
스크랩 테이블에 wr_subject 필드를 생성하고, 이 생성된 필드에 기존 게시물의 제목을 업데이트 한후에
기존에 사용하시던 방법과 동일한 방법으로 사용하시면 됩니다.
작업내용은 아래1~4의 내용을 참고하시고
첨부파일은 g5 5.2.4 파일을 기준으로 수정한 파일을 첨부합니다.
1. 스크랩 테이블에 wr_subject 필드 생성, 기존 데이타 update, 검색 sql 수정
수정파일 : bbs/scrap.php
1) 최고관리자로 로그인하여 http://작업자도메인/bbs/scrap.php?data=conversion 을 실행하여
wr_subject 필드를 생성하고, 게시판 테이블에 있는 제목을 스크랩 테이블에 업데이트 처리
//스크랩테이블에 wr_subject 필드 생성및 데이타 이전작업 by root 20161221
//최고관리자로 로그인후 URL 호출 http://작업자도메인/bbs/scrap.php?data=conversion
if ($is_admin == 'super' && $data == 'conversion') {
sql_query(" ALTER TABLE `{$g5['scrap_table']}`
ADD `wr_subject` VARCHAR(255) NOT NULL AFTER `wr_id` ", false);
$result = sql_query("select distinct bo_table from `{$g5['scrap_table']}`");
for ($i=0; $row=sql_fetch_array($result); $i++) {
$usql = "update `{$g5['scrap_table']}` a
set a.wr_subject =
(select b.wr_subject from `{$g5[write_prefix]}{$row['bo_table']}` b where b.wr_id = a.wr_id)
where a.bo_table = '{$row['bo_table']}'
and a.wr_subject = ''";
sql_query($usql);
}
}
2) 검색어로 입력받은 문자를 기준으로 검색조건 sql 생성(공백을 기준으로 복수개의 단어 입력가능)
$sql_common = " from {$g5['scrap_table']} where mb_id = '{$member['mb_id']}' ";
// 검색조건설정 by root 20161221
$sop = strtolower($sop);
if (!$sop || !($sop == 'and' || $sop == 'or')) $sop = 'and'; // 연산자 and , or
$stx = get_search_string($stx); // 특수문자 제거
if ($stx) {
$stx = preg_replace('/\//', '\/', trim($stx));
$sql_common .= "and (";
// 검색어를 구분자로 나눈다. 여기서는 공백
$s = explode(' ', strip_tags($stx));
for ($i=0; $i<count($s); $i++) {
if($i>0) $sql_common .= " $sop ";
$sql_common .= " instr(`wr_subject`,'$s[$i]') ";
}
$sql_common .= ")";
}
$sql_order = " order by ms_id desc ";
3) 스크랩테이블에 wr_subject가 있으므로 각 게시판의 제목 조회는 기능 주석처리
// 게시물 제목
/* wr_subject를 추가했으므로 테이블에서 조회하는 구문 주석처리 by root 20161221
$tmp_write_table = $g5['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'] = '[글 없음]';
*/
4) 위3의 제목을 가져오던 것에서 스크랩 테이블의 데이타를 가져오도록 처리
//$list[$i]['subject'] = $subject; ==> 주석처리
$list[$i]['subject'] = get_text(cut_str($list[$i]['wr_subject'], 100)); // 스크랩 테이블에서 조회된 값을 설정
2. 스크랩등록시 제목 또는 사용자가 입력한 값을 저장하도록 insert문 수정
수정파일 : bbs/scrap_popin_update.php
//$sql = " insert into {$g5['scrap_table']} ( mb_id, bo_table, wr_id, ms_datetime ) values ( '{$member['mb_id']}', '$bo_table', '$wr_id', '".G5_TIME_YMDHIS."' ) "; ==> 기존파일 주석처리
//스크랩에 검색기능추가를 위해서 wr_subject 추가 by root 20161221
$sql = " insert into {$g5['scrap_table']} ( mb_id, bo_table, wr_id, wr_subject, ms_datetime ) values ( '{$member['mb_id']}', '$bo_table', '$wr_id', '$wr_subject', '".G5_TIME_YMDHIS."' ) "; //wr_subject 항목추가
sql_query($sql);
3. 스크랩화면에 검색 버턴 추가
수정파일 : skin/member/basic/scrap.skin.php
<!-- 스크랩 검색기능 추가 by root 20161221 -->
<form name="fscrap" onsubmit="return fscrap_submit(this);" method="get">
<div class="win_btn">
<input type="text" name="stx" value="<?php echo $text_stx ?>" id="stx" required class="frm_input required" maxlength="20">
<input type="submit" class="btn_submit" value="검색">
<input type="radio" value="or" <?php echo ($sop == "or") ? "checked" : ""; ?> id="sop_or" name="sop">
<label for="sop_or">OR</label>
<input type="radio" value="and" <?php echo ($sop == "and") ? "checked" : ""; ?> id="sop_and" name="sop">
<label for="sop_and">AND</label>
<button type="button" onclick="window.close();">창닫기</button>
</div>
<script>
function fscrap_submit(f)
{
if (f.stx.value.length < 2) {
alert("검색어는 두글자 이상 입력하십시오.");
f.stx.select();
f.stx.focus();
return false;
}
f.action = "";
return true;
}
</script>
</form>
4. 스크랩하는 화면에서 게시글 제목을 보여주는 항목추가, 사용자의 검색어는 등록하지 않고 글제목을 그대로 저장하려면, input 박스를 hidden 처리해야함
수정파일 : skin/member/basic/scrap_popin.skin.php
<!-- 스크랩 내용 by root 20161221 -->
<tr>
<th scope="row">스크랩</th>
<td><input type="text" name="wr_subject" size="70" required class="frm_input required" maxlength="255" value="<?php echo get_text(cut_str($write['
wr_subject'], 255)) ?>"></td>
</tr>
추천
4
4