Coding

Joy of English Code

https://litt.ly/encode 

그누보드 분류

그누보드 설치 후 수정한 것들 1

작성자 정보

  • EnglishCode 작성
  • 작성일

컨텐츠 정보

본문

 

그누보드를 처음 설치하고 공부하면서 수정한 부분들을 정리해 봤으니 필요하신 분은 참고하세요. 나리야 테마를 사용했다는 점 감안해 주세요. SNS 공식 로고(일부)를 직접 수정한 파일을 첨부했으니 필요하신 분은 로그인 후 다운로드 받으실 수 있습니다. 

 

 

버전확인

 

그누보드: /version.php

나리야: /nariya/nariya.php

업데이트는 패치만 업로드해서 업데이트한다.


 

게시판 수정

 

/theme/BS4-Basic/index/index-basic.php

/theme/BS4-Basic/side/side-index.php


 

유튜브가 자동 재생되는 경우

 

/nariya/js/jquery.prettyembed.min.js에서

autoplay=1 자동재생, 0 자동재생 방지.


 

홈화면 오른쪽 상단 접속자 숨기기

 

/theme/BS4-Basic/head.php


<!-- <li>
<?php if(isset($stats['now_total']) && $stats['now_total']) { ?>
    <a href="<?php echo G5_BBS_URL ?>/current_connect.php">접속자 <?php echo number_format($stats['now_total']) ?><?php echo ($stats['now_mb']) ? ' (<b class="orangered">'.number_format($stats['now_mb']).'</b>)' : ''; ?></a>
<?php } else { ?>
    <a href="<?php echo G5_BBS_URL ?>/current_connect.php">접속자</a>
<?php } ?>
</li> -->


 

왼쪽 사이드바 접속자, 회원수 숨기기

 

/theme/BS4-Basic/widget/sidebar/menu.php


 

게시판 글 내용 폰트 수정

 

/theme/BS4-Basic/css/font에서 사용하는 폰트 css에서 수정


 

모바일에서 에디터 사용하기

 

/config.php에서 다음을 true로 수정


// 모바일 기기에서 DHTML 에디터 사용여부를 설정합니다.
define('G5_IS_MOBILE_DHTML_USE', true);


 

cheditor5 수정

 

/plugin/editor/cheditor5/cheditor.js

폰트 추가


