웹마스터 팁

소스 코드를 수정하는 것이므로 반드시 백업을 해두실 것을 권합니다.


일반적인 댓글 삭제/수정/답글 시 바로 팝업창을 띄워 처리하는 팁입니다.

아래 댓글 새창보기에서 삭제/수정/답글 기능도 넣고자 하시는 분은 이 팁을 적용하시면 됩니다.


우선 첨부 파일을 아래의 경로에 맞추어 풀어줍니다.


popup_etc_layout.html => common/tpl/popup_etc_layout.html


popup_comment_form.html => modules/board/tpl/popup_comment_form.html

popup_delete_comment_form.html => modules/board/tpl/popup_delete_comment_form.html

filter/insert_pop_comment.xml => modules/board/tpl/filter/insert_pop_comment.xml


아래 댓글 새창보기 팁을 적용하지 않으신 분은 common/js/common.js 에서 popopen 함수를 찾아 그 밑에 popopen2 함수를 추가합니다. 이미 추가하셨으면 안 하셔도 됩니다.


function popopen2(url, target, pop_width, pop_height) {

    if(typeof(target) == "undefined") target = "_blank";

    if(typeof(xeVid)!='undefined' && url.indexOf(request_uri)>-1 && !url.getQuery('vid'+ '+ ')) url = url.setQuery('vid',xeVid);

    if(typeof(pop_width) == "undefined") pop_width = "350";

    if(typeof(pop_height) == "undefined") pop_height = "120";

    winopen(url, target, "left=10,top=10,width="+pop_width+",height="+pop_height+",scrollbars=yes,resizable=yes,toolbars=no");

}


이후 설명의 편의를 위해 댓글 삭제 부분과 댓글 수정/답글 부분을 나누어 설명 드리겠습니다.

또 게시판 스킨 수정은 전과 마찬가지로 xe_official 게시판 스킨을 기준으로 합니다.



[댓글 삭제]


1. modules/board/board.view.php 약 550라인쯤에 '* @brief 댓글 삭제 화면 출력' 부분을 찾아 다음과 같이 수정합니다.


$this->setTemplateFile('delete_comment_form');

=>

         // 팝업 레이아웃 선택

        $this->setLayoutPath('./common/tpl');

        $this->setLayoutFile('popup_etc_layout');

            

        $this->setTemplatePath($this->module_path.'tpl');

        $this->setTemplateFile('popup_delete_comment_form');


2. modules/board/tpl/js/board.js 약 84라인 /* 댓글 삭제 */ 부분을 찾아 var url 이하를 아래처럼 수정합니다.


    //var url = current_url.setQuery('mid',mid).setQuery('document_srl',document_srl).setQuery('act','');

    var url = current_url.setQuery('mid',mid).setQuery('document_srl',document_srl);

    if(page) url = url.setQuery('page',page);


    //alert(message);


    opener.location.href = opener.location.href;

    window.close();

}

 

3. 이제 게시판 스킨을 수정합니다. 

modules/board/skins/xe_official/comment.html 에서 댓글 삭제 링크를 찾아 아래처럼 onclick 이하를 추가합니다.


<li><a href="{getUrl("act','dispBoardDeleteComment','comment_srl',$comment->comment_srl)}">{$lang->cmd_delete}</a></li>


=>


<li><a href="{getUrl("act','dispBoardDeleteComment','comment_srl',$comment->comment_srl)}"  onclick="popopen2(this.href,'CommDel',360,120); return false;">{$lang->cmd_delete}</a></li>


다른 스킨에 적용 시에도 comment.html에서 댓글 삭제 링크에 onclick 이하 부분을 추가해주시면 됩니다.



[댓글 수정/답글]


1. modules/board/board.view.php 에서

* @brief 댓글의 답글 화면 출력 함수 function dispBoardReplyComment() 와

* @brief 댓글 수정 폼 출력 함수 function dispBoardModifyComment() 를 찾아 각각 아래와 같이 수정합니다.


            /** 

             * 사용되는 javascript 필터 추가

             **/

            Context::addJsFilter($this->module_path.'tpl/filter', 'insert_comment.xml');

       

            $this->setTemplateFile('comment_form');


