그누보드 게시판 본문만 헤더와 푸터 없이 인쇄하는 방법
페이지 정보

본문
그누보드 게시판 본문만 헤더와 푸터 없이 인쇄하는 방법
그누보드 게시판에서 전체 레이아웃을 제외하고 본문 내용만 깔끔하게 인쇄하거나 출력하는 방법을 적용합니다.
게시판 본문만 헤더와 푸터 없이 인쇄하는 방법
그누보드 게시판 뷰 페이지(view.skin.php)에서 상단 헤더와 하단 테일 영역을 제외하고 본문 내용만 깔끔하게 인쇄하려면 자바스크립트 함수와 인쇄 영역을 감싸는 HTML 구조를 추가해야 합니다.
1. 자바스크립트 함수 추가
view.skin.php 파일 내에 인쇄 전후로 document.body.innerHTML을 교체하는 자바스크립트 함수를 작성합니다.
<script type="text/javascript">
<!--
var initBody;
function beforePrint(){
initBody = document.body.innerHTML;
document.body.innerHTML = idPrint.innerHTML;
}
function afterPrint(){
document.body.innerHTML = initBody;
}
function printArea() {
window.print();
}
window.onbeforeprint = beforePrint;
window.onafterprint = afterPrint;
//-->
</script>
2. 인쇄할 영역과 버튼 배치
인쇄하고자 하는 본문 내용을 <div id="idPrint">로 감싸고, 인쇄 기능을 실행할 버튼을 배치합니다.
<div id="idPrint">
<!-- 프린트 출력할 본문 내용 -->
</div>
<input type="button" border="0" align="absmiddle" value="출력하기" onclick="printArea();">
주의사항 및 다음 행동
- 코드를 수정하기 전에 원본
view.skin.php파일을 백업하는 것을 권장합니다. - 적용 후 게시판 뷰 페이지에서 '출력하기' 버튼을 클릭했을 때 헤더와 테일이 제외된 본문 영역만 인쇄 미리보기창에 정상적으로 나타나는지 확인합니다.
비회원 인쇄 버튼 노출 및 권한 조건 확인
그누보드 게시판 뷰 스킨(view.skin.php) 파일에서 인쇄하기 버튼이 로그인 상태에서만 보이거나 제한되는 경우, 버튼 출력 주변의 조건문을 확인해야 합니다.
1. 확인 위치
- 수정할 파일: 게시판 스킨 디렉토리 내의
view.skin.php - 확인 항목:
<?php if ($scrap_href) {?>와 같은 조건문으로 감싸져 있는 인쇄하기 버튼 영역
2. 조건문 차이와 수정
- 자료의 사례에서는 인쇄하기 버튼이 스크랩 권한 변수(
$scrap_href) 조건문 내부에 포함되어 있어 비회원에게 노출되지 않을 수 있습니다. - 비회원도 로그인 제한 없이 인쇄 기능을 이용하게 하려면, 해당 인쇄 버튼을 감싸고 있는
<?php if ($scrap_href) {?>조건문을 제거하거나 비회원 접근 권한에 맞는 조건으로 변경해야 합니다.
상황 및 선택 기준
게시판 뷰 페이지에서 헤더와 푸터를 제외하고 본문만 인쇄하고 싶을 때, 브라우저의 인쇄 이벤트를 가로채 특정 영역만 출력하도록 스킨 파일을 수정합니다.
다음 행동
- 함수 추가:
view.skin.php상단에beforePrint와afterPrint함수를 포함한 자바스크립트를 삽입합니다. - 영역 지정: 인쇄할 본문 전체를
<div id="idPrint">로 감쌉니다. - 버튼 연결:
onclick="printArea();"속성을 가진 버튼을 생성하여 인쇄 기능을 호출합니다. - 검증: 수정 전 원본 파일을 백업한 뒤, 인쇄 미리보기에서 헤더와 푸터가 제외되었는지 확인합니다.
Q. 비회원에게 인쇄 버튼이 노출되지 않습니다.
- 원인: 인쇄 버튼이
$scrap_href와 같은 로그인 권한 조건문 내부에 배치되어 있을 가능성이 높습니다. - 대안:
view.skin.php에서 해당 버튼을 감싸는if조건문을 제거하거나, 비회원도 접근 가능한 위치로 코드를 이동하십시오.
참고자료
기타 참고자료
- 이전글PHP와 JavaScript를 이용한 실시간 서버 시간 표시 구현 26.10.15
- 다음글그누보드4 게시판 목록 및 내용에서 회원 이름/별명 마스킹 처리하기 26.10.14
댓글목록
등록된 댓글이 없습니다.