웹마스터 팁


안녕하세요~

새해 새벽인데...이러고 있습니다ㅋ ^^;;

지허님이 올려주신 게시물(http://www.zeroboard.com/15870820 )을 참고했는데 아무리해도 안되길래 좀 헤매다가 조금 전에야 성공을 해서 도움될까 해서 올려 봅니다.
지허님께 우선 감사드리구요~^^

지허님이 올리신 것 하고 약간 틀린데 지허님은 document_srl을 가지고 처리하시는 것이고 저는 mid값으로 처리합니다. 차이점은 게시물로 보느냐 게시판으로 보느냐가 됩니다. mid값은 XE어드민페이지에서 작업 해보신 분이라면 누구나 잘 아실 것이니 제가 지금부터 설명하려는 것은 게시판 성격에 따라 에디터의 옵션을 주는 것입니다.

1.
/modules/board/board.view.php파일을 엽니다. 거기보면 editor의 옵션을 설정하는 부분이 있습니다.

        /**
         * @brief 글 작성 화면 출력
         **/
        function dispBoardWrite() {
            // 권한 체크
            if(!$this->grant->write_document) return $this->dispBoardMessage('msg_not_permitted');
            // GET parameter에서 document_srl을 가져옴
            $document_srl = Context::get('document_srl');
            // document 모듈 객체 생성
            $oDocumentModel = &getModel('document');
            $oDocument = $oDocumentModel->getDocument(0, $this->grant->manager);
            $oDocument->setDocument($document_srl);
            if(!$oDocument->isExists()) {
                $document_srl = getNextSequence();
                Context::set('document_srl',$document_srl);
            }
            // 글을 수정하려고 할 경우 권한이 없는 경우 비밀번호 입력화면으로
            if($oDocument->isExists()&&!$oDocument->isGranted()) return $this->setTemplateFile('input_password_form');
            Context::set('document_srl',$document_srl);
            Context::set('oDocument', $oDocument);
            // 에디터 모듈의 getEditor를 호출하여 세팅
            $oEditorModel = &getModel('editor');
            $option->primary_key_name = 'document_srl';
            $option->content_key_name = 'content';
            $option->allow_fileupload = $this->grant->fileupload;
            $option->enable_autosave = true;
            $option->enable_default_component = true;
            $option->enable_component = true;
            $option->resizable = true;
            $option->height = 400;
            $editor = $oEditorModel->getEditor($document_srl, $option);
            Context::set('editor', $editor);
           //생성한 게시판들 중에서 특정 게시판의 editor component 변경을 위해 추가 : redman추가
           if($this->module_info->mid == '+
 '+
 'product' || $this->module_info->mid == 'notice' || $this->module_info->mid ==  'question_and_consult') $this->setEditor($document_srl, 100);   //이 mid값들은 zexe관리자페이지에서 정의한 mid값으로 바꿔주시면 됩니다.
           //생성한 게시판들 중에서 특정 게시판의 editor component 변경을 위해 추가 : redman추가
            // 확장변수처리를 위해 xml_js_filter를 직접 header에 적용
            $oDocumentController = &getController('document');
            $oDocumentController->addXmlJsFilter($this->module_info);
            $this->setTemplateFile('write_form');
        }

그 바로 밑에 redman추가 라고 되어 있는 소스를 추가 해줍니다. mid값들은 정의하신 값으로 변경 해주시고 게시판 2개만 바꿔주실 거면 if($this->module_info->mid == 'product' || $this->module_info->mid == 'notice' ) 이런식으로 하나만 바꾸실 거면
if($this->module_info->mid == 'product') 이런식으로 수정하시면 됩니다.

2.
위 1번대로 하고 나서, board.view.php 어디 적당한 곳에 다음과 같은 setEditor함수를 정의해 줍니다. 저는 setEditor함수를 dispBoardMessage()함수와 setCommentEditor()함수 사이에 추가 해줬습니다.

        /**
         * @brief 메세지 출력
         **/
        function dispBoardMessage($msg_code) {
            $msg = Context::getLang($msg_code);
            if(!$msg) $msg = $msg_code;
            Context::set('message', $msg);
            $this->setTemplateFile('message');
        }
       /**
     * redman 추가
        * @brief 본문 editor 를 세팅
        * 컴포넌트를 안보이도록 세팅.\n
        **/  
        function setEditor($document_srl, $height) {
            // 에디터 모듈의 getEditor를 호출하여 세팅
             $oEditorModel = &getModel('editor');
             $option->primary_key_name = 'document_srl';
             $option->content_key_name = 'content';
             $option->allow_fileupload = $this->grant->fileupload; //파일업로드 권한을 가졌으면 파일업로드 가능하도록 합니다.
             $option->enable_autosave = true;
             $option->enable_default_component = true;
             $option->enable_component = true;
             if(!$this->grant->is_admin) $option->enable_component = false;  //관리자 권한을 가지지 않은 경우에는 추가 컴포넌트를 사용하지 못하도록 합니다.
             $option->resizable = true;
             $option->height = $height;
             $editor = $oEditorModel->getEditor($document_srl, $option);
             Context::set('editor', $editor);
        }
        /**
         * @brief 댓글의 editor 를 세팅
         * 댓글의 경우 수정하는 경우가 아니라면 고유값이 없음.\n
         * 따라서 고유값이 없을 경우 고유값을 가져와서 지정해 주어야 함
         **/
        function setCommentEditor($comment_srl = 0, $height = 100) {


이렇게 하면 mid이름 별로, 그러니까 원하는 게시판 별로 에디터의 옵션을 조정할 수 있게 됩니다. 또한 저런식이면 댓글 에디터도 수정 가능합니다. 같은 방식이니까 한번 해보셔도 좋으실 것 같습니다.

원래는 enable_default_component나 enable_component의 세부 옵션들에서 일부를 빼고 싶었는데 저렇게 밖에 안되는군요. 더 건드리려면 /modules/editor/skins/default/editor.html 을 수정해야 하는데 for문으로 돌아가더군요. 빼기 힘듭니다.;;;

그러면, 잘 활용해 보시기 바랍니다. ^^ 새해 복 많이 받으시구요~

태그 연관 글
  1. [2018/01/06] 묻고답하기 www.도메인.com/xe 리다이렉트 문의 by 비욘세
  2. [2017/09/25] 묻고답하기 크롬에서 ckeditor 붙여넣기가 이상합니다. ㅠ by 토순이 *4
  3. [2017/08/04] 묻고답하기 메모장으로 php 파일 수정 후 모바일에서 메뉴 깨짐 현상 by Kodumul *1
  4. [2016/12/05] 묻고답하기 혹시 표 작업 깔끔히 잘 되는 에디터툴 있을까요. by 섬휘
  5. [2016/11/24] 묻고답하기 아무리 검색해도 모르겠네요. 에디터 문제 부탁드립니다. by 섬휘 *1
제목 글쓴이 날짜
최근 댓글이 가장 위로 정렬 [2] 쏘프티 2007.12.20
IP대역에 따라 다른 페이지 보여주기 [1] 지연아빠 2007.12.20
xml 포함한 플래쉬를 제로보드xe 에서 적용하는 과정 [4] file 도토리나무 2007.12.20
IE Toy 사용시 ''페이지'', ''외부페이지'' 차단되네요... [2] 폭풍의 전야 2007.12.22
회원가입시 추가한 추가정보를 관리자와 회원자신만 보기... [5] 지연아빠 2007.12.22
외부프로그램(페이지)에서 zbxe 로그인 정보 연동하기 [33] file 도데군 2007.12.23
Ms 워드로 게시판 글쓰기 [1] file 더하기나무 2007.12.25
제로보드에서 로그인후 테크노트에서 로그인정보 사용하기 [4] JinHoHan 2007.12.26
APM_Setup 6 과 ZBXE 설치하기(개인서버) [3] 백성찬 2007.12.27
플래쉬 테두리 없애기 [3] 부우우 2007.12.28
Parse error: parse error, unexpected '':'' in /home/hosting_users/xxx/www/xx/classes/template/TemplateHandler.class.php(341) : eval()''+ 'd code on line 14 에러에 대하여... 왕경태 2007.12.29
레벨에 따라 자동으로 그룹 변경하기 [11] 지연아빠 2007.12.29
xe에 라이프팟 연동하기 [6] 가클 2007.12.30
원하는 값으로 게시판 정렬하기 [3] 화니군 2007.12.30
게시판 별로 에디터의 옵션 설정하기 [6] 레드맨 2008.01.01
숫자 입력란에 숫자만 입력되게 하는 팁입니다^^ [1] shtjdals 2008.01.01
로그아웃 페이지가 심심한듯 보여서 이미지를 넣어봤습니다. [9] file moonsoo 2008.01.01
회원 아이디만 가지고 쪽지 보내는방법 [1] sleep2 2008.01.01
내 홈페이지에 구글 검색용 애드센스 달기 file RulruRalra 2008.01.01
홈페이지에 최근글 넣고 새창으로 띄우기 happyblog 2008.01.02