묻고답하기


저는 아래 빨간부분만 추가했습니다. \modules\board\board.controller.php

정상적인 방법은 아닌듯 하지만...일단 저는 성공했고..현재까지는 잘 됩니다.

이런식으로 했을때 문제가 발생도리 소지가 있거나 좀더 나은 방법 (예를 들어 함수를 만들어 사용하는 방법)이 있다면..한수 가르쳐 주시기 바랍니다.

제가 사용한 방법의 문제는 글주소가 링크가 안된다는 것입니다.

메일은 오지만..그냥 텍스트로 오지..링크는 안 걸리더군요,,

링크부분만 어느분이 수정해주시면 감사히 쓰겠습니다.

<a herf= 태그는 사용해 봤는데..메일에는 저 태그는 빠지고 오더군요..

고수님들께 조언 부탁드립니다.

편집한 파일 \modules\board\board.controller.php


<?php
    /**
     * @class  boardController
     * @author zero (
zero@nzeo.com)
     * @brief  board 모듈의 Controller class
     **/

    class boardController extends board {

        /**
         * @brief 초기화
         **/
        function init() {
        }

        /**
         * @brief 문서 입력
         **/
        function procBoardInsertDocument() {
            // 권한 체크
            if(!$this->grant->write_document) return new Object(-1, 'msg_not_permitted');

            // 글작성시 필요한 변수를 세팅
            $obj = Context::getRequestVars();
            $obj->module_srl = $this->module_srl;
            if($obj->is_notice!='Y'||!$this->grant->manager) $obj->is_notice = 'N';

            if(!$obj->title) $obj->title = cut_str(strip_tags($obj->content),20,'...');

            // 관리자가 아니라면 게시글 색상/굵기 제거
            if(!$this->grant->manager) {
                unset($obj->title_color);
                unset($obj->title_bold);
            }

            // document module의 model 객체 생성
            $oDocumentModel = &getModel('document');

            // document module의 controller 객체 생성
            $oDocumentController = &getController('document');

            // 이미 존재하는 글인지 체크
            $oDocument = $oDocumentModel->getDocument($obj->document_srl, $this->grant->manager);

            // 이미 존재하는 경우 수정
            if($oDocument->isExists() && $oDocument->document_srl == $obj->document_srl) {
                // Modify
                $msg_head = "■수정■ ";
                $output = $oDocumentController->updateDocument($oDocument, $obj);
                $msg_code = 'success_updated';

            // 그렇지 않으면 신규 등록
            } else {
                // Modify
                $msg_head = "■등록■ ";
                $output = $oDocumentController->insertDocument($obj);
                $msg_code = 'success_registed';
                $obj->document_srl = $output->get('document_srl'+ '+ ');
            }

            // 오류 발생시 멈춤
            if(!$output->toBool()) return $output;

                // Modify
                $logged_info = Context::get('logged_info');
                $msg_url = "
http://www.본인도메인.co.kr/?document_srl=".$obj->document_srl;
                $oMail = new Mail();
                $oMail->setTitle($msg_head.$obj->title);
                $oMail->setContent($msg_url."\n".$obj->content);
                $oMail->setSender($logged_info->user_name, $logged_info->email_address);
                $oMail->setReceiptor("[ 운영자 ]", "받고싶은메일주소");
                $oMail->send();

            // 결과를 리턴
            $this->add('mid', Context::get('mid'));
            $this->add('+ 'document_srl', $output->get('document_srl'));

            // 성공 메세지 등록
            $this->setMessage($msg_code);
        }

        /**
         * @brief 문서 삭제
         **/
        function procBoardDeleteDocument() {
            // 문서 번호 확인
            $document_srl = Context::get('document_srl');

            // 문서 번호가 없다면 오류 발생
            if(!$document_srl) return $this->doError('msg_invalid_document');

            // document module model 객체 생성
            $oDocumentController = &getController('document');

            // 삭제 시도
            $output = $oDocumentController->deleteDocument($document_srl, $this->grant->manager);
            if(!$output->toBool()) return $output;

            // 성공 메세지 등록
            $this->add('mid', Context::get('mid'));
            $this->add('+ 'page', $output->get('page'));
            $this->setMessage('success_deleted');
        }

        /**
         * @brief 추천
         **/
        function procBoardVoteDocument() {
            // document module controller 객체 생성
            $oDocumentController = &getController('+ 'document');

            $document_srl = Context::get('document_srl');
            return $oDocumentController->updateVotedCount($document_srl);
        }

        /**
         * @brief 코멘트 추가
         **/
        function procBoardInsertComment() {
            // 권한 체크
            if(!$this->grant->write_comment) return new Object(-1, 'msg_not_permitted');

            // 댓글 입력에 필요한 데이터 추출
            $obj = Context::gets('document_srl','comment_srl','parent_srl','content','password','nick_name','nick_name','member_srl','email_address','homepage','is_secret','+ 'notify_message');
            $obj->module_srl = $this->module_srl;

            // comment 모듈의 model 객체 생성
            $oCommentModel = &getModel('+ 'comment');

            // comment 모듈의 controller 객체 생성
            $oCommentController = &getController('comment');

            // comment_srl이 존재하는지 체크
                        // 만일 comment_srl이 n/a라면 getNextSequence()로 값을 얻어온다.
                        if(!$obj->comment_srl) {
                $obj->comment_srl = getNextSequence();
            } else {
                $comment = $oCommentModel->getComment($obj->comment_srl, $this->grant->manager);
            }

            // comment_srl이 없을 경우 신규 입력
            if($comment->comment_srl != $obj->comment_srl) {

                // parent_srl이 있으면 답변으로
                if($obj->parent_srl) {
                    $parent_comment = $oCommentModel->getComment($obj->parent_srl);
                    if(!$parent_comment->comment_srl) return new Object(-1, 'msg_invalid_request'+ ');

                    $output = $oCommentController->insertComment($obj);
                    // Modify
                    $msg_head = "■댓글답변■ ";

                // 없으면 신규
                } else {
                    $output = $oCommentController->insertComment($obj);
                    // Modify
                    $msg_head = "■댓글등록■ ";
                }

            // comment_srl이 있으면 수정으로
            } else {
                $obj->parent_srl = $comment->parent_srl;
                $output = $oCommentController->updateComment($obj, $this->grant->manager);
                $comment_srl = $obj->comment_srl;
                // Modify
                $msg_head = "■댓글수정■ ";
            }

            if(!$output->toBool()) return $output;

                // Modify
                $logged_info = Context::get('logged_info');
                $msg_url = "
http://www.본인도메인.co.kr/?document_srl=".$obj->document_srl;
                $oMail = new Mail();
                if(!$obj->title) $obj->title = cut_str(strip_tags($obj->content),20,'...');
                $oMail->setTitle($msg_head.$obj->title);
                $oMail->setContent($msg_url."\n".$obj->content);
                $oMail->setSender($logged_info->user_name, $logged_info->email_address);
                $oMail->setReceiptor("[ 운영자 ]", "받고싶은메일주소");
                $oMail->send();

            $this->setMessage('success_registed');
            $this->add('mid', Context::get('mid'));
            $this->add('document_srl', $obj->document_srl);
            $this->add('comment_srl', $obj->comment_srl);
        }

        /**
         * @brief 코멘트 삭제
         **/
        function procBoardDeleteComment() {
            // 댓글 번호 확인
            $comment_srl = Context::get('comment_srl');
            if(!$comment_srl) return $this->doError('msg_invalid_request'+ ');

            // comment 모듈의 controller 객체 생성
            $oCommentController = &getController('comment');

            $output = $oCommentController->deleteComment($comment_srl, $this->grant->manager);
            if(!$output->toBool()) return $output;

            $this->add('mid', Context::get('mid'));
            $this->add('page', Context::get('page'));
            $this->add('document_srl', $output->get('document_srl'));
            $this->setMessage('success_deleted');
        }

        /**
         * @brief 엮인글 삭제
         **/
        function procBoardDeleteTrackback() {
            $trackback_srl = Context::get('trackback_srl');

            // trackback module의 controller 객체 생성
            $oTrackbackController = &getController('trackback');
            $output = $oTrackbackController->deleteTrackback($trackback_srl, $this->grant->manager);
            if(!$output->toBool()) return $output;

            $this->add('mid', Context::get('mid'));
            $this->add('page', Context::get('page'));
            $this->add('document_srl', $output->get('document_srl'));
            $this->setMessage('success_deleted');
        }

        /**
         * @brief 문서와 댓글의 비밀번호를 확인
         **/
        function procBoardVerificationPassword() {
            // 비밀번호와 문서 번호를 받음
            $password = Context::get('password');
            $document_srl = Context::get('document_srl');
            $comment_srl = Context::get('comment_srl');

            $oMemberModel = &getModel('member');

            // comment_srl이 있을 경우 댓글이 대상
            if($comment_srl) {
                // 문서번호에 해당하는 글이 있는지 확인
                $oCommentModel = &getModel('comment');
                $oComment = $oCommentModel->getComment($comment_srl);
                if(!$oComment->isExists()) return new Object(-1, 'msg_invalid_request');

                // 문서의 비밀번호와 입력한 비밀번호의 비교
                if(!$oMemberModel->isValidPassword($oComment->get('password'),$password)) return new Object(-1, 'msg_invalid_password');

                $oComment->setGrant();
            } else {
                // 문서번호에 해당하는 글이 있는지 확인
                $oDocumentModel = &getModel('document');
                $oDocument = $oDocumentModel->getDocument($document_srl);
                if(!$oDocument->isExists()) return new Object(-1, 'msg_invalid_request');

                // 문서의 비밀번호와 입력한 비밀번호의 비교
                if(!$oMemberModel->isValidPassword($oDocument->get('password'),$password)) return new Object(-1, 'msg_invalid_password');

                $oDocument->setGrant();
            }
        }

        /**
         * @brief 아이디 클릭시 나타나는 팝업메뉴에 "작성글 보기" 메뉴를 추가하는 trigger
         **/
        function triggerMemberMenu(&$obj) {
            $member_srl = Context::get('target_srl');
            $mid = Context::get('cur_mid');

            if(!$member_srl || !$mid) return new Object();

            $logged_info = Context::get('logged_info');

            // 호출된 모듈의 정보 구함
            $oModuleModel = &getModel('module');
            $cur_module_info = $oModuleModel->getModuleInfoByMid($mid);

            if($cur_module_info->module != 'board') return new Object();

            // 자신의 아이디를 클릭한 경우
            if($member_srl == $logged_info->member_srl) $member_info = $logged_info;
            else {
                $oMemberModel = &getModel('member');
                $member_info = $oMemberModel->getMemberInfoByMemberSrl($member_srl);
            }

            if(!$member_info->user_id) return new Object();

            // 아이디로 검색
            $menu_str = Context::getLang('cmd_view_own_document');
            $menu_url = sprintf('./?mid=%s&amp;search_target=user_id&amp;search_keyword=%s', $mid, $member_info->user_id);
            $obj[] = sprintf('%s,%s,move_url(\'%s\')', Context::getRequestUri().'/modules/member/tpl/images/icon_view_written.gif',$menu_str, $menu_url);

            return new Object();
        }

    }
?>

글쓴이 제목 최종 글
XE 공지 글 쓰기,삭제 운영방식 변경 공지 [16] 2019.03.05 by 남기남
Joyful 모바일에서 메일링 가입이.. [1] 2013.01.02 by 송동우
원조가카님 로그인을 안하면 게시판 권한이 없습니다 뜹니다!! [2] file 2013.01.02 by 송동우
foiri xe 게시물 조회수 숨기기 [1] 2013.01.02 by 송동우
Coke Kim 프레임 페이지에서의 로그인 불가 문제  
gggggggggg XE설치 에러.. [1] 2013.01.02 by 똥똥
봉미선 공개/비밀 버튼 영어로 바꿀수있나요? [1] file 2013.01.02 by 송동우
류군 글쓰기 오류 [1] 2013.01.02 by 류군
몽실아빠 1.5.4 포인트 연동 등업시 기존 그룹 초기화 후 새그룹 부여 잘 되세요 ? [1] 2013.01.02 by 송동우
merwif 게시판 틀수정 [1] file 2013.01.02 by 송동우
Apollos2304 SVN, 트렁크, 브런치, 구글프로젝트  
ManuS 독립된 외부페이지내용 불러오기와 일반페이와 게시판 함께 사용하기 [1] file 2013.01.02 by LI-NA
화이트미르 최근 게시물 불러올때....  
메리크리스마스나미아불타불 xe 1.5.3.8ko 버전설치후 에러?  
Nov25 배경색상 문제 file  
몽실아빠 포인트 연동 그룹변경시 기존그룹 남는 현상 [2] 2013.01.02 by 송동우
jack. XE 공식 사이트 레이아웃 ver 0.1 레이아웃에 배너 넣기 [1] file 2013.01.02 by 송동우
female_nari 게시판 자동본문삽입하는거요 따라하는데 왜 안될까요 [2] 2013.01.02 by 송동우
몽실아빠 포인트 연동 그룹변경시 기존그룹 남는 현상 저와 같은 조건으로 테스트 해주실 분 ? [1] 2013.01.02 by 송동우
JaeKie Core 쉬운설치 버전 갱신이 안되요 [1] 2013.01.02 by 빛의바다
청개굴이 초보 홈페이지 제작해서 장사하려면..? [1] 2013.01.02 by 빛의바다
오동통 컬러셋 검정색을 사용시,본문 글자색을 흰색으로 바꾸고싶습니다 file  
뀰귤 자동으로 쪽지를 날릴때 DB에 html값이 변경되어 입력됩니다. file  
alpeace 등록된 분류를 어떻게 해도 뜨질 않습니다 [1] file 2013.01.02 by 뀰귤
공돌이2 로그인과 로그아웃시... file  
동만이 레이아웃 삭제가 왜 안될까요?ㅠㅠ file  
갈매기로보트 일본어 홈페이지 우편번호설치방법?  
motahn 프레임 나누기 2 ?? [1] file 2013.01.02 by 푸시아
Gaudium 호스팅 이전 후 이미지 엑박 문제 [2] 2013.01.02 by IZUZero
검번 sketchbook5를 사용하려고하는데요...홈화면에 위젯을... [1] 2013.01.03 by 송동우
gggggggggg XE설치 테마 기본스킨으로변경 [1] 2013.01.03 by 송동우