시작페이지로 즐겨찾기추가
로그인
회원가입 l 출석체크 l 마이페이지 l CGIMALL
자료실 사이트등록 랭킹100 프로그램리뷰 관리자추천자료 초보가이드
커뮤니티
전체 펼쳐보기
퀵메뉴링크
jquery , CSS , PHP , Javascript , 무료폰트 , ASP
상세검색
> 커뮤니티 > 골드팁 상세보기
커뮤니티 구인구직
사이트등록
현재접속자 새로고침
게시판타이틀 골드팁 / 상세보기
트위터로 보내기 미투데이로 보내기 싸이월드 공감
추천수 44 | 조회수 468 | 등록일 2017-08-11 15:05:14

닉네임

Melbourners Au

제목

해피솔루션 통합검색 부분 개선코드
내용
지금껏 혼자 삽질한게 아까워서 여기에라도 공개합니다.

CGI몰에서 솔루션 구매하시고 나서 게시판 추가 수정 삭제할 때 통합검색 부분을 직접 고치셔야 하는데요
(참고: http://www.cgimall.co.kr/happy_faq/board_detail.cgi?db=board_faq&thread=155)
이부분을 좀더 체계적으로 고친 코드입니다.

(아마도) lib/function.php 의 해당부분을 아래 코드로 덮어쓰시고 적절히 수정해 쓰시면 되겠습니다.

todo: 배열원소를 넣을 필요 없이 아예 게시판 전체를 읽어올 것인지 어떤지를 관리자모드에서 변경 가능하게

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


$search_result_type = "1"; #검색된 결과가 없을경우에도 해당 파트 출력하고자 할경우 1 아닐경우 빈값
$search_keyword = "search_word"; #수정하지마세요. 검색시 넘어오는 값 ex) search.php?keyword=kkk -> $search_keyword = "keyword";

$the_tables = array(

/**
 * 각 배열은 검색 가능한 테이블들입니다.
 *
 * 1항에는 유형을 적습니다. "업소록", "카테고리", "게시판" 3종입니다. 셋 다 아닌 뭔가를 쓰면 아래 switch문의 default가 작동합니다.
 * 2항에는 "템플릿태그"에 사용되는 "추출태그명"을 씁니다.
 * 3항에는 유형에 따라 꼭 필요한 테이블명을 적어줍니다.
 *
 * 새로운 게시판을 만들었다면? 적당한 위치에 복붙해서 배열을 추가합니다.
 * 게시판을 없애야 한다면? 해당 배열원소를 없애줍니다.
 */

array("업소록", "업체"),

array("게시판", "맛집", "eatery"),
array("게시판", "대나무숲", "noname"),
array("게시판", "동영상", "youtube"),
array("게시판", "사진관", "board_gallery_photo"),
array("게시판", "단톡홍보", "kakaotalks"),
array("게시판", "개인광고", "flyers"),
array("게시판", "이벤트", "events"),
array("게시판", "픽업", "ride"),

array("게시판", "구인", "job_openings"),
array("게시판", "구직", "job_seekers"),

array("게시판", "패션", "outfit"),
array("게시판", "사고팔고", "deal"),

array("게시판", "쉐어", "bd_share"),
array("게시판", "렌트", "bd_rent"),
array("게시판", "개인매매", "bd_personal"),
array("게시판", "비즈니스", "bd_business"),

array("게시판", "유학", "inter_school"),
array("게시판", "이민", "immigration"),
array("게시판", "법률", "legal"),
array("게시판", "세무", "tax"),
array("게시판", "심리상담", "counsel"),
array("게시판", "투어", "tour"),
array("게시판", "학교", "school"),
array("게시판", "멜번맘", "housework"),

array("게시판", "한국뉴스", "news_korean"),
array("게시판", "호주뉴스", "news_australian"),

array("카테고리", "카테고리"),
);

// 필요한 배열들을 공갈로 하나씩 만듭니다.
$check_part = $search_table = $search_field = $search_orderby = $search_title_field = $search_date_field = $search_where = $search_view_all_link = array();

// iterator를 쓰기 위해 foreach 아닌 for 문을 씁니다.
for ($i = 0; $i < count($the_tables); $i++) {

// 우선 모든 배열 각각에 대한 공통작업을 합시다.
$key = $the_tables[$i][1];
$check_part[$key] = $i;

// 그리고 나서 각 배열 1항에 뭐라고 써있는지에 따른 각개작업을 합시다.
switch ($the_tables[$i][0]) {

// 업소록일 때
case "업소록":
$search_table[$i] = $links;
$search_field[$i] = "title+address+phone+homepage+short_comment+review+build_date+keyword";
$search_orderby[$i] = "number";
$search_title_field[$i] = "title";
$search_date_field[$i] = "links_date";
$search_where[$i] = " AND wait="0" ";
$search_view_all_link[$i] = "price_search.php?action=search&search_word=";
break;

case "게시판":
// 게시판 배열의 셋째항을 이용해서 일괄 작성합니다.
$tbname = $the_tables[$i][2];

$search_table[$i] = $DB_Prefix.$tbname;
$search_field[$i] = $search_query_string = "bbs_title+bbs_review";
$search_orderby[$i] = "number";
$search_title_field[$i] = "bbs_title";
$search_date_field[$i] = "bbs_date";
$search_where[$i] = "";
$search_view_all_link[$i] = "bbs_list.php?action=search&search=".$search_query_string."&tb=".$tbname."&keyword=";
break;

case "카테고리":
$search_table[$i] = $category_tb;
$search_field[$i] = "category_name";
$search_orderby[$i] = "category_sort";
$search_title_field[$i] = "category_name";
$search_date_field[$i] = "display";
$search_where[$i] = " AND category_name LIKE "%업소록%" AND display="Y" ";
$search_view_all_link[$i] = "더보기링크없음";
break;

default:
// 해당 배열원소의 2번째 항부터 raw data를 입력해 쓰실 수 있습니다.
$search_table[$i] = $the_tables[$i][2]; // 쿼리돌릴 DB테이블
$search_field[$i] = $the_tables[$i][3]; // 쿼리돌릴 컬럼들
$search_orderby[$i] = $the_tables[$i][4]; // 쿼리 정렬할 컬럼
$search_title_field[$i] = $the_tables[$i][5]; // 쿼리결과의 타이틀컬럼
$search_date_field[$i] = $the_tables[$i][6]; // 쿼리결과의 날짜컬럼
$search_where[$i] = $the_tables[$i][7]; // 기타 쿼리돌릴때 필요한 where문
$search_view_all_link[$i] = $the_tables[$i][8]; // 추출태그에서 사용할 더보기 링크
break;
}
}
추천스크랩소스보기 목록
이전게시글 모바일 및 리스트형 템플릿 파일에 적용하면 유용한 ellipsis 소스 2013-08-14 16:40:34
다음게시글 그룹내 배너들을 몇 개 모듬으로 나누어 골고루 출력하기 2017-08-18 14:33:15