서버 점검 안내

dsclub은 서비스의 안정성과 성능 향상을 위해
매일 04시 30분에 정기 점검이 진행됩니다.

점검 시간: 오전 4시 30분 ~ 4시 35분

해당 시간 동안 일시적으로 서비스에 접속이 불가능하오니, 양해 부탁드립니다.

그누보드5에 간단하게 태그 기능 추가하기 > 코딩 스토리

그누보드5에 간단하게 태그 기능 추가하기

페이지 정보

작성자 profile_image tak2 (115.♡.171.219) 작성일 24-08-09 03:07 조회 504 댓글 1

본문

기존 그누보드의 검색 기능을 이용한 편법적인 태그입니다.


즉 그냥 태그한 키워드에 자동으로 해당 키워드 검색한 내용 링크를 걸어주는 방식이죠.


이 코드를 tail.sub.php 또는 head.sub.php에 넣으시면 됩니다.


[code]

<script>

document.addEventListener('DOMContentLoaded', function() {

  // 페이지의 HTML 코드에서 #아이디 를 찾는 정규식
  var regex = /#([\w가-힣]+)/g;

  // HTML 문서의 모든 텍스트 노드를 순회하며 #아이디 를 찾아 수정
  var textNodesIterator = document.evaluate(
    "//text()",
    document,
    null,
    XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE,
    null
  );

  for (var i = 0; i < textNodesIterator.snapshotLength; i++) {
    var textNode = textNodesIterator.snapshotItem(i);
    var originalText = textNode.nodeValue;
    var modifiedText = originalText.replace(regex, function(match, title) {
      // 태그 안에 있는 경우에는 링크 생성하지 않음
      if (textNode.parentNode.tagName.toLowerCase() === 'a' || textNode.parentNode.tagName.toLowerCase() === 'style' || textNode.parentNode.tagName.toLowerCase() === 'id') {
        return match;
      } else {
        var searchUrl = 'http://' + window.location.host + '/bbs/search.php?sfl=wr_subject%7C%7Cwr_content%7C%7Cmb_id%7C%7Cwr_name%7C%7Cwr_datetime%7C%7Cwr_last%7C%7Cwr_ip&sop=and&stx=' + encodeURIComponent(title);
        return '<a href="' + searchUrl + '" class="search_tag" style="text-decoration-line: none;color:#ee8438;">#' + title + '</a>';
      }
    });

    if (modifiedText !== originalText) {
      var newNode = document.createElement('span');
      newNode.innerHTML = modifiedText;
      textNode.parentNode.replaceChild(newNode, textNode);
    }
  }
});
</script>
[/code]
좋아요5 이 글을 좋아요하셨습니다
url 복사 카카오톡 공유 라인 공유 페이스북 공유 트위터 공유

tak2님의 댓글

profile_image tak2 아이피 (112.♡.248.125) 작성일
전체 269건
게시물 검색

접속자집계

오늘
1,351
어제
779
최대
4,271
전체
290,816