=>


            /** 

             * 사용되는 javascript 필터 추가

             **/

            Context::addJsFilter($this->module_path.'tpl/filter', 'insert_pop_comment.xml');


            // 팝업 레이아웃 선택

            $this->setLayoutPath('./common/tpl');

            $this->setLayoutFile('popup_etc_layout');

            

            $this->setTemplatePath($this->module_path.'tpl');            

            $this->setTemplateFile('popup_comment_form'+ '); 


2. modules/board/tpl/js/board.js 에서 '/*댓글 작성 후 함수*/' 다음에 아래 함수를 추가합니다.


/* 댓글 새창 답글, 수정 작성후 */

function completePopInsertComment(ret_obj) {

    var error = ret_obj['error'];

    var message = ret_obj['message'];

    var mid = ret_obj['mid'];

    var document_srl = ret_obj['document_srl'];

    var comment_srl = ret_obj['comment_srl'];


    opener.location.href = opener.location.href;

    window.close();

}


3. 이제 게시판 스킨을 수정합니다. 

modules/board/skins/xe_official/comment.html 에서 댓글 수정/답글 링크를 찾아 다음과 같이 onclick 이하를 추가합니다.


<li><a href="{getUrl("act','dispBoardReplyComment','comment_srl',$comment->comment_srl)}">{$lang->cmd_reply}</a></li> 

<!--@if($comment->isGranted() || !$comment->get('member_srl') || $grant->manager)-->

<li><a href="{getUrl("act','dispBoardModifyComment','comment_srl',$comment->comment_srl)}">{$lang->cmd_modify}</a></li>


=>


<li><a href="{getUrl("act','dispBoardReplyComment','comment_srl',$comment->comment_srl)}"onclick="popopen2(this.href,'CommReply',600,300); return false;">{$lang->cmd_reply}</a></li> 

<!--@if($comment->isGranted() || !$comment->get('member_srl') || $grant->manager)-->

<li><a href="{getUrl("act','dispBoardModifyComment','+ 'comment_srl',$comment->comment_srl)}"onclick="popopen2(this.href,'CommModify',600,300); return false;">{$lang->cmd_modify}</a></li>


다른 스킨에서도 comment.html에서 댓글 수정/답글 링크에 'onclick=~' 부분을 추가해주시면 됩니다.



[댓글 새창보기에 적용]


modules/board/tpl/comment_pop.html 에서 아래 부분을 찾아 '<!--//봉인 ' 과 ' -->'을 삭제만 하면 됩니다.

 

<!--//봉인
<li><a href="{getUrl("act'+ ','dispBoardReplyComment','comment_srl',$comment->comment_srl)}" onclick="popopen2(this.href,'CommReply',600,300); return false;">{$lang->cmd_reply}</a></li>
<!--@if($comment->isGranted() || !$comment->get('member_srl') || $grant->manager)-->
<li><a href="{getUrl("act','dispBoardModifyComment','comment_srl',$comment->comment_srl)}" onclick="popopen2(this.href,'CommModify',600,300); return false;">{$lang->cmd_modify}</a></li>
<li><a href="{getUrl("act','dispBoardDeleteComment','+ 'comment_srl',$comment->comment_srl)}"  onclick="popopen2(this.href,'CommDel',300,120); return false;">{$lang->cmd_delete}</a></li>
<!--@end-->
-->

 

제목 글쓴이 날짜
수정,삭제 버튼을 "이 게시물을.."에 넣기 [1] hangoon 2008.04.16
텔넷으로 순간 압축풀기/폴더 삭제/폴더파일 압축하기... [5] Crazyhouse.cn 2008.05.19
FTP로 지워지지 않는 파일 삭제방법. [9] pakjce 2008.07.05
[초보팁] 우리말 수정하기(예제: 가입창 이름란 삭제) [3] 블루파티 2008.08.19
IE의 특정 도메인 인터넷 임시 파일 Cache만 삭제하기 [3] NetEagle 2008.10.22
내가 작성 한 글에 대한 일괄 삭제/이동/복사 권한 주기 [2] file 개돌 2009.05.15
까페 아이디 삭제후 동일 아이디로 생성하는 방법 키스메리 2009.05.15
쪽지 답글 보내기 원본 내용 삭제 절망린 2009.06.24
플래너 "한줄공지" 가 삭제되지 않는 경우 의 임시대응법 [2] file Gekkou 2009.10.13
댓글 삭제/수정/답글 시 팝업창으로 띄우기 [22] file 고진감래 2009.10.21
[레드의 태그중급]폼 태그..(이상해져서 삭제하구 다시 적습니다) [3] 레드 2003.01.15
메뉴 추가 삭제 수정시 쓰면 좋을것 같네요 - 출처: http://www.happyscript.com/ [1] 예뜨락 2004.09.17
동적 테이블 (행추가, 특정행 삭제) Juny. 2008.02.20
교육용 방명록 #7 [삭제 버튼을 눌렀을 때 비밀번호를 입력받는 부분입니다.] [5] zero 2000.07.03
교육용 방명록 #8 [delete.php3파일에서 넘겨받은 비밀번호를 검사하여 글을 삭제합니다.] [18] zero 2000.07.03
누구나 만들수있는 게시판 [글삭제, 수정 부분] [4] file Mr. JH 2002.08.21
[동주아빠] PHP 게시판(28강) - 삭제(delete.php) 손병목 2003.01.11
[동주아빠] PHP 게시판(끝.29강) - 삭제(delete_ok.php) [18] 손병목 2003.01.11
서브디렉토리,파일까지 모두 삭제하는 함수. [5] Lepas 2004.08.24
[PHP 동영상강의] 33. 자료를 삭제해보자. [6] 서기 2006.01.12