LucyLee

금칙어 게시글 표시만 제한하기

· 2018-03-31 (토) 14:36:24 · 7011 · 7

글내용에 금칙어 표시제한 적용

 

bbs/ajax.filter.php

break 부분은 주석처리 (글작성시 필터링 하는 기능 비활성)

 

[code]

for ($i=0; $i<count($filter); $i++) {
    $str = $filter[$i];

    // 제목 필터링 (찾으면 중지)
    $subj = "";
    $pos = stripos($subject, $str);
    if ($pos !== false) {
        $subj = $str;
        //break;
    }

    // 내용 필터링 (찾으면 중지)
    $cont = "";
    $pos = stripos($content, $str);
    if ($pos !== false) {
        $cont = $str;
        //break;
    }
}

die("{\"subject\":\"$subj\",\"content\":\"$cont\"}");

[/code]

 

lib/common.lib.php

 

conv_content 함수 return 부분 바로 위쪽 부터 수정

 

[code]

    $content = conv_abuse($content);

    return $content;
}

// 금칙어 검열 변환 (관리자로그인 상태시 필터없이 그대로 표시)
function conv_abuse($content) {
    global $config, $is_admin;

    $abuse_filter = explode(",", trim($config['cf_filter']));

    for ($i=0; $i<count($abuse_filter); $i++) {
        if(!$is_admin) $content = $content = str_replace($abuse_filter[$i], '<strike>금칙어</strike>', $content);
    }

    return $content;
}

[/code]


lib/common.lib.php

글 제목에 금칙어 변환

 

[code]

// 아래 함수 적당한곳에 추가

function conv_abuse_subject($subject) {
    global $config, $is_admin;

    $abuse_filter = explode(",", trim($config['cf_filter']));

    for ($i=0; $i<count($abuse_filter); $i++) {
        if($is_admin != 'super') {
            $abuse_char = '';
            for($j=0; $j<mb_strlen($abuse_filter[$i], "UTF-8"); $j++) $abuse_char .= '*';
            $subject = str_replace($abuse_filter[$i], $abuse_char, $subject);
        }
    }

    return $subject;
}

[/code]

 

lib/common.lib.php 의 get_text 함수 상단에 아래 1줄 추가

 

[code]

function get_text($str, $html=0, $restore=false)
{

    $str = conv_abuse_subject($str);
[/code]

 

글작성시 금칙어가 있어도 글 등록은 가능하지만 표시만 제한하도록 변경하는 방법입니다.

금칙어 치환 표시부분은 페이지에 맞게 변형하세요.

 

<참고>

글 수정시에만 작성 당시 금칙어가 그대로 보여집니다.
향후 ajax로 댓글 원본 가져오는 기능 추가 예정.
 

|

댓글 7개

2018-03-31 (토) 17:07:02
좋은 정보입니다. 감사합니다.
감사합니다~
굳
감사합니다
2018-04-04 (수) 09:05:19
감사합니다
꿀팁이네요
테스트 해보니 제목 내용 댓글에서 전부 잘 적용이 되는데
저부분에 적용이 안됩니다
혹시 저기에서 적용할려면 어떻게 해야 할까요?
댓글을 작성하시려면 로그인이 필요합니다.

그누보드5 팁자료실

2,788건
+
제목 글쓴이 날짜 조회
18-04-08 조회 7,960
18-04-07 조회 1.2만
18-04-07 조회 7,250
18-04-06 조회 9,331
18-04-06 조회 1.1만
18-04-05 조회 6,581
18-04-05 조회 7,003
18-04-05 조회 6,334
18-04-03 조회 7,058
18-03-31 조회 6,437
18-03-31 조회 6,821
18-03-31 조회 7,012
18-03-29 조회 5,792
18-03-29 조회 7,068
18-03-29 조회 7,582
18-03-27 조회 2만
18-03-27 조회 5,480
18-03-25 조회 6,545
18-03-24 조회 7,632
18-03-24 조회 6,903
18-03-24 조회 2만
18-03-24 조회 9,818
18-03-23 조회 6,791
18-03-23 조회 6,936
18-03-23 조회 7,966
18-03-23 조회 6,785
18-03-21 조회 7,651
18-03-21 조회 1만
18-03-20 조회 9,567
18-03-19 조회 6,900