그누보드 설치 후 수정한 것들 1
작성자 정보
- EnglishCode 작성
- 작성일
컨텐츠 정보
- 536 조회
- 0 추천
-
목록
본문
그누보드를 처음 설치하고 공부하면서 수정한 부분들을 정리해 봤으니 필요하신 분은 참고하세요. 나리야 테마를 사용했다는 점 감안해 주세요. 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>
<!-- 복사, 드래그 금지 끝 -->
관련자료
-
첨부등록일 2025.01.02 22:48
-
이전