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)) { - + @@ -568,7 +568,7 @@ if (!preg_match("/([m|M])$/", $upload_max_filesize)) { - + 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 @@ - + @@ -52,10 +52,14 @@ for($i=0; $row=sql_fetch_array($result); $i++) { - + + + + +
포인트내역 목록포인트 사용내역 목록
일시
소계소계
보유포인트
-

보유 포인트

-
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 @@ 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 @@ = $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_comment_update.php b/bbs/write_comment_update.php index 39430f49d..3c0cef7e5 100644 --- a/bbs/write_comment_update.php +++ b/bbs/write_comment_update.php @@ -1,4 +1,5 @@ 50) { @include_once($board_skin_path.'/write_comment_update.head.skin.php'); -$g4['title'] = $wr_subject.'코멘트입력'; - $w = $_POST["w"]; -$wr_name = strip_tags($_POST["wr_name"]); -$wr_email = strip_tags($_POST["wr_email"]); +$wr_name = escape_trim($_POST['wr_name']); +$wr_email = ''; +if (!empty($_POST['wr_email'])) + $wr_email = escape_trim($_POST['wr_email']); // 비회원의 경우 이름이 누락되는 경우가 있음 -if (!$is_member) -{ - if (!trim($wr_name)) +if ($is_guest) { + if ($wr_name == '') alert('이름은 필히 입력하셔야 합니다.'); } -if ($w == "c" || $w == "cu") -{ - if ($member[mb_level] < $board[bo_comment_level]) +if ($w == "c" || $w == "cu") { + if ($member['mb_level'] < $board['bo_comment_level']) alert('코멘트를 쓸 권한이 없습니다.'); } else @@ -32,29 +31,14 @@ else // 세션의 시간 검사 // 4.00.15 - 코멘트 수정시 연속 게시물 등록 메시지로 인한 오류 수정 -if ($w == 'c' && $_SESSION["ss_datetime"] >= ($g4[server_time] - $config[cf_delay_sec]) && !$is_admin) +if ($w == 'c' && $_SESSION['ss_datetime'] >= ($g4['server_time'] - $config['cf_delay_sec']) && !$is_admin) alert('너무 빠른 시간내에 게시물을 연속해서 올릴 수 없습니다.'); -set_session("ss_datetime", $g4[server_time]); - -// 동일내용 연속 등록 불가 -$sql = " select MD5(CONCAT(wr_ip, wr_subject, wr_content)) as prev_md5 from {$write_table} "; -if ($w == 'cu') - $sql .= " where wr_id <> '{$comment_id}' "; -$sql .= " order by wr_id desc limit 1 "; -$row = sql_fetch($sql); -$curr_md5 = md5($_SERVER[REMOTE_ADDR].$wr_subject.$wr_content); -// 코멘트 수정의 경우에는 동일한 내용을 등록할 수 없는 오류 수정 -//if ($row[prev_md5] == $curr_md5 && !$is_admin) -if ($row[prev_md5] == $curr_md5 && $w != 'cu' && !$is_admin) - alert('동일한 내용을 연속해서 등록할 수 없습니다.'); +set_session('ss_datetime', $g4['server_time']); $wr = get_write($write_table, $wr_id); -if (!$wr[wr_id]) - alert('글이 존재하지 않습니다.'.PHP_EOL.PHP_EOL.'글이 삭제되었거나 이동하였을 수 있습니다.'); - -// 자동등록방지 검사 -//include_once ("./norobot_check.inc.php"); +if (empty($wr['wr_id'])) + alert("글이 존재하지 않습니다.\\n글이 삭제되었거나 이동하였을 수 있습니다."); if (!$is_member) { if ($w=='' || $w=='c') { 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 @@ 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/css/def.css b/css/def.css index 4cd414664..8c748fd45 100644 --- a/css/def.css +++ b/css/def.css @@ -2,7 +2,7 @@ /* 초기화 */ html {overflow-y:scroll} -body {margin:0;padding:0;background:#fff;font-size:1em} +body {margin:0;padding:0;background:#fff;font-size:1em} html, body, h1, h2, h3, h4, h5, h6 {margin:0 0 0;padding:0} h1, h2, h3, h4, h5, h6 {font-family:"verdana","dotum"} article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section {display:block} @@ -23,12 +23,13 @@ hr {display:none} /* 기본테이블 */ table {margin-bottom:20px;width:100%;border-collapse:collapse;border-spacing:0} -tfoot td {background:#f9f9f5;font-weight:bold;text-align:center} +tfoot th {border-top:1px solid #c9c9c9;border-bottom:1px solid #c9c9c9} +tfoot td {border-color:#c9c9c9;background:#f9f9f5;font-weight:bold;text-align:center} caption {padding:0 0 10px;text-align:left} .caption_desc {font-size:0.75em} th {padding:12px 0 8px;border-top:3px solid #666;border-bottom:1px solid #a9a9a9;font-size:0.75em} th input {vertical-align:top} /* middle 로 하면 게시판 읽기에서 목록 사용시 체크박스 라인 깨짐 */ -td {padding:10px 0;border-top:1px solid #d9d9d9;border-bottom:1px solid #d9d9d9;font-size:0.75em} +td {padding:10px 0;border-top:1px solid #e9e9e9;border-bottom:1px solid #e9e9e9;font-size:0.75em} .empty_table {padding:50px 0;text-align:center} /* 필드셋 */ @@ -73,33 +74,33 @@ a {color:#000;text-decoration:none} #header h1 {margin:0;height:0;overflow:hidden} /* 로고 */ -#logo {background:#333;text-align:center} -#logo a {display:inline-block;padding:20px 30px} +#logo {border-bottom:3px solid #888;background:#333;text-align:center} +#logo a {display:inline-block;padding:55px 30px 20px} /* 상단메뉴 */ -#tnb {padding-left:30px;border-bottom:1px solid #ccc;background:#ebebe9;zoom:1} +#tnb {position:absolute;top:0;left:0;width:100%;border-bottom:1px solid #bbb;background:#fff;zoom:1} #tnb:after {display:block;visibility:hidden;clear:both;content:""} -#tnb li {float:left;margin-left:-1px} -#tnb a {display:inline-block;padding:0 20px;height:35px;border-right:1px solid #ddd;border-left:1px solid #ddd;color:#595959;font-family:"dotum";font-size:0.75em;font-weight:bold;text-decoration:none;line-height:3em} +#tnb li {float:left} +#tnb a {display:inline-block;padding:0 10px;height:30px;border-right:1px solid #eee;font-family:"dotum";font-size:0.7em;text-decoration:none;line-height:2.7em} #tnb a:hover, #tnb a:focus {background:#f9f9f5} /* 전체검색 */ -#hdsch {z-index:3;position:absolute;top:77px;right:0;margin:0;padding:0;width:219px;border:1px solid #ccc;border-top:0;border-right:0;background:#fff} +#hdsch {z-index:3;position:absolute;top:0;right:0;margin:0;padding:0;width:220px;border:0;border-left:1px solid #eee;background:#fff} #hdsch legend {position:absolute;padding:0;width:0;height:0;border:0;overflow:hidden} -#hdsch_stx {margin:5px 0 5px 5px;padding:0 5px;height:25px;width:176px;border:0;background:transparent;font-size:1em;line-height:1.4em} +#hdsch_stx {margin:5px 0 5px 5px;padding:0 5px;height:20px;width:170px;border:0;background:transparent;font-size:1em;line-height:1.4em} #hdsch_stx:focus {background:#464649;color:#fff} #hdsch_submit {position:relative;margin-left:-5px} /* 사이드 네비게이션: 아웃로그인, 설문조사 등 */ -#snb {z-index:3;position:absolute;top:113px;right:0;font-family:"verdana","dotum"} +#snb {z-index:3;position:absolute;top:116px;right:0;font-family:"verdana","dotum"} #snb ul {margin:0;padding:0;list-style:none} /* 아웃로그인 */ -.outlogin {position:relative;border-bottom:1px solid #dedace;border-left:1px solid #ddd;background:#f9faf5;line-height:1em} +.outlogin {position:relative;border-bottom:1px solid #bbb;border-left:1px solid #bbb;background:#f0f3f6;line-height:1em} .outlogin h2 {margin:0;padding:0;height:0;overflow:hidden} -/* 로그인 전 */ -#ol_before {padding:15px 10px 0;width:199px;background:#f9f9f5;font-size:0.7em} +/* 아웃로그인 전 */ +#ol_before {padding:15px 10px 0;width:199px;font-size:0.7em} #ol_before fieldset {margin:0;padding:0;border:0;background:transparent} #ol_before legend {position:absolute;padding:0;width:0;height:0;border:0;background:transparent;overflow:hidden} #ol_before input:focus {background:#333;color:#fff} @@ -114,24 +115,33 @@ a {color:#000;text-decoration:none} #ol_before li {float:left;margin-right:5px} #ol_before a {color:#696969;letter-spacing:-0.1em} #ol_submit {position:absolute;top:42px;right:12px;width:60px;height:24px;border:1px solid #b7b7b7;background:#fff;font-size:1em;font-weight:bold;letter-spacing:-0.1em;line-height:2em} -/* 로그인 후 */ -#ol_after {padding-top:15px;width:219px;background:#f9f9f5;color:#000;font-size:0.75em} -#ol_after header {padding:0 0 13px;border-bottom:1px solid #dedace;text-align:center} -#ol_after ul {padding:5px 0;background:#fff} -#ol_after li a {display:block;position:relative;padding:7px 20px 7px 19px} -#ol_after li span {position:absolute;top:7px;right:19px;color:#ff3061} -#ol_after footer {padding:7px 0 10px;border-top:1px solid #dedace;text-align:center} -#ol_after footer a {display:inline-block;padding:0 10px} +/* 아웃로그인 후 */ +#ol_after {width:219px;color:#000;font-size:0.75em} +#ol_after_hd {padding:15px 0 13px;border-bottom:1px solid #efeada;text-align:center} +#ol_after_hd a {color:#ff3061} +#ol_after ul {margin:0;padding:0;zoom:1} +#ol_after ul:after {display:block;visibility:hidden;clear:both;content:""} +#ol_after li {float:left} +#ol_after_rec {background:#fff} +#ol_after_rec a {display:inline-block;position:relative;width:60px;height:60px;vertical-align:top} +#ol_after_rec span {position:absolute;top:0;left:0;width:100%;height:100%;background:#fff} +#ol_after_rec strong {position:absolute;top:35px;left:0;width:100%;color:#777;text-align:center} +#ol_after_rec #ol_after_pt {width:97px;border-right:1px solid #efeada;border-left:1px solid #efeada} +#ol_after_ft {border-top:1px solid #efeada;text-align:center} +#ol_after_ft a {display:inline-block;padding:7px 0 !important;text-align:center} +#ol_after_info {width:109px;border-right:1px solid #efeada} +#ol_after_logout {width:109px} /* 설문조사 */ -#poll {width:219px;border-bottom:1px solid #dedace;border-left:1px solid #ddd;background:#fff;font-size:0.75em} -#poll header {padding:10px 10px 1px;border-bottom:1px solid #efeada;background:#f9f9f5} +#poll {width:219px;border-bottom:1px solid #bbb;border-left:1px solid #bbb;background:#fff;font-size:0.75em} +#poll header {padding:10px 10px 1px;border-bottom:1px solid #efeada;background:#f0f3f6} +#poll header a {color:#ff3061} #poll h2 {display:inline-block;margin:0;font-size:1em} #poll p {padding:0} #poll ul {margin:10px} #poll li {margin:7px 0} -#poll footer {padding:10px;border-top:1px solid #efeada;text-align:center} -#poll footer input {padding:0 15px;height:24px;border:0;background:#ff3061;color:#fff;font-size:0.9em;letter-spacing:-0.1em;vertical-align:top} +#poll footer {padding:10px 10px 15px;text-align:center} +#poll footer input {padding:0 15px;height:24px;border:0;background:#494936;color:#fff;font-size:0.9em;letter-spacing:-0.1em;vertical-align:top} #poll footer a {display:inline-block;padding:0 5px;height:22px;border:1px solid #b7b7b7;background:#fff;font-size:0.9em;vertical-align:top;letter-spacing:-0.1em;line-height:2.1em} /* 설문조사 결과 (새창) */ #poll_result section {margin:0 auto 20px;padding:10px;width:90%} @@ -159,13 +169,13 @@ a {color:#000;text-decoration:none} #poll_result_another a {display:block;padding:5px 0} /* 레이아웃 중간 */ -#wrapper {z-index:2;clear:both;position:relative;margin:-2px 0 0 0;padding:15px 250px 30px 30px;min-height:520px;height:auto !important;height:520px;background:url("../img/wrapper_bg.jpg") top right repeat-y} -#wrapper h1 {margin-top:30px} +#wrapper {z-index:2;clear:both;position:relative;margin:-2px 0 0 0;padding:1px 240px 30px 20px;min-height:520px;height:auto !important;height:520px;background:url("../img/wrapper_bg.jpg") top right repeat-y} +#wrapper h1 {margin-top:20px} /* 레이아웃 하단 */ -#footer {z-index:1;position:relative;padding:15px 0 20px;border-top:1px solid #ddd;color:#595959;font-size:0.75em} +#footer {z-index:1;position:relative;padding:15px 0 20px;border-top:1px solid #bbb;color:#595959;font-size:0.75em} #footer h1 {margin:0;height:0;overflow:hidden} -#footer section {margin-left:30px} +#footer section {margin-left:20px} #footer h2 {margin:0;width:100px;color:#000;font-size:1em} #footer a {color:#595959} @@ -193,9 +203,12 @@ a {color:#000;text-decoration:none} #popular li {float:left;margin-right:20px} /* 카피라이트 */ -#footer p {position:absolute;top:25px;right:30px} +#footer p {padding-left:20px} /* ##################################################################### 스킨 및 컨텐츠 */ +/* 공통 */ +.cnt_cmt {display:inline-block;margin-left:10px;color:#ff3061} + /* 버튼 */ .btn01 {display:inline-block;padding:0 10px;height:24px;border:1px solid #ff5e1c;background:#ff3061;color:#fff;font-size:0.75em;text-decoration:none;line-height:2.2em} .btn01:hover, @@ -206,11 +219,17 @@ a {color:#000;text-decoration:none} .btn03 {display:inline-block;padding:0 10px;height:24px;border:1px solid #555;background:#555;color:#fff;font-size:0.75em;text-decoration:none;line-height:2.2em} .btn02:hover, .btn02:focus {} +.btn_confirm {text-align:center} /* 서식단계 진행 */ +.btn_submit {padding:0 15px;height:30px;border:0;background:#ff3061;color:#fff;font-size:0.9em;letter-spacing:-0.1em;vertical-align:top} +.btn_cancel {display:inline-block;padding:0 10px;height:28px;border:1px solid #ccc;background:#fafafa;color:#000;font-size:0.75em;text-decoration:none;line-height:2.5em} +.btn_window {padding:10px 5% 20px;background:#494949;text-align:right} /* 새창용 */ +.btn_window a {display:inline-block;padding:0 10px;height:28px;border:1px solid #ccc;background:#fafafa;color:#000;font-size:0.75em;text-decoration:none;line-height:2.5em} + /* 폼 테이블 */ .frm_tbl {} -.frm_tbl caption {padding-top:10px;border-bottom:1px solid #aaa;font-size:0.75em;font-weight:bold} -.frm_tbl th {padding-left:10px;width:160px;border-top:1px solid #d9d9d9;border-bottom:1px solid #d9d9d9;background:#f9f9f9;text-align:left} +.frm_tbl caption {padding-top:10px;color:#ff3061;font-size:0.75em;font-weight:bold} +.frm_tbl th {padding-left:10px;width:160px;border-top:1px solid #e9e9e9;border-bottom:1px solid #e9e9e9;text-align:left} .frm_tbl td {padding:7px 10px} .frm_tbl textarea, .frm_tbl .frm_input, @@ -279,7 +298,7 @@ a {color:#000;text-decoration:none} .btn_bo_user li {float:left;margin-left:5px} .btn_bo_adm {float:left} .btn_bo_adm li {float:left;margin-right:5px} -#bo_sch {text-align:center} +#bo_sch {padding:0;border:0;text-align:center} #bo_sch legend {margin:0;padding:0;width:0;height:0;border:0;overflow:hidden} #bo_sch form {display:inline-block} #bo_sch .fieldset_submit {border:1px solid #ccc;background:#fafafa;color:#000} @@ -287,6 +306,7 @@ a {color:#000;text-decoration:none} #bo_list td {line-height:1em} #bo_list img {vertical-align:top} .bo_cate_link {display:inline-block;margin:0 10px 0 0;font-weight:bold;text-decoration:none} +.bo_current {color:#ff3061} .td_subject img {margin-left:5px} /* 게시판 쓰기 */ @@ -362,9 +382,6 @@ a {color:#000;text-decoration:none} #bo_vc_warea textarea {width:100%;height:50px} #bo_vc_warea .bo_vc_submit {position:absolute;top:0;right:-90px !important;right:10px;width:75px;height:57px;border:1px solid #666;background:#555;color:#fff;letter-spacing:-0.1em} - -#bo_sch {display:hidden;visibility:hidden;height:0;overflow:hidden} - /* 우편번호 검색 */ #post_num dl {margin:0 auto 10px;padding:0;width:90%} #post_num dt {margin-bottom:15px} @@ -374,12 +391,13 @@ a {color:#000;text-decoration:none} #post_num p {margin:0 auto 30px;width:90%} /* 회원가입 약관 */ -#fregister {padding:20px;background:#f5f5f2} -#fregister h2 {padding-top:10px;text-align:center} -#fregister_term {float:left;width:49%} -#fregister_private {float:right;width:49%} -#fregister textarea {display:block;margin-bottom:10px;width:99%;height:200px;border:1px solid #ddd} -#fregister label {display:inline-block;margin-right:10px} +#fregister {} +#fregister section {margin-bottom:20px} +#fregister h2 {font-size:0.875em} +#fregister textarea {display:block;margin-bottom:10px;padding:5px;width:98%;height:150px;border:1px solid #ddd;background:#f7f7f7} +#fregister textarea:focus {background:#333;color:#fff} +.fregister_agree {text-align:right} +.fregister_agree label {display:inline-block;margin-right:10px;font-size:0.75em;vertical-align:middle} /* 회원 패스워드 확인 */ #member_confirm {padding:150px 0;background:#fcfcfc;text-align:center} @@ -392,22 +410,26 @@ a {color:#000;text-decoration:none} #password_confirm legend {margin:0;padding:0;width:0;height:0;border:0;overflow:hidden} #password_confirm p {margin-bottom:20px;font-size:0.75em} +/* 최근게시물 */ +#new_search {margin:0 0 10px;padding:0;border:0;text-align:right} +#new_search legend {margin:0;padding:0;width:0;height:0;border:0;overflow:hidden} + /* 새창 공통 */ -.new_win h1 {padding:10px 30px;background:#393936;color:#fff;font-size:1.2em} +.new_win h1 {padding:20px 30px 10px;background:#494949;color:#fff;font-size:1em} .new_win h1 a {color:#fff} .new_win article h1 {background:transparent;color:#000} .new_win h2 {font-size:1em} .new_win table {margin:0 auto 30px;width:90%} .new_win fieldset {margin:0 auto 30px;width:90%} -.new_win_ul {margin:-30px 0 20px 0;padding:0 0 0 30px;border-bottom:1px solid #ddd;background:#fff;font-size:0.75em;list-style:none;zoom:1} +.new_win_ul {margin:-20px 0 20px 0;padding:0 0 0 30px;border-bottom:1px solid #ddd;background:#fff;font-size:0.75em;list-style:none;zoom:1} .new_win_ul:after {display:block;visibility:hidden;clear:both;content:""} .new_win_ul li {float:left;margin-left:-1px} -.new_win_ul a {display:block;padding:10px;border-right:1px solid #eee;border-left:1px solid #eee;color:#595959;font-family:"dotum";font-size:0.875em;font-weight:bold} +.new_win_ul a {display:block;padding:10px;border-right:1px solid #eee;border-left:1px solid #eee;color:#595959;font-family:"dotum";font-size:1em;font-weight:bold} .new_win_ul a:hover, .new_win_ul a:focus {background:#faf9f5} /* 포인트 내역 */ -#point p {text-align:center} +#point table {margin-bottom:0} #point .td_datetime {width:150px} /* 쪽지 */ @@ -434,10 +456,10 @@ a {color:#000;text-decoration:none} #memo_write textarea {height:100px} /* pagination */ -.pg {clear:both;margin:0 0 10px;padding-top:20px;font-size:0.75em;text-align:center} +.pg {clear:both;margin:0 0 20px;padding-top:20px;font-size:0.75em;text-align:center} .pg_wrap {display:inline-block;border:1px solid #ddd;letter-spacing:-4px} .pg_page, .pg_current {display:inline-block;padding:0 12px;height:30px;background:#fff;color:#000;letter-spacing:0;line-height:2.6em;vertical-align:middle} .pg_page {background:#f9f9f9;text-decoration:none} .pg_start, .pg_prev {border-right:1px solid #ddd} .pg_end, .pg_next {border-left:1px solid #ddd} -.pg_current {background:#595959;color:#fff} +.pg_current {background:#333;color:#fff} 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 @@ - $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 @@ $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 @@ +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 = '
'; + $html .= '스팸방지'; + $html .= ''; + $html .= '음성듣기'; + $html .= ''; + $html .= ''; + $html .= '

스팸방지 숫자를 순서대로 입력하세요.

'; + $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.php b/head.php index fbfcaa6ea..03137414b 100644 --- a/head.php +++ b/head.php @@ -18,16 +18,16 @@ include_once($g4['path'].'/lib/popular.lib.php');

diff --git a/head.sub.php b/head.sub.php index fc3584c1e..380996e3a 100644 --- a/head.sub.php +++ b/head.sub.php @@ -50,10 +50,13 @@ header("Pragma: no-cache"); // HTTP/1.0 <?=$g4['title']?> -"> +"> -"> +"> + - - - 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"; + } } ?> - + + + + $value) { echo "\n"; } } - -if (!empty($g4['js_code'])) { - foreach ($g4['js_code'] as $key=>$value) { - echo "\n"; - } -} ?> diff --git a/img/btn_search.jpg b/img/btn_search.jpg index 81c414880..3e40e6b0f 100644 Binary files a/img/btn_search.jpg and b/img/btn_search.jpg differ diff --git a/img/wrapper_bg.jpg b/img/wrapper_bg.jpg index 3208f357b..18494a557 100644 Binary files a/img/wrapper_bg.jpg and b/img/wrapper_bg.jpg differ 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 35b376286..69d4299c0 100644 --- a/lib/common.lib.php +++ b/lib/common.lib.php @@ -306,7 +306,7 @@ function get_list($write_row, $board, $skin_path, $subject_len=40) $list['comment_cnt'] = ''; if ($list['wr_comment']) - $list['comment_cnt'] = '('.$list['wr_comment'].')'; + $list['comment_cnt'] = "댓글".$list['wr_comment'].""; // 당일인 경우 시간으로 표시함 $list['datetime'] = substr($list['wr_datetime'],0,10); @@ -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 = '
'; - $html .= '자동등록방지'; - //$html .= '자동등록방지 이미지'; - $html .= ''; - $html .= '새로고침'; - $html .= '음성듣기'; - $html .= ''; - $html .= ''; - $html .= '

이미지의 숫자를 순서대로 입력하세요. 새로고침을 클릭하시면 새로운 숫자가 나타납니다.

'; - $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 d4bd20a98..0c5fc2671 100644 --- a/skin/board/neo/list.skin.php +++ b/skin/board/neo/list.skin.php @@ -11,7 +11,30 @@ if ($is_nogood) $colspan++;

-
+
+ 게시물 검색 + + + + + + + + + + +