fontName: {
        kr : ['나눔고딕', '맑은 고딕', '돋움', '굴림', '바탕', '나눔명조', '궁서'],


기본 폰트 수정


function setConfig() {
    var config = {
        allowedOnEvent      : true,
        colorToHex          : true,
        docTitle            : '내 문서',
        editAreaMargin      : '5px 10px',
        editorBgColor       : '#fff',
        editorFontColor     : '#000',
        editorFontName      : '"나눔고딕", "nanumgothic", "맑은 고딕", "Malgun Gothic"',
        editorFontSize      : '14px',
        editorHeight        : '300px',
        editorPath          : null,
        editorWidth         : '100%',
        exceptedElements    : { script: true, style: true, iframe: false },
        fontSizeValue       : 'px',     // [pt, px]


 

에디터 코드하이라이트

 

참고: https://amina.co.kr/bbs/board.php?bo_table=tip&wr_id=5815

 

prismjs

https://prismjs.com/index.html#supported-languages

https://prismjs.com/download.html#themes=prism-okaidia&languages=markup+css+clike+javascript

 

/nariya/app/prism에 위에서 다운로드한 js와 css 파일을 복사한다.

/nariya/lib/content.lib.php의 //Syntaxhighlighter 항목에서 다음 부분 자신에게 맞게 수정

 
//$str = preg_replace("/(<br>|<br />|<br/>|<p>)/i", "n", $str); //주석처리

 

 

cheditor5 사용시 게시글에 자동링크 주기(약간 보완 필요함)

 

※ &가 &;로 변환되는 문제가 있음

참고: https://sir.kr/g5_tip/18969

/skin/board/BS4-Basic-List/view.skin.php 아래 다음 위치에 아래처럼 추가


</script>

<!-- 게시글에 자동링크 주기 시작 --> https://sir.kr/g5_tip/18969 <script> function autoLink() {     for (beforeLink of arguments[0].querySelectorAll("a")) beforeLink.innerHTML = beforeLink.innerHTML.replaceAll('htt', 'htt*');     keepProtocol = arguments[0].innerHTML.replaceAll('="htt', '="htt*');     arguments[0].innerHTML = keepProtocol.replace(new RegExp("(http|https)://([-/.a-zA-Z0-9_~#%$?&=:200-377()]+)", "gi"), "<a href='$1://$2' target='_blank' rel='nofollow'>$1://$2</a>").replaceAll('="htt*', '="htt');     for (afterLink of arguments[0].querySelectorAll("a")) afterLink.innerHTML = afterLink.innerHTML.replaceAll('htt*', 'htt'); } autoLink(bo_v_con); </script> <!-- 게시글에 자동링크 주기 끝  -->
<!-- } 게시글 읽기 끝 -->



메일설정

 

루트 config.php에서


//define('G5_SMTP',      '127.0.0.1');
//define('G5_SMTP_PORT', '25');
define('G5_SMTP',      'mail.example.com');
define('G5_SMTP_PORT', '465');


/lib/mailer.lib.php에서


$mail->SMTPAuth = true;
$mail->SMTPSecure = 'ssl';
$mail->Username = "admin@example.com";
$mail->Password = "SMTP 비밀번호";



법률문서

 

관리자>게시판관리>내용관리>내용추가

각각 스킨 디렉토리>BS4-Basic 로 수정, 내용에는 "<p align="center"><b>회사소개에 대한 내용을 입력하십시오.</b></p>"

/theme/BS4-Basic/page에 있는 파일들이 표시됨.

provision.php, privacy.php는 문구를 수정해서 업로드.


 

회원가입 페이지 개인정보처리방침 수정

 

생년월일, 전화번호 삭제

/skin/member/BS4-Basic/register.skin.php


 

헤더 이미지 교체

 

/theme/BS4-Basic/css/theme.css에서 다음을 수정


PC 헤더(Header)
/* #header_pc .nt-container { background: url('../img/header.jpg') no-repeat right bottom; } */



SNS 로그인 로고 교체

 

/theme/BS4-Basic/skin/social/social_sidebar.skin.php에서 다음 수정

<span class="txt">구글<i> 로그인</i></span>

/theme/BS4-Basic/skin/social/social_register.skin.php에서 다음 수정

<span class="txt">구글로 회원가입하기</span>


그누보드 경로: 

/skin/social/img

/mobile/skin/social/img

/skin/member/BS4-Basic/img

나리야 경로:

/theme/BS4-Basic/skin/social/img

/theme/BS4-Basic/mobile/skin/social/img

/nariya/img/sns/googleplus.png // sns 공유 버튼 50x50


다음 폴더 안의 그림 파일 교체 - 첨부 파일을 다운로드 하시고, 원본 그림을 백업한 뒤 교체하세요. 

현재 페이스북 공식 로그인 로고는 원형. 사각형을 원할 경우 원래 있는 것을 쓰면 됨. 트위터는 X 로고로 바꿈. 

/theme/BS4-Basic/skin/social/img

/theme/BS4-Basic/mobile/skin/social/img


구글, 페이스북, X, 페이코 로고를 교체한 경우 css 수정이 필요합니다.

페이스북, X, 페이코는 사용하지 않아서 구글만 수정함

 

PC

/theme/BS4-Basic/skin/social/style.css 에서 다음을 찾아서 수정


/*회원가입 */
#sns_register .sns-google {background-color:#db4a3a;background-position:0 0} //#db4a3a를 #fff로 수정

  /*로그인 */과 /*사이드바 로그인*/ #sidebar_sns_login .sns-google {background-color:#db4a3a;background-position:5px 5px;border-bottom:1px solid #c03121} //#db4a3a -> #f2f2f2, #c03121 -> #ddd ... #sidebar_sns_login .txt {text-align:left;padding-left:10px;border-left:1px solid rgba(0,0,0,0.1);display:block;font-weight:bold}   #sns_login .sns-google .txt {color:#1f1f1f} // /*로그인 */에 추가 #sidebar_sns_login .sns-google .txt {color:#1f1f1f} // /*사이드바 로그인*/에 추가 #sidebar_sns_login .txt:hover {background:rgba(0,0,0,0.07)}


다음 파일을 찾아서 '구글+'를 '구글'로 수정

/theme/BS4-Basic/skin/social/social_login.skin.php

/theme/BS4-Basic/mobile/skin/social/social_login.skin.php

/theme/BS4-Basic/skin/social/social_sidebar.skin.php

/theme/BS4-Basic/mobile/skin/social/social_sidebar.skin.php

 

모바일

/theme/BS4-Basic/mobile/skin/social/style.css 에서 다음을 찾아서 수정


/*회원가입 */
#sns_register .sns-google {background-color:#db4a3a;background-position:0 0} // #db4a3a -> #f2f2f2

  /*로그인 */과 /*사이드바 로그인*/ #sidebar_sns_login .sns-google {background-color:#db4a3a;background-position:5px 5px;border-bottom:1px solid #c03121} // #db4a3a -> #f2f2f2, #c03121 -> #ddd ... #sns_login .txt {text-align:left;padding-left:10px;border-left:1px solid rgba(0,0,0,0.1);display:block;font-weight:bold}   #sns_login .sns-google .txt {color:#1f1f1f} // /*로그인 */에 추가 #sidebar_sns_login .sns-google .txt {color:#1f1f1f} // /*사이드바 로그인*/에 추가 #sns_login .txt:hover {background:rgba(0,0,0,0.07)}

 

 

SNS 공유 버튼 수정

 

관리자>게시판관리 에서 sns 사용 선택

 

/nariya/lib/content.lib.php 파일에서 na_sns_share_icon 함수 수정


$sns = array();
$sns[] = array('naver', 'Naver');
$sns[] = array('naverband', 'NaverBand');
$sns[] = array('kakaotalk', 'KakaoTalk');
$sns[] = array('facebook', 'Facebook');
$sns[] = array('twitter', 'X');
//$sns[] = array('googleplus', 'GooglePlus');
//$sns[] = array('kakaostory', 'KakaoStory');
//$sns[] = array('tumblr', 'Tumblr');
//$sns[] = array('pinterest', 'Pinterest');


/nariya/img/sns/tweeter.png 교체


/nariya/bbs/sns.php // sns 공유하기 링크

 

 

SNS 공유 버튼 추가

 

/skin/board/BS4-Basic-List/view.skin.php 에서 다음 부분을 찾아서


<?php if($board['bo_use_sns']) { // SNS 공유 ?>
<button type="button" class="btn btn-basic" data-toggle="modal" data-target="#bo_snsModal" title="SNS 공유">
<i class="fa fa-share-alt" aria-hidden="true"></i>
<span class="sr-only">SNS 공유</span>
</button>
<?php } ?>


그 아래에 다음 코드를 추가


<!-- Web Share API button 시작 { -->
<button type="button" class="btn btn-basic btn-web-share" title="공유하기">
<i class="fa fa-share" aria-hidden="true"></i>
<span class="sr-only">공유하기</span>
</button>
<!-- } Web Share API button 끝 -->

 

view.skin.php 파일 아래 자바스크립트 있는 부분에 다음을 추가

참조: https://developer.mozilla.org/ko/docs/Web/API/Web_Share_API


<!-- Web Share API 시작 --> https://developer.mozilla.org/ko/docs/Web/API/Web_Share_API
<script>
const shareData = {
  title: "사이트 이름",
  text: "사이트 설명",
  url: "",
};

const btn = document.querySelector(".btn-web-share");
// Share must be triggered by "user activation" btn.addEventListener("click", async () => {   try {     await navigator.share(shareData);   } catch (err) {        } });
</script> <!-- Web Share API 끝 -->



게시판 본문 링크 색

 

/theme/BS4-Basic/css/theme.css 마지막 줄에 추가


/* 게시판 본문 링크 색 */
.view-content a, .view-content a:hover, .view-content a:visited {color:#007bff}



관리자 IP 노출될 때

 

/config.php에서 다음을 찾아서 수정


 
// ip 숨김방법 설정
/* 123.456.789.012 ip의 숨김 방법을 변경하는 방법은
\1 은 123, \2는 456, \3은 789, \4는 012에 각각 대응되므로
표시되는 부분은 \1 과 같이 사용하시면 되고 숨길 부분은 ♡등의
다른 문자를 적어주시면 됩니다.
*/
define('G5_IP_DISPLAY', '\1.♡.\3.\4');


/bbs/board.php에서 다음을 찾아서 수정,

 

IP보이기 사용 여부

1. 관리자 회원 모두 완전히 안 보이게 하고 싶을 때,


$is_ip_view = false;
/*
// IP보이기 사용 여부 단락 전체
...
*/

 

또는,



$ip = "";
//$is_ip_view = $board['bo_use_ip_view'];
$is_ip_view = false; // 회원 ip도 숨김
if ($is_admin) {
    //$is_ip_view = true; //관리자 ip 숨김

 

2. 부분적으로 안 보이게 하고 싶을 때,


//$ip = $write['wr_ip'];
        $ip = preg_replace("/([0-9]+).([0-9]+).([0-9]+).([0-9]+)/", G5_IP_DISPLAY, $write['wr_ip']); //추가

 

 

댓글에서 관리자 IP 노출될 때

 

/nariya/bbs/view_comment.php에서 다음을 찾아서 수정,

1. 완전히 안 보이게 하고 싶을 때,


// 관리자가 아니라면 중간 IP 주소를 감춘후 보여줍니다.
/* 관리자, 회원 모두 감춤
    $list[$i]['ip'] = $row['wr_ip'];
    if (!$is_admin)
        $list[$i]['ip'] = preg_replace("/([0-9]+).([0-9]+).([0-9]+).([0-9]+)/", G5_IP_DISPLAY, $row['wr_ip']);
*/


2. 부분적으로 안 보이게 하고 싶을 때,


    $list[$i]['ip'] = $row['wr_ip'];
    //if (!$is_admin)

 

 

복사, 드래그 금지

 

/theme/BS4-Basic/tail.php

<!-- Nariya <?php echo NA_VERSION ?> --> 아래에 다음을 붙여넣음.

참조: https://amina.co.kr/bbs/board.php?bo_table=apms_qa&wr_id=132412

글작성 에디터에서는 적용 안됨


<!-- 복사, 드래그 금지 시작 -->
<script>
window.addEventListener("copy", (e) => {
  alert("복사를 허용하지 않습니다.");
  e.preventDefault();
  e.clipboardData.clearData("Text"); // 클립보드에 저장된 컨텐츠 삭제
});

    function norightclick(e)  // 다른 모든 브라우저에서 작동     {       if (window.Event)  // 다시, IE 또는 NAV ?       {         if (e.which == 2 || e.which == 3)           return false;         } else if (event.button == 2 || event.button == 3) {           event.cancelBubble = true           event.returnValue = false;           return false;         }       }       document.onmousedown = norightclick;     </script>   https://amina.co.kr/bbs/board.php?bo_table=apms_qa&wr_id=132412 <script>   /*  Lepas  */   //마우스우측버튼,F3,F5,F11,F6,마우스키,쉬프트+링크클릭(새창방지),컨트롤 조합키, 백스페이스,드래그 방지//   var keydownCtrl = 0;   var keydownShift = 0;   document.onkeydown=keycheck;   document.onclick=clickcheck;   document.onkeyup=uncheckCtrlShift;   function keycheck()   {         switch(event.keyCode){ //키값에 따라                 case 114:event.keyCode='';return false; break; //F3 크롬 환경설정                 case 116:event.keyCode='';return false; break; //F5 크롬 현재 페이지 새로고침                 case 122:event.keyCode='';return false; break;//F11 크롬 전체 화면 모드                 case 123:event.keyCode='';return false; break;//F12 크롬 개발자도구                 case 117:event.keyCode='';return false; break;//F6                 case 93:event.keyCode='';return false; break;//메뉴키                 case 16:event.keyCode='';keydownShift=1;return false; break;//쉬프트키                 //case 17:event.keyCode='';keydownCtrl=1;return false; break;//컨트롤키                 //case 8:event.keyCode='';return false; break;//백스페이스         }         if(keydownCtrl) return false;   }   function clickcheck()   {         if(keydownShift) return false;   }   function uncheckCtrlShift()   {         if(event.keyCode==17)      keydownCtrl=0;         if(event.keyCode==16)      keydownShift=0;   }   </script>   <body onselectstart="return false" ondragstart="return false" oncontextmenu="return false;"><div class='small'></div> <!-- 복사, 드래그 금지 끝 -->


관련자료

댓글 0
등록된 댓글이 없습니다.