게시판 기능 구현해보면서, 글 입력받는 부분에 textarea 를 이용했었습니다.
그래서 텍스트만 입력가능하죠. 효과도 줄 수 없구요.
그 부분을 보다 풍성한 효과로 글 작성이 가능하도록 위지윅 에디터를 장착해 보겠습니다.
다음 에디터 Daum Editor
무료로 사용할 수 있는 위지윅 에디터가 몇개 있습니다만, 다음에서 오픈소스로 풀어놓은 '다음에디터'를 이용할 계획입니다.
구글코드에서 오픈으로 작업하다가 github 으로 이사를 했네요.
주소는 아래와 같습니다.
https://github.com/daumeditor/DaumEditor
또 이사를 했네요.
https://github.com/daumcorp/DaumEditor
우선 소스 다운로드를 받읍시다.
다운 받은 파일을 압축해제하면 아래와 같은 디렉토리 구조를 가지고 있음을 볼 수 있습니다.
저기서 daumeditor 디렉토리 아래의 4개 디렉토리를 우리가 작업했던, bbs 디렉토리 아래에 업로드를 합니다.
daumeditor 디렉토리 안에 있는 editor.html 을 살펴봅시다. 이 파일이 설치 매뉴얼이나 다름없습니다.
write.php를 수정하겠습니다.
preset.php 와 header.php 를 포함시키는 부분과 footer.php 를 포함시키는 부분 사이에 있는 모든 내용을 삭제합니다. 새로 시작하는것이나 마찬가지군요.
글쓰기<br /> 이정도 적어주고, 그 뒤에다 editor.html 30번째 줄부터 499번째 줄까지 가져와 붙여넣기 합니다. div class="body" 부분 전부와 샘플에 필요한 자바스크립트를 제외한 모든 코드입니다.
그리고, 26,27번째 라인 두 줄을 header.php 에 가서 붙여넣고 경로 수정을 합시다.
<link rel="stylesheet" href="http://<?php echo $_SERVER['HTTP_HOST']; ?>/bbs/css/editor.css" type="text/css" charset="utf-8"/>
<script src="http://<?php echo $_SERVER['HTTP_HOST']; ?>/bbs/js/editor_loader.js?environment=development" type="text/javascript" charset="utf-8"></script>
loader 에 붙은 environment=development 값은 삭제합니다.
header.php 에 넣는 바람에 불필요하게 포함되는 경우가 생길 수도 있지만, 지금은 그냥 무시합시다. ㅎㅎ
이 정도하고, 브라우저로 접근해봅시다.
일단 모양은 제대로 나오는군요.
제목을 입력받는 부분 하나 만들어주고, 글쓰기 submit 버튼도 만들어 줍시다.
<div id="input-subject-box">
제목 : <input type ="text" name = "subject" size ="90">
</div>
내용 전송하는 부분은 editor.html 파일을 좀 살펴봐야겠습니다.
501~579 라인이 작성내용을 전송하는 방법입니다.
그 부분의 코드를 모두 복사해서 write.php 의 적당한 부분에 붙여넣기를 합시다.
<!-- 에디터 끝 --> 뒤에 붙여넣기 하면 되겠네요.
'submit contents' 라는 버튼이 하나 생기네요.
이 버튼을 클릭하면, saveContent() 함수가 실행됩니다.
소스에 보면 이 함수는 Editor.save(); 를 실행하는 군요.
이 함수가 실행되는 동안, 내부적으로 폼에 입력된 값의 유효성을 검사하는 루틴이 실행되는데 그 설정을 validForm()과 setForm() 함수를 이용해서 할 수 있습니다.
현재 submit 을 하면 받을 파일이 http://posttestserver.com/post.php 로 설정이 되어있습니다. 실제 submit 을 하면 POST 결과에 대한 내용을 리포트로 볼 수 있네요.
제목에 '테스트 제목', 내용에 '테스트 내용' 이라고 해서 submit 을 해보니 아래와 같이 리포트를 해 주네요.
Post Params:
key: 'subject' value: '테스트 제목'
key: 'tx_content' value: '<p>테스트 내용</p>'
Empty post body.
추가한 제목까지 전송은 제대로 되는군요.
그럼, 폼의 action을 bbs 구현시 만들었던, write_check.php 로 변경을 하고 테스트를 해 보겠습니다.
write_check.php에서 예전에는 subject 와 content를 받아 DB에 기록했었는데, content가 아니라, tx_content 로 바꾸어야겠습니다.
$q = "INSERT INTO ap_bbs (member_idx, subject,content,reg_date) VALUES('$member_idx', '$subject', '$tx_content', '$reg_date')";
헐! 캡쳐하고 보니, 다음에이터군요..ㅋㅋ 그냥 고고~
위처럼 작성해서 submit을 했더니, 정상적으로 수행이 되었습니다.
그럼, DB에는 어떻게 저장이 되었을까요?
<p>글도 써보고, <span style="color: rgb(255, 0, 0);"><strong>색깔</strong></span>도 넣어보고</p><p>엔터도 쳐보고, </p><p><table style="border: currentColor; font-family: 굴림; font-size: 10pt; border-collapse: collapse;" class="txc-table" border="0" cellSpacing="0" cellPadding="0" width="664"><tbody><tr><td style="border: 1px solid rgb(204, 204, 204);">표도 하나 넣어보고 </td> </tr> </tbody></table></p><p> </p> |
이렇게 저장되었습니다.
list.php로 가서 방금 쓴 글을 클릭해서 내용보기를 해 봤습니다. 아래와 같이 잘 나오는군요.
여기까지, 다음에디터를 게시판 글 쓰기 부분에다 붙여봤습니다.
정리해보면,
editor.html 에서 해당코드를 그대로 가져다가 사용하면 잘 된다..였습니다. ㅎㅎ
먼가 빠진거 같죠? 사진, 파일 첨부에 대해서 다시 이어서 살펴보겠습니다.
오늘은 여기까지입니다. ㅎㅎ
'PHP 게시판 만들기' 카테고리의 다른 글
22. 다음에디터 정리 (26) | 2013.09.25 |
---|---|
21. 위지윅 에디터 붙이기 - 다음에디터 두번째 (9) | 2012.12.19 |
19. php 회원관리 및 게시판 소스 (2) | 2012.12.17 |
18. 아차! 하고 빼먹은 로그아웃 구현하기 (5) | 2012.12.17 |
17. php로 기초적인 게시판 만들기 - 글 삭제하기 (2) | 2012.12.17 |
댓글