BOARD

팁·활용

그누보드 댓글 내용에 입력된 http 주소 자동 링크 제거 방법

페이지 정보

profile_image
작성자 최고관리자
댓글 0건 조회 38회 작성일 26-09-12 09:31

본문

그누보드 댓글 내용에 입력된 http 주소 자동 링크 제거 방법

그누보드 댓글과 본문 출력 시 기본 적용되는 http 주소 자동 링크 기능을 제거하거나 클릭을 차단하여, 게시판 운영 목적에 맞게 댓글 내용을 관리하는 방법을 알아봅니다.

그누보드 댓글 http 주소 자동 링크 생성 원인

그누보드에서 본문과 댓글 내용을 출력할 때 기본적으로 conv_content 함수를 사용합니다. 해당 함수 내부에서 url_auto_link를 호출하기 때문에 http 주소에 자동으로 링크가 생성됩니다.

댓글 영역에서만 이 기능을 제외하려면 별도의 사용자 정의 함수를 만들거나 스크립트를 활용하여 처리할 수 있습니다.

PHP 함수 수정을 통한 자동 링크 제거 방법

그누보드에서 댓글 내용에 입력된 http 주소의 자동 링크 생성을 막으려면 extend/user.config.php 파일에 사용자 정의 함수를 추가하고, 적용하려는 위치의 파일을 수정해야 합니다.

1. 사용자 정의 함수 추가

extend/user.config.php 파일에 기존 함수를 수정하여 링크 생성 기능(url_auto_link)이 제외된 conv_content_comment 함수를 추가합니다.

// 내용을 변환 (링크 제거) 
function conv_content_comment($content, $html, $filter=true) { 
    global $config, $board; 
    if ($html) { 
        $source = array(); 
        $target = array(); 
        $source[] = "//"; 
        $target[] = ""; 
        if ($html == 2) { 
            $source[] = "/\n/"; 
            $target[] = "<br/>"; 
        } 
        $table_begin_count = substr_count(strtolower($content), "<table"); 
        $table_end_count = substr_count(strtolower($content), "</table"); 
        for ($i=$table_end_count; $i<$table_begin_count; $i++) { 
            $content .= "</table>"; 
        } 
        $content = preg_replace($source, $target, $content); 
        if($filter) $content = html_purifier($content); 
    } else { 
        $content = html_symbol($content); 
        $content = str_replace(" ", "&nbsp; ", $content); 
        $content = str_replace("\n ", "\n&nbsp;", $content); 
        $content = get_text($content, 1); 
        // $content = url_auto_link($content); 
    } 
    return $content; 
} 

2. 적용 위치별 파일 수정

함수를 추가한 뒤 대상에 맞게 코드를 변경합니다.

  • 특정 게시판 스킨 댓글에만 적용: 게시판 스킨의 view_comment.skin.php 파일에서 $comment = $list[$i]['content']; 코드를 $comment = conv_content_comment($list[$i]['wr_content']);로 변경합니다. (단, 비밀댓글 기능 사용 시 비밀글 처리가 적용되지 않을 수 있습니다.)
  • 모든 게시판 댓글에 일괄 적용: bbs/view_comment.php 파일에서 $list[$i]['content'] = conv_content($row['wr_content'], 0, 'wr_content'); 코드를 $list[$i]['content'] = conv_content_comment($row['wr_content'], 0, 'wr_content');로 변경합니다.
  • 쪽지 내용에 적용: memo_view.skin.php 파일의 <?php echo conv_content($memo['me_memo'], 0) ?> 코드를 <?php echo conv_content_comment($memo['me_memo'], 0) ?>로 변경합니다.

3. 주의사항

그누보드 버전에 따라 파일 구조나 함수 형태에 약간의 차이가 있을 수 있으므로 수정 전 반드시 원본 파일을 백업해야 합니다.

그누보드 범위별 댓글 및 쪽지 자동 링크 제거 적용 방법

extend/user.config.php 파일에 사용자 정의 함수(conv_content_comment)를 추가한 뒤, 적용하려는 범위에 따라 아래의 파일과 코드를 수정합니다.

