그누보드 세이프 서치 플러그인+스킨 > 자료실 (zip)

본문 바로가기
사이트 내 전체검색

자료실 (zip)

그누보드 세이프 서치 플러그인+스킨

페이지 정보

본문

신고

d85bd4b200376bde7d030651d74177ad_1698880126_2107.png
 


아래의 코드를 원하는 곳에 삽입하세요.


---------------------------------23.11.04 이전 코드--------------------------------------

<script>

function getTextNodes(node){

    let all = [];

    for (node=node.firstChild;node;node=node.nextSibling){

        if (node.nodeType==3) all.push(node); // Node.TEXT_NODE

        else all = all.concat(getTextNodes(node));

    }

    return all;

}

let currentDomain = window.location.hostname;

let targetTextsUrl = `https://${currentDomain}/data.txt`;

fetch(targetTextsUrl)

  .then(response => response.text())

  .then(data => {

    let targetTexts = data.split('\n');

    let textNodes = getTextNodes(document.body);

    for(let node of textNodes) {

      let containsTargetText = targetTexts.some(target => node.nodeValue.includes(target));

      if(containsTargetText) {

        node.parentNode.style.filter = 'blur(10px)';

      }

   }

});            

</script>

 

 

===================================23.11.04에 수정된 코드, 이 코드를 사용해주세요.===============================

<?php
function loadTargetTexts() {
  $currentDomain = $_SERVER['HTTP_HOST'];
  $targetTextsUrl = "https://{$currentDomain}/data.txt";

  try {
    $data = file_get_contents($targetTextsUrl);
    $targetTexts = preg_split('/\r
|\r|
/', $data);
    $targetTexts = array_filter($targetTexts, 'trim');
    return $targetTexts;
  } catch (Exception $error) {
    echo "텍스트 파일을 불러오는 중 오류가 발생했습니다: ", $error->getMessage(), "
";
    return [];
  }
}
$targetTexts = loadTargetTexts();
echo "<script>var targetTexts = " . json_encode($targetTexts) . ";</script>";
?>

<script>
  function blurMatchingTexts(targetTexts) {
    let textNodes = document.createTreeWalker(document.body, NodeFilter.SHOW_TEXT, null, false); 
    let currentNode;
    while (currentNode = textNodes.nextNode()) {
      let nodeValue = currentNode.nodeValue.trim();
      if (targetTexts.includes(nodeValue)) {
        currentNode.parentElement.style.filter = "blur(5px)";
      }
    }
  }
  function initialize() {
    blurMatchingTexts(targetTexts);
    const observer = new MutationObserver(mutations => {
      blurMatchingTexts(targetTexts);
    }); 
    observer.observe(document.body, { subtree: true, childList: true, characterData: true });
  }
  window.addEventListener("load", initialize);
</script>


=============코드 끝=================


search.skin.php에 삽입한다면 검색 시에만 검열을 하고, 

head.skin.php에 삽입하면

사이트 전체에서 세이프 서치 - 특정 키워드가 블러처리되도록 할 수 있습니다.

board.skin.php에 삽입하면 게시물에서 바로 검열이 가능합니다.


설치방법은 

https://dsclub.kr/bbs/board.php?bo_table=code&wr_id=561 참고하세요.


기본 제공 데이터에는 강도 높은 비하발언과 성희롱적인 말, 정치적인 발언이 담겨있습니다. 주의해주세요.

제작자의 동의 없는 무단 수정 및 배포를 금지합니다.

url 복사카카오톡 공유라인 공유페이스북 공유트위터 공유

첨부파일

댓글목록

profile_image
profile_image

2kat님의 댓글

no_profile 2kat 쪽지보내기 자기소개 아이디로 검색 전체게시물 아이피 (222.2) 작성일

좋은 자료 감사합니다.

profile_image

bot님의 댓글

bot 쪽지보내기 자기소개 아이디로 검색 전체게시물 아이피 (222.2) 작성일

하드웨어 (Hardware)

Total 20건 1 페이지
자료실 (zip) 목록
번호 제목 작성자 조회수 좋아요 싫어요 날짜
열람중 tak2 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 2196 16 10 1개월 전
19 tak2 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 1026 14 7 3개월 전
18 tak2 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 1055 14 8 3개월 전
17
sns icons 댓글1
익명 이름으로 검색 787 12 7 2개월 전
16 익명 이름으로 검색 961 14 11 3개월 전
15 익명 이름으로 검색 922 12 7 3개월 전
14 tak2 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 1623 10 6 3개월 전
13 tak2 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 1409 11 10 3개월 전
12 익명 이름으로 검색 5306 17 6 4개월 전
11 익명 이름으로 검색 1055 12 10 3개월 전
10 익명 이름으로 검색 943 9 7 3개월 전
9 tak2 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 1013 14 4 4개월 전
8 tak2 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 1374 9 9 4개월 전
7 tak2 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 1890 16 9 7개월 전
6 tak2 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 3792 14 13 7개월 전

검색

갤러리


모바일버전서비스이용약관개인정보처리방침이메일 무단수집 거부
Copyright ©www.dsclub.kr All rights reserved.