Gnuboard 그누보드 순정에 에디터 2개 사용하기 페이지 정보 작성자 Docker 작성일 20-07-29 07:38 조회 1,081 댓글 0 본문 `g5_board`테이블에서 `bo_use_dhtml_editor`를 사용해서 만들어 봅니다. > 0: 사용안함 > > 1: 기존과 같이 기존 환경설정에 있는 에디터 선택에서 선택된 에디터 사용 > > 11 ~ : 추가로 선택된 에디터(첫번째를 선택할 수도 있어서 10을 더해줌.) https://sir.kr/g5_tip/3411 글 참조. config_form.php 에서 에디터 선택하는 부분 ``` 사용안함"; echo "".$arr[$i]."\n"; } ?> ``` board_form.php ``` DHTML 에디터 사용 id="bo_use_dhtml_editor"> 사용 그룹적용 전체적용 ``` 에 있는 input checkbox를 select로 변경하자 ``` ```  4개의 게시판을 순서대로 `cheditor` `smarteditor` `default`로 선정했을 때의 Database  다음으로 게시판 수정을 클릭했을 때, 기존 세팅 값을 읽어와서 세팅해 주기 ?? head.sub.php와 theme/basic/head.sub.php ``` var g5_editor = "?php echo ($config['cf_editor'] && $board['bo_use_dhtml_editor'])?$config['cf_editor']:''; ?";` ``` bbs/write.php ``` // 모바일에서는 G5_IS_MOBILE_DHTML_USE 설정에 따라 DHTML 에디터 적용 if ($config['cf_editor'] && $is_dhtml_editor_use && $board['bo_use_dhtml_editor'] && $member['mb_level'] >= $board['bo_html_level']) { $is_dhtml_editor = true; if ( $w == 'u' && (! $is_member || ! $is_admin || $write['mb_id'] !== $member['mb_id']) ){ // kisa 취약점 제보 xss 필터 적용 $content = get_text(html_purifier($write['wr_content']), 0); } if(is_file(G5_EDITOR_PATH.'/'.$config['cf_editor'].'/autosave.editor.js')) $editor_content_js = ''.PHP_EOL; } ``` `$config['cf_editor']` 에 선택된 에디터 `smarteditor` 라고 하면 (실제로는 plugin 아래의 Directory name common.php 에서 G5_EDITOR_LIB 디렉토리 및 파일을 설정함. ``` if ($config['cf_editor']) define('G5_EDITOR_LIB', G5_EDITOR_PATH."/{$config['cf_editor']}/editor.lib.php"); else define('G5_EDITOR_LIB', G5_LIB_PATH."/editor.lib.php"); ``` write.php 상단에서 이 파일을 include_once로 불러줌. ``` include_once(G5_EDITOR_LIB); ``` ``` run_event('bbs_write', $board, $wr_id, $w); ``` 에서 바꿔치기를 해 주면 됨. 에레가 너무 많이 남. (해결 힘듬 ㅠㅠ) 다시 write.php에서 찍어 보자 composer로 monolog/monolog를 설치하자 vendor 디렉토리에 ```bash composer require monolog/monolog ``` vendor 디렉토리를 write.php 제일 위에 넣자 ``` include_once(G5_PATH.'/vendor/autoload.php'); use Monolog\Handler\StreamHandler; use Monolog\Logger; $logger = new Logger('main'); $logger->pushHandler(new StreamHandler(G5_PATH.'/log/app.log', Logger::DEBUG)); ``` ``` $logger->info('write.php', ['$board' => $board], ['$wr_id' => $wr_id, '$qstr' => $qstr, '$redirect_url' => $redirect_url]); ``` ```bash mkdir log touch log/app.log tail -f log/app.log ``` > bo_use_html_editor 가 tinyint로 숫자로 되어 있음 > > 문제는 디렉토리를 읽어오는 것이라 cheditor(0), smarteditor(1), vditor(2) 로 순서가 되지만,후에 ckeditor를 추가 하면 cheditor(0), ckeditor(1), smarteditor(2), vditor(3)으로 변경되어서 board테이블에 쓰여진 값과 안맞음 > > $bo_1 이 varchar(255)이니 여기에 에디터 값을 적어보자. `g5_board`테이블에서 `bo_use_dhtml_editor`를 사용해서 만들어 봅니다. > 0: 사용안함 > > 1: 기존과 같이 기존 환경설정에 있는 에디터 선택에서 선택된 에디터 사용 > > 11 ~ : 추가로 선택된 에디터(첫번째를 선택할 수도 있어서 10을 더해줌.) https://sir.kr/g5_tip/3411 글 참조. config_form.php 에서 에디터 선택하는 부분 ``` 사용안함"; echo "".$arr[$i]."\n"; } ?> ``` board_form.php ``` DHTML 에디터 사용 id="bo_use_dhtml_editor"> 사용 그룹적용 전체적용 ``` 에 있는 input checkbox를 select로 변경하자 ``` ```  4개의 게시판을 순서대로 `cheditor` `smarteditor` `default`로 선정했을 때의 Database  다음으로 게시판 수정을 클릭했을 때, 기존 세팅 값을 읽어와서 세팅해 주기 ?? head.sub.php와 theme/basic/head.sub.php ``` var g5_editor = "?php echo ($config['cf_editor'] && $board['bo_use_dhtml_editor'])?$config['cf_editor']:''; ?";` ``` bbs/write.php ``` // 모바일에서는 G5_IS_MOBILE_DHTML_USE 설정에 따라 DHTML 에디터 적용 if ($config['cf_editor'] && $is_dhtml_editor_use && $board['bo_use_dhtml_editor'] && $member['mb_level'] >= $board['bo_html_level']) { $is_dhtml_editor = true; if ( $w == 'u' && (! $is_member || ! $is_admin || $write['mb_id'] !== $member['mb_id']) ){ // kisa 취약점 제보 xss 필터 적용 $content = get_text(html_purifier($write['wr_content']), 0); } if(is_file(G5_EDITOR_PATH.'/'.$config['cf_editor'].'/autosave.editor.js')) $editor_content_js = ''.PHP_EOL; } ``` `$config['cf_editor']` 에 선택된 에디터 `smarteditor` 라고 하면 (실제로는 plugin 아래의 Directory name common.php 에서 G5_EDITOR_LIB 디렉토리 및 파일을 설정함. ``` if ($config['cf_editor']) define('G5_EDITOR_LIB', G5_EDITOR_PATH."/{$config['cf_editor']}/editor.lib.php"); else define('G5_EDITOR_LIB', G5_LIB_PATH."/editor.lib.php"); ``` write.php 상단에서 이 파일을 include_once로 불러줌. ``` include_once(G5_EDITOR_LIB); ``` ``` run_event('bbs_write', $board, $wr_id, $w); ``` 에서 바꿔치기를 해 주면 됨. 에레가 너무 많이 남. (해결 힘듬 ㅠㅠ) 다시 write.php에서 찍어 보자 composer로 monolog/monolog를 설치하자 vendor 디렉토리에 ```bash composer require monolog/monolog ``` vendor 디렉토리를 write.php 제일 위에 넣자 ``` include_once(G5_PATH.'/vendor/autoload.php'); use Monolog\Handler\StreamHandler; use Monolog\Logger; $logger = new Logger('main'); $logger->pushHandler(new StreamHandler(G5_PATH.'/log/app.log', Logger::DEBUG)); ``` ``` $logger->info('write.php', ['$board' => $board], ['$wr_id' => $wr_id, '$qstr' => $qstr, '$redirect_url' => $redirect_url]); ``` ```bash mkdir log touch log/app.log tail -f log/app.log ``` > bo_use_html_editor 가 tinyint로 숫자로 되어 있음 > > 문제는 디렉토리를 읽어오는 것이라 cheditor(0), smarteditor(1), vditor(2) 로 순서가 되지만,후에 ckeditor를 추가 하면 cheditor(0), ckeditor(1), smarteditor(2), vditor(3)으로 변경되어서 board테이블에 쓰여진 값과 안맞음 > > $bo_1 이 varchar(255)이니 여기에 에디터 값을 적어보자. 이전글 멘션 기능 구현을 위한 생각 다음글 폰트어썸의 공부하기 댓글목록 0 등록된 댓글이 없습니다.