특정 게시판 스킨 댓글에만 적용

게시판 스킨의 view_comment.skin.php 파일에서 아래 코드를 찾아서 변경합니다.

  • 수정 전: $comment = $list[$i]['content'];
  • 수정 후: $comment = conv_content_comment($list[$i]['wr_content']);
  • 주의사항: 비밀댓글 기능 사용 시 비밀글 처리가 적용되지 않을 수 있습니다.

모든 게시판 댓글에 일괄 적용

bbs/view_comment.php 파일에서 아래 코드를 찾아서 변경합니다.

  • 수정 전: $list[$i]['content'] = conv_content($row['wr_content'], 0, 'wr_content');
  • 수정 후: $list[$i]['content'] = conv_content_comment($row['wr_content'], 0, 'wr_content');

쪽지 내용에 적용

memo_view.skin.php 파일에서 아래 코드를 찾아서 변경합니다.

  • 수정 전: <?php echo conv_content($memo['me_memo'], 0) ?>
  • 수정 후: <?php echo conv_content_comment($memo['me_memo'], 0) ?>

jQuery를 활용한 링크 클릭 차단 방법

PHP 함수 수정이 번거로운 경우, 링크 자체는 남아있지만 사용자가 클릭해도 이동하지 않도록 자바스크립트를 이용할 수 있습니다. 게시판 스킨 하단에 아래 스크립트를 추가하여 적용합니다.

<script> 
jQuery(document).ready(function($){ 
    $(".cmt_contents a").off("click"); 
    $(document).on("click", ".cmt_contents a", function(e){ 
        e.preventDefault(); 
    }); 
}); 
</script>

수정 작업 전후 주의사항 및 정상 작동 확인 방법

그누보드 파일 구조나 함수 형태는 버전에 따라 약간의 차이가 있을 수 있으므로, 코드를 수정하기 전 반드시 원본 파일을 백업해야 합니다.

또한 적용 방식에 따른 예외 사항을 유의해야 합니다. 예를 들어 특정 게시판 스킨 댓글에만 함수를 적용할 때 비밀댓글 기능을 사용하면 비밀글 처리가 적용되지 않을 수 있습니다.

정상 작동 여부 점검 방법

파일 수정 또는 스크립트 적용 후, 댓글 영역에 http 주소를 직접 입력하여 아래의 정상 작동 여부를 확인합니다.

  • PHP 함수 수정 방식: 링크 자체가 생성되지 않는지 확인
  • jQuery 활용 방식: 링크는 남아있으나 사용자가 클릭해도 이동하지 않고 차단되는지 확인

상황별 판단 및 행동 가이드

내 상황선택 기준다음 행동
특정 게시판 스킨에만 링크 제거 적용view_comment.skin.php 수정$comment = conv_content_comment($list[$i]['wr_content']);로 변경
모든 게시판 댓글에 일괄 적용bbs/view_comment.php 수정$list[$i]['content'] = conv_content_comment($row['wr_content'], 0, 'wr_content');로 변경
PHP 수정 없이 클릭만 차단jQuery 스크립트 활용게시판 스킨 하단에 e.preventDefault() 스크립트 추가

실전 FAQ

Q. 특정 게시판 스킨에 PHP 함수 적용 시 비밀댓글이 정상 작동하지 않는다면?

  • 예외: view_comment.skin.php에서 직접 코드를 변경하면 스킨 내 비밀글 처리 로직이 우회될 수 있습니다. 스킨 파일 내 비밀댓글 판단 조건문이 유지되는지 확인하십시오.

Q. jQuery 클릭 차단이 작동하지 않는다면?

  • 대안: 사용하는 스킨의 댓글 영역 클래스명이 .cmt_contents와 다른지 확인하십시오. 스킨의 HTML 구조에 맞춰 선택자를 수정해야 합니다.

함께 보면 좋은 글

참고자료

기타 참고자료

댓글목록

등록된 댓글이 없습니다.