후킹, 칼럼 추가로 내용관리_검색_타이틀을 만들기 > 그누보드5 팁자료실

그누보드5 팁자료실

후킹, 칼럼 추가로 내용관리_검색_타이틀을 만들기 정보

후킹, 칼럼 추가로 내용관리_검색_타이틀을 만들기

첨부파일

content.php.zip (2.1K) 6회 다운로드 2025-03-22 22:26:19

본문

/extend/ 폴더에 후킹 함수를 사용하고

디비에 내용관리_검색_타이틀(co_seo_title)을 만들어,

'co_subject와 추가 설정한 'co_seo_title'을 브라우저 상태바(title)에 적용합니다.

 

https://trigger.glitter.kr/bbs/content.php?co_id=company

 

1. SQL 컬럼 추가, 순정 그누 경우 기 존재 함 = = =

ALTER TABLE `g5_content` ADD COLUMN `co_seo_title` VARCHAR(255) NOT NULL DEFAULT '';
2. co_id 각각에 따른 co_seo_title 값을 변경/입력 (그누, '회사소개' 예시) = = =

UPDATE `g5_content` SET `co_seo_title` = '검색회사소개' WHERE `co_id` = 'company';

. . .

3. /extend/seo_title.extend.php = = =

<?php
if (!defined('_GNUBOARD_')) exit; // 보안 처리
 
// co_id가 있을 경우, 해당 co_id의 co_seo_title 조회
if (isset($_GET['co_id'])) {
    // co_id 필터링 (한글, 영문, 숫자, 밑줄(_) 허용)
    $co_id = preg_replace('/[^가-힣a-zA-Z0-9_]/u', '', $_GET['co_id']);
 
    // SQL 실행하여 co_seo_title 조회
    $sql = "SELECT co_seo_title FROM g5_content WHERE co_id = '".sql_real_escape_string($co_id)."'";
    $result = sql_fetch($sql);
 
    // co_seo_title이 존재하면 cf_title을 대체
    if (!empty($result['co_seo_title'])) {
        $config['cf_title'] = trim($result['co_seo_title']); // co_seo_title로 변경
    }
}
 
// 후킹 시스템을 사용하여 g5['title']을 재설정
add_event('head.sub.php', function() {
    global $g5, $config;
 
    if (!isset($g5['title'])) {
        $g5['title'] = $config['cf_title'];
    } else {
        // 상태바에 표시될 제목 설정
        $g5['title'] = implode(' | ', array_filter(array($g5['title'], $config['cf_title'])));
    }
 
    // XSS 방지를 위한 strip_tags 처리
    $g5['title'] = strip_tags($g5['title']);
});
?>

 

붙임) 추가로 'co_seo_title'을 사용한 검색을 위해선,
/bbs/content.php의 필터링 코드가 영문, 숫자, 밑줄만 허용하고 있으니

한글을 허용하도록 수정이 필요합니다.

 

해당 예시에서 사용한 /bbs/content.php는 첨부한 '파일1' content.php.zip입니다.

추천
4

댓글 3개

전체 2,619 |RSS
그누보드5 팁자료실 내용 검색

회원로그인

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