diff --git a/adm/board_form.php b/adm/board_form.php
index dd0115ef9..8c57f589f 100644
--- a/adm/board_form.php
+++ b/adm/board_form.php
@@ -558,7 +558,7 @@ if (!preg_match("/([m|M])$/", $upload_max_filesize)) {
|
- =editor_textarea("bo_content_tail", $board['bo_content_tail']);?>
+ =editor("bo_content_tail", $board['bo_content_tail']);?>
|
diff --git a/bbs/board.php b/bbs/board.php
index 938e1ec04..88469ff61 100644
--- a/bbs/board.php
+++ b/bbs/board.php
@@ -1,5 +1,4 @@
-define('_CAPTCHA_', true);
include_once('./_common.php');
if (!$board['bo_table']) {
diff --git a/bbs/calendar.php b/bbs/calendar.php
deleted file mode 100644
index a8a675b0b..000000000
--- a/bbs/calendar.php
+++ /dev/null
@@ -1,141 +0,0 @@
-
-include_once('./_common.php');
-
-$g4['title'] = '달력';
-include_once($g4['path'].'/head.sub.php');
-
-// 글자 색상
-$weekday_color = '#000000'; // 평일
-$saturday_color = '#000000'; // 토요일
-$sunday_color = '#FF3300'; // 일요일 (공휴일)
-// 배경 색상
-$today_bgcolor = 'yellow'; // 오늘
-$select_bgcolor = '#BAFFF6'; // 선택일
-
-// 요일
-$yoil = array ('일', '월', '화', '수', '목', '금', '토');
-
-// mktime() 함수는 1970 ~ 2038년까지만 계산되므로 사용하지 않음
-// 참고 : http://phpschool.com/bbs2/inc_view.html?id=3924&code=tnt2&start=0&mode=search&s_que=mktime&field=title&operator=and&period=all
-function spacer($year, $month)
-{
- $day = 1;
- $spacer = array(0, 3, 2, 5, 0, 3, 5, 1, 4, 6, 2, 4);
- $year = $year - ($month < 3);
- $result = ($year + (int) ($year/4) - (int) ($year/100) + (int) ($year/400) + $spacer[$month-1] + $day) % 7;
- return $result;
-}
-
-// 오늘
-$today = getdate($g4[server_time]);
-$mon = substr('0'.$today[mon],-2);
-$mday = substr('0'.$today[mday],-2);
-
-// delimiter 를 없앤다
-$cur_date = preg_replace("/([^0-9]*)/", "", $cur_date);
-
-if ($cur_date && !$yyyy)
-{
- $yyyy = substr($cur_date,0,4);
- $mm = substr($cur_date,4,2);
-}
-else
-{
- if (!$yyyy) $yyyy = $today[year];
- if (!$mm) $mm = $today[mon];
-}
-$yyyy = (int)$yyyy;
-$mm = (int)$mm;
-
-$f = @file('./calendar/'.$yyyy.'.txt');
-if ($f) {
- while ($line = each($f)) {
- $tmp = explode("|", $line[value]);
- $nal[$tmp[0]] = $tmp;
- //print_r2($nal);
- }
-}
-
-$spacer = spacer($yyyy, $mm);
-
-$endday = array(1=>31, 28, 31, 30 , 31, 30, 31, 31, 30 ,31 ,30, 31);
-// 윤년 계산 부분이다. 4년에 한번꼴로 2월이 28일이 아닌 29일이 있다.
-if( $yyyy%4 == 0 && $yyyy%100 != 0 || $yyyy%400 == 0 )
- $endday[2] = 29; // 조건에 적합할 경우 28을 29로 변경
-
-// 해당월의 1일
-$mktime = mktime(0,0,0,$mm,1,$yyyy);
-$dt = getdate(strtotime(date("Y-m-1", $mktime)));
-
-$dt[wday] = $spacer;
-
-// 해당월의 마지막 날짜,
-//$last_day = date("t", $mktime);
-$last_day = $endday[$mm];
-
-$yyyy_before = $yyyy;
-$mm_before = $mm - 1;
-if ($mm_before < 1)
-{
- $yyyy_before--;
- $mm_before = 12;
-}
-
-$yyyy_after = $yyyy;
-$mm_after = $mm + 1;
-if ($mm_after > 12)
-{
- $yyyy_after++;
- $mm_after = 1;
-}
-
-$fr_yyyy = $yyyy - 80;
-$to_yyyy = $yyyy + 80;
-
-$yyyy_before_href = $_SERVER[PHP_SELF].'?yyyy='.($yyyy-1).'&mm='.$mm.'&cur_date='.$cur_date.'&fld='.$fld.'&delimiter='.$delimiter;
-$yyyy_after_href = $_SERVER[PHP_SELF].'?yyyy='.($yyyy+1).'&mm='.$mm.'&cur_date='.$cur_date.'&fld='.$fld.'&delimiter='.$delimiter;
-
-$mm_after_href = $_SERVER[PHP_SELF].'?yyyy='.$yyyy_after.'&mm='.$mm_after.'&cur_date='.$cur_date.'&fld='.$fld.'&delimiter='.$delimiter;
-$mm_before_href = $_SERVER[PHP_SELF].'?yyyy='.$yyyy_before.'&mm='.$mm_before.'&cur_date='.$cur_date.'&fld='.$fld.'&delimiter='.$delimiter;
-
-$yyyy_select = '';
-
-$mm_select = '';
-
-$member_skin_path = $g4['path'].'/skin/member/.'$config[cf_member_skin];
-include_once($member_skin_path.'/calendar.skin.php');
-?>
-
-
-
-
-include_once($g4['path'].'/tail.sub.php');
-?>
diff --git a/bbs/register_form.php b/bbs/register_form.php
index 5e996d4c3..f21edc0ad 100644
--- a/bbs/register_form.php
+++ b/bbs/register_form.php
@@ -1,7 +1,7 @@
+define('_CAPTCHA_', true);
include_once('./_common.php');
include_once($g4['path'].'/lib/register.lib.php');
-if ($captcha->lib) include_once($captcha->lib);
// 불법접근을 막도록 토큰생성
$token = md5(uniqid(rand(), true));
@@ -102,7 +102,6 @@ if ($w == "") {
// 회원아이콘 경로
$mb_icon = $g4['path'].'/data/member/'.substr($member['mb_id'],0,2).'/'.$member['mb_id'].'.gif';
$member_skin_path = $g4['path'].'/skin/member/'.$config['cf_member_skin'];
-$g4['js_file'][] = "{$g4['path']}/plugin/captcha/captcha.js";
include_once('./_head.php');
diff --git a/bbs/write.php b/bbs/write.php
index f61c20e37..65cd17707 100644
--- a/bbs/write.php
+++ b/bbs/write.php
@@ -1,5 +1,4 @@
-define('_CAPTCHA_', true);
include_once('./_common.php');
set_session('ss_bo_table', $bo_table);
@@ -11,7 +10,7 @@ if (!$board['bo_table']) {
}
if (!$bo_table) {
- alert('bo_table 값이 넘어오지 않았습니다.'.PHP_EOL.PHP_EOL.'write.php?bo_table=code 와 같은 방식으로 넘겨 주세요.', $g4['path']);
+ alert("bo_table 값이 넘어오지 않았습니다.\\nwrite.php?bo_table=code 와 같은 방식으로 넘겨 주세요.", $g4['path']);
}
@include_once ($g4['path'].'/skin/board/write.head.skin.php');
@@ -198,16 +197,9 @@ if ($member['mb_level'] >= $board['bo_html_level'])
$is_secret = $board['bo_use_secret'];
+$is_dhtml_editor = false;
if ($board['bo_use_dhtml_editor'] && $member['mb_level'] >= $board['bo_html_level']) {
- define('_EDITOR_', true);
$is_dhtml_editor = true;
-} else {
- $is_dhtml_editor = false;
-}
-
-$captcha_html = "";
-if ($is_guest) {
- $captcha_html = captcha_html('wr_key');
}
$is_mail = false;
@@ -369,4 +361,4 @@ include_once('./board_tail.php');
include_once($g4['path'].'/tail.sub.php');
@include_once ($board_skin_path.'/write.tail.skin.php');
-?>
+?>
\ No newline at end of file
diff --git a/bbs/write_update.php b/bbs/write_update.php
index b010365f7..a66b8b5a1 100644
--- a/bbs/write_update.php
+++ b/bbs/write_update.php
@@ -1,11 +1,8 @@
-define('_CAPTCHA_', true);
include_once('./_common.php');
$g4['title'] = '게시글 저장';
-if (isset($captcha->lib)) include_once($captcha->lib);
-
$msg = array();
$wr_subject = '';
@@ -151,8 +148,10 @@ if ($w == '' || $w == 'u') {
alert('w 값이 제대로 넘어오지 않았습니다.');
}
-if (!chk_captcha('wr_key')) {
- alert('자동등록방지의 답변으로 입력한 숫자가 틀렸습니다.');
+if (defined('_CAPTCHA_')) {
+ if ($is_guest && !chk_captcha()) {
+ alert('스팸방지의 답변으로 입력한 숫자가 틀렸습니다.');
+ }
}
if ($w == '' || $w == 'r') {
@@ -283,8 +282,8 @@ if ($w == '' || $w == 'r') {
} else {
$mb_id = '';
// 비회원의 경우 이름이 누락되는 경우가 있음
- $wr_name = strip_tags(mysql_escape_string($_POST['wr_name']));
- if (!trim($wr_name))
+ $wr_name = escape_trim($_POST['wr_name']);
+ if (!$wr_name)
alert('이름은 필히 입력하셔야 합니다.');
$wr_password = sql_password($wr_password);
}
diff --git a/config.php b/config.php
index cad60347a..780bdbdea 100644
--- a/config.php
+++ b/config.php
@@ -13,6 +13,10 @@ $g4['bbs_path'] = $g4['path'] . '/' . $g4['bbs'];
$g4['bbs_img'] = 'img';
$g4['bbs_img_path'] = $g4['path'] . '/' . $g4['bbs'] . '/' . $g4['bbs_img'];
+$g4['data_dir'] = 'data';
+$g4['cache_dir'] = 'cache';
+$g4['captcha_dir'] = 'captcha';
+
$g4['admin'] = 'adm';
$g4['admin_path'] = $g4['path'] . '/' . $g4['admin'];
diff --git a/extend/captcha.extend.php b/extend/captcha.extend.php
deleted file mode 100644
index c70a26aef..000000000
--- a/extend/captcha.extend.php
+++ /dev/null
@@ -1,14 +0,0 @@
-
-if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
-
-if (defined('_CAPTCHA_')) {
- $captcha = (object)array(
- 'lib' => $g4['path']."/plugin/captcha/captcha.lib.php",
- 'js' => $g4['path']."/plugin/captcha/captcha.js"
- );
-
- include_once($captcha->lib);
-} else {
- unset($_SESSION['ss_captcha_use']);
-}
-?>
\ No newline at end of file
diff --git a/extend/ckeditor.extend.php b/extend/ckeditor.extend.php
index cad9fa117..8f1badf62 100644
--- a/extend/ckeditor.extend.php
+++ b/extend/ckeditor.extend.php
@@ -1,12 +1,20 @@
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
-$editor = (object)array(
- 'lib' => $g4['path']."/plugin/ckeditor/ckeditor.lib.php",
- 'js' => $g4['path']."/plugin/ckeditor/ckeditor.js",
- 'config_js' => $g4['path']."/plugin/ckeditor/config.js",
- 'data' => "data/editor"
-);
+// _EDITOR_ 의 값에 상관없이 선언 되었는지의 여부만 따짐
+// if (defined('_EDITOR_')) true;
+define('_EDITOR_', 1);
-include_once($editor->lib);
+if (defined('_EDITOR_')) {
+ $ckeditor = new stdClass;
+ $ckeditor->url = $g4['url']."/extend/ckeditor";
+ $ckeditor->path = $g4['path']."/extend/ckeditor";
+ $ckeditor->data = "data/editor";
+
+ include_once($ckeditor->path."/ckeditor.lib.php");
+
+ $g4['js_code'][] = "var g4_ckeditor_path = \"{$ckeditor->path}\";";
+ $g4['js_file'][] = $ckeditor->url."/ckeditor.js";
+ $g4['js_file'][] = $ckeditor->url."/config.js";
+}
?>
\ No newline at end of file
diff --git a/plugin/ckeditor/CHANGES.md b/extend/ckeditor/CHANGES.md
similarity index 100%
rename from plugin/ckeditor/CHANGES.md
rename to extend/ckeditor/CHANGES.md
diff --git a/plugin/ckeditor/LICENSE.md b/extend/ckeditor/LICENSE.md
similarity index 100%
rename from plugin/ckeditor/LICENSE.md
rename to extend/ckeditor/LICENSE.md
diff --git a/plugin/ckeditor/README.md b/extend/ckeditor/README.md
similarity index 100%
rename from plugin/ckeditor/README.md
rename to extend/ckeditor/README.md
diff --git a/plugin/ckeditor/build-config.js b/extend/ckeditor/build-config.js
similarity index 100%
rename from plugin/ckeditor/build-config.js
rename to extend/ckeditor/build-config.js
diff --git a/plugin/ckeditor/ckeditor.js b/extend/ckeditor/ckeditor.js
similarity index 100%
rename from plugin/ckeditor/ckeditor.js
rename to extend/ckeditor/ckeditor.js
diff --git a/extend/ckeditor/ckeditor.lib.php b/extend/ckeditor/ckeditor.lib.php
new file mode 100644
index 000000000..cb7ee0718
--- /dev/null
+++ b/extend/ckeditor/ckeditor.lib.php
@@ -0,0 +1,23 @@
+$content\n";
+ //if (_EDITOR_) $str .= "\n";
+ return $str;
+}
+
+// textarea 로 값을 넘김
+function editor_getdata($id)
+{
+ return "var {$id}_data = CKEDITOR.instances.{$id}.getData();\n";
+}
+
+// textarea 의 값이 비어 있는지 검사
+function editor_empty($id, $textarea_name="내용을")
+{
+ return "if (!{$id}_data) { alert(\"$textarea_name 입력해 주십시오.\"); CKEDITOR.instances.{$id}.focus(); return false; }\n";
+}
+?>
\ No newline at end of file
diff --git a/plugin/ckeditor/config.js b/extend/ckeditor/config.js
similarity index 94%
rename from plugin/ckeditor/config.js
rename to extend/ckeditor/config.js
index 169f51b82..b72c56448 100644
--- a/plugin/ckeditor/config.js
+++ b/extend/ckeditor/config.js
@@ -26,5 +26,5 @@ CKEDITOR.editorConfig = function( config ) {
config.fontSize_sizes = "7pt/9px;8pt/11px;9pt/12px;10pt/13px;11pt/15px;14pt/19px;18pt/24px;24pt/32px;36/48px;";
config.enterMode = CKEDITOR.ENTER_BR;
config.shiftEnterMode = CKEDITOR.ENTER_P;
- config.filebrowserUploadUrl = g4_path+"/plugin/ckeditor/upload.php?type=Images";
+ config.filebrowserUploadUrl = g4_ckeditor_path+"/upload.php?type=Images";
};
diff --git a/plugin/ckeditor/contents.css b/extend/ckeditor/contents.css
similarity index 100%
rename from plugin/ckeditor/contents.css
rename to extend/ckeditor/contents.css
diff --git a/plugin/ckeditor/lang/af.js b/extend/ckeditor/lang/af.js
similarity index 100%
rename from plugin/ckeditor/lang/af.js
rename to extend/ckeditor/lang/af.js
diff --git a/plugin/ckeditor/lang/ar.js b/extend/ckeditor/lang/ar.js
similarity index 100%
rename from plugin/ckeditor/lang/ar.js
rename to extend/ckeditor/lang/ar.js
diff --git a/plugin/ckeditor/lang/bg.js b/extend/ckeditor/lang/bg.js
similarity index 100%
rename from plugin/ckeditor/lang/bg.js
rename to extend/ckeditor/lang/bg.js
diff --git a/plugin/ckeditor/lang/bn.js b/extend/ckeditor/lang/bn.js
similarity index 100%
rename from plugin/ckeditor/lang/bn.js
rename to extend/ckeditor/lang/bn.js
diff --git a/plugin/ckeditor/lang/bs.js b/extend/ckeditor/lang/bs.js
similarity index 100%
rename from plugin/ckeditor/lang/bs.js
rename to extend/ckeditor/lang/bs.js
diff --git a/plugin/ckeditor/lang/ca.js b/extend/ckeditor/lang/ca.js
similarity index 100%
rename from plugin/ckeditor/lang/ca.js
rename to extend/ckeditor/lang/ca.js
diff --git a/plugin/ckeditor/lang/cs.js b/extend/ckeditor/lang/cs.js
similarity index 100%
rename from plugin/ckeditor/lang/cs.js
rename to extend/ckeditor/lang/cs.js
diff --git a/plugin/ckeditor/lang/cy.js b/extend/ckeditor/lang/cy.js
similarity index 100%
rename from plugin/ckeditor/lang/cy.js
rename to extend/ckeditor/lang/cy.js
diff --git a/plugin/ckeditor/lang/da.js b/extend/ckeditor/lang/da.js
similarity index 100%
rename from plugin/ckeditor/lang/da.js
rename to extend/ckeditor/lang/da.js
diff --git a/plugin/ckeditor/lang/de.js b/extend/ckeditor/lang/de.js
similarity index 100%
rename from plugin/ckeditor/lang/de.js
rename to extend/ckeditor/lang/de.js
diff --git a/plugin/ckeditor/lang/el.js b/extend/ckeditor/lang/el.js
similarity index 100%
rename from plugin/ckeditor/lang/el.js
rename to extend/ckeditor/lang/el.js
diff --git a/plugin/ckeditor/lang/en-au.js b/extend/ckeditor/lang/en-au.js
similarity index 100%
rename from plugin/ckeditor/lang/en-au.js
rename to extend/ckeditor/lang/en-au.js
diff --git a/plugin/ckeditor/lang/en-ca.js b/extend/ckeditor/lang/en-ca.js
similarity index 100%
rename from plugin/ckeditor/lang/en-ca.js
rename to extend/ckeditor/lang/en-ca.js
diff --git a/plugin/ckeditor/lang/en-gb.js b/extend/ckeditor/lang/en-gb.js
similarity index 100%
rename from plugin/ckeditor/lang/en-gb.js
rename to extend/ckeditor/lang/en-gb.js
diff --git a/plugin/ckeditor/lang/en.js b/extend/ckeditor/lang/en.js
similarity index 100%
rename from plugin/ckeditor/lang/en.js
rename to extend/ckeditor/lang/en.js
diff --git a/plugin/ckeditor/lang/eo.js b/extend/ckeditor/lang/eo.js
similarity index 100%
rename from plugin/ckeditor/lang/eo.js
rename to extend/ckeditor/lang/eo.js
diff --git a/plugin/ckeditor/lang/es.js b/extend/ckeditor/lang/es.js
similarity index 100%
rename from plugin/ckeditor/lang/es.js
rename to extend/ckeditor/lang/es.js
diff --git a/plugin/ckeditor/lang/et.js b/extend/ckeditor/lang/et.js
similarity index 100%
rename from plugin/ckeditor/lang/et.js
rename to extend/ckeditor/lang/et.js
diff --git a/plugin/ckeditor/lang/eu.js b/extend/ckeditor/lang/eu.js
similarity index 100%
rename from plugin/ckeditor/lang/eu.js
rename to extend/ckeditor/lang/eu.js
diff --git a/plugin/ckeditor/lang/fa.js b/extend/ckeditor/lang/fa.js
similarity index 100%
rename from plugin/ckeditor/lang/fa.js
rename to extend/ckeditor/lang/fa.js
diff --git a/plugin/ckeditor/lang/fi.js b/extend/ckeditor/lang/fi.js
similarity index 100%
rename from plugin/ckeditor/lang/fi.js
rename to extend/ckeditor/lang/fi.js
diff --git a/plugin/ckeditor/lang/fo.js b/extend/ckeditor/lang/fo.js
similarity index 100%
rename from plugin/ckeditor/lang/fo.js
rename to extend/ckeditor/lang/fo.js
diff --git a/plugin/ckeditor/lang/fr-ca.js b/extend/ckeditor/lang/fr-ca.js
similarity index 100%
rename from plugin/ckeditor/lang/fr-ca.js
rename to extend/ckeditor/lang/fr-ca.js
diff --git a/plugin/ckeditor/lang/fr.js b/extend/ckeditor/lang/fr.js
similarity index 100%
rename from plugin/ckeditor/lang/fr.js
rename to extend/ckeditor/lang/fr.js
diff --git a/plugin/ckeditor/lang/gl.js b/extend/ckeditor/lang/gl.js
similarity index 100%
rename from plugin/ckeditor/lang/gl.js
rename to extend/ckeditor/lang/gl.js
diff --git a/plugin/ckeditor/lang/gu.js b/extend/ckeditor/lang/gu.js
similarity index 100%
rename from plugin/ckeditor/lang/gu.js
rename to extend/ckeditor/lang/gu.js
diff --git a/plugin/ckeditor/lang/he.js b/extend/ckeditor/lang/he.js
similarity index 100%
rename from plugin/ckeditor/lang/he.js
rename to extend/ckeditor/lang/he.js
diff --git a/plugin/ckeditor/lang/hi.js b/extend/ckeditor/lang/hi.js
similarity index 100%
rename from plugin/ckeditor/lang/hi.js
rename to extend/ckeditor/lang/hi.js
diff --git a/plugin/ckeditor/lang/hr.js b/extend/ckeditor/lang/hr.js
similarity index 100%
rename from plugin/ckeditor/lang/hr.js
rename to extend/ckeditor/lang/hr.js
diff --git a/plugin/ckeditor/lang/hu.js b/extend/ckeditor/lang/hu.js
similarity index 100%
rename from plugin/ckeditor/lang/hu.js
rename to extend/ckeditor/lang/hu.js
diff --git a/plugin/ckeditor/lang/is.js b/extend/ckeditor/lang/is.js
similarity index 100%
rename from plugin/ckeditor/lang/is.js
rename to extend/ckeditor/lang/is.js
diff --git a/plugin/ckeditor/lang/it.js b/extend/ckeditor/lang/it.js
similarity index 100%
rename from plugin/ckeditor/lang/it.js
rename to extend/ckeditor/lang/it.js
diff --git a/plugin/ckeditor/lang/ja.js b/extend/ckeditor/lang/ja.js
similarity index 100%
rename from plugin/ckeditor/lang/ja.js
rename to extend/ckeditor/lang/ja.js
diff --git a/plugin/ckeditor/lang/ka.js b/extend/ckeditor/lang/ka.js
similarity index 100%
rename from plugin/ckeditor/lang/ka.js
rename to extend/ckeditor/lang/ka.js
diff --git a/plugin/ckeditor/lang/km.js b/extend/ckeditor/lang/km.js
similarity index 100%
rename from plugin/ckeditor/lang/km.js
rename to extend/ckeditor/lang/km.js
diff --git a/plugin/ckeditor/lang/ko.js b/extend/ckeditor/lang/ko.js
similarity index 100%
rename from plugin/ckeditor/lang/ko.js
rename to extend/ckeditor/lang/ko.js
diff --git a/plugin/ckeditor/lang/ku.js b/extend/ckeditor/lang/ku.js
similarity index 100%
rename from plugin/ckeditor/lang/ku.js
rename to extend/ckeditor/lang/ku.js
diff --git a/plugin/ckeditor/lang/lt.js b/extend/ckeditor/lang/lt.js
similarity index 100%
rename from plugin/ckeditor/lang/lt.js
rename to extend/ckeditor/lang/lt.js
diff --git a/plugin/ckeditor/lang/lv.js b/extend/ckeditor/lang/lv.js
similarity index 100%
rename from plugin/ckeditor/lang/lv.js
rename to extend/ckeditor/lang/lv.js
diff --git a/plugin/ckeditor/lang/mk.js b/extend/ckeditor/lang/mk.js
similarity index 100%
rename from plugin/ckeditor/lang/mk.js
rename to extend/ckeditor/lang/mk.js
diff --git a/plugin/ckeditor/lang/mn.js b/extend/ckeditor/lang/mn.js
similarity index 100%
rename from plugin/ckeditor/lang/mn.js
rename to extend/ckeditor/lang/mn.js
diff --git a/plugin/ckeditor/lang/ms.js b/extend/ckeditor/lang/ms.js
similarity index 100%
rename from plugin/ckeditor/lang/ms.js
rename to extend/ckeditor/lang/ms.js
diff --git a/plugin/ckeditor/lang/nb.js b/extend/ckeditor/lang/nb.js
similarity index 100%
rename from plugin/ckeditor/lang/nb.js
rename to extend/ckeditor/lang/nb.js
diff --git a/plugin/ckeditor/lang/nl.js b/extend/ckeditor/lang/nl.js
similarity index 100%
rename from plugin/ckeditor/lang/nl.js
rename to extend/ckeditor/lang/nl.js
diff --git a/plugin/ckeditor/lang/no.js b/extend/ckeditor/lang/no.js
similarity index 100%
rename from plugin/ckeditor/lang/no.js
rename to extend/ckeditor/lang/no.js
diff --git a/plugin/ckeditor/lang/pl.js b/extend/ckeditor/lang/pl.js
similarity index 100%
rename from plugin/ckeditor/lang/pl.js
rename to extend/ckeditor/lang/pl.js
diff --git a/plugin/ckeditor/lang/pt-br.js b/extend/ckeditor/lang/pt-br.js
similarity index 100%
rename from plugin/ckeditor/lang/pt-br.js
rename to extend/ckeditor/lang/pt-br.js
diff --git a/plugin/ckeditor/lang/pt.js b/extend/ckeditor/lang/pt.js
similarity index 100%
rename from plugin/ckeditor/lang/pt.js
rename to extend/ckeditor/lang/pt.js
diff --git a/plugin/ckeditor/lang/ro.js b/extend/ckeditor/lang/ro.js
similarity index 100%
rename from plugin/ckeditor/lang/ro.js
rename to extend/ckeditor/lang/ro.js
diff --git a/plugin/ckeditor/lang/ru.js b/extend/ckeditor/lang/ru.js
similarity index 100%
rename from plugin/ckeditor/lang/ru.js
rename to extend/ckeditor/lang/ru.js
diff --git a/plugin/ckeditor/lang/sk.js b/extend/ckeditor/lang/sk.js
similarity index 100%
rename from plugin/ckeditor/lang/sk.js
rename to extend/ckeditor/lang/sk.js
diff --git a/plugin/ckeditor/lang/sl.js b/extend/ckeditor/lang/sl.js
similarity index 100%
rename from plugin/ckeditor/lang/sl.js
rename to extend/ckeditor/lang/sl.js
diff --git a/plugin/ckeditor/lang/sr-latn.js b/extend/ckeditor/lang/sr-latn.js
similarity index 100%
rename from plugin/ckeditor/lang/sr-latn.js
rename to extend/ckeditor/lang/sr-latn.js
diff --git a/plugin/ckeditor/lang/sr.js b/extend/ckeditor/lang/sr.js
similarity index 100%
rename from plugin/ckeditor/lang/sr.js
rename to extend/ckeditor/lang/sr.js
diff --git a/plugin/ckeditor/lang/sv.js b/extend/ckeditor/lang/sv.js
similarity index 100%
rename from plugin/ckeditor/lang/sv.js
rename to extend/ckeditor/lang/sv.js
diff --git a/plugin/ckeditor/lang/th.js b/extend/ckeditor/lang/th.js
similarity index 100%
rename from plugin/ckeditor/lang/th.js
rename to extend/ckeditor/lang/th.js
diff --git a/plugin/ckeditor/lang/tr.js b/extend/ckeditor/lang/tr.js
similarity index 100%
rename from plugin/ckeditor/lang/tr.js
rename to extend/ckeditor/lang/tr.js
diff --git a/plugin/ckeditor/lang/ug.js b/extend/ckeditor/lang/ug.js
similarity index 100%
rename from plugin/ckeditor/lang/ug.js
rename to extend/ckeditor/lang/ug.js
diff --git a/plugin/ckeditor/lang/uk.js b/extend/ckeditor/lang/uk.js
similarity index 100%
rename from plugin/ckeditor/lang/uk.js
rename to extend/ckeditor/lang/uk.js
diff --git a/plugin/ckeditor/lang/vi.js b/extend/ckeditor/lang/vi.js
similarity index 100%
rename from plugin/ckeditor/lang/vi.js
rename to extend/ckeditor/lang/vi.js
diff --git a/plugin/ckeditor/lang/zh-cn.js b/extend/ckeditor/lang/zh-cn.js
similarity index 100%
rename from plugin/ckeditor/lang/zh-cn.js
rename to extend/ckeditor/lang/zh-cn.js
diff --git a/plugin/ckeditor/lang/zh.js b/extend/ckeditor/lang/zh.js
similarity index 100%
rename from plugin/ckeditor/lang/zh.js
rename to extend/ckeditor/lang/zh.js
diff --git a/plugin/ckeditor/plugins/a11yhelp/dialogs/a11yhelp.js b/extend/ckeditor/plugins/a11yhelp/dialogs/a11yhelp.js
similarity index 100%
rename from plugin/ckeditor/plugins/a11yhelp/dialogs/a11yhelp.js
rename to extend/ckeditor/plugins/a11yhelp/dialogs/a11yhelp.js
diff --git a/plugin/ckeditor/plugins/a11yhelp/dialogs/lang/_translationstatus.txt b/extend/ckeditor/plugins/a11yhelp/dialogs/lang/_translationstatus.txt
similarity index 100%
rename from plugin/ckeditor/plugins/a11yhelp/dialogs/lang/_translationstatus.txt
rename to extend/ckeditor/plugins/a11yhelp/dialogs/lang/_translationstatus.txt
diff --git a/plugin/ckeditor/plugins/a11yhelp/dialogs/lang/ar.js b/extend/ckeditor/plugins/a11yhelp/dialogs/lang/ar.js
similarity index 100%
rename from plugin/ckeditor/plugins/a11yhelp/dialogs/lang/ar.js
rename to extend/ckeditor/plugins/a11yhelp/dialogs/lang/ar.js
diff --git a/plugin/ckeditor/plugins/a11yhelp/dialogs/lang/bg.js b/extend/ckeditor/plugins/a11yhelp/dialogs/lang/bg.js
similarity index 100%
rename from plugin/ckeditor/plugins/a11yhelp/dialogs/lang/bg.js
rename to extend/ckeditor/plugins/a11yhelp/dialogs/lang/bg.js
diff --git a/plugin/ckeditor/plugins/a11yhelp/dialogs/lang/ca.js b/extend/ckeditor/plugins/a11yhelp/dialogs/lang/ca.js
similarity index 100%
rename from plugin/ckeditor/plugins/a11yhelp/dialogs/lang/ca.js
rename to extend/ckeditor/plugins/a11yhelp/dialogs/lang/ca.js
diff --git a/plugin/ckeditor/plugins/a11yhelp/dialogs/lang/cs.js b/extend/ckeditor/plugins/a11yhelp/dialogs/lang/cs.js
similarity index 100%
rename from plugin/ckeditor/plugins/a11yhelp/dialogs/lang/cs.js
rename to extend/ckeditor/plugins/a11yhelp/dialogs/lang/cs.js
diff --git a/plugin/ckeditor/plugins/a11yhelp/dialogs/lang/cy.js b/extend/ckeditor/plugins/a11yhelp/dialogs/lang/cy.js
similarity index 100%
rename from plugin/ckeditor/plugins/a11yhelp/dialogs/lang/cy.js
rename to extend/ckeditor/plugins/a11yhelp/dialogs/lang/cy.js
diff --git a/plugin/ckeditor/plugins/a11yhelp/dialogs/lang/da.js b/extend/ckeditor/plugins/a11yhelp/dialogs/lang/da.js
similarity index 100%
rename from plugin/ckeditor/plugins/a11yhelp/dialogs/lang/da.js
rename to extend/ckeditor/plugins/a11yhelp/dialogs/lang/da.js
diff --git a/plugin/ckeditor/plugins/a11yhelp/dialogs/lang/de.js b/extend/ckeditor/plugins/a11yhelp/dialogs/lang/de.js
similarity index 100%
rename from plugin/ckeditor/plugins/a11yhelp/dialogs/lang/de.js
rename to extend/ckeditor/plugins/a11yhelp/dialogs/lang/de.js
diff --git a/plugin/ckeditor/plugins/a11yhelp/dialogs/lang/el.js b/extend/ckeditor/plugins/a11yhelp/dialogs/lang/el.js
similarity index 100%
rename from plugin/ckeditor/plugins/a11yhelp/dialogs/lang/el.js
rename to extend/ckeditor/plugins/a11yhelp/dialogs/lang/el.js
diff --git a/plugin/ckeditor/plugins/a11yhelp/dialogs/lang/en.js b/extend/ckeditor/plugins/a11yhelp/dialogs/lang/en.js
similarity index 100%
rename from plugin/ckeditor/plugins/a11yhelp/dialogs/lang/en.js
rename to extend/ckeditor/plugins/a11yhelp/dialogs/lang/en.js
diff --git a/plugin/ckeditor/plugins/a11yhelp/dialogs/lang/eo.js b/extend/ckeditor/plugins/a11yhelp/dialogs/lang/eo.js
similarity index 100%
rename from plugin/ckeditor/plugins/a11yhelp/dialogs/lang/eo.js
rename to extend/ckeditor/plugins/a11yhelp/dialogs/lang/eo.js
diff --git a/plugin/ckeditor/plugins/a11yhelp/dialogs/lang/et.js b/extend/ckeditor/plugins/a11yhelp/dialogs/lang/et.js
similarity index 100%
rename from plugin/ckeditor/plugins/a11yhelp/dialogs/lang/et.js
rename to extend/ckeditor/plugins/a11yhelp/dialogs/lang/et.js
diff --git a/plugin/ckeditor/plugins/a11yhelp/dialogs/lang/fa.js b/extend/ckeditor/plugins/a11yhelp/dialogs/lang/fa.js
similarity index 100%
rename from plugin/ckeditor/plugins/a11yhelp/dialogs/lang/fa.js
rename to extend/ckeditor/plugins/a11yhelp/dialogs/lang/fa.js
diff --git a/plugin/ckeditor/plugins/a11yhelp/dialogs/lang/fi.js b/extend/ckeditor/plugins/a11yhelp/dialogs/lang/fi.js
similarity index 100%
rename from plugin/ckeditor/plugins/a11yhelp/dialogs/lang/fi.js
rename to extend/ckeditor/plugins/a11yhelp/dialogs/lang/fi.js
diff --git a/plugin/ckeditor/plugins/a11yhelp/dialogs/lang/fr.js b/extend/ckeditor/plugins/a11yhelp/dialogs/lang/fr.js
similarity index 100%
rename from plugin/ckeditor/plugins/a11yhelp/dialogs/lang/fr.js
rename to extend/ckeditor/plugins/a11yhelp/dialogs/lang/fr.js
diff --git a/plugin/ckeditor/plugins/a11yhelp/dialogs/lang/gu.js b/extend/ckeditor/plugins/a11yhelp/dialogs/lang/gu.js
similarity index 100%
rename from plugin/ckeditor/plugins/a11yhelp/dialogs/lang/gu.js
rename to extend/ckeditor/plugins/a11yhelp/dialogs/lang/gu.js
diff --git a/plugin/ckeditor/plugins/a11yhelp/dialogs/lang/he.js b/extend/ckeditor/plugins/a11yhelp/dialogs/lang/he.js
similarity index 100%
rename from plugin/ckeditor/plugins/a11yhelp/dialogs/lang/he.js
rename to extend/ckeditor/plugins/a11yhelp/dialogs/lang/he.js
diff --git a/plugin/ckeditor/plugins/a11yhelp/dialogs/lang/hi.js b/extend/ckeditor/plugins/a11yhelp/dialogs/lang/hi.js
similarity index 100%
rename from plugin/ckeditor/plugins/a11yhelp/dialogs/lang/hi.js
rename to extend/ckeditor/plugins/a11yhelp/dialogs/lang/hi.js
diff --git a/plugin/ckeditor/plugins/a11yhelp/dialogs/lang/hr.js b/extend/ckeditor/plugins/a11yhelp/dialogs/lang/hr.js
similarity index 100%
rename from plugin/ckeditor/plugins/a11yhelp/dialogs/lang/hr.js
rename to extend/ckeditor/plugins/a11yhelp/dialogs/lang/hr.js
diff --git a/plugin/ckeditor/plugins/a11yhelp/dialogs/lang/hu.js b/extend/ckeditor/plugins/a11yhelp/dialogs/lang/hu.js
similarity index 100%
rename from plugin/ckeditor/plugins/a11yhelp/dialogs/lang/hu.js
rename to extend/ckeditor/plugins/a11yhelp/dialogs/lang/hu.js
diff --git a/plugin/ckeditor/plugins/a11yhelp/dialogs/lang/it.js b/extend/ckeditor/plugins/a11yhelp/dialogs/lang/it.js
similarity index 100%
rename from plugin/ckeditor/plugins/a11yhelp/dialogs/lang/it.js
rename to extend/ckeditor/plugins/a11yhelp/dialogs/lang/it.js
diff --git a/plugin/ckeditor/plugins/a11yhelp/dialogs/lang/ku.js b/extend/ckeditor/plugins/a11yhelp/dialogs/lang/ku.js
similarity index 100%
rename from plugin/ckeditor/plugins/a11yhelp/dialogs/lang/ku.js
rename to extend/ckeditor/plugins/a11yhelp/dialogs/lang/ku.js
diff --git a/plugin/ckeditor/plugins/a11yhelp/dialogs/lang/lt.js b/extend/ckeditor/plugins/a11yhelp/dialogs/lang/lt.js
similarity index 100%
rename from plugin/ckeditor/plugins/a11yhelp/dialogs/lang/lt.js
rename to extend/ckeditor/plugins/a11yhelp/dialogs/lang/lt.js
diff --git a/plugin/ckeditor/plugins/a11yhelp/dialogs/lang/lv.js b/extend/ckeditor/plugins/a11yhelp/dialogs/lang/lv.js
similarity index 100%
rename from plugin/ckeditor/plugins/a11yhelp/dialogs/lang/lv.js
rename to extend/ckeditor/plugins/a11yhelp/dialogs/lang/lv.js
diff --git a/plugin/ckeditor/plugins/a11yhelp/dialogs/lang/mk.js b/extend/ckeditor/plugins/a11yhelp/dialogs/lang/mk.js
similarity index 100%
rename from plugin/ckeditor/plugins/a11yhelp/dialogs/lang/mk.js
rename to extend/ckeditor/plugins/a11yhelp/dialogs/lang/mk.js
diff --git a/plugin/ckeditor/plugins/a11yhelp/dialogs/lang/mn.js b/extend/ckeditor/plugins/a11yhelp/dialogs/lang/mn.js
similarity index 100%
rename from plugin/ckeditor/plugins/a11yhelp/dialogs/lang/mn.js
rename to extend/ckeditor/plugins/a11yhelp/dialogs/lang/mn.js
diff --git a/plugin/ckeditor/plugins/a11yhelp/dialogs/lang/nb.js b/extend/ckeditor/plugins/a11yhelp/dialogs/lang/nb.js
similarity index 100%
rename from plugin/ckeditor/plugins/a11yhelp/dialogs/lang/nb.js
rename to extend/ckeditor/plugins/a11yhelp/dialogs/lang/nb.js
diff --git a/plugin/ckeditor/plugins/a11yhelp/dialogs/lang/nl.js b/extend/ckeditor/plugins/a11yhelp/dialogs/lang/nl.js
similarity index 100%
rename from plugin/ckeditor/plugins/a11yhelp/dialogs/lang/nl.js
rename to extend/ckeditor/plugins/a11yhelp/dialogs/lang/nl.js
diff --git a/plugin/ckeditor/plugins/a11yhelp/dialogs/lang/no.js b/extend/ckeditor/plugins/a11yhelp/dialogs/lang/no.js
similarity index 100%
rename from plugin/ckeditor/plugins/a11yhelp/dialogs/lang/no.js
rename to extend/ckeditor/plugins/a11yhelp/dialogs/lang/no.js
diff --git a/plugin/ckeditor/plugins/a11yhelp/dialogs/lang/pl.js b/extend/ckeditor/plugins/a11yhelp/dialogs/lang/pl.js
similarity index 100%
rename from plugin/ckeditor/plugins/a11yhelp/dialogs/lang/pl.js
rename to extend/ckeditor/plugins/a11yhelp/dialogs/lang/pl.js
diff --git a/plugin/ckeditor/plugins/a11yhelp/dialogs/lang/pt-br.js b/extend/ckeditor/plugins/a11yhelp/dialogs/lang/pt-br.js
similarity index 100%
rename from plugin/ckeditor/plugins/a11yhelp/dialogs/lang/pt-br.js
rename to extend/ckeditor/plugins/a11yhelp/dialogs/lang/pt-br.js
diff --git a/plugin/ckeditor/plugins/a11yhelp/dialogs/lang/pt.js b/extend/ckeditor/plugins/a11yhelp/dialogs/lang/pt.js
similarity index 100%
rename from plugin/ckeditor/plugins/a11yhelp/dialogs/lang/pt.js
rename to extend/ckeditor/plugins/a11yhelp/dialogs/lang/pt.js
diff --git a/plugin/ckeditor/plugins/a11yhelp/dialogs/lang/ro.js b/extend/ckeditor/plugins/a11yhelp/dialogs/lang/ro.js
similarity index 100%
rename from plugin/ckeditor/plugins/a11yhelp/dialogs/lang/ro.js
rename to extend/ckeditor/plugins/a11yhelp/dialogs/lang/ro.js
diff --git a/plugin/ckeditor/plugins/a11yhelp/dialogs/lang/ru.js b/extend/ckeditor/plugins/a11yhelp/dialogs/lang/ru.js
similarity index 100%
rename from plugin/ckeditor/plugins/a11yhelp/dialogs/lang/ru.js
rename to extend/ckeditor/plugins/a11yhelp/dialogs/lang/ru.js
diff --git a/plugin/ckeditor/plugins/a11yhelp/dialogs/lang/sk.js b/extend/ckeditor/plugins/a11yhelp/dialogs/lang/sk.js
similarity index 100%
rename from plugin/ckeditor/plugins/a11yhelp/dialogs/lang/sk.js
rename to extend/ckeditor/plugins/a11yhelp/dialogs/lang/sk.js
diff --git a/plugin/ckeditor/plugins/a11yhelp/dialogs/lang/sl.js b/extend/ckeditor/plugins/a11yhelp/dialogs/lang/sl.js
similarity index 100%
rename from plugin/ckeditor/plugins/a11yhelp/dialogs/lang/sl.js
rename to extend/ckeditor/plugins/a11yhelp/dialogs/lang/sl.js
diff --git a/plugin/ckeditor/plugins/a11yhelp/dialogs/lang/tr.js b/extend/ckeditor/plugins/a11yhelp/dialogs/lang/tr.js
similarity index 100%
rename from plugin/ckeditor/plugins/a11yhelp/dialogs/lang/tr.js
rename to extend/ckeditor/plugins/a11yhelp/dialogs/lang/tr.js
diff --git a/plugin/ckeditor/plugins/a11yhelp/dialogs/lang/ug.js b/extend/ckeditor/plugins/a11yhelp/dialogs/lang/ug.js
similarity index 100%
rename from plugin/ckeditor/plugins/a11yhelp/dialogs/lang/ug.js
rename to extend/ckeditor/plugins/a11yhelp/dialogs/lang/ug.js
diff --git a/plugin/ckeditor/plugins/a11yhelp/dialogs/lang/uk.js b/extend/ckeditor/plugins/a11yhelp/dialogs/lang/uk.js
similarity index 100%
rename from plugin/ckeditor/plugins/a11yhelp/dialogs/lang/uk.js
rename to extend/ckeditor/plugins/a11yhelp/dialogs/lang/uk.js
diff --git a/plugin/ckeditor/plugins/a11yhelp/dialogs/lang/vi.js b/extend/ckeditor/plugins/a11yhelp/dialogs/lang/vi.js
similarity index 100%
rename from plugin/ckeditor/plugins/a11yhelp/dialogs/lang/vi.js
rename to extend/ckeditor/plugins/a11yhelp/dialogs/lang/vi.js
diff --git a/plugin/ckeditor/plugins/a11yhelp/dialogs/lang/zh-cn.js b/extend/ckeditor/plugins/a11yhelp/dialogs/lang/zh-cn.js
similarity index 100%
rename from plugin/ckeditor/plugins/a11yhelp/dialogs/lang/zh-cn.js
rename to extend/ckeditor/plugins/a11yhelp/dialogs/lang/zh-cn.js
diff --git a/plugin/ckeditor/plugins/about/dialogs/about.js b/extend/ckeditor/plugins/about/dialogs/about.js
similarity index 100%
rename from plugin/ckeditor/plugins/about/dialogs/about.js
rename to extend/ckeditor/plugins/about/dialogs/about.js
diff --git a/plugin/ckeditor/plugins/about/dialogs/logo_ckeditor.png b/extend/ckeditor/plugins/about/dialogs/logo_ckeditor.png
similarity index 100%
rename from plugin/ckeditor/plugins/about/dialogs/logo_ckeditor.png
rename to extend/ckeditor/plugins/about/dialogs/logo_ckeditor.png
diff --git a/plugin/ckeditor/plugins/clipboard/dialogs/paste.js b/extend/ckeditor/plugins/clipboard/dialogs/paste.js
similarity index 100%
rename from plugin/ckeditor/plugins/clipboard/dialogs/paste.js
rename to extend/ckeditor/plugins/clipboard/dialogs/paste.js
diff --git a/plugin/ckeditor/plugins/colordialog/dialogs/colordialog.js b/extend/ckeditor/plugins/colordialog/dialogs/colordialog.js
similarity index 100%
rename from plugin/ckeditor/plugins/colordialog/dialogs/colordialog.js
rename to extend/ckeditor/plugins/colordialog/dialogs/colordialog.js
diff --git a/plugin/ckeditor/plugins/dialog/dialogDefinition.js b/extend/ckeditor/plugins/dialog/dialogDefinition.js
similarity index 100%
rename from plugin/ckeditor/plugins/dialog/dialogDefinition.js
rename to extend/ckeditor/plugins/dialog/dialogDefinition.js
diff --git a/plugin/ckeditor/plugins/div/dialogs/div.js b/extend/ckeditor/plugins/div/dialogs/div.js
similarity index 100%
rename from plugin/ckeditor/plugins/div/dialogs/div.js
rename to extend/ckeditor/plugins/div/dialogs/div.js
diff --git a/plugin/ckeditor/plugins/fakeobjects/images/spacer.gif b/extend/ckeditor/plugins/fakeobjects/images/spacer.gif
similarity index 100%
rename from plugin/ckeditor/plugins/fakeobjects/images/spacer.gif
rename to extend/ckeditor/plugins/fakeobjects/images/spacer.gif
diff --git a/plugin/ckeditor/plugins/find/dialogs/find.js b/extend/ckeditor/plugins/find/dialogs/find.js
similarity index 100%
rename from plugin/ckeditor/plugins/find/dialogs/find.js
rename to extend/ckeditor/plugins/find/dialogs/find.js
diff --git a/plugin/ckeditor/plugins/flash/dialogs/flash.js b/extend/ckeditor/plugins/flash/dialogs/flash.js
similarity index 100%
rename from plugin/ckeditor/plugins/flash/dialogs/flash.js
rename to extend/ckeditor/plugins/flash/dialogs/flash.js
diff --git a/plugin/ckeditor/plugins/flash/images/placeholder.png b/extend/ckeditor/plugins/flash/images/placeholder.png
similarity index 100%
rename from plugin/ckeditor/plugins/flash/images/placeholder.png
rename to extend/ckeditor/plugins/flash/images/placeholder.png
diff --git a/plugin/ckeditor/plugins/forms/dialogs/button.js b/extend/ckeditor/plugins/forms/dialogs/button.js
similarity index 100%
rename from plugin/ckeditor/plugins/forms/dialogs/button.js
rename to extend/ckeditor/plugins/forms/dialogs/button.js
diff --git a/plugin/ckeditor/plugins/forms/dialogs/checkbox.js b/extend/ckeditor/plugins/forms/dialogs/checkbox.js
similarity index 100%
rename from plugin/ckeditor/plugins/forms/dialogs/checkbox.js
rename to extend/ckeditor/plugins/forms/dialogs/checkbox.js
diff --git a/plugin/ckeditor/plugins/forms/dialogs/form.js b/extend/ckeditor/plugins/forms/dialogs/form.js
similarity index 100%
rename from plugin/ckeditor/plugins/forms/dialogs/form.js
rename to extend/ckeditor/plugins/forms/dialogs/form.js
diff --git a/plugin/ckeditor/plugins/forms/dialogs/hiddenfield.js b/extend/ckeditor/plugins/forms/dialogs/hiddenfield.js
similarity index 100%
rename from plugin/ckeditor/plugins/forms/dialogs/hiddenfield.js
rename to extend/ckeditor/plugins/forms/dialogs/hiddenfield.js
diff --git a/plugin/ckeditor/plugins/forms/dialogs/radio.js b/extend/ckeditor/plugins/forms/dialogs/radio.js
similarity index 100%
rename from plugin/ckeditor/plugins/forms/dialogs/radio.js
rename to extend/ckeditor/plugins/forms/dialogs/radio.js
diff --git a/plugin/ckeditor/plugins/forms/dialogs/select.js b/extend/ckeditor/plugins/forms/dialogs/select.js
similarity index 100%
rename from plugin/ckeditor/plugins/forms/dialogs/select.js
rename to extend/ckeditor/plugins/forms/dialogs/select.js
diff --git a/plugin/ckeditor/plugins/forms/dialogs/textarea.js b/extend/ckeditor/plugins/forms/dialogs/textarea.js
similarity index 100%
rename from plugin/ckeditor/plugins/forms/dialogs/textarea.js
rename to extend/ckeditor/plugins/forms/dialogs/textarea.js
diff --git a/plugin/ckeditor/plugins/forms/dialogs/textfield.js b/extend/ckeditor/plugins/forms/dialogs/textfield.js
similarity index 100%
rename from plugin/ckeditor/plugins/forms/dialogs/textfield.js
rename to extend/ckeditor/plugins/forms/dialogs/textfield.js
diff --git a/plugin/ckeditor/plugins/forms/images/hiddenfield.gif b/extend/ckeditor/plugins/forms/images/hiddenfield.gif
similarity index 100%
rename from plugin/ckeditor/plugins/forms/images/hiddenfield.gif
rename to extend/ckeditor/plugins/forms/images/hiddenfield.gif
diff --git a/plugin/ckeditor/plugins/icons.png b/extend/ckeditor/plugins/icons.png
similarity index 100%
rename from plugin/ckeditor/plugins/icons.png
rename to extend/ckeditor/plugins/icons.png
diff --git a/plugin/ckeditor/plugins/iframe/dialogs/iframe.js b/extend/ckeditor/plugins/iframe/dialogs/iframe.js
similarity index 100%
rename from plugin/ckeditor/plugins/iframe/dialogs/iframe.js
rename to extend/ckeditor/plugins/iframe/dialogs/iframe.js
diff --git a/plugin/ckeditor/plugins/iframe/images/placeholder.png b/extend/ckeditor/plugins/iframe/images/placeholder.png
similarity index 100%
rename from plugin/ckeditor/plugins/iframe/images/placeholder.png
rename to extend/ckeditor/plugins/iframe/images/placeholder.png
diff --git a/plugin/ckeditor/plugins/image/dialogs/image.js b/extend/ckeditor/plugins/image/dialogs/image.js
similarity index 100%
rename from plugin/ckeditor/plugins/image/dialogs/image.js
rename to extend/ckeditor/plugins/image/dialogs/image.js
diff --git a/plugin/ckeditor/plugins/image/images/noimage.png b/extend/ckeditor/plugins/image/images/noimage.png
similarity index 100%
rename from plugin/ckeditor/plugins/image/images/noimage.png
rename to extend/ckeditor/plugins/image/images/noimage.png
diff --git a/plugin/ckeditor/plugins/link/dialogs/anchor.js b/extend/ckeditor/plugins/link/dialogs/anchor.js
similarity index 100%
rename from plugin/ckeditor/plugins/link/dialogs/anchor.js
rename to extend/ckeditor/plugins/link/dialogs/anchor.js
diff --git a/plugin/ckeditor/plugins/link/dialogs/link.js b/extend/ckeditor/plugins/link/dialogs/link.js
similarity index 100%
rename from plugin/ckeditor/plugins/link/dialogs/link.js
rename to extend/ckeditor/plugins/link/dialogs/link.js
diff --git a/plugin/ckeditor/plugins/link/images/anchor.png b/extend/ckeditor/plugins/link/images/anchor.png
similarity index 100%
rename from plugin/ckeditor/plugins/link/images/anchor.png
rename to extend/ckeditor/plugins/link/images/anchor.png
diff --git a/plugin/ckeditor/plugins/liststyle/dialogs/liststyle.js b/extend/ckeditor/plugins/liststyle/dialogs/liststyle.js
similarity index 100%
rename from plugin/ckeditor/plugins/liststyle/dialogs/liststyle.js
rename to extend/ckeditor/plugins/liststyle/dialogs/liststyle.js
diff --git a/plugin/ckeditor/plugins/magicline/images/icon.png b/extend/ckeditor/plugins/magicline/images/icon.png
similarity index 100%
rename from plugin/ckeditor/plugins/magicline/images/icon.png
rename to extend/ckeditor/plugins/magicline/images/icon.png
diff --git a/plugin/ckeditor/plugins/pagebreak/images/pagebreak.gif b/extend/ckeditor/plugins/pagebreak/images/pagebreak.gif
similarity index 100%
rename from plugin/ckeditor/plugins/pagebreak/images/pagebreak.gif
rename to extend/ckeditor/plugins/pagebreak/images/pagebreak.gif
diff --git a/plugin/ckeditor/plugins/pastefromword/filter/default.js b/extend/ckeditor/plugins/pastefromword/filter/default.js
similarity index 100%
rename from plugin/ckeditor/plugins/pastefromword/filter/default.js
rename to extend/ckeditor/plugins/pastefromword/filter/default.js
diff --git a/plugin/ckeditor/plugins/preview/preview.html b/extend/ckeditor/plugins/preview/preview.html
similarity index 100%
rename from plugin/ckeditor/plugins/preview/preview.html
rename to extend/ckeditor/plugins/preview/preview.html
diff --git a/plugin/ckeditor/plugins/showblocks/images/block_address.png b/extend/ckeditor/plugins/showblocks/images/block_address.png
similarity index 100%
rename from plugin/ckeditor/plugins/showblocks/images/block_address.png
rename to extend/ckeditor/plugins/showblocks/images/block_address.png
diff --git a/plugin/ckeditor/plugins/showblocks/images/block_blockquote.png b/extend/ckeditor/plugins/showblocks/images/block_blockquote.png
similarity index 100%
rename from plugin/ckeditor/plugins/showblocks/images/block_blockquote.png
rename to extend/ckeditor/plugins/showblocks/images/block_blockquote.png
diff --git a/plugin/ckeditor/plugins/showblocks/images/block_div.png b/extend/ckeditor/plugins/showblocks/images/block_div.png
similarity index 100%
rename from plugin/ckeditor/plugins/showblocks/images/block_div.png
rename to extend/ckeditor/plugins/showblocks/images/block_div.png
diff --git a/plugin/ckeditor/plugins/showblocks/images/block_h1.png b/extend/ckeditor/plugins/showblocks/images/block_h1.png
similarity index 100%
rename from plugin/ckeditor/plugins/showblocks/images/block_h1.png
rename to extend/ckeditor/plugins/showblocks/images/block_h1.png
diff --git a/plugin/ckeditor/plugins/showblocks/images/block_h2.png b/extend/ckeditor/plugins/showblocks/images/block_h2.png
similarity index 100%
rename from plugin/ckeditor/plugins/showblocks/images/block_h2.png
rename to extend/ckeditor/plugins/showblocks/images/block_h2.png
diff --git a/plugin/ckeditor/plugins/showblocks/images/block_h3.png b/extend/ckeditor/plugins/showblocks/images/block_h3.png
similarity index 100%
rename from plugin/ckeditor/plugins/showblocks/images/block_h3.png
rename to extend/ckeditor/plugins/showblocks/images/block_h3.png
diff --git a/plugin/ckeditor/plugins/showblocks/images/block_h4.png b/extend/ckeditor/plugins/showblocks/images/block_h4.png
similarity index 100%
rename from plugin/ckeditor/plugins/showblocks/images/block_h4.png
rename to extend/ckeditor/plugins/showblocks/images/block_h4.png
diff --git a/plugin/ckeditor/plugins/showblocks/images/block_h5.png b/extend/ckeditor/plugins/showblocks/images/block_h5.png
similarity index 100%
rename from plugin/ckeditor/plugins/showblocks/images/block_h5.png
rename to extend/ckeditor/plugins/showblocks/images/block_h5.png
diff --git a/plugin/ckeditor/plugins/showblocks/images/block_h6.png b/extend/ckeditor/plugins/showblocks/images/block_h6.png
similarity index 100%
rename from plugin/ckeditor/plugins/showblocks/images/block_h6.png
rename to extend/ckeditor/plugins/showblocks/images/block_h6.png
diff --git a/plugin/ckeditor/plugins/showblocks/images/block_p.png b/extend/ckeditor/plugins/showblocks/images/block_p.png
similarity index 100%
rename from plugin/ckeditor/plugins/showblocks/images/block_p.png
rename to extend/ckeditor/plugins/showblocks/images/block_p.png
diff --git a/plugin/ckeditor/plugins/showblocks/images/block_pre.png b/extend/ckeditor/plugins/showblocks/images/block_pre.png
similarity index 100%
rename from plugin/ckeditor/plugins/showblocks/images/block_pre.png
rename to extend/ckeditor/plugins/showblocks/images/block_pre.png
diff --git a/plugin/ckeditor/plugins/smiley/dialogs/smiley.js b/extend/ckeditor/plugins/smiley/dialogs/smiley.js
similarity index 100%
rename from plugin/ckeditor/plugins/smiley/dialogs/smiley.js
rename to extend/ckeditor/plugins/smiley/dialogs/smiley.js
diff --git a/plugin/ckeditor/plugins/smiley/images/angel_smile.gif b/extend/ckeditor/plugins/smiley/images/angel_smile.gif
similarity index 100%
rename from plugin/ckeditor/plugins/smiley/images/angel_smile.gif
rename to extend/ckeditor/plugins/smiley/images/angel_smile.gif
diff --git a/plugin/ckeditor/plugins/smiley/images/angry_smile.gif b/extend/ckeditor/plugins/smiley/images/angry_smile.gif
similarity index 100%
rename from plugin/ckeditor/plugins/smiley/images/angry_smile.gif
rename to extend/ckeditor/plugins/smiley/images/angry_smile.gif
diff --git a/plugin/ckeditor/plugins/smiley/images/broken_heart.gif b/extend/ckeditor/plugins/smiley/images/broken_heart.gif
similarity index 100%
rename from plugin/ckeditor/plugins/smiley/images/broken_heart.gif
rename to extend/ckeditor/plugins/smiley/images/broken_heart.gif
diff --git a/plugin/ckeditor/plugins/smiley/images/confused_smile.gif b/extend/ckeditor/plugins/smiley/images/confused_smile.gif
similarity index 100%
rename from plugin/ckeditor/plugins/smiley/images/confused_smile.gif
rename to extend/ckeditor/plugins/smiley/images/confused_smile.gif
diff --git a/plugin/ckeditor/plugins/smiley/images/cry_smile.gif b/extend/ckeditor/plugins/smiley/images/cry_smile.gif
similarity index 100%
rename from plugin/ckeditor/plugins/smiley/images/cry_smile.gif
rename to extend/ckeditor/plugins/smiley/images/cry_smile.gif
diff --git a/plugin/ckeditor/plugins/smiley/images/devil_smile.gif b/extend/ckeditor/plugins/smiley/images/devil_smile.gif
similarity index 100%
rename from plugin/ckeditor/plugins/smiley/images/devil_smile.gif
rename to extend/ckeditor/plugins/smiley/images/devil_smile.gif
diff --git a/plugin/ckeditor/plugins/smiley/images/embaressed_smile.gif b/extend/ckeditor/plugins/smiley/images/embaressed_smile.gif
similarity index 100%
rename from plugin/ckeditor/plugins/smiley/images/embaressed_smile.gif
rename to extend/ckeditor/plugins/smiley/images/embaressed_smile.gif
diff --git a/plugin/ckeditor/plugins/smiley/images/embarrassed_smile.gif b/extend/ckeditor/plugins/smiley/images/embarrassed_smile.gif
similarity index 100%
rename from plugin/ckeditor/plugins/smiley/images/embarrassed_smile.gif
rename to extend/ckeditor/plugins/smiley/images/embarrassed_smile.gif
diff --git a/plugin/ckeditor/plugins/smiley/images/envelope.gif b/extend/ckeditor/plugins/smiley/images/envelope.gif
similarity index 100%
rename from plugin/ckeditor/plugins/smiley/images/envelope.gif
rename to extend/ckeditor/plugins/smiley/images/envelope.gif
diff --git a/plugin/ckeditor/plugins/smiley/images/heart.gif b/extend/ckeditor/plugins/smiley/images/heart.gif
similarity index 100%
rename from plugin/ckeditor/plugins/smiley/images/heart.gif
rename to extend/ckeditor/plugins/smiley/images/heart.gif
diff --git a/plugin/ckeditor/plugins/smiley/images/kiss.gif b/extend/ckeditor/plugins/smiley/images/kiss.gif
similarity index 100%
rename from plugin/ckeditor/plugins/smiley/images/kiss.gif
rename to extend/ckeditor/plugins/smiley/images/kiss.gif
diff --git a/plugin/ckeditor/plugins/smiley/images/lightbulb.gif b/extend/ckeditor/plugins/smiley/images/lightbulb.gif
similarity index 100%
rename from plugin/ckeditor/plugins/smiley/images/lightbulb.gif
rename to extend/ckeditor/plugins/smiley/images/lightbulb.gif
diff --git a/plugin/ckeditor/plugins/smiley/images/omg_smile.gif b/extend/ckeditor/plugins/smiley/images/omg_smile.gif
similarity index 100%
rename from plugin/ckeditor/plugins/smiley/images/omg_smile.gif
rename to extend/ckeditor/plugins/smiley/images/omg_smile.gif
diff --git a/plugin/ckeditor/plugins/smiley/images/regular_smile.gif b/extend/ckeditor/plugins/smiley/images/regular_smile.gif
similarity index 100%
rename from plugin/ckeditor/plugins/smiley/images/regular_smile.gif
rename to extend/ckeditor/plugins/smiley/images/regular_smile.gif
diff --git a/plugin/ckeditor/plugins/smiley/images/sad_smile.gif b/extend/ckeditor/plugins/smiley/images/sad_smile.gif
similarity index 100%
rename from plugin/ckeditor/plugins/smiley/images/sad_smile.gif
rename to extend/ckeditor/plugins/smiley/images/sad_smile.gif
diff --git a/plugin/ckeditor/plugins/smiley/images/shades_smile.gif b/extend/ckeditor/plugins/smiley/images/shades_smile.gif
similarity index 100%
rename from plugin/ckeditor/plugins/smiley/images/shades_smile.gif
rename to extend/ckeditor/plugins/smiley/images/shades_smile.gif
diff --git a/plugin/ckeditor/plugins/smiley/images/teeth_smile.gif b/extend/ckeditor/plugins/smiley/images/teeth_smile.gif
similarity index 100%
rename from plugin/ckeditor/plugins/smiley/images/teeth_smile.gif
rename to extend/ckeditor/plugins/smiley/images/teeth_smile.gif
diff --git a/plugin/ckeditor/plugins/smiley/images/thumbs_down.gif b/extend/ckeditor/plugins/smiley/images/thumbs_down.gif
similarity index 100%
rename from plugin/ckeditor/plugins/smiley/images/thumbs_down.gif
rename to extend/ckeditor/plugins/smiley/images/thumbs_down.gif
diff --git a/plugin/ckeditor/plugins/smiley/images/thumbs_up.gif b/extend/ckeditor/plugins/smiley/images/thumbs_up.gif
similarity index 100%
rename from plugin/ckeditor/plugins/smiley/images/thumbs_up.gif
rename to extend/ckeditor/plugins/smiley/images/thumbs_up.gif
diff --git a/plugin/ckeditor/plugins/smiley/images/tongue_smile.gif b/extend/ckeditor/plugins/smiley/images/tongue_smile.gif
similarity index 100%
rename from plugin/ckeditor/plugins/smiley/images/tongue_smile.gif
rename to extend/ckeditor/plugins/smiley/images/tongue_smile.gif
diff --git a/plugin/ckeditor/plugins/smiley/images/tounge_smile.gif b/extend/ckeditor/plugins/smiley/images/tounge_smile.gif
similarity index 100%
rename from plugin/ckeditor/plugins/smiley/images/tounge_smile.gif
rename to extend/ckeditor/plugins/smiley/images/tounge_smile.gif
diff --git a/plugin/ckeditor/plugins/smiley/images/whatchutalkingabout_smile.gif b/extend/ckeditor/plugins/smiley/images/whatchutalkingabout_smile.gif
similarity index 100%
rename from plugin/ckeditor/plugins/smiley/images/whatchutalkingabout_smile.gif
rename to extend/ckeditor/plugins/smiley/images/whatchutalkingabout_smile.gif
diff --git a/plugin/ckeditor/plugins/smiley/images/wink_smile.gif b/extend/ckeditor/plugins/smiley/images/wink_smile.gif
similarity index 100%
rename from plugin/ckeditor/plugins/smiley/images/wink_smile.gif
rename to extend/ckeditor/plugins/smiley/images/wink_smile.gif
diff --git a/plugin/ckeditor/plugins/specialchar/dialogs/lang/_translationstatus.txt b/extend/ckeditor/plugins/specialchar/dialogs/lang/_translationstatus.txt
similarity index 100%
rename from plugin/ckeditor/plugins/specialchar/dialogs/lang/_translationstatus.txt
rename to extend/ckeditor/plugins/specialchar/dialogs/lang/_translationstatus.txt
diff --git a/plugin/ckeditor/plugins/specialchar/dialogs/lang/ca.js b/extend/ckeditor/plugins/specialchar/dialogs/lang/ca.js
similarity index 100%
rename from plugin/ckeditor/plugins/specialchar/dialogs/lang/ca.js
rename to extend/ckeditor/plugins/specialchar/dialogs/lang/ca.js
diff --git a/plugin/ckeditor/plugins/specialchar/dialogs/lang/cs.js b/extend/ckeditor/plugins/specialchar/dialogs/lang/cs.js
similarity index 100%
rename from plugin/ckeditor/plugins/specialchar/dialogs/lang/cs.js
rename to extend/ckeditor/plugins/specialchar/dialogs/lang/cs.js
diff --git a/plugin/ckeditor/plugins/specialchar/dialogs/lang/cy.js b/extend/ckeditor/plugins/specialchar/dialogs/lang/cy.js
similarity index 100%
rename from plugin/ckeditor/plugins/specialchar/dialogs/lang/cy.js
rename to extend/ckeditor/plugins/specialchar/dialogs/lang/cy.js
diff --git a/plugin/ckeditor/plugins/specialchar/dialogs/lang/de.js b/extend/ckeditor/plugins/specialchar/dialogs/lang/de.js
similarity index 100%
rename from plugin/ckeditor/plugins/specialchar/dialogs/lang/de.js
rename to extend/ckeditor/plugins/specialchar/dialogs/lang/de.js
diff --git a/plugin/ckeditor/plugins/specialchar/dialogs/lang/el.js b/extend/ckeditor/plugins/specialchar/dialogs/lang/el.js
similarity index 100%
rename from plugin/ckeditor/plugins/specialchar/dialogs/lang/el.js
rename to extend/ckeditor/plugins/specialchar/dialogs/lang/el.js
diff --git a/plugin/ckeditor/plugins/specialchar/dialogs/lang/en.js b/extend/ckeditor/plugins/specialchar/dialogs/lang/en.js
similarity index 100%
rename from plugin/ckeditor/plugins/specialchar/dialogs/lang/en.js
rename to extend/ckeditor/plugins/specialchar/dialogs/lang/en.js
diff --git a/plugin/ckeditor/plugins/specialchar/dialogs/lang/eo.js b/extend/ckeditor/plugins/specialchar/dialogs/lang/eo.js
similarity index 100%
rename from plugin/ckeditor/plugins/specialchar/dialogs/lang/eo.js
rename to extend/ckeditor/plugins/specialchar/dialogs/lang/eo.js
diff --git a/plugin/ckeditor/plugins/specialchar/dialogs/lang/et.js b/extend/ckeditor/plugins/specialchar/dialogs/lang/et.js
similarity index 100%
rename from plugin/ckeditor/plugins/specialchar/dialogs/lang/et.js
rename to extend/ckeditor/plugins/specialchar/dialogs/lang/et.js
diff --git a/plugin/ckeditor/plugins/specialchar/dialogs/lang/fa.js b/extend/ckeditor/plugins/specialchar/dialogs/lang/fa.js
similarity index 100%
rename from plugin/ckeditor/plugins/specialchar/dialogs/lang/fa.js
rename to extend/ckeditor/plugins/specialchar/dialogs/lang/fa.js
diff --git a/plugin/ckeditor/plugins/specialchar/dialogs/lang/fi.js b/extend/ckeditor/plugins/specialchar/dialogs/lang/fi.js
similarity index 100%
rename from plugin/ckeditor/plugins/specialchar/dialogs/lang/fi.js
rename to extend/ckeditor/plugins/specialchar/dialogs/lang/fi.js
diff --git a/plugin/ckeditor/plugins/specialchar/dialogs/lang/fr.js b/extend/ckeditor/plugins/specialchar/dialogs/lang/fr.js
similarity index 100%
rename from plugin/ckeditor/plugins/specialchar/dialogs/lang/fr.js
rename to extend/ckeditor/plugins/specialchar/dialogs/lang/fr.js
diff --git a/plugin/ckeditor/plugins/specialchar/dialogs/lang/he.js b/extend/ckeditor/plugins/specialchar/dialogs/lang/he.js
similarity index 100%
rename from plugin/ckeditor/plugins/specialchar/dialogs/lang/he.js
rename to extend/ckeditor/plugins/specialchar/dialogs/lang/he.js
diff --git a/plugin/ckeditor/plugins/specialchar/dialogs/lang/hr.js b/extend/ckeditor/plugins/specialchar/dialogs/lang/hr.js
similarity index 100%
rename from plugin/ckeditor/plugins/specialchar/dialogs/lang/hr.js
rename to extend/ckeditor/plugins/specialchar/dialogs/lang/hr.js
diff --git a/plugin/ckeditor/plugins/specialchar/dialogs/lang/it.js b/extend/ckeditor/plugins/specialchar/dialogs/lang/it.js
similarity index 100%
rename from plugin/ckeditor/plugins/specialchar/dialogs/lang/it.js
rename to extend/ckeditor/plugins/specialchar/dialogs/lang/it.js
diff --git a/plugin/ckeditor/plugins/specialchar/dialogs/lang/ku.js b/extend/ckeditor/plugins/specialchar/dialogs/lang/ku.js
similarity index 100%
rename from plugin/ckeditor/plugins/specialchar/dialogs/lang/ku.js
rename to extend/ckeditor/plugins/specialchar/dialogs/lang/ku.js
diff --git a/plugin/ckeditor/plugins/specialchar/dialogs/lang/lv.js b/extend/ckeditor/plugins/specialchar/dialogs/lang/lv.js
similarity index 100%
rename from plugin/ckeditor/plugins/specialchar/dialogs/lang/lv.js
rename to extend/ckeditor/plugins/specialchar/dialogs/lang/lv.js
diff --git a/plugin/ckeditor/plugins/specialchar/dialogs/lang/nb.js b/extend/ckeditor/plugins/specialchar/dialogs/lang/nb.js
similarity index 100%
rename from plugin/ckeditor/plugins/specialchar/dialogs/lang/nb.js
rename to extend/ckeditor/plugins/specialchar/dialogs/lang/nb.js
diff --git a/plugin/ckeditor/plugins/specialchar/dialogs/lang/nl.js b/extend/ckeditor/plugins/specialchar/dialogs/lang/nl.js
similarity index 100%
rename from plugin/ckeditor/plugins/specialchar/dialogs/lang/nl.js
rename to extend/ckeditor/plugins/specialchar/dialogs/lang/nl.js
diff --git a/plugin/ckeditor/plugins/specialchar/dialogs/lang/no.js b/extend/ckeditor/plugins/specialchar/dialogs/lang/no.js
similarity index 100%
rename from plugin/ckeditor/plugins/specialchar/dialogs/lang/no.js
rename to extend/ckeditor/plugins/specialchar/dialogs/lang/no.js
diff --git a/plugin/ckeditor/plugins/specialchar/dialogs/lang/pt-br.js b/extend/ckeditor/plugins/specialchar/dialogs/lang/pt-br.js
similarity index 100%
rename from plugin/ckeditor/plugins/specialchar/dialogs/lang/pt-br.js
rename to extend/ckeditor/plugins/specialchar/dialogs/lang/pt-br.js
diff --git a/plugin/ckeditor/plugins/specialchar/dialogs/lang/sk.js b/extend/ckeditor/plugins/specialchar/dialogs/lang/sk.js
similarity index 100%
rename from plugin/ckeditor/plugins/specialchar/dialogs/lang/sk.js
rename to extend/ckeditor/plugins/specialchar/dialogs/lang/sk.js
diff --git a/plugin/ckeditor/plugins/specialchar/dialogs/lang/tr.js b/extend/ckeditor/plugins/specialchar/dialogs/lang/tr.js
similarity index 100%
rename from plugin/ckeditor/plugins/specialchar/dialogs/lang/tr.js
rename to extend/ckeditor/plugins/specialchar/dialogs/lang/tr.js
diff --git a/plugin/ckeditor/plugins/specialchar/dialogs/lang/ug.js b/extend/ckeditor/plugins/specialchar/dialogs/lang/ug.js
similarity index 100%
rename from plugin/ckeditor/plugins/specialchar/dialogs/lang/ug.js
rename to extend/ckeditor/plugins/specialchar/dialogs/lang/ug.js
diff --git a/plugin/ckeditor/plugins/specialchar/dialogs/lang/zh-cn.js b/extend/ckeditor/plugins/specialchar/dialogs/lang/zh-cn.js
similarity index 100%
rename from plugin/ckeditor/plugins/specialchar/dialogs/lang/zh-cn.js
rename to extend/ckeditor/plugins/specialchar/dialogs/lang/zh-cn.js
diff --git a/plugin/ckeditor/plugins/specialchar/dialogs/specialchar.js b/extend/ckeditor/plugins/specialchar/dialogs/specialchar.js
similarity index 100%
rename from plugin/ckeditor/plugins/specialchar/dialogs/specialchar.js
rename to extend/ckeditor/plugins/specialchar/dialogs/specialchar.js
diff --git a/plugin/ckeditor/plugins/table/dialogs/table.js b/extend/ckeditor/plugins/table/dialogs/table.js
similarity index 100%
rename from plugin/ckeditor/plugins/table/dialogs/table.js
rename to extend/ckeditor/plugins/table/dialogs/table.js
diff --git a/plugin/ckeditor/plugins/tabletools/dialogs/tableCell.js b/extend/ckeditor/plugins/tabletools/dialogs/tableCell.js
similarity index 100%
rename from plugin/ckeditor/plugins/tabletools/dialogs/tableCell.js
rename to extend/ckeditor/plugins/tabletools/dialogs/tableCell.js
diff --git a/plugin/ckeditor/plugins/templates/dialogs/templates.css b/extend/ckeditor/plugins/templates/dialogs/templates.css
similarity index 100%
rename from plugin/ckeditor/plugins/templates/dialogs/templates.css
rename to extend/ckeditor/plugins/templates/dialogs/templates.css
diff --git a/plugin/ckeditor/plugins/templates/dialogs/templates.js b/extend/ckeditor/plugins/templates/dialogs/templates.js
similarity index 100%
rename from plugin/ckeditor/plugins/templates/dialogs/templates.js
rename to extend/ckeditor/plugins/templates/dialogs/templates.js
diff --git a/plugin/ckeditor/plugins/templates/templates/default.js b/extend/ckeditor/plugins/templates/templates/default.js
similarity index 100%
rename from plugin/ckeditor/plugins/templates/templates/default.js
rename to extend/ckeditor/plugins/templates/templates/default.js
diff --git a/plugin/ckeditor/plugins/templates/templates/images/template1.gif b/extend/ckeditor/plugins/templates/templates/images/template1.gif
similarity index 100%
rename from plugin/ckeditor/plugins/templates/templates/images/template1.gif
rename to extend/ckeditor/plugins/templates/templates/images/template1.gif
diff --git a/plugin/ckeditor/plugins/templates/templates/images/template2.gif b/extend/ckeditor/plugins/templates/templates/images/template2.gif
similarity index 100%
rename from plugin/ckeditor/plugins/templates/templates/images/template2.gif
rename to extend/ckeditor/plugins/templates/templates/images/template2.gif
diff --git a/plugin/ckeditor/plugins/templates/templates/images/template3.gif b/extend/ckeditor/plugins/templates/templates/images/template3.gif
similarity index 100%
rename from plugin/ckeditor/plugins/templates/templates/images/template3.gif
rename to extend/ckeditor/plugins/templates/templates/images/template3.gif
diff --git a/plugin/ckeditor/samples/ajax.html b/extend/ckeditor/samples/ajax.html
similarity index 100%
rename from plugin/ckeditor/samples/ajax.html
rename to extend/ckeditor/samples/ajax.html
diff --git a/plugin/ckeditor/samples/api.html b/extend/ckeditor/samples/api.html
similarity index 100%
rename from plugin/ckeditor/samples/api.html
rename to extend/ckeditor/samples/api.html
diff --git a/plugin/ckeditor/samples/appendto.html b/extend/ckeditor/samples/appendto.html
similarity index 100%
rename from plugin/ckeditor/samples/appendto.html
rename to extend/ckeditor/samples/appendto.html
diff --git a/plugin/ckeditor/samples/assets/inlineall/logo.png b/extend/ckeditor/samples/assets/inlineall/logo.png
similarity index 100%
rename from plugin/ckeditor/samples/assets/inlineall/logo.png
rename to extend/ckeditor/samples/assets/inlineall/logo.png
diff --git a/plugin/ckeditor/samples/assets/outputxhtml/outputxhtml.css b/extend/ckeditor/samples/assets/outputxhtml/outputxhtml.css
similarity index 100%
rename from plugin/ckeditor/samples/assets/outputxhtml/outputxhtml.css
rename to extend/ckeditor/samples/assets/outputxhtml/outputxhtml.css
diff --git a/plugin/ckeditor/samples/assets/posteddata.php b/extend/ckeditor/samples/assets/posteddata.php
similarity index 100%
rename from plugin/ckeditor/samples/assets/posteddata.php
rename to extend/ckeditor/samples/assets/posteddata.php
diff --git a/plugin/ckeditor/samples/assets/sample.css b/extend/ckeditor/samples/assets/sample.css
similarity index 100%
rename from plugin/ckeditor/samples/assets/sample.css
rename to extend/ckeditor/samples/assets/sample.css
diff --git a/plugin/ckeditor/samples/assets/sample.jpg b/extend/ckeditor/samples/assets/sample.jpg
similarity index 100%
rename from plugin/ckeditor/samples/assets/sample.jpg
rename to extend/ckeditor/samples/assets/sample.jpg
diff --git a/plugin/ckeditor/samples/assets/uilanguages/languages.js b/extend/ckeditor/samples/assets/uilanguages/languages.js
similarity index 100%
rename from plugin/ckeditor/samples/assets/uilanguages/languages.js
rename to extend/ckeditor/samples/assets/uilanguages/languages.js
diff --git a/plugin/ckeditor/samples/divreplace.html b/extend/ckeditor/samples/divreplace.html
similarity index 100%
rename from plugin/ckeditor/samples/divreplace.html
rename to extend/ckeditor/samples/divreplace.html
diff --git a/plugin/ckeditor/samples/index.html b/extend/ckeditor/samples/index.html
similarity index 100%
rename from plugin/ckeditor/samples/index.html
rename to extend/ckeditor/samples/index.html
diff --git a/plugin/ckeditor/samples/inlineall.html b/extend/ckeditor/samples/inlineall.html
similarity index 100%
rename from plugin/ckeditor/samples/inlineall.html
rename to extend/ckeditor/samples/inlineall.html
diff --git a/plugin/ckeditor/samples/inlinebycode.html b/extend/ckeditor/samples/inlinebycode.html
similarity index 100%
rename from plugin/ckeditor/samples/inlinebycode.html
rename to extend/ckeditor/samples/inlinebycode.html
diff --git a/plugin/ckeditor/samples/plugins/dialog/assets/my_dialog.js b/extend/ckeditor/samples/plugins/dialog/assets/my_dialog.js
similarity index 100%
rename from plugin/ckeditor/samples/plugins/dialog/assets/my_dialog.js
rename to extend/ckeditor/samples/plugins/dialog/assets/my_dialog.js
diff --git a/plugin/ckeditor/samples/plugins/dialog/dialog.html b/extend/ckeditor/samples/plugins/dialog/dialog.html
similarity index 100%
rename from plugin/ckeditor/samples/plugins/dialog/dialog.html
rename to extend/ckeditor/samples/plugins/dialog/dialog.html
diff --git a/plugin/ckeditor/samples/plugins/enterkey/enterkey.html b/extend/ckeditor/samples/plugins/enterkey/enterkey.html
similarity index 100%
rename from plugin/ckeditor/samples/plugins/enterkey/enterkey.html
rename to extend/ckeditor/samples/plugins/enterkey/enterkey.html
diff --git a/plugin/ckeditor/samples/plugins/htmlwriter/assets/outputforflash/outputforflash.fla b/extend/ckeditor/samples/plugins/htmlwriter/assets/outputforflash/outputforflash.fla
similarity index 100%
rename from plugin/ckeditor/samples/plugins/htmlwriter/assets/outputforflash/outputforflash.fla
rename to extend/ckeditor/samples/plugins/htmlwriter/assets/outputforflash/outputforflash.fla
diff --git a/plugin/ckeditor/samples/plugins/htmlwriter/assets/outputforflash/outputforflash.swf b/extend/ckeditor/samples/plugins/htmlwriter/assets/outputforflash/outputforflash.swf
similarity index 100%
rename from plugin/ckeditor/samples/plugins/htmlwriter/assets/outputforflash/outputforflash.swf
rename to extend/ckeditor/samples/plugins/htmlwriter/assets/outputforflash/outputforflash.swf
diff --git a/plugin/ckeditor/samples/plugins/htmlwriter/assets/outputforflash/swfobject.js b/extend/ckeditor/samples/plugins/htmlwriter/assets/outputforflash/swfobject.js
similarity index 100%
rename from plugin/ckeditor/samples/plugins/htmlwriter/assets/outputforflash/swfobject.js
rename to extend/ckeditor/samples/plugins/htmlwriter/assets/outputforflash/swfobject.js
diff --git a/plugin/ckeditor/samples/plugins/htmlwriter/outputforflash.html b/extend/ckeditor/samples/plugins/htmlwriter/outputforflash.html
similarity index 100%
rename from plugin/ckeditor/samples/plugins/htmlwriter/outputforflash.html
rename to extend/ckeditor/samples/plugins/htmlwriter/outputforflash.html
diff --git a/plugin/ckeditor/samples/plugins/htmlwriter/outputhtml.html b/extend/ckeditor/samples/plugins/htmlwriter/outputhtml.html
similarity index 100%
rename from plugin/ckeditor/samples/plugins/htmlwriter/outputhtml.html
rename to extend/ckeditor/samples/plugins/htmlwriter/outputhtml.html
diff --git a/plugin/ckeditor/samples/plugins/magicline/magicline.html b/extend/ckeditor/samples/plugins/magicline/magicline.html
similarity index 100%
rename from plugin/ckeditor/samples/plugins/magicline/magicline.html
rename to extend/ckeditor/samples/plugins/magicline/magicline.html
diff --git a/plugin/ckeditor/samples/plugins/toolbar/toolbar.html b/extend/ckeditor/samples/plugins/toolbar/toolbar.html
similarity index 100%
rename from plugin/ckeditor/samples/plugins/toolbar/toolbar.html
rename to extend/ckeditor/samples/plugins/toolbar/toolbar.html
diff --git a/plugin/ckeditor/samples/plugins/wysiwygarea/fullpage.html b/extend/ckeditor/samples/plugins/wysiwygarea/fullpage.html
similarity index 100%
rename from plugin/ckeditor/samples/plugins/wysiwygarea/fullpage.html
rename to extend/ckeditor/samples/plugins/wysiwygarea/fullpage.html
diff --git a/plugin/ckeditor/samples/readonly.html b/extend/ckeditor/samples/readonly.html
similarity index 100%
rename from plugin/ckeditor/samples/readonly.html
rename to extend/ckeditor/samples/readonly.html
diff --git a/plugin/ckeditor/samples/replacebyclass.html b/extend/ckeditor/samples/replacebyclass.html
similarity index 100%
rename from plugin/ckeditor/samples/replacebyclass.html
rename to extend/ckeditor/samples/replacebyclass.html
diff --git a/plugin/ckeditor/samples/replacebycode.html b/extend/ckeditor/samples/replacebycode.html
similarity index 100%
rename from plugin/ckeditor/samples/replacebycode.html
rename to extend/ckeditor/samples/replacebycode.html
diff --git a/plugin/ckeditor/samples/sample.css b/extend/ckeditor/samples/sample.css
similarity index 100%
rename from plugin/ckeditor/samples/sample.css
rename to extend/ckeditor/samples/sample.css
diff --git a/plugin/ckeditor/samples/sample.js b/extend/ckeditor/samples/sample.js
similarity index 100%
rename from plugin/ckeditor/samples/sample.js
rename to extend/ckeditor/samples/sample.js
diff --git a/plugin/ckeditor/samples/sample_posteddata.php b/extend/ckeditor/samples/sample_posteddata.php
similarity index 100%
rename from plugin/ckeditor/samples/sample_posteddata.php
rename to extend/ckeditor/samples/sample_posteddata.php
diff --git a/plugin/ckeditor/samples/tabindex.html b/extend/ckeditor/samples/tabindex.html
similarity index 100%
rename from plugin/ckeditor/samples/tabindex.html
rename to extend/ckeditor/samples/tabindex.html
diff --git a/plugin/ckeditor/samples/uicolor.html b/extend/ckeditor/samples/uicolor.html
similarity index 100%
rename from plugin/ckeditor/samples/uicolor.html
rename to extend/ckeditor/samples/uicolor.html
diff --git a/plugin/ckeditor/samples/uilanguages.html b/extend/ckeditor/samples/uilanguages.html
similarity index 100%
rename from plugin/ckeditor/samples/uilanguages.html
rename to extend/ckeditor/samples/uilanguages.html
diff --git a/plugin/ckeditor/samples/xhtmlstyle.html b/extend/ckeditor/samples/xhtmlstyle.html
similarity index 100%
rename from plugin/ckeditor/samples/xhtmlstyle.html
rename to extend/ckeditor/samples/xhtmlstyle.html
diff --git a/plugin/ckeditor/skins/moono/dialog.css b/extend/ckeditor/skins/moono/dialog.css
similarity index 100%
rename from plugin/ckeditor/skins/moono/dialog.css
rename to extend/ckeditor/skins/moono/dialog.css
diff --git a/plugin/ckeditor/skins/moono/dialog_ie.css b/extend/ckeditor/skins/moono/dialog_ie.css
similarity index 100%
rename from plugin/ckeditor/skins/moono/dialog_ie.css
rename to extend/ckeditor/skins/moono/dialog_ie.css
diff --git a/plugin/ckeditor/skins/moono/dialog_ie7.css b/extend/ckeditor/skins/moono/dialog_ie7.css
similarity index 100%
rename from plugin/ckeditor/skins/moono/dialog_ie7.css
rename to extend/ckeditor/skins/moono/dialog_ie7.css
diff --git a/plugin/ckeditor/skins/moono/dialog_ie8.css b/extend/ckeditor/skins/moono/dialog_ie8.css
similarity index 100%
rename from plugin/ckeditor/skins/moono/dialog_ie8.css
rename to extend/ckeditor/skins/moono/dialog_ie8.css
diff --git a/plugin/ckeditor/skins/moono/dialog_opera.css b/extend/ckeditor/skins/moono/dialog_opera.css
similarity index 100%
rename from plugin/ckeditor/skins/moono/dialog_opera.css
rename to extend/ckeditor/skins/moono/dialog_opera.css
diff --git a/plugin/ckeditor/skins/moono/editor.css b/extend/ckeditor/skins/moono/editor.css
similarity index 100%
rename from plugin/ckeditor/skins/moono/editor.css
rename to extend/ckeditor/skins/moono/editor.css
diff --git a/plugin/ckeditor/skins/moono/editor_gecko.css b/extend/ckeditor/skins/moono/editor_gecko.css
similarity index 100%
rename from plugin/ckeditor/skins/moono/editor_gecko.css
rename to extend/ckeditor/skins/moono/editor_gecko.css
diff --git a/plugin/ckeditor/skins/moono/editor_ie.css b/extend/ckeditor/skins/moono/editor_ie.css
similarity index 100%
rename from plugin/ckeditor/skins/moono/editor_ie.css
rename to extend/ckeditor/skins/moono/editor_ie.css
diff --git a/plugin/ckeditor/skins/moono/editor_ie7.css b/extend/ckeditor/skins/moono/editor_ie7.css
similarity index 100%
rename from plugin/ckeditor/skins/moono/editor_ie7.css
rename to extend/ckeditor/skins/moono/editor_ie7.css
diff --git a/plugin/ckeditor/skins/moono/editor_ie8.css b/extend/ckeditor/skins/moono/editor_ie8.css
similarity index 100%
rename from plugin/ckeditor/skins/moono/editor_ie8.css
rename to extend/ckeditor/skins/moono/editor_ie8.css
diff --git a/plugin/ckeditor/skins/moono/icons.png b/extend/ckeditor/skins/moono/icons.png
similarity index 100%
rename from plugin/ckeditor/skins/moono/icons.png
rename to extend/ckeditor/skins/moono/icons.png
diff --git a/plugin/ckeditor/skins/moono/images/arrow.png b/extend/ckeditor/skins/moono/images/arrow.png
similarity index 100%
rename from plugin/ckeditor/skins/moono/images/arrow.png
rename to extend/ckeditor/skins/moono/images/arrow.png
diff --git a/plugin/ckeditor/skins/moono/images/close.png b/extend/ckeditor/skins/moono/images/close.png
similarity index 100%
rename from plugin/ckeditor/skins/moono/images/close.png
rename to extend/ckeditor/skins/moono/images/close.png
diff --git a/plugin/ckeditor/skins/moono/images/mini.png b/extend/ckeditor/skins/moono/images/mini.png
similarity index 100%
rename from plugin/ckeditor/skins/moono/images/mini.png
rename to extend/ckeditor/skins/moono/images/mini.png
diff --git a/plugin/ckeditor/skins/moono/readme.md b/extend/ckeditor/skins/moono/readme.md
similarity index 100%
rename from plugin/ckeditor/skins/moono/readme.md
rename to extend/ckeditor/skins/moono/readme.md
diff --git a/plugin/ckeditor/styles.js b/extend/ckeditor/styles.js
similarity index 100%
rename from plugin/ckeditor/styles.js
rename to extend/ckeditor/styles.js
diff --git a/plugin/ckeditor/upload.php b/extend/ckeditor/upload.php
similarity index 82%
rename from plugin/ckeditor/upload.php
rename to extend/ckeditor/upload.php
index 7ac439b0b..c209a5eeb 100644
--- a/plugin/ckeditor/upload.php
+++ b/extend/ckeditor/upload.php
@@ -2,14 +2,14 @@
$g4_path = "../.."; // common.php 의 상대 경로
include_once("$g4_path/common.php");
-$up_dir = $g4['path'].'/'.$editor->data;; // 기본 업로드 폴더
+$up_dir = $g4['path'].'/'.$ckeditor->data;; // 기본 업로드 폴더
@mkdir($up_dir, 0707);
@chmod($up_dir, 0707);
$ym = date('ym', $g4['server_time']);
-$data_dir = $g4['path'].'/'.$editor->data.'/'.$ym;
-$data_url = $g4['url'] .'/'.$editor->data.'/'.$ym;
+$data_dir = $g4['path'].'/'.$ckeditor->data.'/'.$ym;
+$data_url = $g4['url'] .'/'.$ckeditor->data.'/'.$ym;
@mkdir($data_dir, 0707);
@chmod($data_dir, 0707);
diff --git a/extend/gcaptcha.extend.php b/extend/gcaptcha.extend.php
new file mode 100644
index 000000000..e12abd387
--- /dev/null
+++ b/extend/gcaptcha.extend.php
@@ -0,0 +1,20 @@
+
+if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
+
+// _CAPTCHA_ 의 값에 상관없이 선언 되었는지의 여부만 따짐
+// if (defined('_CAPTCHA_')) true;
+define('_CAPTCHA_', 1);
+
+if (defined('_CAPTCHA_')) {
+ $gcaptcha = new stdClass;
+ $gcaptcha->url = $g4['url']."/extend/gcaptcha";
+ $gcaptcha->path = $g4['path']."/extend/gcaptcha";
+ $gcaptcha->fonts = $gcaptcha->path."/fonts";
+ $gcaptcha->wavs = $gcaptcha->path."/wavs";
+
+ include_once($gcaptcha->path."/gcaptcha.lib.php");
+
+ $g4['js_code'][] = "var g4_gcaptcha_path = \"{$gcaptcha->path}\";";
+ $g4['js_file'][] = $gcaptcha->url."/gcaptcha.js";
+}
+?>
\ No newline at end of file
diff --git a/plugin/captcha/_common.php b/extend/gcaptcha/_common.php
similarity index 100%
rename from plugin/captcha/_common.php
rename to extend/gcaptcha/_common.php
diff --git a/plugin/captcha/example.php b/extend/gcaptcha/example.php
similarity index 100%
rename from plugin/captcha/example.php
rename to extend/gcaptcha/example.php
diff --git a/plugin/captcha/fonts/.htaccess b/extend/gcaptcha/fonts/.htaccess
similarity index 100%
rename from plugin/captcha/fonts/.htaccess
rename to extend/gcaptcha/fonts/.htaccess
diff --git a/plugin/captcha/fonts/DAUM_FONTS_LICENSE.txt b/extend/gcaptcha/fonts/DAUM_FONTS_LICENSE.txt
similarity index 100%
rename from plugin/captcha/fonts/DAUM_FONTS_LICENSE.txt
rename to extend/gcaptcha/fonts/DAUM_FONTS_LICENSE.txt
diff --git a/plugin/captcha/fonts/NAVER_FONTS_LICENSE.txt b/extend/gcaptcha/fonts/NAVER_FONTS_LICENSE.txt
similarity index 100%
rename from plugin/captcha/fonts/NAVER_FONTS_LICENSE.txt
rename to extend/gcaptcha/fonts/NAVER_FONTS_LICENSE.txt
diff --git a/plugin/captcha/fonts/NanumGothic.ttf b/extend/gcaptcha/fonts/NanumGothic.ttf
similarity index 100%
rename from plugin/captcha/fonts/NanumGothic.ttf
rename to extend/gcaptcha/fonts/NanumGothic.ttf
diff --git a/plugin/captcha/fonts/NanumMyeongjo.ttf b/extend/gcaptcha/fonts/NanumMyeongjo.ttf
similarity index 100%
rename from plugin/captcha/fonts/NanumMyeongjo.ttf
rename to extend/gcaptcha/fonts/NanumMyeongjo.ttf
diff --git a/plugin/captcha/captcha.js b/extend/gcaptcha/gcaptcha.js
similarity index 74%
rename from plugin/captcha/captcha.js
rename to extend/gcaptcha/gcaptcha.js
index 244995d5d..10ffd978c 100644
--- a/plugin/captcha/captcha.js
+++ b/extend/gcaptcha/gcaptcha.js
@@ -1,22 +1,25 @@
-function check_captcha(input_key)
+function chk_captcha()
{
- if (typeof(input_key) != "undefined") {
- var captcha_result = false;
- $.ajax({
- type: "POST",
- url: g4_path+"/plugin/captcha/get.php",
- data: { "captcha_key": input_key.value },
- cache: false,
- async: false,
- success: function(result) {
- captcha_result = result;
- }
- });
- if (!captcha_result) {
- alert("숫자가 틀렸거나 입력 횟수가 넘었습니다.\n\n이미지를 클릭하여 다시 입력해 주십시오.");
- input_key.select();
- return false;
+ var captcha_key = document.getElementById("captcha_key");
+ if (typeof(captcha_key) == "undefined") return true;
+
+ var captcha_result = false;
+ $.ajax({
+ type: "POST",
+ url: g4_gcaptcha_path+"/get.php",
+ data: {
+ "captcha_key": captcha_key.value
+ },
+ cache: false,
+ async: false,
+ success: function(result) {
+ captcha_result = result;
}
+ });
+ if (!captcha_result) {
+ alert("스팸방지 숫자가 틀렸습니다.");
+ captcha_key.select();
+ return false;
}
return true;
}
diff --git a/extend/gcaptcha/gcaptcha.lib.php b/extend/gcaptcha/gcaptcha.lib.php
new file mode 100644
index 000000000..5233340b3
--- /dev/null
+++ b/extend/gcaptcha/gcaptcha.lib.php
@@ -0,0 +1,248 @@
+255, 'g'=>255, 'b'=>255);
+ // 글자색상 rgb
+ var $text = array('r'=>0, 'g'=>0, 'b'=>0);
+ // 그림자 글자색상 rgb
+ var $shadow = array('r'=>128, 'g'=>128, 'b'=>128);
+
+ var $captcha_length = 6;
+
+ // 이미지 크기
+ function set_box_size($width, $height) {
+ $this->width = $width;
+ $this->height = $height;
+ }
+
+ // 폰트 사이즈
+ function set_size($size) {
+ $this->size = $size;
+ }
+
+ // 폰트 기울기
+ function set_angle($angle) {
+ $this->angle = $angle;
+ }
+
+ // 폰트 위치
+ function set_position($x, $y) {
+ $this->x = $x;
+ $this->y = $y;
+ }
+
+ function set_captcha_length($length)
+ {
+ $this->captcha_length = $length;
+ }
+
+ function set_back_color($r, $g, $b) {
+ $this->back['r'] = $r;
+ $this->back['g'] = $g;
+ $this->back['b'] = $b;
+ }
+
+ function set_text_color($r, $g, $b) {
+ $this->text['r'] = $r;
+ $this->text['g'] = $g;
+ $this->text['b'] = $b;
+ }
+
+ function set_shadow_color($r, $g, $b) {
+ $this->shadow['r'] = $r;
+ $this->shadow['g'] = $g;
+ $this->shadow['b'] = $b;
+ }
+
+ function get_captcha_key()
+ {
+ $from = (int)('1'.str_repeat('0', $this->captcha_length - 1));
+ $to = (int)(str_repeat('9', $this->captcha_length));
+ return mt_rand($from, $to);
+ }
+
+ function run()
+ {
+ global $gcaptcha;
+
+ // The text to draw
+ $captcha_key = $this->get_captcha_key();
+
+ set_session('ss_captcha_cnt', 0);
+ set_session('ss_captcha_key', $captcha_key);
+
+ // Set the content-type
+ //header('Content-Type: image/png');
+ // Create the image
+ $im = imagecreatetruecolor($this->width, $this->height);
+
+ // Create some colors
+ $white = imagecolorallocate($im, $this->back['r'], $this->back['g'], $this->back['b']);
+ $grey = imagecolorallocate($im, $this->shadow['r'], $this->shadow['g'], $this->shadow['b']);
+ $black = imagecolorallocate($im, $this->text['r'], $this->text['g'], $this->text['b']);
+ imagefilledrectangle($im, 0, 0, $this->width, $this->height, $white);
+
+ // Replace path by your own font path
+ $fonts = Array();
+ foreach (glob($gcaptcha->fonts.'/*.ttf') as $filename) {
+ $fonts[] = $filename;
+ }
+ $font = $fonts[mt_rand(0, count($fonts)-1)];
+
+ $size = $this->size;
+ $angle = $this->angle;
+ $x = $this->x;
+ $y = $this->y;
+
+ // Add some shadow to the text
+ imagettftext($im, $size, $angle, $x, $y, $grey, $font, $captcha_key);
+ // Add the text
+ imagettftext($im, $size, $angle, $x-1, $y-1, $black, $font, $captcha_key);
+ if (mt_rand(0,1)) {
+ imagettftext($im, $size, $angle, $x-2, $y-2, $white, $font, $captcha_key);
+ } else if (mt_rand(0,1)) {
+ imagettftext($im, $size, $angle, $x-2, $y-2, $grey, $font, $captcha_key);
+ }
+
+ imagepng($im, captcha_file('.png'), 0, NULL);
+ imagedestroy($im);
+
+ make_wav();
+ }
+}
+
+/*
+사용법 :
+$gcaptcha = new gcaptcha();
+$gcaptcha->set_captcha_length(mt_rand(4, 6));
+$gcaptcha->set_position(mt_rand(0, 10), mt_rand(15, 20));
+$gcaptcha->set_angle(mt_rand(-3, 3));
+$gcaptcha->set_size(mt_rand(15, 16));
+$gcaptcha->set_back_color(mt_rand(200,255), mt_rand(200,255), mt_rand(200,255));
+$gcaptcha->set_text_color(mt_rand(0,100), mt_rand(0,100), mt_rand(0,100));
+$gcaptcha->set_shadow_color(mt_rand(100,200), mt_rand(100,200), mt_rand(100,200));
+$gcaptcha->run();
+*/
+
+// 캡챠이미지는 한개만 사용 가능함.
+function captcha_html($class="captcha")
+{
+ global $g4, $gcaptcha;
+
+ $gcaptcha->obj = new gcaptcha();
+ $gcaptcha->obj->run();
+
+ $html = '';
+ return $html;
+}
+
+
+function chk_captcha()
+{
+ $captcha_cnt = (int)$_SESSION['ss_captcha_cnt'];
+ if ($captcha_cnt > 5) return false;
+
+ if (!isset($_POST['captcha_key'])) return false;
+ if ($_POST['captcha_key'] != $_SESSION['ss_captcha_key']) {
+ $_SESSION['ss_captcha_cnt'] = $captcha_cnt + 1;
+ return false;
+ }
+ return true;
+}
+
+
+function make_wav()
+{
+ global $g4, $gcaptcha;
+
+ $number = (string)$_SESSION['ss_captcha_key'];
+ $wavs = array();
+ for($i=0;$iwavs.'/'.$number[$i].'.wav';
+ $wavs[] = $file;
+ }
+
+ $wav_filepath = captcha_file('.wav');
+ $fp = fopen($wav_filepath, 'w+');
+ fwrite($fp, join_wavs($wavs));
+ fclose($fp);
+}
+
+function join_wavs($wavs)
+{
+ $fields = join('/',array( 'H8ChunkID', 'VChunkSize', 'H8Format',
+ 'H8Subchunk1ID', 'VSubchunk1Size',
+ 'vAudioFormat', 'vNumChannels', 'VSampleRate',
+ 'VByteRate', 'vBlockAlign', 'vBitsPerSample' ));
+ $data = '';
+ $info = array();
+ foreach($wavs as $wav){
+ $fp = fopen($wav,'rb');
+ $header = fread($fp,36);
+ $info = unpack($fields,$header);
+
+ // read optional extra stuff
+ if($info['Subchunk1Size'] > 16){
+ $header .= fread($fp,($info['Subchunk1Size']-16));
+ }
+
+ // read SubChunk2ID
+ $header .= fread($fp,4);
+
+ // read Subchunk2Size
+ $size = unpack('vsize',fread($fp, 4));
+ $size = $size['size'];
+
+ // read data
+ $data .= fread($fp,$size);
+ }
+
+ return ''
+ .pack('a4', 'RIFF')
+ .pack('V', strlen($data) + 36)
+ .pack('a4', 'WAVE')
+ .pack('a4', 'fmt ')
+ .pack('V', $info['Subchunk1Size']) // 16
+ .pack('v', $info['AudioFormat']) // 1
+ .pack('v', $info['NumChannels']) // 1
+ .pack('V', $info['SampleRate']) // 8000
+ .pack('V', $info['ByteRate']) // 8000
+ .pack('v', $info['BlockAlign']) // 1
+ .pack('v', $info['BitsPerSample']) // 8
+ .pack('a4', 'data')
+ .pack('V', strlen($data))
+ .$data;
+}
+
+
+// 캡챠 파일의 상대 경로를 반환
+function captcha_file($extension='.png')
+{
+ global $g4;
+ mk_subdir($g4['cache_dir']);
+ $captcha_path = mk_subdir($g4['cache_dir'].'/'.$g4['captcha_dir']);
+ return $captcha_path.'/'.abs_ip2long().'_'.$_COOKIE['PHPSESSID'].$extension;
+}
+?>
diff --git a/extend/gcaptcha/get.php b/extend/gcaptcha/get.php
new file mode 100644
index 000000000..09898e9d3
--- /dev/null
+++ b/extend/gcaptcha/get.php
@@ -0,0 +1,5 @@
+
\ No newline at end of file
diff --git a/plugin/captcha/img/dot.gif b/extend/gcaptcha/img/dot.gif
similarity index 100%
rename from plugin/captcha/img/dot.gif
rename to extend/gcaptcha/img/dot.gif
diff --git a/plugin/captcha/info.php b/extend/gcaptcha/info.php
similarity index 100%
rename from plugin/captcha/info.php
rename to extend/gcaptcha/info.php
diff --git a/plugin/captcha/run.php b/extend/gcaptcha/run.php
similarity index 100%
rename from plugin/captcha/run.php
rename to extend/gcaptcha/run.php
diff --git a/plugin/captcha/wav.php b/extend/gcaptcha/wav.php
similarity index 96%
rename from plugin/captcha/wav.php
rename to extend/gcaptcha/wav.php
index 78336ff17..f45405a9e 100644
--- a/plugin/captcha/wav.php
+++ b/extend/gcaptcha/wav.php
@@ -15,6 +15,7 @@ header('Content-Disposition: attachment;filename=captcha.wav');
echo joinwavs($wavs);
+
/**
* Join multiple wav files
*
diff --git a/plugin/captcha/wavs/0.wav b/extend/gcaptcha/wavs/0.wav
similarity index 100%
rename from plugin/captcha/wavs/0.wav
rename to extend/gcaptcha/wavs/0.wav
diff --git a/plugin/captcha/wavs/1.wav b/extend/gcaptcha/wavs/1.wav
similarity index 100%
rename from plugin/captcha/wavs/1.wav
rename to extend/gcaptcha/wavs/1.wav
diff --git a/plugin/captcha/wavs/2.wav b/extend/gcaptcha/wavs/2.wav
similarity index 100%
rename from plugin/captcha/wavs/2.wav
rename to extend/gcaptcha/wavs/2.wav
diff --git a/plugin/captcha/wavs/3.wav b/extend/gcaptcha/wavs/3.wav
similarity index 100%
rename from plugin/captcha/wavs/3.wav
rename to extend/gcaptcha/wavs/3.wav
diff --git a/plugin/captcha/wavs/4.wav b/extend/gcaptcha/wavs/4.wav
similarity index 100%
rename from plugin/captcha/wavs/4.wav
rename to extend/gcaptcha/wavs/4.wav
diff --git a/plugin/captcha/wavs/5.wav b/extend/gcaptcha/wavs/5.wav
similarity index 100%
rename from plugin/captcha/wavs/5.wav
rename to extend/gcaptcha/wavs/5.wav
diff --git a/plugin/captcha/wavs/6.wav b/extend/gcaptcha/wavs/6.wav
similarity index 100%
rename from plugin/captcha/wavs/6.wav
rename to extend/gcaptcha/wavs/6.wav
diff --git a/plugin/captcha/wavs/7.wav b/extend/gcaptcha/wavs/7.wav
similarity index 100%
rename from plugin/captcha/wavs/7.wav
rename to extend/gcaptcha/wavs/7.wav
diff --git a/plugin/captcha/wavs/8.wav b/extend/gcaptcha/wavs/8.wav
similarity index 100%
rename from plugin/captcha/wavs/8.wav
rename to extend/gcaptcha/wavs/8.wav
diff --git a/plugin/captcha/wavs/9.wav b/extend/gcaptcha/wavs/9.wav
similarity index 100%
rename from plugin/captcha/wavs/9.wav
rename to extend/gcaptcha/wavs/9.wav
diff --git a/head.sub.php b/head.sub.php
index 2351814ab..a3f8393a0 100644
--- a/head.sub.php
+++ b/head.sub.php
@@ -1,6 +1,10 @@
>>>>>> 43c0282f463b6fd895a835ca3e71da6b0844328c
$begin_time = get_microtime();
if (!isset($g4['title']))
@@ -49,10 +53,19 @@ header("Pragma: no-cache"); // HTTP/1.0
=$g4['title']?>
if (isset($administrator)) { ?>
+<<<<<<< HEAD
">
} else { ?>
">
+=======
+">
+ } else { ?>
+">
+>>>>>>> 43c0282f463b6fd895a835ca3e71da6b0844328c
}?>
+
-
-
-
-if (defined('_EDITOR_')) {
- $g4['js_file'][] = $editor->js;
- $g4['js_file'][] = $editor->config_js;
-}
-if (defined('_CAPTCHA_')) {
- $g4['js_file'][] = $captcha->js;
+if (!empty($g4['js_code'])) {
+ foreach ($g4['js_code'] as $key=>$value) {
+ echo $value."\n";
+ }
}
?>
-
+
+
+
+
if (!empty($g4['js_file'])) {
foreach ($g4['js_file'] as $key=>$value) {
echo "\n";
}
}
-
-if (!empty($g4['js_code'])) {
- foreach ($g4['js_code'] as $key=>$value) {
- echo "\n";
- }
-}
?>
diff --git a/js/common.js b/js/common.js
index 2e0a781f4..9c4b589ca 100644
--- a/js/common.js
+++ b/js/common.js
@@ -348,14 +348,6 @@ if (typeof(COMMON_JS) == 'undefined') { // 한번만 실행
win_open(g4_path+"/" + g4_bbs + "/formmail.php?mb_id="+mb_id+"&name="+encodeURIComponent(name)+"&email="+email, "winFormmail", "left=50, top=50, width=600, height=480, scrollbars=0");
}
- // 달력 창
- function win_calendar(fld, cur_date, delimiter, opt)
- {
- if (!opt)
- opt = "left=50, top=50, width=240, height=230, scrollbars=0,status=0,resizable=0";
- win_open(g4_path+"/" + g4_bbs + "/calendar.php?fld="+fld+"&cur_date="+cur_date+"&delimiter="+delimiter, "winCalendar", opt);
- }
-
// 설문조사 창
function win_poll(url)
{
diff --git a/js/wrest.js b/js/wrest.js
index 32e38169f..c909a6932 100644
--- a/js/wrest.js
+++ b/js/wrest.js
@@ -63,7 +63,8 @@ function wrestHangul(fld)
{
if (!wrestTrim(fld)) return;
- var pattern = /([^가-힣\x20])/i;
+ //var pattern = /([^가-힣\x20])/i;
+ var pattern = /([^가-힣\x20])/;
if (pattern.test(fld.value)) {
if (wrestFld == null) {
@@ -79,6 +80,7 @@ function wrestHangul2(fld)
if (!wrestTrim(fld)) return;
var pattern = /([^가-힣ㄱ-ㅎㅏ-ㅣ\x20])/i;
+ //var pattern = /([^가-힣ㄱ-ㅎㅏ-ㅣ\x20])/;
if (pattern.test(fld.value)) {
if (wrestFld == null) {
diff --git a/lib/common.lib.php b/lib/common.lib.php
index 5b49d828b..69d4299c0 100644
--- a/lib/common.lib.php
+++ b/lib/common.lib.php
@@ -565,8 +565,10 @@ function get_sql_search($search_ca_name, $search_field, $search_text, $search_op
// 검색필드를 구분자로 나눈다. 여기서는 +
$tmp = array();
$tmp = explode(",", trim($search_field));
- $field = explode("||", $tmp['0']);
- $not_comment = $tmp['1'];
+ $field = explode("||", $tmp[0]);
+ $not_comment = "";
+ if (!empty($tmp[1]))
+ $not_comment = $tmp[1];
$str .= "(";
for ($i=0; $i
\ No newline at end of file
diff --git a/plugin/captcha/captcha.lib.php b/plugin/captcha/captcha.lib.php
deleted file mode 100644
index 1b581251a..000000000
--- a/plugin/captcha/captcha.lib.php
+++ /dev/null
@@ -1,178 +0,0 @@
-255, 'g'=>255, 'b'=>255);
- // 글자색상 rgb
- var $text = array('r'=>0, 'g'=>0, 'b'=>0);
- // 그림자 글자색상 rgb
- var $shadow = array('r'=>128, 'g'=>128, 'b'=>128);
-
- var $captcha_length = 5;
-
- // 이미지 크기
- function set_box_size($width, $height) {
- $this->width = $width;
- $this->height = $height;
- }
-
- // 폰트 사이즈
- function set_size($size) {
- $this->size = $size;
- }
-
- // 폰트 기울기
- function set_angle($angle) {
- $this->angle = $angle;
- }
-
- // 폰트 위치
- function set_position($x, $y) {
- $this->x = $x;
- $this->y = $y;
- }
-
- function set_captcha_length($length)
- {
- $this->captcha_length = $length;
- }
-
- function set_back_color($r, $g, $b) {
- $this->back['r'] = $r;
- $this->back['g'] = $g;
- $this->back['b'] = $b;
- }
-
- function set_text_color($r, $g, $b) {
- $this->text['r'] = $r;
- $this->text['g'] = $g;
- $this->text['b'] = $b;
- }
-
- function set_shadow_color($r, $g, $b) {
- $this->shadow['r'] = $r;
- $this->shadow['g'] = $g;
- $this->shadow['b'] = $b;
- }
-
- function get_captcha_key()
- {
- $from = (int)('1'.str_repeat('0', $this->captcha_length - 1));
- $to = (int)(str_repeat('9', $this->captcha_length));
- return mt_rand($from, $to);
- }
-
- function run() {
-
- // The text to draw
- $captcha_key = $this->get_captcha_key();
-
- set_session('ss_captcha_key', $captcha_key);
- set_session('ss_captcha_cnt', 0);
-
- // Set the content-type
- header('Content-Type: image/gif');
- // Create the image
- $im = imagecreatetruecolor($this->width, $this->height);
-
- // Create some colors
- $white = imagecolorallocate($im, $this->back['r'], $this->back['g'], $this->back['b']);
- $grey = imagecolorallocate($im, $this->shadow['r'], $this->shadow['g'], $this->shadow['b']);
- $black = imagecolorallocate($im, $this->text['r'], $this->text['g'], $this->text['b']);
- imagefilledrectangle($im, 0, 0, $this->width, $this->height, $white);
-
- // Replace path by your own font path
- $fonts = Array();
- foreach (glob('fonts/*.ttf') as $filename) {
- $fonts[] = $filename;
- }
- $font = $fonts[mt_rand(0, count($fonts)-1)];
-
- $size = $this->size;
- $angle = $this->angle;
- $x = $this->x;
- $y = $this->y;
-
- // Add some shadow to the text
- imagettftext($im, $size, $angle, $x, $y, $grey, $font, $captcha_key);
- // Add the text
- imagettftext($im, $size, $angle, $x-1, $y-1, $black, $font, $captcha_key);
- if (mt_rand(0,1)) {
- imagettftext($im, $size, $angle, $x-2, $y-2, $white, $font, $captcha_key);
- } else if (mt_rand(0,1)) {
- imagettftext($im, $size, $angle, $x-2, $y-2, $grey, $font, $captcha_key);
- }
-
- // Using imagepng() results in clearer text compared with imagejpeg()
- imagegif($im);
- imagedestroy($im);
- }
-}
-
-/*
-사용법 :
-$captcha = new captcha();
-$captcha->set_captcha_length(mt_rand(4, 6));
-$captcha->set_position(mt_rand(0, 10), mt_rand(15, 20));
-$captcha->set_angle(mt_rand(-3, 3));
-$captcha->set_size(mt_rand(15, 16));
-$captcha->set_back_color(mt_rand(200,255), mt_rand(200,255), mt_rand(200,255));
-$captcha->set_text_color(mt_rand(0,100), mt_rand(0,100), mt_rand(0,100));
-$captcha->set_shadow_color(mt_rand(100,200), mt_rand(100,200), mt_rand(100,200));
-$captcha->run();
-*/
-
-// 캡챠이미지는 한개만 사용 가능함.
-function captcha_html($input_name, $captcha_id_suffix='')
-{
- global $g4;
-
- // 세션생성을 한후 다음페이지에서 해당 세션이 있을때만 올바른 캡챠코드인지 비교합니다.
- set_session('ss_captcha_use', true);
-
- $html = '';
- return $html;
-}
-
-
-function chk_captcha($input_name)
-{
- if (get_session('ss_captcha_use')) {
- $key = get_session('ss_captcha_key');
- if (!($key && $key == $_POST[$input_name])) {
- set_session('ss_captcha_key', '');
- return false;
- }
- }
- return true;
-}
-
-// captcha javascript code
-function captcha_js($element)
-{
- return "if (!check_captcha({$element})) { return false; }";
-}
-?>
diff --git a/plugin/captcha/get.php b/plugin/captcha/get.php
deleted file mode 100644
index a2afcedeb..000000000
--- a/plugin/captcha/get.php
+++ /dev/null
@@ -1,18 +0,0 @@
-= MAX_CAPTCHA_COUNT) {
- $_SESSION['ss_captcha_key'] = '';
- echo false;
-} else {
- if ($_POST['captcha_key'] == $_SESSION['ss_captcha_key']) {
- echo true;
- } else {
- $_SESSION['ss_captcha_cnt'] = $captcha_cnt + 1;
- echo false;
- }
-}
-?>
\ No newline at end of file
diff --git a/plugin/ckeditor/ckeditor.lib.php b/plugin/ckeditor/ckeditor.lib.php
deleted file mode 100644
index 5b00643e4..000000000
--- a/plugin/ckeditor/ckeditor.lib.php
+++ /dev/null
@@ -1,30 +0,0 @@
-$content\n";
- //$str .= "\n";
- return $str;
-}
-
-// textarea 로 값을 넘김
-function editor_getdata($id)
-{
- if (defined('_EDITOR_'))
- return "var {$id}_data = CKEDITOR.instances.{$id}.getData();\n";
- else
- return "";
-}
-
-// textarea 의 값이 비어 있는지 검사
-function editor_empty($id, $textarea_name="내용을")
-{
- if (defined('_EDITOR_'))
- return "if (!{$id}_data) { alert(\"$textarea_name 입력해 주십시오.\"); CKEDITOR.instances.{$id}.focus(); return false; }\n";
- else
- return "";
-}
-?>
\ No newline at end of file
diff --git a/skin/board/neo/list.skin.php b/skin/board/neo/list.skin.php
index c6cb90afc..0c5fc2671 100644
--- a/skin/board/neo/list.skin.php
+++ b/skin/board/neo/list.skin.php
@@ -27,10 +27,11 @@ if ($is_nogood) $colspan++;
-
+
+
@@ -159,18 +160,8 @@ for ($i=0; $i
if ($is_checkbox) { ?>
diff --git a/skin/board/neo/write.skin.php b/skin/board/neo/write.skin.php
index 0360f8e5b..004412cfa 100644
--- a/skin/board/neo/write.skin.php
+++ b/skin/board/neo/write.skin.php
@@ -2,12 +2,6 @@
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
?>
-
-
=$g4['title']?>
-
-
-
-
diff --git a/skin/member/basic/calendar.skin.php b/skin/member/basic/calendar.skin.php
deleted file mode 100644
index 418739d63..000000000
--- a/skin/member/basic/calendar.skin.php
+++ /dev/null
@@ -1,105 +0,0 @@
-
-if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가
-?>
-
-
-
-
diff --git a/skin/member/neo/calendar.skin.php b/skin/member/neo/calendar.skin.php
deleted file mode 100644
index 418739d63..000000000
--- a/skin/member/neo/calendar.skin.php
+++ /dev/null
@@ -1,105 +0,0 @@
-
-if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가
-?>
-
-
-
-
diff --git a/skin/member/neo/register_form.skin.php b/skin/member/neo/register_form.skin.php
index 6c2f5e569..9d04ddc68 100644
--- a/skin/member/neo/register_form.skin.php
+++ b/skin/member/neo/register_form.skin.php
@@ -41,7 +41,7 @@ var member_skin_path = "=$member_skin_path?>";
|
- =$readonly?> title="이름">
+ =$readonly?> title="이름">
if ($w=='') { echo "공백없이 한글만 입력하세요."; } ?>
|
@@ -50,7 +50,7 @@ var member_skin_path = "=$member_skin_path?>";
|
-
+
공백없이 한글,영문,숫자만 입력 가능 (한글2자, 영문4자 이상)
@@ -162,7 +162,7 @@ var member_skin_path = "=$member_skin_path?>";
| |
} ?>
- if (isset($member['mb_open_date']) && $member['mb_open_date'] <= date("Y-m-d", $g4['server_time'] - ($config['cf_open_modify'] * 86400)) || !$member['mb_open_date']) { // 정보공개 수정일이 지났다면 수정가능 ?>
+ if (isset($member['mb_open_date']) && $member['mb_open_date'] <= date("Y-m-d", $g4['server_time'] - ($config['cf_open_modify'] * 86400)) || empty($member['mb_open_date'])) { // 정보공개 수정일이 지났다면 수정가능 ?>