T2Editor 개발 및 관리 가이드 (claude ai) > 코딩 스토리

T2Editor 개발 및 관리 가이드 (claude ai)

본문

버전: 4.0 (2025.03.16)


목차

1. 개요

2. 설치 및 구성

3. 코어 컴포넌트

4. 주요 기능

5. 커스터마이징

6. 문제 해결

7. 보안 고려사항


1. 개요

T2Editor는 그누보드5 환경에 최적화된 WYSIWYG 에디터로, 한국 사용자를 위해 설계되었습니다. 현대적인 UI와 다양한 편집 기능을 제공합니다.

주요 기능

* 텍스트 편집: 글자 크기, 색상, 정렬 등 서식 옵션

* 미디어 관리: 이미지 업로드(WebP 변환), YouTube 삽입

* 테이블 기능: 테이블 생성 및 편집, CSV 내보내기

* 파일 첨부: PDF, ZIP, 오디오 파일 지원

* PDF 뷰어: 내장형 PDF 문서 열람

* 자동 저장: 작업 손실 방지

* HTML 내보내기: HTML 스킨을 통한 HTML 문서 내보내기


2. 설치 및 구성

2.1 시스템 요구사항

* 서버: PHP 7.2 이상

* 그누보드: 그누보드5 최신 버전

* 브라우저: 최신 Chrome, Firefox, Safari, Edge


2.2 설치 프로세스

1. 파일 업로드

* 다운로드한 파일의 압축을 풀어 압축 해제한 폴더 안의 t2editor 폴더를 그누보드 설치 경로의 /plugin/editor/디렉토리에 업로드


2.3 권한 설정


# 업로드 디렉토리 권한 설정

chmod 707 그누보드5루트디렉토리/data/editor/


# 파일 권한 설정

chmod 755 그누보드5루트디렉토리/plugin/editor/t2editor/file_upload.php

chmod 755 그누보드5루트디렉토리/plugin/editor/t2editor/image_upload.php



2.4 그누보드 설정
전체 사이트 적용

* 관리자 > 환경설정 > 기본환경설정 > 에디터 선택: 'T2Editor'

특정 게시판 적용

* 관리자 > 게시판관리 > 게시판 수정 > 게시판 에디터 선택: 'T2Editor'


2.5. 미디어 블록 스타일 설정

head.sub.php 또는 view.skin.php 파일에 추가:


<link href="<?php echo G5_PLUGIN_URL ?>/editor/t2editor/css/t2content.css" rel="stylesheet">



2.6 업로드 디렉토리

기본 저장 경로:

* 이미지:

/data/editor/[YYMMDD]/


* 파일:

 /data/editor/t2editor_[YYYYMMDD]/




3. 코어 컴포넌트

3.1 파일 구조

/plugin/editor/t2editor/

├── js/

│ └── t2editor.js # t2editor 핵심 js파일

│ └── pdf.min.js # pdf 뷰어용 js 파일

│ └── jszip.min.js # pdf 뷰어의 파일 압축 기능을 위한 js 파일

├── css/

│ └── t2editor.css # 에디터 스타일

│ └── t2content.css # 게시글 미디어 블록용 스타일

├── editor.lib.php # 그누보드5용 에디터 실행 파일

├── image_upload.php # 이미지 업로드 파일

├── file_upload.php # 파일 업로드 파일

├── pdf_view.php # PDF 뷰어

├── export_html_skin.html # HTML 내보내기 스킨

├── fonts/ # 폰트 파일

├── License_en.txt # 영문 라이센스

├── License_ko.txt # 한글 라이센스

└── readme.txt # 버전 정보



3.2 핵심 클래스 구조

t2editor.js 의 기본 구조:

