웹마스터 팁

-----------------------------------------------------------------------서론 -----------------------------------------------------------------------------------------


modules/board/tpl/js/board.js

이 파일이 게시판의 공통JS 를 관리하는 곳입니다.


댓글입력 완료 후 해야할 행동 등을 규정해 놓은 곳입니다.



그 중에서 각종 함수들의 변수 중에 ret_obj 형식으로 XE 단에서 JS 로 변수를 받아오는게 있습니다.


예를 들어 댓글입력완료 후의 JS 기능을 살펴 보겠습니다.


board.js 에 다음과 같은 함수가 있습니다.


completeInsertComment(ret_obj)

    var mid = ret_obj['mid'];

    var document_srl = ret_obj['document_srl'];

    var comment_srl = ret_obj['comment_srl'];


...자. 우리는 저기서 mid,document_srl,comment_srl 이외의 다른 변수들을 받아오고자 합니다.


ex) 게시물 제목이라던가 member_srl 등등




이 예제에서는 document 를 작성한 회원의 member_srl 과 comment 를 작성한 회원의 member_srl 을 받아오는 작업을


해보도록 하겠습니다.







-----------------------

         원리 및 작업순서

------------------------------------

filter 단에서 리스판스 콜백 정의 - controller 에서 콜백으로 쏴주기

(그 위의 param 들은 controller 에서 처리할 모든 변수들을 기입하는 곳입니다. 

 controller 단에서 추가변수를 입력받아 처리하려면 저 부분에 삽입하셔야 합니다.)



1. modules/board/tpl/filter/insert_comment.xml


이곳에서 리스판스 콜백에 받아오고 싶은 것들을 작성합니다.



response callback_func="completeInsertComment"

이곳에다가



tag name="cmt_member_srl" 

tag name="doc_member_srl"


을 추가해 줍니다.




2. modules/board/board.controller.php


procBoardInsertComment()


함수를 찾아서 함수 제일 마지막 쪽에 다음과 같이 삽입합니다.

아마 밑과 똑같이 생긴 놈들이 보이실 겁니다. mid,document_srl ,comment_srl..바로 그 밑에 던져 주시면 됩니다.


$this->add('cmt_member_srl', abs($obj->member_srl));

$this->add('doc_member_srl', abs($oDocument->get('member_srl')));





3. modules/board/tpl/js/board.js


completeInsertComment(ret_obj)


로 찾아갑니다.


거기서 변수를 선언해 줍니다.


var doc_msrl = Math.abs(ret_obj['doc_member_srl']);

var cmt_msrl = Math.abs(ret_obj['cmt_member_srl']);




abs() 절대값을 이용한 이유는 익명게시판에서도 써먹기 위해서입니다.

이미 controller 에서 넘겨줄 때 절대값 적용을 했지만 확인사살을 위해 한번 더 절대값 먹여줍니다.

* 익명게시판에서는 member_srl 을 음수값으로 처리합니다 *



다 됐습니다.



이제 completeInsertComment 함수 에서


alert('글쓴이의 회원번호는 '+doc_msrl+'이며 댓쓴이의 회원번호는 '+cmt_msrl+'입니다.');


라고 뙇 넣어주시면


댓글 입력 후에 얼럿창이 뙇 하고 뜰것입니다.






이를 응용하여 title,parent_srl, content 등을 board.js 로 받아올 수가 있습니다.


다만 그 변수들이 게시판단에서 사용가능해야 하고 

없으면  this->add 하기 전에 받고자 하는 내용의 모델을 임의호출 해야합니다.







P.S 크누파크 제작 당시의 옛 기억을 끄집어 내어 팁을 작성했습니다.

옛 기억이라 말이 좀 횡설수설했는데 잘 알아 보시려나 모르겠네요 ^^;;


제목 글쓴이 날짜
회원 팝업메뉴에서 작성글 클릭시 다른 아이디 검색 안되게 하기 [3] 절망린 2009.07.03
윈도우즈 서버2008에 설치하고 게시판에 대용량파일 업로드 안되시는 분들은... 헨리지 2009.07.04
글 작성시 미리 저장된 서식 불러오기. [10] file 개돌 2009.07.09
레이 아웃이 가로 가운데일 때 좌우 왔다 갔다 하는 문제 [5] 강신봉 2009.07.09
무료 채팅 프로그램인데 꽤 유용하네요.. (xe와 닉네임 연동(넨네님 추가) [8] 리우  2009.07.10
싸이트 운영하면서 외부링크 차단하는방법 100% ok [12] 뭥미1 2009.07.10
xe 124 버전 파일첨부,다운로드 안되시는분들 ~! [7] file 일인자 2009.07.12
Lavalic Mp3 플레이어를 대신하는... [8] 조성우371 2009.07.13
게시판 글 검색시 검색 대상 선택을 자유롭게 고치기 [6] file June Oh 2009.07.15
2차 메뉴가 없을 경우 왼쪽 메뉴 숨기기 [5] file 엔시아- 2009.07.16
확장변수를 위젯에서 출력하기 [5] bibi 2009.07.19
트리메뉴(dtree) 대충 정리 [11] file 한이73 2009.07.19
팁이 아니고 저같은 초보자 분들이 아셔야 할 사항하나! [5] 토니박스 2009.07.20
Unexpected error occured 라는 메시지가 뜰 경우 해결 방안들 [5] RainSky 2009.07.21
xe_official_v2 xe공식레이아웃v2 관리자메뉴 나타나게 하기. [11] Habile 2009.07.24
http 두번 븥는 문제 .. 위젯 스타일 스퀘어 페이스 more 버그입니다. [2] 최영석222 2009.07.25
xe 파일첨부 시 증발하는 현상 해결 팁 [5] iwishiwas.idtail.com 2009.07.28
[비나무님글 ] xe_official_v2 레이아웃 사이트맵 없애는 방법 [3] 토니박스 2009.07.29
엄지 추천 기능 본문에 삽입 하고자 하실때 (급조) [2] file thejeon 2009.07.29
게시판 링크 무조건 새창으로 뜨게 하는 법 ^^ [7] Jiyoung540 2009.07.29