에디터 컴포넌트 자료실
| 라이센스 | GPL2 |
|---|---|
| 기타 라이센스 | |
| 적용 버전 | 베타버전(1.0이전) |

dp.SyntaxHighlighter 라이브러리를 사용하여 애드온으로 만들었던 것을 에디터 컴포넌트로 변경하였습니다.
에디터 컴포넌트 입니다. 기존 애드온에 덮어쓰시면 안됩니다!
modules/editor/components/code_highlighter
활성화 방법
'관리페이지 > 기능성 모듈 > 위지윅 에디터' 메뉴에서 'Code Highlighter'를 활성 상태로 변경('비활성'을 클릭)
코드작성 방법
- 컴포넌트를 활성화하면 에디터에 'Code' 아이콘이 활성화 됩니다.
- 본문에 코드를 작성 후, 코드부분을 선택 후 'Code'아이콘을 클릭
- 팝업창에서 코드의 언어 종류를 선택하신 후 '추가'버튼을 누름으로서 완료됩니다.
- 언어 종류를 변경하고자 하는 경우 코드영역을 더블클릭 하시면 됩니다.
피드백
게시판 : http://bnufactory.com/?document_srl=980&mid=zbxe_resource
코드영역을 쉽게 설정할 수 있도록 개선되었으니 되도록이면 변경하실 것을 권해드립니다.
주의!
애드온버전과 컴포넌트를 동시에 사용할 경우 스크립트의 중복 호출로 인하여 자바스크립트 오류가 발생할 수 있습니다.
컴포넌트버전을 사용하실 분은 애드온을 제거하시고 사용하시기 바랍니다.
(물론 기존에 코드를 입력한 게시물은 전부 수정하셔야 합니다;;;)
적용 예제
- <?php
- //magic_quotes_gpc Off 경우 SQL Injection 방지
- //array_map : PHP 4 >= 4.0.6, PHP 5
- if ( get_magic_quotes_gpc() != 1 ) {
- $_GET =& array_map('addslashes', $_GET);
- $_POST =& array_map('addslashes', $_POST);
- }
- //앞, 뒤 공백제거
- //array_map : PHP 4 >= 4.0.6, PHP 5
- $_GET =& array_map('trim', $_GET);
- $_POST =& array_map('trim', $_POST);
- ?>
좀더 다양한 컬러를 사용하면 어떨까요...
제 사이트에 설치 해봤는데 자바스크립트쪽에 문제가 있어서 작동을 안하네요...이것만 해결되면 컴포넌트로도 만들 수 있었는데 ㅠㅠ
http://simulz.nayana.kr/dev/emp/
언어작성하는데 더 편해져서 좋습니다.
한가지 궁금한게 있는데요.
전에 질문드렸던 특정 레이아웃에서는 줄수가 표시가 안되던데...
이거 아직 해결 안된건가요? 애드온 지우고 모듈 컴포넌트로 해도 안되더라구요^^;;
제가 abap이란 언어를 직업으로 삼고있는데..
다른분의 애드온에 google 사이트에서 제공하는 걸로 만드신게 있는거 같은데
그건 첫번째 버전꺼는 abap 지원되는것도 같지만 php4버전에서 에러고.. ㅠㅠ (제가 php4.. cafe24라서..)
두번째 버전꺼는 abap이 지원 안되네용..
직접 추가해주시는건 수고스러우실테니까 추가할수 있는 약간의 팁 부탁드려요~^^
좋은자료 감사합니다.
음. 제가 abap을 추가하고 싶은데 모르는것 투성이라서 추가하려면 어떤것을 수정해야되는지 모르겠더라구요..
1. shBrushABAP.js 파일을 추가하고 어떤 작업을 또 해야되나요?
2. shBrushABAP.js에 keyword, datatype은 추가했고 preprocessor는 없고
dp-string이 문자열 표시하는걸 말하는건가요? abap에서 문자열을 오직 'xx'
이런식으로 '로만 표현하구요..
주석은 멀티라인은 없고 * 표시를 맨 첫행에 쓰면 그 라인은 전체가 주석처리되고요
while(a = 0) " 주석 -> 이런식으로 코드 중간에 하려면 " 로 주석처리 합니다.
조언좀 부탁드릴꼐요 ㅠㅠ 수고하세요~
dp.sh.Brushes.Abap = function()
{
var datatypes =
'ACCP CHAR CLNT CUKY CURR DATS DEC FLTP INT1 INT2 INT4 LANG LCHR LRAW NUMC PREC QUAN RAW RAWSTRING
SSTRING STRING TIMS UNIT';
var keywords =
'if return while case default do else for endif elseif eq not and data types seletion-screen parameters' +
'field-symbols extern inline report write append select endselect call method call function loop endloop' +
'raise read table concatenate split shift condense describe clear endfunction assign create data translate' +
'continue start-of-selection at selection-screen modify call screen create object perform form endform' +
'reuse_alv_block_list_init zbcialv include type ref to type begin\sof end\sof like into from where order by' +
'with key into string separated by exporting importing to upper case to exceptions tables using changing';
this.regexList = [
{ regex: new RegExp('^\*.*$ \".*$', 'gm') css: 'dp-comment' }, // one line comments
{ regex: dp.sh.RegexLib.SingleQuotedString, css: 'dp-string' }, // strings
{ regex: new RegExp(this.GetKeywords(datatypes), 'gmi'), css: 'dp-datatypes' },
{ regex: new RegExp(this.GetKeywords(keywords), 'gmi'), css: 'dp-keyword' }
];
this.CssClass = 'dp-abap';
}
dp.sh.Brushes.Abap.prototype = new dp.sh.Highlighter();
dp.sh.Brushes.Abap.Aliases = ['abap'];
shBrushABAP.js 파일은 위와같이 수정했는데 맞는지 모르겟네요..
이거 수정하는거 외에 또 수정해야되는 게 있나요?
datatypes, keywords는 위와 같이하고, 주석은 *, " 이 두가지 맞죠?
위와 같이 다음 버전에 추가하도록 하겠습니다.
주말에 배포가능 할 듯 합니다.
'if return while case default do else for endif elseif eq not and data types seletion-screen parameters▼' +
키워드를 연결해서 지정하실 경우 위의 역삼각형(▼) 위치에 따옴표를 닫기 전에 공백을 하나 두셔야 합니다.
그리고 tpl/popup.html 에서 아래와 같이 추가해 주셔야 합니다.
<option value="Php">PHP</option>
<option value="Css">CSS</option>
<option value="JScript">Javascript</option>
<option value="Xml">XML</option>
<option value="Cpp">C++</option>
<option value="CSharp">C#</option>
<option value="Vb">VB</option>
<option value="Java">Java</option>
<option value="Delphi">Delphi</option>
<option value="Python">Python</option>
<option value="Ruby">Ruby</option>
<option value="Sql">SQL</option>
<option value="Abap">Abap</option>
</select>
좋은 자료 감사합니다.
한가지 문제가 코드를 입력할 박스에서 글꼴을 변경하거나 하면 제대로 되지 않네요.
transHTML()함수에 약간의 코드를 추가하여 바꿔봤습니다.
// ---- 추가된 부분
$body = preg_replace("/<.?font(.*?)>/i", "", $body);
$body = preg_replace("/<.?span(.*?)>/i", "", $body);
$body = preg_replace("/<.?strong(.*?)>/i", "", $body);
$body = preg_replace("/<.?P(.*?)>/i", "", $body);
$body = preg_replace("/<.?o.?p>/i", "", $body);
$body = preg_replace("/<br(.*?)>/i", "\n", $body);
// ---------------------------------------------------------------
$output = sprintf('<textarea name="CodeHighLighterArea" class="%s">%s</textarea>', $code_type, $body);
지금 설치하고 테스트중인데,, 파폭에선 언어 선택창에서 언어 선택하고 추가 버튼 눌러도 반응이 없어서요;;
현재 공개된 0.2.7 선행버전에 포함된 버전은 Firefox에서 추가 버튼이 동작하지 않던 문제를 해결한 버전이고,
기타 기능 추가 및 자잘한 버그 및 Abap언어를 추가한 버전은 다음 0.2.7 버전에 포함되어 배포됩니다.





코드가 중복 출력되는데요..