class T2Editor {

constructor(container) { // 초기화 }

setupEditor() { // 에디터 설정 }

handleCommand() { // 명령어 처리 }

// 미디어, 테이블, 자동저장 등의 메서드

}


3.3 PHP 통합

editor.lib.php 주요 함수:

* editor_html() : 에디터 HTML 생성

* get_editor_js() : 폼 제출 시 JavaScript 코드

* chk_editor_js() : 입력 검증 코드


4. 주요 기능

4.1 텍스트 편집

기본 서식 명령어:

* bold, italic, underline, strikeThrough

* justifyContent: 텍스트 정렬

* fontSize: 글자 크기

* foreColor, backColor: 색상

색상 선택기: 기본 색상 팔레트와 HEX 코드 입력 지원

실행 취소/다시 실행: 내부 스택을 통한 변경 이력 관리


4.2 미디어 관리

이미지 업로드:

showImageUploadModal() → 사용자 파일 선택

handleMultipleImageUpload() → 서버 업로드

image_upload.php: WebP 변환 (가능한 경우)


미디어블록 삽입:

YouTube:

* URL 입력 → 비디오 ID 추출 → iframe 생성

파일 첨부:

* 지원 파일 형식: ZIP, PDF, TXT, MP3 등

* 파일 유형별 아이콘 및 미리보기 제공


4.3 테이블 기능

테이블 생성:

* 행/열 수 설정

* 테이블 스타일 지정 (너비, 테두리 등)

테이블 편집:

* 행/열 추가 및 삭제

* 셀 크기 조절

* CSV 내보내기

반응형 테이블:

* 큰 테이블은 스크롤 컨테이너에 자동 배치


4.4 자동 저장

* localStorage를 활용한 임시 저장

* 토글 가능한 자동 저장 옵션

* 브라우저 새로고침 후에도 데이터 유지


4.5 HTML 내보내기

* 현재 에디터 내용을 독립 실행형 HTML 문서로 변환

* 미디어 요소 및 스타일 포함

* 커스텀 템플릿 (export_html_skin.html) 사용


5. 커스터마이징

5.1 css 수정

/* t2editor.css 수정 예시 */

.t2-editor-container {

/* 스타일 수정 */

}



5.2 툴바 버튼 추가:

1. editor.lib.php에 HTML 버튼 추가


<button class="t2-btn" data-command="customCommand">

<span class="material-icons">새아이콘명</span>

</button>



2. t2editor.js에 추가한 버튼의 명령어 처리 추가


case 'customCommand':

this.handleCustomCommand();

break;



5.3 기능 확장

1. 업로드 허용 확장자 추가

file_upload.php:



$allowed_types = ['zip', 'pdf', 'txt', 'mp3', '새확장자'];



2. 파일 유형 색상 및 아이콘 추가



getFileColor(type) {

const colors = {

'새확장자': '#새색상코드',

};

return colors[type.toLowerCase()] || '#E8B56F';

}



3. HTML 템플릿 수정:


* export_html_skin.html 파일 편집



6. 문제 해결

6.1 일반적인 문제

6.1.1. 에디터가 로드되지 않음:

* 라이센스 파일 확인: License_en.txt와 License_ko.txt

* JavaScript 오류: 브라우저 콘솔 확인


6.1.2. 이미지/파일 업로드 실패:

* 디렉토리 권한: /data/editor/ 권한 확인

* PHP 설정: upload_max_filesize 및 post_max_size 확인

WebP 변환 실패:

* PHP GD 라이브러리 설치 확인


6.1.3. 그누보드5 모바일 페이지에서 에디터가 보이지 않음

데스크톱 페이지에서는 에디터가 보이지만 모바일에서는 보이지 않는 경우:

1. 그누보드 루트 또는 테마의 config.php 에서 아래와 같이 false를 true로 변경


define('G5_IS_MOBILE_DHTML_USE', false); 



2. 환경 설정의 에디터 사용 설정에서 t2editor을 사용으로 설정 또는 게시판의 에디터를 t2editor로 설정


3. 게시판 관리 수정에서 DHTML 에디터 사용에 체크


*https://sir.kr/qa/399462 참고


6.2 심각한 문제

dsclub2023@gmail.com 로 문의


7. 보안 고려사항

7.1 파일 업로드 보안

파일 유형 제한:


// 이미지 파일 검증

if (!preg_match("/\.(jpg|jpeg|gif|png|webp)$/i", $filename)) {

continue;

}



파일 이름 무작위화:


$save_filename = $uid.'_'.time().'.'.$file_ext;



7.2 XSS 방지

입력 데이터 검증:


$escaped_content = str_replace(

array("\\", "'", "\r", "\n"),

array("\\\\", "\\'", "\\r", "\\n"),

$content

);




© 2025 Tak2 (dsclub.kr) | 문의: dsclub2023@gmail.com


좋아요104 이 글을 좋아요하셨습니다
url 복사 카카오톡 공유 라인 공유 페이스북 공유 트위터 공유

카테고리 분류 학습 시스템 (총 0개 학습됨)

예측 카테고리: 취업-커리어 (랜덤 - 학습 데이터 없음)

이 분류가 맞나요? 학습시켜주세요!

등록된 댓글이 없습니다.

  • RSS
  • _  글쓰기 글쓰기
전체 87건
게시물 검색

접속자집계

오늘
1,241
어제
3,897
최대
42,418
전체
939,469