From 25bd7430fc3b30b3a0a8e80d6ef5e24223eb0e5b Mon Sep 17 00:00:00 2001 From: thisgun Date: Thu, 6 Sep 2018 17:18:45 +0900 Subject: [PATCH 01/90] =?UTF-8?q?=EC=9D=BC=EB=B6=80=20=EC=BD=94=EB=93=9C?= =?UTF-8?q?=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- common.php | 6 +- lib/Hook/hook.class.php | 327 ++++++++++++++++++++++++++ lib/Hook/hook.extends.class.php | 161 +++++++++++++ lib/URI/uri.class.php | 7 + lib/common.lib.php | 4 +- lib/hook.lib.php | 125 ++++++++++ lib/uri.lib.php | 71 ++++++ skin/latest/basic/latest.skin.php | 4 +- skin/latest/notice/latest.skin.php | 2 +- skin/latest/pic_basic/latest.skin.php | 4 +- 10 files changed, 703 insertions(+), 8 deletions(-) create mode 100644 lib/Hook/hook.class.php create mode 100644 lib/Hook/hook.extends.class.php create mode 100644 lib/URI/uri.class.php create mode 100644 lib/hook.lib.php create mode 100644 lib/uri.lib.php diff --git a/common.php b/common.php index 5ba0419cc..f8ddc31c1 100644 --- a/common.php +++ b/common.php @@ -123,6 +123,8 @@ $board = array(); $group = array(); $g5 = array(); +include_once(G5_LIB_PATH.'/hook.lib.php'); // hook 함수 파일 +include_once(G5_LIB_PATH.'/uri.lib.php'); // URL 함수 파일 //============================================================================== // 공통 @@ -637,5 +639,7 @@ header('Cache-Control: no-store, no-cache, must-revalidate'); // HTTP/1.1 header('Cache-Control: pre-check=0, post-check=0, max-age=0'); // HTTP/1.1 header('Pragma: no-cache'); // HTTP/1.0 +start_event('common_header'); + $html_process = new html_process(); -?> \ No newline at end of file +?> diff --git a/lib/Hook/hook.class.php b/lib/Hook/hook.class.php new file mode 100644 index 000000000..70452b041 --- /dev/null +++ b/lib/Hook/hook.class.php @@ -0,0 +1,327 @@ + + * @copyright 2017 (c) Josantonius - PHP-Hook + * @license https://opensource.org/licenses/MIT - The MIT License (MIT) + * @link https://github.com/Josantonius/PHP-Hook + * @since 1.0.0 + */ + +/** + * Hook handler. + * + * @since 1.0.0 + */ +class Hook +{ + /** + * Instance id. + * + * @since 1.0.5 + * + * @var int + */ + protected static $id = '0'; + + /** + * Callbacks. + * + * @since 1.0.3 + * + * @var array + */ + protected $callbacks = array(); + + /** + * Number of actions executed. + * + * @since 1.0.3 + * + * @var array + */ + protected $actions = array('count' => 0); + + /** + * Current action hook. + * + * @since 1.0.3 + * + * @var string|false + */ + protected static $current = false; + + /** + * Method to use the singleton pattern and just create an instance. + * + * @since 1.0.0 + * + * @var string + */ + protected $singleton = 'getInstance'; + + /** + * Instances. + * + * @since 1.0.0 + * + * @var array + */ + private static $instances = array(); + + /** + * Get instance. + * + * @since 1.0.0 + * + * @param int $id + * + * @return object → instance + */ + // 이부분 수정 + /* + public static function getInstance($id = '0') + { + self::$id = $id; + if (isset(self::$instances[self::$id])) { + return self::$instances[self::$id]; + } + + return self::$instances[self::$id] = new self; + } + */ + + public static function getInstance($id = '0') + { + self::$id = $id; + if (isset(self::$instances[self::$id])) { + return self::$instances[self::$id]; + } + + $calledClass = get_called_class(); + + return self::$instances[self::$id] = new $calledClass; + } + + /** + * Attach custom function to action hook. + * + * @since 1.0.3 + * + * @param string $tag → action hook name + * @param callable $func → function to attach to action hook + * @param int $priority → order in which the action is executed + * @param int $args → number of arguments accepted + * + * @return bool + */ + public static function addAction($tag, $func, $priority = 8, $args = 0) + { + $that = self::getInstance(self::$id); + + $that->callbacks[$tag][$priority][] = array( + 'function' => $func, + 'arguments' => $args, + ); + + return true; + } + + /** + * Add actions hooks from array. + * + * @since 1.0.3 + * + * @param array $actions + * + * @return bool + */ + public static function addActions($actions) + { + foreach ($actions as $arguments) { + call_user_func_array(array(__CLASS__, 'addAction'), $arguments); + } + + return true; + } + + /** + * Run all hooks attached to the hook. + * + * By default it will look for getInstance method to use singleton + * pattern and create a single instance of the class. If it does not + * exist it will create a new object. + * + * @see setSingletonName() for change the method name. + * + * @since 1.0.3 + * + * @param string $tag → action hook name + * @param mixed $args → optional arguments + * @param bool $remove → delete hook after executing actions + * + * @return returns the output of the last action or false + */ + public static function doAction($tag, $args = array(), $remove = true) + { + $that = self::getInstance(self::$id); + + self::$current = $tag; + + $that->actions['count']++; + + if (! array_key_exists($tag, $that->actions)) { + $that->actions[$tag] = 0; + } + + $that->actions[$tag]++; + $actions = $that->getActions($tag, $remove); + //asort($actions); + // 이 부분 수정 priority 로 정렬 하려면 ksort를 써야함 + ksort($actions); + + foreach ($actions as $priority) { + foreach ($priority as $action) { + $action = $that->runAction($action, $args); + } + } + + self::$current = false; + + return (isset($action)) ? $action : false; + } + + /** + * Set method name for use singleton pattern. + * + * @since 1.0.0 + * + * @param string $method → singleton method name + */ + public static function setSingletonName($method) + { + $that = self::getInstance(self::$id); + + $that->singleton = $method; + } + + /** + * Returns the current action hook. + * + * @since 1.0.3 + * + * @return string|false → current action hook + */ + public static function current() + { + return self::$current; + } + + /** + * Check if there is a certain action hook. + * + * @since 1.0.7 + * + * @param string $tag → action hook name + * + * @return bool + */ + public static function isAction($tag) + { + $that = self::getInstance(self::$id); + + return isset($that->callbacks[$tag]); + } + + /** + * Run action hook. + * + * @since 1.0.3 + * + * @param string $action → action hook + * @param int $args → arguments + * + * @return callable|false → returns the calling function + */ + protected function runAction($action, $args) + { + $function = $action['function']; + $argsNumber = $action['arguments']; + + $class = (isset($function[0])) ? $function[0] : false; + $method = (isset($function[1])) ? $function[1] : false; + + $args = $this->getArguments($argsNumber, $args); + + if (! ($class && $method) && function_exists($function)) { + return call_user_func($function, $args); + } elseif ($obj = call_user_func(array($class, $this->singleton))) { + if ($obj !== false) { + return call_user_func_array(array($obj, $method), $args); + } + } elseif (class_exists($class)) { + $instance = new $class; + + return call_user_func_array(array($instance, $method), $args); + } + + return null; + } + + /** + * Get actions for hook + * + * @since 1.0.3 + * + * @param string $tag → action hook name + * @param bool $remove → delete hook after executing actions + * + * @return object|false → returns the calling function + */ + protected function getActions($tag, $remove) + { + if (isset($this->callbacks[$tag])) { + $actions = $this->callbacks[$tag]; + if ($remove) { + unset($this->callbacks[$tag]); + } + } + + return (isset($actions)) ? $actions : array(); + } + + /** + * Get arguments for action. + * + * @since 1.0.3 + * + * @param int $argsNumber → arguments number + * @param mixed $arguments → arguments + * + * @return array → arguments + */ + protected function getArguments($argsNumber, $arguments) + { + if ($argsNumber == 1 && is_string($arguments)) { + return array($arguments); + } elseif ($argsNumber === count($arguments)) { + return $arguments; + } + + for ($i = 0; $i < $argsNumber; $i++) { + if (array_key_exists($i, $arguments)) { + $args[] = $arguments[$i]; + continue; + } + + return $args; + } + + return array(); + } +} + +?> \ No newline at end of file diff --git a/lib/Hook/hook.extends.class.php b/lib/Hook/hook.extends.class.php new file mode 100644 index 000000000..fd8b7cb82 --- /dev/null +++ b/lib/Hook/hook.extends.class.php @@ -0,0 +1,161 @@ + 0); + + protected $callback_filters = array(); + + protected static $current_filter = false; + + protected function runAction($action, $args) + { + $function = $action['function']; + $argsNumber = $action['arguments']; + + $class = (is_array($function) && isset($function[0])) ? $function[0] : false; + $method = (is_array($function) && isset($function[1])) ? $function[1] : false; + + $args = $this->getArguments($argsNumber, $args); + + if (! ($class && $method) && function_exists($function)) { + return call_user_func_array($function, $args); + } elseif ($obj = call_user_func(array($class, $this->singleton))) { + if ($obj !== false) { + return call_user_func_array(array($obj, $method), $args); + } + } elseif (class_exists($class)) { + $instance = new $class; + + return call_user_func_array(array($instance, $method), $args); + } + } + + protected function getFilters($tag, $remove) + { + if (isset($this->callback_filters[$tag])) { + $filters = $this->callback_filters[$tag]; + if ($remove) { + unset($this->callback_filters[$tag]); + } + } + + return (isset($filters)) ? $filters : array(); + } + + public static function get_properties($type, $is_callback=false){ + + $that = self::getInstance(self::$id); + + if( $type === 'event' ){ + return $is_callback ? $that->callbacks : $that->actions; + } + + return $is_callback ? $that->callback_filters : $that->filters; + } + + public static function addFilter($tag, $func, $priority = 8, $args = 0) + { + $that = self::getInstance(self::$id); + + $that->callback_filters[$tag][$priority][] = array( + 'function' => $func, + 'arguments' => $args, + ); + + return true; + } + + public static function apply_filters($tag, $args = array(), $remove = true) + { + $that = self::getInstance(self::$id); + + self::$current_filter = $tag; + + $that->filters['count']++; + + if (! array_key_exists($tag, $that->filters)) { + $that->filters[$tag] = 0; + } + + $that->filters[$tag]++; + $filters = $that->getFilters($tag, $remove); + ksort($filters); + + $value = $args[0]; + + foreach ($filters as $priority) { + foreach ($priority as $filter) { + $replace = $that->runAction($filter, $args); + + if( ! is_null($replace) ) { + $value = $replace; + } + } + } + + self::$current_filter = false; + + return $value; + } + + protected function getArguments($argsNumber, $arguments) + { + if ($argsNumber == 1 && is_string($arguments)) { + return array($arguments); + } elseif ($argsNumber === count($arguments)) { + return $arguments; + } + + $args = array(); + + for ($i = 0; $i < $argsNumber; $i++) { + if (is_array($arguments) && array_key_exists($i, $arguments)) { + $args[] = $arguments[$i]; + } + } + + return $args; + } + + public static function remove_filter($tag, $func, $priority) + { + $that = self::getInstance(self::$id); + + $is_remove = false; + + if (isset($that->callback_filters[$tag]) && isset($that->callback_filters[$tag][$priority]) ) { + + $found_key = array_search($func, array_column($that->callback_filters[$tag][$priority], 'function')); + + if( $found_key !== false ){ + unset($that->callback_filters[$tag][$priority][$found_key]); + } + } + + return $is_remove; + } + + public static function remove_action($tag, $func, $priority) + { + $that = self::getInstance(self::$id); + + $is_remove = false; + + if (isset($that->callbacks[$tag]) && isset($that->callbacks[$tag][$priority]) ) { + + $found_key = array_search($func, array_column($that->callbacks[$tag][$priority], 'function')); + + if( $found_key !== false ){ + unset($that->callbacks[$tag][$priority][$found_key]); + } + } + + return $is_remove; + } +} + +// end Hook Class + +?> \ No newline at end of file diff --git a/lib/URI/uri.class.php b/lib/URI/uri.class.php new file mode 100644 index 000000000..2f650e45b --- /dev/null +++ b/lib/URI/uri.class.php @@ -0,0 +1,7 @@ + \ No newline at end of file diff --git a/lib/common.lib.php b/lib/common.lib.php index 963701e47..ba5fd126e 100644 --- a/lib/common.lib.php +++ b/lib/common.lib.php @@ -405,9 +405,9 @@ function get_list($write_row, $board, $skin_url, $subject_len=40) $list['icon_link'] = ' '; // 분류명 링크 - $list['ca_name_href'] = G5_BBS_URL.'/board.php?bo_table='.$board['bo_table'].'&sca='.urlencode($list['ca_name']); + $list['ca_name_href'] = get_pretty_url($board['bo_table'], '', 'sca='.urlencode($list['ca_name'])); - $list['href'] = G5_BBS_URL.'/board.php?bo_table='.$board['bo_table'].'&wr_id='.$list['wr_id'].$qstr; + $list['href'] = get_pretty_url($board['bo_table'], $list['wr_id'], $qstr); $list['comment_href'] = $list['href']; $list['icon_new'] = ''; diff --git a/lib/hook.lib.php b/lib/hook.lib.php new file mode 100644 index 000000000..3739fbcc3 --- /dev/null +++ b/lib/hook.lib.php @@ -0,0 +1,125 @@ + \ No newline at end of file diff --git a/lib/uri.lib.php b/lib/uri.lib.php new file mode 100644 index 000000000..ec02dad09 --- /dev/null +++ b/lib/uri.lib.php @@ -0,0 +1,71 @@ + \ No newline at end of file diff --git a/skin/latest/basic/latest.skin.php b/skin/latest/basic/latest.skin.php index 1c1a60698..2671779af 100644 --- a/skin/latest/basic/latest.skin.php +++ b/skin/latest/basic/latest.skin.php @@ -7,7 +7,7 @@ add_javascript('', 10); ?>
-

+

- 더보기 + 더보기
diff --git a/skin/latest/notice/latest.skin.php b/skin/latest/notice/latest.skin.php index 5091d3178..d994b10f3 100644 --- a/skin/latest/notice/latest.skin.php +++ b/skin/latest/notice/latest.skin.php @@ -7,7 +7,7 @@ add_javascript('', 10); ?>
-

+

@@ -70,12 +74,12 @@ RewriteRule ^([0-9a-zA-Z_]+)/([0-9]+)$ bbs/board.php?bo_table=$1&wr_id=$2&rewri
 
 if (!-e $request_filename){
-    rewrite ^/g54/rss/([0-9a-zA-Z_]+)$ /g54/bbs/rss.php?bo_table=$1 break;
-    rewrite ^/g54/([0-9a-zA-Z_]+)$ /g54/bbs/board.php?bo_table=$1&rewrite=1 break;
-    rewrite ^/g54/([0-9a-zA-Z_]+)/([^/]+)/$ /g54/bbs/board.php?bo_table=$1&wr_seo_title=$2&rewrite=1 break;
-    rewrite ^/g54/([0-9a-zA-Z_]+)/write$ /g54/bbs/write.php?bo_table=$1&rewrite=1 break;
-    rewrite ^/g54/([0-9a-zA-Z_]+)/p([0-9]+)$ /g54/bbs/board.php?bo_table=$1&page=$2 break;
-    rewrite ^/g54/([0-9a-zA-Z_]+)/([0-9]+)$ /g54/bbs/board.php?bo_table=$1&wr_id=$2&rewrite=1 break;
+    rewrite ^rss/([0-9a-zA-Z_]+)$ /g54/bbs/rss.php?bo_table=$1 break;
+    rewrite ^([0-9a-zA-Z_]+)$ /g54/bbs/board.php?bo_table=$1&rewrite=1 break;
+    rewrite ^([0-9a-zA-Z_]+)/([^/]+)/$ /g54/bbs/board.php?bo_table=$1&wr_seo_title=$2&rewrite=1 break;
+    rewrite ^([0-9a-zA-Z_]+)/write$ /g54/bbs/write.php?bo_table=$1&rewrite=1 break;
+    rewrite ^([0-9a-zA-Z_]+)/p([0-9]+)$ /g54/bbs/board.php?bo_table=$1&page=$2 break;
+    rewrite ^([0-9a-zA-Z_]+)/([0-9]+)$ /g54/bbs/board.php?bo_table=$1&wr_id=$2&rewrite=1 break;
 }
 
diff --git a/mobile/tail.php b/mobile/tail.php index 74335a2af..e3c984bde 100644 --- a/mobile/tail.php +++ b/mobile/tail.php @@ -18,9 +18,9 @@ if(defined('G5_THEME_PATH')) {
Copyright © 소유하신 도메인. All rights reserved.
diff --git a/tail.php b/tail.php index 9a83862d4..427dc513e 100644 --- a/tail.php +++ b/tail.php @@ -37,9 +37,9 @@ if (G5_IS_MOBILE) {
<?php echo G5_VERSION ?>
diff --git a/theme/basic/tail.php b/theme/basic/tail.php index 33d3dcb76..23b828ecf 100644 --- a/theme/basic/tail.php +++ b/theme/basic/tail.php @@ -32,9 +32,9 @@ if (G5_IS_MOBILE) {
<?php echo G5_VERSION ?>
From cbeef0e4537bfd0b89a66febcccfb2339f6d09f5 Mon Sep 17 00:00:00 2001 From: thisgun Date: Thu, 20 Sep 2018 09:29:08 +0900 Subject: [PATCH 10/90] =?UTF-8?q?=EC=A7=A7=EC=9D=80=20=EC=A3=BC=EC=86=8C?= =?UTF-8?q?=20url=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- adm/admin.head.php | 2 +- adm/contentformupdate.php | 5 + adm/dbupgrade.php | 32 ++++++ adm/sql_write.sql | 2 + bbs/content.php | 10 +- bbs/list.php | 2 + bbs/view.php | 5 +- bbs/write_update.php | 2 +- common.php | 2 +- config.php | 3 + extend/debugbar.extend.php | 2 +- head.sub.php | 2 +- lib/Cache/FileCache.class.php | 187 ++++++++++++++++++++++++++++++++++ lib/URI/obj.class.php | 43 +++++--- lib/cache.lib.php | 78 ++++++++++++++ lib/common.lib.php | 80 +++++++-------- lib/get_data.lib.php | 69 +++++++++++-- lib/latest.lib.php | 79 +++++++------- lib/thumbnail.lib.php | 4 +- lib/uri.lib.php | 72 +++++++++---- mobile/content.php | 3 - theme/basic/head.sub.php | 2 +- 22 files changed, 542 insertions(+), 144 deletions(-) create mode 100644 lib/Cache/FileCache.class.php diff --git a/adm/admin.head.php b/adm/admin.head.php index 12934fc14..1ed34b228 100644 --- a/adm/admin.head.php +++ b/adm/admin.head.php @@ -1,7 +1,7 @@ 현재 DB 업그레이드가 완료된 상태입니다.'; ?> diff --git a/adm/sql_write.sql b/adm/sql_write.sql index 21cad8d7f..e4394f34a 100644 --- a/adm/sql_write.sql +++ b/adm/sql_write.sql @@ -10,6 +10,7 @@ CREATE TABLE `__TABLE_NAME__` ( `wr_option` set('html1','html2','secret','mail') NOT NULL, `wr_subject` varchar(255) NOT NULL, `wr_content` text NOT NULL, + `wr_seo_title` varchar(255) NOT NULL DEFAULT '' `wr_link1` text NOT NULL, `wr_link2` text NOT NULL, `wr_link1_hit` int(11) NOT NULL DEFAULT '0', @@ -39,6 +40,7 @@ CREATE TABLE `__TABLE_NAME__` ( `wr_9` varchar(255) NOT NULL, `wr_10` varchar(255) NOT NULL, PRIMARY KEY (`wr_id`), + KEY `wr_seo_title` (`wr_seo_title`), KEY `wr_num_reply_parent` (`wr_num`,`wr_reply`,`wr_parent`), KEY `wr_is_comment` (`wr_is_comment`,`wr_id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8; \ No newline at end of file diff --git a/bbs/content.php b/bbs/content.php index f9551ed80..818d52799 100644 --- a/bbs/content.php +++ b/bbs/content.php @@ -6,14 +6,18 @@ if( !isset($g5['content_table']) ){ die('관리자 모드에서 게시판관리->내용 관리를 먼저 확인해 주세요.'); } +// 내용 +if($co_seo_title){ + $co = get_content_by_field($g5['content_table'], 'content', 'co_seo_title', $co_seo_title); +} else { + $co = get_content_db($co_id); +} + if (G5_IS_MOBILE) { include_once(G5_MOBILE_PATH.'/content.php'); return; } -// 내용 -$sql = " select * from {$g5['content_table']} where co_id = '$co_id' "; -$co = sql_fetch($sql); if (!$co['co_id']) alert('등록된 내용이 없습니다.'); diff --git a/bbs/list.php b/bbs/list.php index 3ccc05a42..9677f3d32 100644 --- a/bbs/list.php +++ b/bbs/list.php @@ -200,6 +200,8 @@ if($page_rows > 0) { } } +g5_latest_cache_data($board['bo_table'], $list); + $write_pages = get_paging(G5_IS_MOBILE ? $config['cf_mobile_pages'] : $config['cf_write_pages'], $page, $total_page, get_pretty_url($bo_table, '', $qstr.'&page=')); $list_href = ''; diff --git a/bbs/view.php b/bbs/view.php index 68bfb864f..de5fd5359 100644 --- a/bbs/view.php +++ b/bbs/view.php @@ -69,14 +69,15 @@ if ($member['mb_level'] >= $board['bo_write_level']) { $reply_href = ''; if ($member['mb_level'] >= $board['bo_reply_level']) { //$reply_href = './write.php?w=r&bo_table='.$bo_table.'&wr_id='.$wr_id.$qstr; - $reply_href = get_pretty_url($bo_table, '', 'wr_id='.$wr_id.$qstr, 'write'); + $reply_href = get_pretty_url($bo_table, '', 'w=r&wr_id='.$wr_id.$qstr, 'write'); } // 수정, 삭제 링크 $update_href = $delete_href = ''; // 로그인중이고 자신의 글이라면 또는 관리자라면 비밀번호를 묻지 않고 바로 수정, 삭제 가능 if (($member['mb_id'] && ($member['mb_id'] === $write['mb_id'])) || $is_admin) { - $update_href = G5_BBS_URL.'/write.php?w=u&bo_table='.$bo_table.'&wr_id='.$wr_id.'&page='.$page.$qstr; + //$update_href = G5_BBS_URL.'/write.php?w=u&bo_table='.$bo_table.'&wr_id='.$wr_id.'&page='.$page.$qstr; + $update_href = get_pretty_url($bo_table, '', 'w=u&wr_id='.$wr_id.'&page='.$page.$qstr, 'write'); set_session('ss_delete_token', $token = uniqid(time())); $delete_href = G5_BBS_URL.'/delete.php?bo_table='.$bo_table.'&wr_id='.$wr_id.'&token='.$token.'&page='.$page.urldecode($qstr); } diff --git a/bbs/write_update.php b/bbs/write_update.php index e0d1d8ec8..b5719fd5b 100644 --- a/bbs/write_update.php +++ b/bbs/write_update.php @@ -211,7 +211,7 @@ if ($w == '' || $w == 'r') { if (!isset($_POST['wr_subject']) || !trim($_POST['wr_subject'])) alert('제목을 입력하여 주십시오.'); -$wr_seo_title = exist_seo_url_recursive('bbs', generate_seo_url($wr_subject), $write_table, $wr_id); +$wr_seo_title = exist_seo_title_recursive('bbs', generate_seo_title($wr_subject), $write_table, $wr_id); if ($w == '' || $w == 'r') { diff --git a/common.php b/common.php index b63190a25..52fbb1e9e 100644 --- a/common.php +++ b/common.php @@ -418,7 +418,7 @@ if ($bo_table) { if (isset($wr_id) && $wr_id) { $write = get_write($write_table, $wr_id); } else if (isset($wr_seo_title) && $wr_seo_title) { - $write = get_write_by_field($write_table, 'wr_seo_title', $wr_seo_title); + $write = get_content_by_field($write_table, 'bbs', 'wr_seo_title', $wr_seo_title); if( isset($write['wr_id']) ){ $wr_id = $write['wr_id']; } diff --git a/config.php b/config.php index 0079b0884..c5d57d715 100644 --- a/config.php +++ b/config.php @@ -153,6 +153,9 @@ define('G5_HANGUL', 16); // 한글 define('G5_SPACE', 32); // 공백 define('G5_SPECIAL', 64); // 특수문자 +// SEO TITLE 문단 길이 +define('G5_SEO_TITEL_WORD_CUT', 8); // SEO TITLE 문단 길이 + // 퍼미션 define('G5_DIR_PERMISSION', 0755); // 디렉토리 생성시 퍼미션 define('G5_FILE_PERMISSION', 0644); // 파일 생성시 퍼미션 diff --git a/extend/debugbar.extend.php b/extend/debugbar.extend.php index d01d8051e..a3f935665 100644 --- a/extend/debugbar.extend.php +++ b/extend/debugbar.extend.php @@ -14,7 +14,7 @@ function show_debug_bar() { } $memory_usage = function_exists( 'memory_get_peak_usage' ) ? memory_get_peak_usage() : memory_get_usage(); - $php_run_time = get_microtime()-$gml_debug['begin_time']; + $php_run_time = get_microtime()-$g5_debug['php']['begin_time']; include_once( G5_PLUGIN_PATH.'/debugbar/debugbar.php' ); } diff --git a/head.sub.php b/head.sub.php index 020900ea2..ae69e3664 100644 --- a/head.sub.php +++ b/head.sub.php @@ -8,7 +8,7 @@ if(!defined('G5_IS_ADMIN') && defined('G5_THEME_PATH') && is_file(G5_THEME_PATH. return; } -$begin_time = get_microtime(); +$g5_debug['php']['begin_time'] = $begin_time = get_microtime(); if (!isset($g5['title'])) { $g5['title'] = $config['cf_title']; diff --git a/lib/Cache/FileCache.class.php b/lib/Cache/FileCache.class.php new file mode 100644 index 000000000..f65948947 --- /dev/null +++ b/lib/Cache/FileCache.class.php @@ -0,0 +1,187 @@ +$name = $options[$name]; + } + } + } + + /** + * Fetches an entry from the cache. + * + * @param string $id + */ + public function get($id) + { + $data = $this->_get($id); + return is_array($data) ? $data['data'] : FALSE; + } + + protected function get_cache_file_path($id){ + + $id = str_replace(DIRECTORY_SEPARATOR, '/', $id); + $add_separator = ''; + $add_file_extension = ''; + + if( strpos('/', $id) !== 0 ){ + $add_separator = '/'; + } + + $ext = pathinfo($id, PATHINFO_EXTENSION); + + if( !(isset($ext['extension']) && $ext['extension']) ){ + $add_file_extension = $this->file_extension; + } + + return $this->_cache_path.$add_separator.$id.$add_file_extension; + + } + + protected function _get($id) + { + $cache_file_path = $this->get_cache_file_path($id); + + if ( ! is_file($cache_file_path) ) + { + return FALSE; + } + + $data = unserialize(file_get_contents( $cache_file_path )); + + if ($data['ttl'] > 0 && time() > $data['time'] + $data['ttl']) + { + unlink( $cache_file_path ); + return FALSE; + } + + return $data; + } + + public function write_file($path, $data, $mode = 'wb') + { + if ( ! $fp = @fopen($path, $mode)) + { + return FALSE; + } + + flock($fp, LOCK_EX); + + for ($result = $written = 0, $length = strlen($data); $written < $length; $written += $result) + { + if (($result = fwrite($fp, substr($data, $written))) === FALSE) + { + break; + } + } + + flock($fp, LOCK_UN); + fclose($fp); + + return is_int($result); + } + + /** + * Deletes a cache entry. + * + * @param string $id + * + * @return bool + */ + public function delete($id) + { + $cache_file_path = $this->get_cache_file_path($id); + + return file_exists($cache_file_path) ? unlink($cache_file_path) : FALSE; + } + + /** + * Puts data into the cache. + * + * @param string $id + * @param mixed $data + * @param int $lifetime + * + * @return bool + */ + public function save($id, $data, $ttl = 60, $raw = FALSE) + { + $cache_file_path = $this->get_cache_file_path($id); + + $contents = array( + 'time' => time(), + 'ttl' => $ttl, + 'data' => $data + ); + + if ($this->write_file($cache_file_path, serialize($contents))) + { + chmod($cache_file_path, G5_FILE_PERMISSION); + return TRUE; + } + + return FALSE; + } + + /** + * Fetches a base directory to store the cache data + * + * @return string + */ + protected function getCacheDirectory() + { + return $this->_cache_path; + } + + /** + * Encodes some data to a string so it can be written to disk + * + * @param mixed $data + * @param int $ttl + * @return string + */ + public function encode($data, $ttl) + { + $expire = null; + if ($ttl !== null) { + $expire = time() + $ttl; + } + return serialize(array($data, $expire)); + } + + /** + * Decodes a string encoded by {@see encode()} + * + * Must returns a tuple (data, expire). Expire + * can be null to signal no expiration. + * + * @param string $data + * @return array (data, expire) + */ + public function decode($data) + { + return unserialize($data); + } +} +?> \ No newline at end of file diff --git a/lib/URI/obj.class.php b/lib/URI/obj.class.php index d77c9ebb0..194f4f923 100644 --- a/lib/URI/obj.class.php +++ b/lib/URI/obj.class.php @@ -3,21 +3,27 @@ if (!defined('_GNUBOARD_')) exit; Class G5_object_store { public $writes = array(); - + public $contents = array(); + function get($type, $key, $group ='default') { switch ($type) { case 'bbs': - if( $this->exists('bbs', $key, $group) ){ - if ( is_object($this->writes[$group][$key]) ) - return clone $this->writes[$group][$key]; - else - return $this->writes[$group][$key]; - } - return false; + $datas = $this->writes; + break; + case 'content' : + $datas = $this->contents; break; } + if( $this->exists($type, $key, $group) ){ + if ( is_object($datas[$group][$key]) ) + return clone $datas[$group][$key]; + else + return $datas[$group][$key]; + } + + return false; } function exists($type, $key, $group = 'default' ) { @@ -28,6 +34,9 @@ Class G5_object_store { case 'bbs': $datas = $this->writes; break; + case 'content': + $datas = $this->contents; + break; } return isset($datas[$group]) && ( isset($datas[$group][$key]) || array_key_exists($key, $datas[$group]) ); @@ -41,6 +50,9 @@ Class G5_object_store { case 'bbs': $this->writes[$group][$key] = $data; break; + case 'content': + $this->contents[$group][$key] = $data; + break; } } @@ -48,13 +60,18 @@ Class G5_object_store { function delete($key, $group='default') { switch ($type) { case 'bbs': - if ( ! $this->exists('bbs', $key, $group) ) - return false; - - unset( $this->writes[$group][$key] ); - return true; + $datas = $this->writes; + break; + case 'content': + $datas = $this->contents; break; } + + if ( ! $this->exists('bbs', $key, $group) ) + return false; + + unset( $datas[$group][$key] ); + return true; } } //end Class diff --git a/lib/cache.lib.php b/lib/cache.lib.php index ba0b43379..2cad87d3e 100644 --- a/lib/cache.lib.php +++ b/lib/cache.lib.php @@ -1,6 +1,73 @@ G5_DATA_PATH.'/cache', + 'file_extension'=>'.php', + ); + $instance = new FileCache($options); + } + + return $instance; +} + +function g5_cache_secret_key(){ + static $str = ''; + + if( $str ) return $str; + + $str = substr(md5($_SERVER['SERVER_SOFTWARE'].$_SERVER['DOCUMENT_ROOT']), 0, 6); + + return $str; +} + +function g5_latest_cache_data($bo_table, $cache_list=array(), $find_wr_id=0){ + static $cache = array(); + + if( $bo_table && $cache_list && ! isset($cache[$bo_table]) ){ + foreach( (array) $cache_list as $wr ){ + if( empty($wr) || ! isset($wr['wr_id']) ) continue; + $cache[$bo_table][$wr['wr_id']] = $wr; + } + } + + if( $find_wr_id && isset($cache[$bo_table][$find_wr_id]) ){ + return $cache[$bo_table][$find_wr_id]; + } +} + +function g5_set_cache($key, $save_data, $ttl = null){ + + if( $cache = get_cachemanage_instance() ){ + $cache->save($key, $save_data, $ttl); + } +} + +function g5_get_cache($key){ + + if( $cache = get_cachemanage_instance() ){ + return $cache->get($key); + } + + return false; +} + +function g5_delete_cache($key){ + if( $cache = get_cachemanage_instance() ){ + return $cache->delete($key); + } + + return false; +} + function g5_delete_all_cache(){ $board_tables = get_board_names(); @@ -13,4 +80,15 @@ function g5_delete_all_cache(){ } +function g5_delete_cache_by_prefix($key){ + $files = glob(G5_DATA_PATH.'/cache/'.$key.'*'); + + foreach( (array) $files as $filename){ + if(empty($filename)) continue; + + unlink($filename); + } + + return ($files) ? true : false; +} ?> \ No newline at end of file diff --git a/lib/common.lib.php b/lib/common.lib.php index c9fa12b3d..9e9c53816 100644 --- a/lib/common.lib.php +++ b/lib/common.lib.php @@ -703,33 +703,6 @@ function get_write($write_table, $wr_id, $is_cache=false) return $write; } -// 게시판 테이블에서 하나의 행을 읽음 -function get_write_by_field($write_table, $where_field='', $where_value='', $is_cache=false) -{ - global $g5, $g5_object; - - if( ! in_array($where_field, array('wr_id', 'wr_num', 'wr_reply', 'wr_parent', 'wr_is_comment', 'ca_name', 'wr_option', 'wr_subject', 'wr_content', 'wr_seo_title', 'wr_link1', 'wr_link2', 'wr_hit', 'wr_good', 'wr_nogood', 'mb_id', 'wr_name', 'wr_email', 'wr_homepage', 'wr_datetime', 'wr_ip', 'wr_1', 'wr_2', 'wr_3', 'wr_4', 'wr_5', 'wr_6', 'wr_7', 'wr_8', 'wr_9', 'wr_10')) ){ - return ''; - } - - $where_value = strip_tags($where_value); - $key = md5($write_table.'|'.$where_field.'|'.$where_value); - - if( $is_cache && isset($cache[$key]) ){ - return $cache[$key]; - } - - $sql = " select * from {$write_table} where $where_field = '".sql_real_escape_string($where_value)."' "; - - $cache[$key] = sql_fetch($sql); - - $wr_bo_table = preg_replace('/^'.preg_quote($g5['write_prefix']).'/i', '', $write_table); - - $g5_object->set('bbs', $cache[$key]['wr_id'], $cache[$key], $wr_bo_table); - - return $cache[$key]; -} - // 게시판의 다음글 번호를 얻는다. function get_next_num($table) { @@ -2246,11 +2219,7 @@ function delete_cache_latest($bo_table) return; } - $files = glob(G5_DATA_PATH.'/cache/latest-'.$bo_table.'-*'); - if (is_array($files)) { - foreach ($files as $filename) - unlink($filename); - } + g5_delete_cache_by_prefix('latest-'.$bo_table.'-'); } // 게시판 첨부파일 썸네일 삭제 @@ -2534,6 +2503,8 @@ class html_process { } array_multisort($order, SORT_ASC, $index, SORT_ASC, $links); + + $links = apply_replace('html_process_css_files', $links); foreach($links as $link) { if(!trim($link[1])) @@ -2560,6 +2531,8 @@ class html_process { } array_multisort($order, SORT_ASC, $index, SORT_ASC, $scripts); + + $scripts = apply_replace('html_process_script_files', $scripts); foreach($scripts as $js) { if(!trim($js[1])) @@ -2588,6 +2561,17 @@ class html_process { if($javascript) $nl = "\n"; $buffer = preg_replace('#([^<]*]*>)#', "$javascript{$nl}$1", $buffer); + + $meta_tag = apply_replace('html_process_add_meta', ''); + + if( $meta_tag ){ + /* + content + 전에 메타태그가 위치 하도록 하게 한다. + */ + $nl = "\n"; + $buffer = preg_replace('#(]*>.*?)#', "$meta_tag{$nl}$1", $buffer); + } return $buffer; } @@ -3269,22 +3253,19 @@ function clean_query_string($query, $amp=true) return $str; } -function get_device_change_url() -{ +function get_params_merge_url($params){ $p = @parse_url(G5_URL); $href = $p['scheme'].'://'.$p['host']; if(isset($p['port']) && $p['port']) $href .= ':'.$p['port']; - $href .= $_SERVER['SCRIPT_NAME']; + if( $tmp = explode('?', $_SERVER['REQUEST_URI']) ){ + if( isset($tmp[0]) && $tmp[0] ) + $href .= $tmp[0]; + } $q = array(); - $device = 'device='.(G5_IS_MOBILE ? 'pc' : 'mobile'); - if($_SERVER['QUERY_STRING']) { foreach($_GET as $key=>$val) { - if($key == 'device') - continue; - $key = strip_tags($key); $val = strip_tags($val); @@ -3293,16 +3274,25 @@ function get_device_change_url() } } - if(!empty($q)) { - $query = http_build_query($q, '', '&'); - $href .= '?'.$query.'&'.$device; - } else { - $href .= '?'.$device; + if( is_array($params) ){ + $q = array_merge($q, $params); } + $query = http_build_query($q, '', '&'); + $href .= '?'.$query; + return $href; } +function get_device_change_url() +{ + $q = array(); + $device = (G5_IS_MOBILE ? 'pc' : 'mobile'); + $q['device'] = $device; + + return get_params_merge_url($q); +} + // 스킨 path function get_skin_path($dir, $skin) { diff --git a/lib/get_data.lib.php b/lib/get_data.lib.php index 51f7f30e0..b7f65ad99 100644 --- a/lib/get_data.lib.php +++ b/lib/get_data.lib.php @@ -19,22 +19,31 @@ function get_config($is_cache=false){ } function get_content_db($co_id, $is_cache=false){ - global $g5; + global $g5, $g5_object; static $cache = array(); + + $type = 'content'; $co_id = preg_replace('/[^a-z0-9_]/i', '', $co_id); - $key = md5($co_id); + $co = $g5_object->get($type, $co_id, $type); - if( $is_cache && isset($cache[$key]) ){ - return $cache[$key]; + if( !$co ){ + + $cache_file_name = "{$type}-{$co_id}-".g5_cache_secret_key(); + $co = g5_get_cache($cache_file_name, 10800); + + if( $co === false ){ + $sql = " select * from {$g5['content_table']} where co_id = '$co_id' "; + $co = sql_fetch($sql); + + g5_set_cache($cache_file_name, $co, 10800); + } + + $g5_object->set($type, $co_id, $co, $type); } - $sql = " select * from {$g5['content_table']} where co_id = '$co_id' "; - - $cache[$key] = sql_fetch($sql); - - return $cache[$key]; + return $co; } function get_board_names(){ @@ -79,6 +88,46 @@ function get_board_db($bo_table, $is_cache=false){ return $cache[$key]; } +// 게시판 테이블에서 하나의 행을 읽음 +function get_content_by_field($write_table, $type='bbs', $where_field='', $where_value='', $is_cache=false) +{ + global $g5, $g5_object; + + if( $type === 'content' ){ + $check_array = array('co_id', 'co_html', 'co_subject', 'co_content', 'co_seo_title', 'co_mobile_content', 'co_skin', 'co_mobile_skin', 'co_tag_filter_use', 'co_hit', 'co_include_head', 'co_include_tail'); + } else { + $check_array = array('wr_id', 'wr_num', 'wr_reply', 'wr_parent', 'wr_is_comment', 'ca_name', 'wr_option', 'wr_subject', 'wr_content', 'wr_seo_title', 'wr_link1', 'wr_link2', 'wr_hit', 'wr_good', 'wr_nogood', 'mb_id', 'wr_name', 'wr_email', 'wr_homepage', 'wr_datetime', 'wr_ip', 'wr_1', 'wr_2', 'wr_3', 'wr_4', 'wr_5', 'wr_6', 'wr_7', 'wr_8', 'wr_9', 'wr_10'); + } + + if( ! in_array($where_field, $check_array) ){ + return ''; + } + + $where_value = strip_tags($where_value); + $key = md5($write_table.'|'.$where_field.'|'.$where_value); + + if( $is_cache && isset($cache[$key]) ){ + return $cache[$key]; + } + + $sql = " select * from {$write_table} where $where_field = '".sql_real_escape_string($where_value)."' "; + + $cache[$key] = sql_fetch($sql); + + if( $type === 'content' ){ + + $g5_object->set($type, $cache[$key]['co_id'], $cache[$key], 'content'); + + } else { + + $wr_bo_table = preg_replace('/^'.preg_quote($g5['write_prefix']).'/i', '', $write_table); + $g5_object->set($type, $cache[$key]['wr_id'], $cache[$key], $wr_bo_table); + + } + + return $cache[$key]; +} + // 게시판 첨부파일 테이블에서 하나의 행을 읽음 function get_board_file_db($bo_table, $wr_id, $fields='*', $add_where='', $is_cache=false) { @@ -190,7 +239,7 @@ function get_thumbnail_find_cache($bo_table, $wr_id, $wr_key){ if( $wr_key === 'content' ){ $write_table = $g5['write_prefix'].$bo_table; - return get_write_db($write_table, $wr_id, 'wr_content', true); + return get_write($write_table, $wr_id, true); } return get_board_file_db($bo_table, $wr_id, 'bf_file, bf_content', "and bf_type between '1' and '3'", true); diff --git a/lib/latest.lib.php b/lib/latest.lib.php index 63fe44f47..eb9d1c05f 100644 --- a/lib/latest.lib.php +++ b/lib/latest.lib.php @@ -30,46 +30,27 @@ function latest($skin_dir='', $bo_table, $rows=10, $subject_len=40, $cache_time= } } - $cache_fwrite = false; + $caches = null; + if(G5_USE_CACHE) { - $cache_file = G5_DATA_PATH."/cache/latest-{$bo_table}-{$skin_dir}-{$rows}-{$subject_len}-serial.php"; - - if(!file_exists($cache_file)) { - $cache_fwrite = true; - } else { - if($cache_time > 0) { - $filetime = filemtime($cache_file); - if($filetime && $filetime < (G5_SERVER_TIME - 3600 * $cache_time)) { - @unlink($cache_file); - $cache_fwrite = true; - } - } - - if(!$cache_fwrite) { - try{ - $file_contents = file_get_contents($cache_file); - $file_ex = explode("\n\n", $file_contents); - $caches = unserialize(base64_decode($file_ex[1])); - - $list = (is_array($caches) && isset($caches['list'])) ? $caches['list'] : array(); - $bo_subject = (is_array($caches) && isset($caches['bo_subject'])) ? $caches['bo_subject'] : ''; - } catch(Exception $e){ - $cache_fwrite = true; - $list = array(); - } - } - } + $cache_file_name = "latest-{$bo_table}-{$skin_dir}-{$rows}-{$subject_len}-".g5_cache_secret_key(); + $caches = g5_get_cache($cache_file_name); + $cache_list = isset($caches['list']) ? $caches['list'] : array(); + g5_latest_cache_data($bo_table, $cache_list); } - if(!G5_USE_CACHE || $cache_fwrite) { + if( $caches === false ){ + $list = array(); - $sql = " select * from {$g5['board_table']} where bo_table = '{$bo_table}' "; - $board = sql_fetch($sql); + $board = get_board_db($bo_table, true); + $bo_subject = get_text($board['bo_subject']); + $board['bo_use_sideview'] = 0; // not use sideview $tmp_write_table = $g5['write_prefix'] . $bo_table; // 게시판 테이블 전체이름 $sql = " select * from {$tmp_write_table} where wr_is_comment = 0 order by wr_num limit 0, {$rows} "; + $result = sql_query($sql); for ($i=0; $row = sql_fetch_array($result); $i++) { try { @@ -82,22 +63,38 @@ function latest($skin_dir='', $bo_table, $rows=10, $subject_len=40, $cache_time= $row['file'] = array('count'=>0); } $list[$i] = get_list($row, $board, $latest_skin_url, $subject_len); - } - if($cache_fwrite) { - $handle = fopen($cache_file, 'w'); + $list[$i]['first_file_thumb'] = (isset($row['wr_file']) && $row['wr_file']) ? get_board_file_db($bo_table, $row['wr_id'], 'bf_file, bf_content', "and bf_type between '1' and '3'", true) : array('bf_file'=>'', 'bf_content'=>''); + $list[$i]['bo_table'] = $bo_table; + // 썸네일 추가 + if($options) { + $options_arr = explode(',', $options); + $thumb_width = $options_arr[0]; + $thumb_height = $options_arr[1]; + $thumb = get_list_thumbnail($bo_table, $row['wr_id'], $thumb_width, $thumb_height, false, true); + // 이미지 썸네일 + if($thumb['src']) { + $img_content = ''.$thumb['alt'].''; + $list[$i]['img_thumbnail'] = ''.$img_content.''; + // } else { + // $img_content = ''.$thumb['alt'].''; + } + } + } + g5_latest_cache_data($bo_table, $list); + + if(G5_USE_CACHE) { + $caches = array( 'list' => $list, 'bo_subject' => sql_escape_string($bo_subject), - ); - $cache_content = "\n\n"; - $cache_content .= base64_encode(serialize($caches)); //serialize + ); - fwrite($handle, $cache_content); - fclose($handle); - - @chmod($cache_file, 0640); + g5_set_cache($cache_file_name, $caches, 3600 * $cache_time); } + } else { + $list = $cache_list; + $bo_subject = (is_array($caches) && isset($caches['bo_subject'])) ? $caches['bo_subject'] : ''; } ob_start(); diff --git a/lib/thumbnail.lib.php b/lib/thumbnail.lib.php index 1665d207a..81f1da0fe 100644 --- a/lib/thumbnail.lib.php +++ b/lib/thumbnail.lib.php @@ -10,9 +10,7 @@ function get_list_thumbnail($bo_table, $wr_id, $thumb_width, $thumb_height, $is_ $filename = $alt = ""; $edt = false; - $sql = " select bf_file, bf_content from {$g5['board_file_table']} - where bo_table = '$bo_table' and wr_id = '$wr_id' and bf_type between '1' and '3' order by bf_no limit 0, 1 "; - $row = sql_fetch($sql); + $row = get_thumbnail_find_cache($bo_table, $wr_id, 'file'); if($row['bf_file']) { $filename = $row['bf_file']; diff --git a/lib/uri.lib.php b/lib/uri.lib.php index 7da5ce1be..f926705fa 100644 --- a/lib/uri.lib.php +++ b/lib/uri.lib.php @@ -10,48 +10,65 @@ function get_pretty_url($folder, $no='', $query_string='', $action='') global $g5, $config; $boards = get_board_names(); + $segments = array(); + $url = $add_query = ''; // use shortten url if($config['cf_bbs_rewrite']) { - if(in_array($folder, $boards)) { + + $segments[0] = G5_URL; + + if( $folder === 'content' && $no ){ // 내용관리 + + $segments[1] = $folder; + + if( $config['cf_bbs_rewrite'] > 1 ){ + + $get_content = get_content_db( $no , true); + $segments[2] = $get_content['co_seo_title'] ? urlencode($get_content['co_seo_title']).'/' : urlencode($no); + + } else { + $segments[2] = urlencode($no); + } + + } else if(in_array($folder, $boards)) { // 게시판 + + $segments[1] = $folder; - $url = G5_URL. '/'. $folder; if($no) { if( $config['cf_bbs_rewrite'] > 1 ){ $get_write = get_write( $g5['write_prefix'].$folder, $no , true); - - if( $get_write['wr_seo_title'] ){ - $url .= '/'. urlencode($get_write['wr_seo_title']).'/'; - } else { - $url .= '/'. $no; - } + + $segments[2] = $get_write['wr_seo_title'] ? urlencode($get_write['wr_seo_title']).'/' : urlencode($no); } else { - $url .= '/'. $no; + $segments[2] = urlencode($no); } } else if($action) { - $url .= '/'. $action; + $segments[2] = urlencode($action); } } else { - $url = G5_URL. '/'.$folder; + $segments[1] = $folder; if($no) { $no_array = explode("=", $no); $no_value = end($no_array); - $url .= '/'. $no_value; + $segments[2] = urlencode($no_value); } } + if($query_string) { // If the first character of the query string is '&', replace it with '?'. if(substr($query_string, 0, 1) == '&') { - $url .= preg_replace("/\&/", "?", $query_string, 1); + $add_query = preg_replace("/\&/", "?", $query_string, 1); } else { - $url .= '?'. $query_string; + $add_query = '?'. $query_string; } } + } else { // don't use shortten url if(in_array($folder, $boards)) { $url = G5_BBS_URL. '/board.php?bo_table='. $folder; @@ -70,9 +87,11 @@ function get_pretty_url($folder, $no='', $query_string='', $action='') $url .= ($no ? '?' : '&'). $query_string; } } + + $segments[0] = $url; } - return $url; + return implode('/', $segments).$add_query; } function short_url_clean($url, $add_qry=''){ @@ -87,7 +106,7 @@ function correct_goto_url($url){ return $url.'/'; } -function generate_seo_url($string, $wordLimit = 0){ +function generate_seo_title($string, $wordLimit=G5_SEO_TITEL_WORD_CUT){ $separator = '-'; if($wordLimit != 0){ @@ -105,6 +124,11 @@ function generate_seo_url($string, $wordLimit = 0){ ); $string = strip_tags($string); + + if( function_exists('mb_convert_encoding') ){ + $string = mb_convert_encoding($string, 'UTF-8', 'UTF-8'); + } + foreach ($trans as $key => $val){ $string = preg_replace('#'.$key.'#iu', $val, $string); } @@ -118,12 +142,24 @@ function exist_seo_url($type, $seo_title, $write_table, $sql_id=0){ global $g5; $exists_title = ''; + $sql_id = preg_replace('/[^a-z0-9_]/i', '', $sql_id); + if( $type === 'bbs' ){ $sql = "select wr_seo_title FROM {$write_table} WHERE wr_seo_title = '".sql_real_escape_string($seo_title)."' AND wr_id <> '$sql_id' limit 1"; + $row = sql_fetch($sql); + + echo $sql; $exists_title = $row['wr_seo_title']; + } else if ( $type === 'content' ){ + + $sql = "select co_seo_title FROM {$write_table} WHERE co_seo_title = '".sql_real_escape_string($seo_title)."' AND co_id <> '$sql_id' limit 1"; + $row = sql_fetch($sql); + + $exists_title = $row['co_seo_title']; + } else { return $seo_title; } @@ -134,7 +170,7 @@ function exist_seo_url($type, $seo_title, $write_table, $sql_id=0){ return ''; } -function exist_seo_url_recursive($type, $seo_title, $write_table, $sql_id=0){ +function exist_seo_title_recursive($type, $seo_title, $write_table, $sql_id=0){ static $count = 0; $seo_title_add = ($count > 0) ? utf8_strcut($seo_title, 255 - ($count+1), '')."-$count" : $seo_title; @@ -149,7 +185,7 @@ function exist_seo_url_recursive($type, $seo_title, $write_table, $sql_id=0){ return $seo_title_add; } - return exist_seo_url_recursive($type, $seo_title, $write_table, $sql_id); + return exist_seo_title_recursive($type, $seo_title, $write_table, $sql_id); } ?> \ No newline at end of file diff --git a/mobile/content.php b/mobile/content.php index cb683b2e1..08387f012 100644 --- a/mobile/content.php +++ b/mobile/content.php @@ -1,9 +1,6 @@ Date: Fri, 21 Sep 2018 18:16:54 +0900 Subject: [PATCH 11/90] =?UTF-8?q?=EC=A7=A7=EC=9D=80=20=EC=A3=BC=EC=86=8C?= =?UTF-8?q?=20=EC=A0=81=EC=9A=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- adm/_rewrite_config_form.php | 70 +++++++++++++++++++++--------------- adm/config_form_update.php | 2 ++ adm/css/admin.css | 9 ++++- lib/uri.lib.php | 69 +++++++++++++++++++++++++++++++++++ 4 files changed, 121 insertions(+), 29 deletions(-) diff --git a/adm/_rewrite_config_form.php b/adm/_rewrite_config_form.php index e5986ad4c..e40c7db44 100644 --- a/adm/_rewrite_config_form.php +++ b/adm/_rewrite_config_form.php @@ -7,9 +7,22 @@ $is_nginx = (stripos($_SERVER['SERVER_SOFTWARE'], 'nginx') !== false); $is_iis = !$is_apache && (stripos($_SERVER['SERVER_SOFTWARE'], 'microsoft-iis') !== false); +$is_write_file = false; + +if ( $is_nginx ){ + $is_write_file = false; +} else if ( $is_apache && ((!file_exists(G5_PATH.'/.htaccess') && is_writable($home_path)) || is_writable(G5_PATH.'/.htaccess')) ){ + $is_write_file = true; +} + $get_path_url = parse_url( G5_URL ); $base_path = isset($get_path_url['path']) ? $get_path_url['path'].'/' : '/'; + +// add_stylesheet('css 구문', 출력순서); 숫자가 작을 수록 먼저 출력됨 +add_stylesheet('', 11); +add_stylesheet('', 12); +add_javascript('', 10); ?>

짧은 주소 설정

@@ -20,6 +33,14 @@ $base_path = isset($get_path_url['path']) ? $get_path_url['path'].'/' : '/';

+
+ + + + + +
+
@@ -47,41 +68,34 @@ $base_path = isset($get_path_url['path']) ? $get_path_url['path'].'/' : '/';
-
+ -
- -# nginx configuration -
+        
 
     
diff --git a/adm/config_form_update.php b/adm/config_form_update.php index e10a4647d..86227e727 100644 --- a/adm/config_form_update.php +++ b/adm/config_form_update.php @@ -184,5 +184,7 @@ if( isset($_POST['cf_bbs_rewrite']) ){ start_event('admin_config_form_update'); +update_rewrite_rules(); + goto_url('./config_form.php', false); ?> \ No newline at end of file diff --git a/adm/css/admin.css b/adm/css/admin.css index 5b31afdc1..33d6d69d2 100644 --- a/adm/css/admin.css +++ b/adm/css/admin.css @@ -512,8 +512,15 @@ td.td_grpset {width:160px;border-left:1px solid #e9ecee;text-align:center} /* 환경설정 */ .cf_cert_hide {display:none} +.is_rewrite .connect-close {position:absolute;top:10px;right:10px;margin:0;padding:0;width:30px;height:30px;border:0;background:transparent;color:#383838;cursor:pointer;font-size:15px} +.is_rewrite .connect-close:hover {color:#ff5191} +.is_rewrite .connect-close .fa {margin:0 0 0 1px} +.is_rewrite .connect-close .txt {position:absolute;line-height:0;font-size:0;overflow:hidden} +.is_rewrite textarea{width:99%} +.is_rewrite .copy_title{margin-top:25px;margin-bottom:10px;font-weight:bold;text-align:left} + /* 관리권한설정 */ -#add_admin fieldset {margin-top:20px} +#add_admin fieldset {margin-top:20px;overflow:auto;padding:2px 6px;line-height:1.4;resize:vertical} /* 메일 테스트 */ diff --git a/lib/uri.lib.php b/lib/uri.lib.php index f926705fa..a1c56fb57 100644 --- a/lib/uri.lib.php +++ b/lib/uri.lib.php @@ -188,4 +188,73 @@ function exist_seo_title_recursive($type, $seo_title, $write_table, $sql_id=0){ return exist_seo_title_recursive($type, $seo_title, $write_table, $sql_id); } +function get_mod_rewrite_rules($return_string=false){ + + $get_path_url = parse_url( G5_URL ); + + $base_path = isset($get_path_url['path']) ? $get_path_url['path'].'/' : '/'; + + $rules = array(); + + $rules[] = '#### '.G5_VERSION.' rewrite BOF #####'; + $rules[] = ''; + $rules[] = 'RewriteEngine On'; + $rules[] = 'RewriteBase '.$base_path; + $rules[] = 'RewriteCond %{REQUEST_FILENAME} !-f'; + $rules[] = 'RewriteCond %{REQUEST_FILENAME} !-d'; + $rules[] = 'RewriteRule ^content/([0-9a-zA-Z_]+)$ '.G5_BBS_DIR.'/content.php?co_id=$1&rewrite=1 [L]'; + $rules[] = 'RewriteRule ^content/([^/]+)/$ '.G5_BBS_DIR.'/content.php?co_seo_title=$1&rewrite=1 [QSA,L]'; + $rules[] = 'RewriteRule ^rss/([0-9a-zA-Z_]+)$ '.G5_BBS_DIR.'/rss.php?bo_table=$1 [L]'; + $rules[] = 'RewriteRule ^([0-9a-zA-Z_]+)$ '.G5_BBS_DIR.'/board.php?bo_table=$1&rewrite=1 [QSA,L]'; + $rules[] = 'RewriteRule ^([0-9a-zA-Z_]+)/([^/]+)/$ '.G5_BBS_DIR.'/board.php?bo_table=$1&wr_seo_title=$2&rewrite=1 [QSA,L]'; + $rules[] = 'RewriteRule ^([0-9a-zA-Z_]+)/write$ '.G5_BBS_DIR.'/write.php?bo_table=$1&rewrite=1 [QSA,L]'; + $rules[] = 'RewriteRule ^([0-9a-zA-Z_]+)/p([0-9]+)$ '.G5_BBS_DIR.'/board.php?bo_table=$1&page=$2 [QSA,L]'; + $rules[] = 'RewriteRule ^([0-9a-zA-Z_]+)/([0-9]+)$ '.G5_BBS_DIR.'/board.php?bo_table=$1&wr_id=$2&rewrite=1 [QSA,L]'; + $rules[] = ''; + $rules[] = '#### '.G5_VERSION.' rewrite EOF #####'; + + return $return_string ? implode('\n', $rules) : $rules; +} + +function update_rewrite_rules(){ + + $is_apache = (stripos($_SERVER['SERVER_SOFTWARE'], 'apache') !== false); + + if($is_apache){ + $save_path = G5_PATH.'/.htaccess'; + + if( (!file_exists($save_path) && is_writable(G5_PATH)) || is_writable($save_path) ){ + + $rules = get_mod_rewrite_rules(); + + $bof_str = $rules[0]; + $eof_str = end($rules); + + if( file_exists($save_path) ){ + $code = file_get_contents($save_path); + + if( $code && strpos($code, $bof_str) !== false && strpos($code, $eof_str) !== false ){ + return true; + } + } + + $fp = fopen($save_path, "ab"); + flock( $fp, LOCK_EX ); + + $rewrite_str = implode("\n", $rules); + + fwrite( $fp, "\n" ); + fwrite( $fp, $rewrite_str ); + fwrite( $fp, "\n" ); + + flock( $fp, LOCK_UN ); + fclose($fp); + + return true; + } + } + + return false; + +} ?> \ No newline at end of file From e17e4dc869afbbe683fb2ce3d0e27d9591748367 Mon Sep 17 00:00:00 2001 From: thisgun Date: Mon, 1 Oct 2018 10:48:59 +0900 Subject: [PATCH 12/90] =?UTF-8?q?KVE-2018-0732=20=EC=B7=A8=EC=95=BD?= =?UTF-8?q?=EC=A0=90=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- adm/admin.lib.php | 13 +++++++++++++ adm/member_list_update.php | 16 ++++++++-------- lib/common.lib.php | 2 ++ 3 files changed, 23 insertions(+), 8 deletions(-) diff --git a/adm/admin.lib.php b/adm/admin.lib.php index 9509f3a8d..04919ebc4 100644 --- a/adm/admin.lib.php +++ b/adm/admin.lib.php @@ -489,6 +489,19 @@ if (isset($stx)) $arr_query[] = 'stx='.$stx; if (isset($page)) $arr_query[] = 'page='.$page; $qstr = implode("&", $arr_query); +if ( isset($_REQUEST) && $_REQUEST ){ + if( admin_referer_check(true) ){ + + foreach( $_REQUEST as $key=>$value ){ + if( $value && preg_match('/<\s?[^\>]*\/?\s?>/i', $value) && preg_match('/script.*?\/script/ius', $value) ){ + alert('요청 쿼리에 잘못된 스크립트문장이 있습니다.\\nXSS 공격일수도 있습니다.'); + die(); + } + } + + } +} + // 관리자에서는 추가 스크립트는 사용하지 않는다. //$config['cf_add_script'] = ''; ?> \ No newline at end of file diff --git a/adm/member_list_update.php b/adm/member_list_update.php index eb6d8f791..915fdb880 100644 --- a/adm/member_list_update.php +++ b/adm/member_list_update.php @@ -29,19 +29,19 @@ if ($_POST['act_button'] == "선택수정") { $msg .= $mb['mb_id'].' : 로그인 중인 관리자는 수정 할 수 없습니다.\\n'; } else { if($_POST['mb_certify'][$k]) - $mb_adult = $_POST['mb_adult'][$k]; + $mb_adult = (int) $_POST['mb_adult'][$k]; else $mb_adult = 0; $sql = " update {$g5['member_table']} - set mb_level = '{$_POST['mb_level'][$k]}', - mb_intercept_date = '{$_POST['mb_intercept_date'][$k]}', - mb_mailling = '{$_POST['mb_mailling'][$k]}', - mb_sms = '{$_POST['mb_sms'][$k]}', - mb_open = '{$_POST['mb_open'][$k]}', - mb_certify = '{$_POST['mb_certify'][$k]}', + set mb_level = '".sql_real_escape_string($_POST['mb_level'][$k])."', + mb_intercept_date = '".sql_real_escape_string($_POST['mb_intercept_date'][$k])."', + mb_mailling = '".sql_real_escape_string($_POST['mb_mailling'][$k])."', + mb_sms = '".sql_real_escape_string($_POST['mb_sms'][$k])."', + mb_open = '".sql_real_escape_string($_POST['mb_open'][$k])."', + mb_certify = '".sql_real_escape_string($_POST['mb_certify'][$k])."', mb_adult = '{$mb_adult}' - where mb_id = '{$_POST['mb_id'][$k]}' "; + where mb_id = '".sql_real_escape_string($_POST['mb_id'][$k])."' "; sql_query($sql); } } diff --git a/lib/common.lib.php b/lib/common.lib.php index 9e9c53816..ba8fc8a0d 100644 --- a/lib/common.lib.php +++ b/lib/common.lib.php @@ -740,6 +740,8 @@ function get_group($gr_id, $is_cache=false) function get_member($mb_id, $fields='*', $is_cache=false) { global $g5; + + $mb_id = preg_replace("/[^0-9a-z_]+/i", "", $mb_id); static $cache = array(); From f6d994d810f04f0a77b2e68108674a233b273f7e Mon Sep 17 00:00:00 2001 From: thisgun Date: Mon, 1 Oct 2018 18:35:08 +0900 Subject: [PATCH 13/90] =?UTF-8?q?=EB=A6=AC=EB=9D=BC=EC=9D=B4=ED=8A=B8=20?= =?UTF-8?q?=EA=B7=9C=EC=B9=99=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- adm/_rewrite_config_form.php | 16 +++++++++------- lib/uri.lib.php | 3 +-- 2 files changed, 10 insertions(+), 9 deletions(-) diff --git a/adm/_rewrite_config_form.php b/adm/_rewrite_config_form.php index e40c7db44..4c2b79dca 100644 --- a/adm/_rewrite_config_form.php +++ b/adm/_rewrite_config_form.php @@ -34,10 +34,10 @@ add_javascript('', 10);
- - + + - +
@@ -75,10 +75,12 @@ add_javascript('', 10); 닫기 -

아래 코드를 복사하여 .htaccess 파일에 붙여넣기 하여 주세요.

- +

.htaccess 파일에 적용할 코드입니다. + +
아래 코드를 복사하여 .htaccess 파일에 붙여넣기 하여 주세요. + +

+
-
+
@@ -59,7 +59,7 @@ add_javascript('', 10); $checked = ((int) $config['cf_bbs_rewrite'] === (int) $k) ? 'checked' : ''; ?>
- + diff --git a/adm/css/admin.css b/adm/css/admin.css index 33d6d69d2..86af09271 100644 --- a/adm/css/admin.css +++ b/adm/css/admin.css @@ -27,6 +27,7 @@ a:link, a:visited {color:#000;text-decoration:none} h2{font-size: 1.083em;font-weight: bold;margin:10px 0} +#wrapper {min-height:480px} /* 레이아웃 */ #hd h1 {position:absolute;font-size:0;line-height:0;overflow:hidden} #hd_top{position:fixed;top:0;left:0;width:100%;height:50px;background:#3f51b5;z-index:1000} @@ -512,6 +513,9 @@ td.td_grpset {width:160px;border-left:1px solid #e9ecee;text-align:center} /* 환경설정 */ .cf_cert_hide {display:none} +.server_config_views {margin-bottom:10px} +.rules_label {margin-left:5px;vertical-align:middle} + .is_rewrite .connect-close {position:absolute;top:10px;right:10px;margin:0;padding:0;width:30px;height:30px;border:0;background:transparent;color:#383838;cursor:pointer;font-size:15px} .is_rewrite .connect-close:hover {color:#ff5191} .is_rewrite .connect-close .fa {margin:0 0 0 1px} diff --git a/plugin/debugbar/style.css b/plugin/debugbar/style.css index e01415591..88f2a2a27 100644 --- a/plugin/debugbar/style.css +++ b/plugin/debugbar/style.css @@ -1,4 +1,4 @@ -.debug_bar_wrap{display:block;position:relative;z-index:80;height:32px;background-color:#1ABC9C} +.debug_bar_wrap{clear:both;display:block;position:relative;z-index:80;height:32px;background-color:#1ABC9C} .debug_bar_content{display:none;position:absolute;z-index:81;width:100%;top:32px;min-height:300px;overflow:hidden;background:#fff;overflow-y:scroll;box-sizing:content-box;border-top:thin solid gray} .debug_bar_text_group{position:relative;padding:0 20px 0 120px;line-height:32px;} .debug_bar_btn_group{position:absolute;top:0;left:1em;line-height:32px;text-align:left} From 100328a0313e11f1e35e5c81ca29f667d996c0f3 Mon Sep 17 00:00:00 2001 From: thisgun Date: Thu, 4 Oct 2018 10:52:24 +0900 Subject: [PATCH 16/90] =?UTF-8?q?=EC=9D=BC=EB=B6=80=20=EB=A6=AC=EB=9D=BC?= =?UTF-8?q?=EC=9D=B4=ED=8A=B8=20=EA=B7=9C=EC=B9=99=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- bbs/list.php | 2 +- bbs/view.php | 8 ++--- lib/URI/uri.class.php | 51 +++++++++++++++------------- lib/uri.lib.php | 77 ++++++++++++++++++++++++++++++++++++++++--- 4 files changed, 106 insertions(+), 32 deletions(-) diff --git a/bbs/list.php b/bbs/list.php index 9677f3d32..85f179c7c 100644 --- a/bbs/list.php +++ b/bbs/list.php @@ -231,7 +231,7 @@ if ($is_search_bbs) { $write_href = ''; if ($member['mb_level'] >= $board['bo_write_level']) { - $write_href = get_pretty_url($bo_table, '', '', 'write'); + $write_href = short_url_clean(G5_BBS_URL.'/write.php?bo_table='.$bo_table); } $nobr_begin = $nobr_end = ""; diff --git a/bbs/view.php b/bbs/view.php index de5fd5359..bea95be85 100644 --- a/bbs/view.php +++ b/bbs/view.php @@ -62,22 +62,20 @@ if (isset($next['wr_id']) && $next['wr_id']) { // 쓰기 링크 $write_href = ''; if ($member['mb_level'] >= $board['bo_write_level']) { - $write_href = get_pretty_url($bo_table, '', '', 'write'); + $write_href = short_url_clean(G5_BBS_URL.'/write.php?bo_table='.$bo_table); } // 답변 링크 $reply_href = ''; if ($member['mb_level'] >= $board['bo_reply_level']) { - //$reply_href = './write.php?w=r&bo_table='.$bo_table.'&wr_id='.$wr_id.$qstr; - $reply_href = get_pretty_url($bo_table, '', 'w=r&wr_id='.$wr_id.$qstr, 'write'); + $reply_href = short_url_clean(G5_BBS_URL.'/write.php?w=r&bo_table='.$bo_table.'&wr_id='.$wr_id.$qstr); } // 수정, 삭제 링크 $update_href = $delete_href = ''; // 로그인중이고 자신의 글이라면 또는 관리자라면 비밀번호를 묻지 않고 바로 수정, 삭제 가능 if (($member['mb_id'] && ($member['mb_id'] === $write['mb_id'])) || $is_admin) { - //$update_href = G5_BBS_URL.'/write.php?w=u&bo_table='.$bo_table.'&wr_id='.$wr_id.'&page='.$page.$qstr; - $update_href = get_pretty_url($bo_table, '', 'w=u&wr_id='.$wr_id.'&page='.$page.$qstr, 'write'); + $update_href = short_url_clean(G5_BBS_URL.'/write.php?w=u&bo_table='.$bo_table.'&wr_id='.$wr_id.'&page='.$page.$qstr); set_session('ss_delete_token', $token = uniqid(time())); $delete_href = G5_BBS_URL.'/delete.php?bo_table='.$bo_table.'&wr_id='.$wr_id.'&token='.$token.'&page='.$page.urldecode($qstr); } diff --git a/lib/URI/uri.class.php b/lib/URI/uri.class.php index 254c0e6af..0e45ceea8 100644 --- a/lib/URI/uri.class.php +++ b/lib/URI/uri.class.php @@ -84,49 +84,56 @@ class G5_URI { return $links; } - public function makeClean($stringurl) { + public function makeClean($string_url) { /* convert normal URL query string to clean URL */ - $url=parse_url($stringurl); + $url=parse_url($string_url); $strurl = basename($url['path'],".php"); $qstring = parse_str($url['query'],$vars); while(list($k,$v) = each($vars)) $strurl .= "/".$v; return $strurl; } - public function url_clean($stringurl, $add_qry='') { + public function url_clean($string_url, $add_qry='') { global $config, $g5; - $stringurl = str_replace('&', '&', $stringurl); - $url=parse_url($stringurl); - $strurl = basename($url['path'],".php"); + $string_url = str_replace('&', '&', $string_url); + $url=parse_url($string_url); + $page_name = basename($url['path'],".php"); + + $array_page_names = apply_replace('url_clean_page_names', array('board', 'write')); - if( ! in_array($strurl, array('board', 'view_comment.page')) ){ //게시판이 아니면 리턴 - return $stringurl; + if( strpos($string_url, G5_BBS_URL) === false || ! in_array($page_name, $array_page_names) ){ //게시판이 아니면 리턴 + return $string_url; } $return_url = ''; - $qstring = parse_str($url['query'],$vars); + $qstring = parse_str($url['query'], $vars); // 예) Array ( [scheme] => http [host] => sir.kr [path] => /bbs/board.php [query] => wr_id=1110870&bo_table=cm_free&cpage=1 [fragment] => c_1110946 ) - //while(list($k,$v) = each($vars)) $strurl .= "/".$v; + //while(list($k,$v) = each($vars)) $page_name .= "/".$v; + + if( $page_name === 'write' ){ + $vars['action'] = 'write'; + $allow_param_keys = array('bo_table'=>'', 'action'=>''); + } else { + $allow_param_keys = array('bo_table'=>'', 'wr_id'=>''); + } - $tmp = array('bo_table'=>'', 'wr_id'=>''); $s = array(); - foreach( $tmp as $key=>$v ){ + foreach( $allow_param_keys as $key=>$v ){ if( !isset($vars[$key]) || empty($vars[$key]) ) continue; $add = ''; $s[$key] = $vars[$key]; } - if( $config['cf_bbs_rewrite'] > 1 && (isset($s['wr_id']) && $s['wr_id']) && (isset($s['bo_table']) && $s['bo_table']) ){ + if( $config['cf_bbs_rewrite'] > 1 && $page_name === 'board' && (isset($s['wr_id']) && $s['wr_id']) && (isset($s['bo_table']) && $s['bo_table']) ){ $get_write = get_write( get_write_table_name($s['bo_table']), $s['wr_id'], true); if( $get_write['wr_seo_title'] ){ unset($s['wr_id']); $s['wr_seo_title'] = $get_write['wr_seo_title'].'/'; } - } $fragment = isset($url['fragment']) ? '#'.$url['fragment'] : ''; @@ -134,17 +141,17 @@ class G5_URI { $host = G5_URL; if( isset($url['host']) ){ + + $array_file_paths = apply_replace('url_clean_page_paths', array('/'.G5_BBS_DIR.'/board.php', '/'.G5_BBS_DIR.'/write.php')); + $str_path = isset($url['path']) ? $url['path'] : ''; - $http = 'http://'; - if(isset($_SERVER['HTTPS']) && $_SERVER['HTTPS']=='on') { - $http = 'https://'; - } - $host = $http.$url['host'].str_replace('/'.G5_BBS_DIR.'/board.php', '', $str_path); + $http = (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS']=='on') ? 'https://' : 'http://'; + $host = $http.$url['host'].str_replace($array_file_paths, '', $str_path); } $add_param = ''; - if( $result = array_diff_key($vars, $tmp ) ){ + if( $result = array_diff_key($vars, $allow_param_keys ) ){ $add_param = '?'.http_build_query($result,'','&'); } @@ -152,8 +159,8 @@ class G5_URI { $add_param .= $add_param ? '&'.$add_qry : '?'.$add_qry; } - while(list($k,$v) = each($s)) $return_url .= "/".$v; - + while(list($k,$v) = each($s)) $return_url .= '/'.$v; + return $host.$return_url.$add_param.$fragment; } } diff --git a/lib/uri.lib.php b/lib/uri.lib.php index 9da9633cb..cb45212d9 100644 --- a/lib/uri.lib.php +++ b/lib/uri.lib.php @@ -94,12 +94,81 @@ function get_pretty_url($folder, $no='', $query_string='', $action='') return implode('/', $segments).$add_query; } -function short_url_clean($url, $add_qry=''){ - if( class_exists('G5_URI') ){ - return G5_URI::getInstance()->url_clean($url, $add_qry); +function short_url_clean($string_url, $add_qry=''){ + + global $config, $g5; + + if( isset($config['cf_bbs_rewrite']) && $config['cf_bbs_rewrite'] ){ + + $string_url = str_replace('&', '&', $string_url); + $url=parse_url($string_url); + $page_name = basename($url['path'],".php"); + + $array_page_names = apply_replace('url_clean_page_names', array('board', 'write')); + + if( strpos($string_url, G5_BBS_URL) === false || ! in_array($page_name, $array_page_names) ){ //게시판이 아니면 리턴 + return $string_url; + } + + $return_url = ''; + $qstring = parse_str($url['query'], $vars); + + // 예) Array ( [scheme] => http [host] => sir.kr [path] => /bbs/board.php [query] => wr_id=1110870&bo_table=cm_free&cpage=1 [fragment] => c_1110946 ) + //while(list($k,$v) = each($vars)) $page_name .= "/".$v; + + if( $page_name === 'write' ){ + $vars['action'] = 'write'; + $allow_param_keys = array('bo_table'=>'', 'action'=>''); + } else { + $allow_param_keys = array('bo_table'=>'', 'wr_id'=>''); + } + + $s = array(); + + foreach( $allow_param_keys as $key=>$v ){ + if( !isset($vars[$key]) || empty($vars[$key]) ) continue; + $add = ''; + $s[$key] = $vars[$key]; + } + + if( $config['cf_bbs_rewrite'] > 1 && $page_name === 'board' && (isset($s['wr_id']) && $s['wr_id']) && (isset($s['bo_table']) && $s['bo_table']) ){ + $get_write = get_write( get_write_table_name($s['bo_table']), $s['wr_id'], true); + + if( $get_write['wr_seo_title'] ){ + unset($s['wr_id']); + $s['wr_seo_title'] = $get_write['wr_seo_title'].'/'; + } + } + + $fragment = isset($url['fragment']) ? '#'.$url['fragment'] : ''; + + $host = G5_URL; + + if( isset($url['host']) ){ + + $array_file_paths = apply_replace('url_clean_page_paths', array('/'.G5_BBS_DIR.'/board.php', '/'.G5_BBS_DIR.'/write.php')); + + $str_path = isset($url['path']) ? $url['path'] : ''; + $http = (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS']=='on') ? 'https://' : 'http://'; + $host = $http.$url['host'].str_replace($array_file_paths, '', $str_path); + } + + $add_param = ''; + + if( $result = array_diff_key($vars, $allow_param_keys ) ){ + $add_param = '?'.http_build_query($result,'','&'); + } + + if( $add_qry ){ + $add_param .= $add_param ? '&'.$add_qry : '?'.$add_qry; + } + + while(list($k,$v) = each($s)) $return_url .= '/'.$v; + + return $host.$return_url.$add_param.$fragment; } - return $url; + return $string_url; } function correct_goto_url($url){ From c742b3fff8216a7f46c3d778cab649b59a034e86 Mon Sep 17 00:00:00 2001 From: thisgun Date: Thu, 4 Oct 2018 10:58:20 +0900 Subject: [PATCH 17/90] =?UTF-8?q?=EA=B6=8C=ED=95=9C=20=EB=AC=B8=EA=B5=AC?= =?UTF-8?q?=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- adm/_rewrite_config_form.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/adm/_rewrite_config_form.php b/adm/_rewrite_config_form.php index f2c660e75..1a442b3a4 100644 --- a/adm/_rewrite_config_form.php +++ b/adm/_rewrite_config_form.php @@ -76,8 +76,8 @@ add_javascript('', 10);

.htaccess 파일에 적용할 코드입니다. - -
아래 코드를 복사하여 .htaccess 파일에 붙여넣기 하여 주세요. + +
자동으로 .htaccess 파일을 수정 할수 있는 권한이 없습니다.
아래 코드를 복사하여 .htaccess 파일이 없다면 생성 후에, 아래 내용을 복사 붙여넣기 해 주세요.

From 352cf069442eefa6c63e84244b1573936143e751 Mon Sep 17 00:00:00 2001 From: thisgun Date: Thu, 11 Oct 2018 09:59:42 +0900 Subject: [PATCH 18/90] =?UTF-8?q?pbkdf2=20=EC=95=94=ED=98=B8=ED=99=94=20?= =?UTF-8?q?=ED=95=A8=EC=88=98=20=EC=A0=81=EC=9A=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- bbs/login_check.php | 2 +- config.php | 4 +- install/install_db.php | 2 +- lib/common.lib.php | 34 +++++++ lib/pbkdf2.compat.php | 221 +++++++++++++++++++++++++++++++++++++++++ 5 files changed, 260 insertions(+), 3 deletions(-) create mode 100644 lib/pbkdf2.compat.php diff --git a/bbs/login_check.php b/bbs/login_check.php index 3fe856313..ba7c65987 100644 --- a/bbs/login_check.php +++ b/bbs/login_check.php @@ -29,7 +29,7 @@ if(function_exists('social_is_login_check')){ // 가입된 회원이 아니다. 비밀번호가 틀리다. 라는 메세지를 따로 보여주지 않는 이유는 // 회원아이디를 입력해 보고 맞으면 또 비밀번호를 입력해보는 경우를 방지하기 위해서입니다. // 불법사용자의 경우 회원아이디가 틀린지, 비밀번호가 틀린지를 알기까지는 많은 시간이 소요되기 때문입니다. -if (!$is_social_password_check && (!$mb['mb_id'] || !check_password($mb_password, $mb['mb_password'])) ) { +if (!$is_social_password_check && (!$mb['mb_id'] || !login_password_check($mb, $mb_password, $mb['mb_password'])) ) { alert('가입된 회원아이디가 아니거나 비밀번호가 틀립니다.\\n비밀번호는 대소문자를 구분합니다.'); } diff --git a/config.php b/config.php index 57cadaacb..6d69fe466 100644 --- a/config.php +++ b/config.php @@ -166,7 +166,9 @@ define('G5_SMTP_PORT', '25'); // 암호화 함수 지정 // 사이트 운영 중 설정을 변경하면 로그인이 안되는 등의 문제가 발생합니다. -define('G5_STRING_ENCRYPT_FUNCTION', 'sql_password'); +//define('G5_STRING_ENCRYPT_FUNCTION', 'sql_password'); +define('G5_STRING_ENCRYPT_FUNCTION', 'create_hash'); +define('G5_MYSQL_PASSWORD_LENGTH', 41); // mysql password length 41, old_password 의 경우에는 16 // SQL 에러를 표시할 것인지 지정 // 에러를 표시하려면 TRUE 로 변경 diff --git a/install/install_db.php b/install/install_db.php index 431ff1740..28914b4de 100644 --- a/install/install_db.php +++ b/install/install_db.php @@ -176,7 +176,7 @@ sql_query($sql, true, $dblink); // 관리자 회원가입 $sql = " insert into `{$table_prefix}member` set mb_id = '$admin_id', - mb_password = PASSWORD('$admin_pass'), + mb_password = '".get_encrypt_string($admin_pass)."', mb_name = '$admin_name', mb_nick = '$admin_name', mb_email = '$admin_email', diff --git a/lib/common.lib.php b/lib/common.lib.php index b9d16cc64..b4ec2c59a 100644 --- a/lib/common.lib.php +++ b/lib/common.lib.php @@ -1,6 +1,8 @@ = PBKDF2_COMPAT_ITERATIONS) { + return false; + } else { + return true; + } +} + +// Compares two strings $a and $b in length-constant time. + +function slow_equals($a, $b) +{ + $diff = strlen($a) ^ strlen($b); + for($i = 0; $i < strlen($a) && $i < strlen($b); $i++) { + $diff |= ord($a[$i]) ^ ord($b[$i]); + } + return $diff === 0; +} + +// PBKDF2 key derivation function as defined by RSA's PKCS #5: https://www.ietf.org/rfc/rfc2898.txt +// Test vectors can be found here: https://www.ietf.org/rfc/rfc6070.txt +// This implementation of PBKDF2 was originally created by https://defuse.ca +// With improvements by http://www.variations-of-shadow.com + +function pbkdf2_default($algo, $password, $salt, $count, $key_length) +{ + // Sanity check. + + if ($count <= 0 || $key_length <= 0) { + trigger_error('PBKDF2 ERROR: Invalid parameters.', E_USER_ERROR); + } + + // Check if we should use the fallback function. + + if (!$algo) return pbkdf2_fallback($password, $salt, $count, $key_length); + + // Check if the selected algorithm is available. + + $algo = strtolower($algo); + if (!function_exists('hash_algos') || !in_array($algo, hash_algos())) { + if ($algo === 'sha1') { + return pbkdf2_fallback($password, $salt, $count, $key_length); + } else { + trigger_error('PBKDF2 ERROR: Hash algorithm not supported.', E_USER_ERROR); + } + } + + // Use built-in function if available. + + if (function_exists('hash_pbkdf2')) { + return hash_pbkdf2($algo, $password, $salt, $count, $key_length, true); + } + + // Count the blocks. + + $hash_length = strlen(hash($algo, '', true)); + $block_count = ceil($key_length / $hash_length); + + // Hash it! + + $output = ''; + for ($i = 1; $i <= $block_count; $i++) { + $last = $salt . pack('N', $i); // $i encoded as 4 bytes, big endian. + $last = $xorsum = hash_hmac($algo, $last, $password, true); // first iteration. + for ($j = 1; $j < $count; $j++) { // The other $count - 1 iterations. + $xorsum ^= ($last = hash_hmac($algo, $last, $password, true)); + } + $output .= $xorsum; + } + + // Truncate and return. + + return substr($output, 0, $key_length); +} + +// Fallback function using sha1() and a pure-PHP implementation of HMAC. +// The result is identical to the default function when used with SHA-1. +// But it is approximately 1.6x slower than the hash_hmac() function of PHP 5.1.2+, +// And approximately 2.3x slower than the hash_pbkdf2() function of PHP 5.5+. + +function pbkdf2_fallback($password, $salt, $count, $key_length) +{ + // Count the blocks. + + $hash_length = 20; + $block_count = ceil($key_length / $hash_length); + + // Prepare the HMAC key and padding. + + if (strlen($password) > 64) { + $password = str_pad(sha1($password, true), 64, chr(0)); + } else { + $password = str_pad($password, 64, chr(0)); + } + + $opad = str_repeat(chr(0x5C), 64) ^ $password; + $ipad = str_repeat(chr(0x36), 64) ^ $password; + + // Hash it! + + $output = ''; + for ($i = 1; $i <= $block_count; $i++) { + $last = $salt . pack('N', $i); + $xorsum = $last = pack('H*', sha1($opad . pack('H*', sha1($ipad . $last)))); + for ($j = 1; $j < $count; $j++) { + $last = pack('H*', sha1($opad . pack('H*', sha1($ipad . $last)))); + $xorsum ^= $last; + } + $output .= $xorsum; + } + + // Truncate and return. + + return substr($output, 0, $key_length); +} From c8a9576d6320ff78306f0fa771553aa3c3d3b288 Mon Sep 17 00:00:00 2001 From: thisgun Date: Thu, 11 Oct 2018 11:27:18 +0900 Subject: [PATCH 19/90] =?UTF-8?q?=ED=8C=A8=EC=8A=A4=EC=9B=8C=EB=93=9C=20?= =?UTF-8?q?=EC=B2=B4=ED=81=AC=20=EA=B3=BC=EC=A0=95=20=EB=B9=A0=EC=A7=84=20?= =?UTF-8?q?=EB=B6=80=EB=B6=84=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- bbs/register_form.php | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/bbs/register_form.php b/bbs/register_form.php index 64705d870..2d47e3a35 100644 --- a/bbs/register_form.php +++ b/bbs/register_form.php @@ -76,12 +76,14 @@ if ($w == "") { if ($_POST['mb_password']) { // 수정된 정보를 업데이트후 되돌아 온것이라면 비밀번호가 암호화 된채로 넘어온것임 - if ($_POST['is_update']) + if ($_POST['is_update']) { $tmp_password = $_POST['mb_password']; - else - $tmp_password = get_encrypt_string($_POST['mb_password']); + $pass_check = ($member['mb_password'] === $tmp_password); + } else { + $pass_check = check_password($_POST['mb_password'], $member['mb_password']); + } - if ($member['mb_password'] != $tmp_password) + if (!$pass_check) alert('비밀번호가 틀립니다.'); } From 082f0c43eec5c233ae6052d33680ee00fdc01736 Mon Sep 17 00:00:00 2001 From: thisgun Date: Fri, 12 Oct 2018 17:57:34 +0900 Subject: [PATCH 20/90] =?UTF-8?q?seo=5Ftitle=20=EC=A0=80=EC=9E=A5=20?= =?UTF-8?q?=EC=BD=94=EB=93=9C=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- bbs/content.php | 4 ++++ lib/uri.lib.php | 24 ++++++++++++++++++++++++ 2 files changed, 28 insertions(+) diff --git a/bbs/content.php b/bbs/content.php index 818d52799..e4c264ec4 100644 --- a/bbs/content.php +++ b/bbs/content.php @@ -13,6 +13,10 @@ if($co_seo_title){ $co = get_content_db($co_id); } +if( ! (isset($co['co_seo_title']) && $co['co_seo_title']) && $co['co_id'] ){ + seo_title_update($g5['content_table'], $co['co_id'], 'content'); +} + if (G5_IS_MOBILE) { include_once(G5_MOBILE_PATH.'/content.php'); return; diff --git a/lib/uri.lib.php b/lib/uri.lib.php index cb45212d9..44de67572 100644 --- a/lib/uri.lib.php +++ b/lib/uri.lib.php @@ -257,6 +257,30 @@ function exist_seo_title_recursive($type, $seo_title, $write_table, $sql_id=0){ return exist_seo_title_recursive($type, $seo_title, $write_table, $sql_id); } +function seo_title_update($write_table, $wr_id, $type='bbs'){ + + global $g5; + + if( $type === 'bbs' ){ + $sql = "select wr_seo_title FROM {$write_table} WHERE wr_seo_title = '".sql_real_escape_string($seo_title)."' AND wr_id <> '$sql_id' limit 1"; + + $row = sql_fetch($sql); + + echo $sql; + + $exists_title = $row['wr_seo_title']; + + } else if ( $type === 'content' ){ + + $sql = "select co_seo_title FROM {$write_table} WHERE co_seo_title = '".sql_real_escape_string($seo_title)."' AND co_id <> '$sql_id' limit 1"; + $row = sql_fetch($sql); + + $exists_title = $row['co_seo_title']; + + } + +} + function get_nginx_conf_rules($return_string=false){ $get_path_url = parse_url( G5_URL ); From 866f49ec474caf209fa0c07cad5446d9521c3f40 Mon Sep 17 00:00:00 2001 From: thisgun Date: Mon, 22 Oct 2018 17:53:38 +0900 Subject: [PATCH 21/90] =?UTF-8?q?pbkdf2=20=EC=95=94=ED=98=B8=ED=99=94=20?= =?UTF-8?q?=EC=A0=81=EC=9A=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- adm/board_form_update.php | 2 + bbs/login_check.php | 2 +- common.php | 2 +- config.php | 10 +- install/gnuboard5.sql | 62 ++++++----- install/install_db.php | 11 +- lib/common.lib.php | 38 +++++++ lib/pbkdf2.compat.php | 221 ++++++++++++++++++++++++++++++++++++++ lib/uri.lib.php | 27 ++--- 9 files changed, 328 insertions(+), 47 deletions(-) create mode 100644 lib/pbkdf2.compat.php diff --git a/adm/board_form_update.php b/adm/board_form_update.php index 912887760..b3de17f01 100644 --- a/adm/board_form_update.php +++ b/adm/board_form_update.php @@ -186,6 +186,8 @@ if ($w == '') { // 게시판 테이블 생성 $file = file('./sql_write.sql'); + $file = get_db_create_replace($file); + $sql = implode($file, "\n"); $create_table = $g5['write_prefix'] . $bo_table; diff --git a/bbs/login_check.php b/bbs/login_check.php index 3fe856313..ba7c65987 100644 --- a/bbs/login_check.php +++ b/bbs/login_check.php @@ -29,7 +29,7 @@ if(function_exists('social_is_login_check')){ // 가입된 회원이 아니다. 비밀번호가 틀리다. 라는 메세지를 따로 보여주지 않는 이유는 // 회원아이디를 입력해 보고 맞으면 또 비밀번호를 입력해보는 경우를 방지하기 위해서입니다. // 불법사용자의 경우 회원아이디가 틀린지, 비밀번호가 틀린지를 알기까지는 많은 시간이 소요되기 때문입니다. -if (!$is_social_password_check && (!$mb['mb_id'] || !check_password($mb_password, $mb['mb_password'])) ) { +if (!$is_social_password_check && (!$mb['mb_id'] || !login_password_check($mb, $mb_password, $mb['mb_password'])) ) { alert('가입된 회원아이디가 아니거나 비밀번호가 틀립니다.\\n비밀번호는 대소문자를 구분합니다.'); } diff --git a/common.php b/common.php index c3b9d3dcd..df742129b 100644 --- a/common.php +++ b/common.php @@ -145,7 +145,7 @@ if (file_exists($dbconfig_file)) { // mysql connect resource $g5 배열에 저장 - 명랑폐인님 제안 $g5['connect_db'] = $connect_db; - sql_set_charset('utf8', $connect_db); + sql_set_charset(G5_DB_CHARSET, $connect_db); if(defined('G5_MYSQL_SET_MODE') && G5_MYSQL_SET_MODE) sql_query("SET SESSION sql_mode = ''"); if (defined('G5_TIMEZONE')) sql_query(" set time_zone = '".G5_TIMEZONE."'"); } else { diff --git a/config.php b/config.php index 16abee382..61463f1bb 100644 --- a/config.php +++ b/config.php @@ -32,6 +32,12 @@ define('G5_HTTPS_DOMAIN', ''); //디버깅 상수 define('G5_DEBUG', true); +// Set Databse table default engine is Databse default_storage_engine, If you want to use MyISAM or InnoDB, change to MyISAM or InnoDB. +define('G5_DB_ENGINE', ''); + +// Set Databse table default Charset +define('G5_DB_CHARSET', 'utf8mb4'); + /* www.sir.kr 과 sir.kr 도메인은 서로 다른 도메인으로 인식합니다. 쿠키를 공유하려면 .sir.kr 과 같이 입력하세요. 이곳에 입력이 없다면 www 붙은 도메인과 그렇지 않은 도메인은 쿠키를 공유하지 않으므로 로그인이 풀릴 수 있습니다. @@ -175,7 +181,9 @@ define('G5_SMTP_PORT', '25'); // 암호화 함수 지정 // 사이트 운영 중 설정을 변경하면 로그인이 안되는 등의 문제가 발생합니다. -define('G5_STRING_ENCRYPT_FUNCTION', 'sql_password'); +// 5.4 버전 이전에는 sql_password 이 사용됨, 5.4 버전부터 기본이 create_hash 로 변경 +define('G5_STRING_ENCRYPT_FUNCTION', 'create_hash'); +define('G5_MYSQL_PASSWORD_LENGTH', 41); // mysql password length 41, old_password 의 경우에는 16 // SQL 에러를 표시할 것인지 지정 // 에러를 표시하려면 TRUE 로 변경 diff --git a/install/gnuboard5.sql b/install/gnuboard5.sql index d8e65347f..4e1755264 100644 --- a/install/gnuboard5.sql +++ b/install/gnuboard5.sql @@ -186,10 +186,10 @@ CREATE TABLE IF NOT EXISTS `g5_board_new` ( DROP TABLE IF EXISTS `g5_config`; CREATE TABLE IF NOT EXISTS `g5_config` ( `cf_title` varchar(255) NOT NULL DEFAULT '', - `cf_theme` varchar(255) NOT NULL DEFAULT '', - `cf_admin` varchar(255) NOT NULL DEFAULT '', - `cf_admin_email` varchar(255) NOT NULL DEFAULT '', - `cf_admin_email_name` varchar(255) NOT NULL DEFAULT '', + `cf_theme` varchar(100) NOT NULL DEFAULT '', + `cf_admin` varchar(100) NOT NULL DEFAULT '', + `cf_admin_email` varchar(100) NOT NULL DEFAULT '', + `cf_admin_email_name` varchar(100) NOT NULL DEFAULT '', `cf_add_script` text NOT NULL, `cf_use_point` tinyint(4) NOT NULL DEFAULT '0', `cf_point_term` int(11) NOT NULL DEFAULT '0', @@ -198,25 +198,26 @@ CREATE TABLE IF NOT EXISTS `g5_config` ( `cf_login_point` int(11) NOT NULL DEFAULT '0', `cf_cut_name` tinyint(4) NOT NULL DEFAULT '0', `cf_nick_modify` int(11) NOT NULL DEFAULT '0', - `cf_new_skin` varchar(255) NOT NULL DEFAULT '', + `cf_new_skin` varchar(50) NOT NULL DEFAULT '', `cf_new_rows` int(11) NOT NULL DEFAULT '0', - `cf_search_skin` varchar(255) NOT NULL DEFAULT '', - `cf_connect_skin` varchar(255) NOT NULL DEFAULT '', - `cf_faq_skin` varchar(255) NOT NULL DEFAULT '', + `cf_search_skin` varchar(50) NOT NULL DEFAULT '', + `cf_connect_skin` varchar(50) NOT NULL DEFAULT '', + `cf_faq_skin` varchar(50) NOT NULL DEFAULT '', `cf_read_point` int(11) NOT NULL DEFAULT '0', `cf_write_point` int(11) NOT NULL DEFAULT '0', `cf_comment_point` int(11) NOT NULL DEFAULT '0', `cf_download_point` int(11) NOT NULL DEFAULT '0', `cf_write_pages` int(11) NOT NULL DEFAULT '0', `cf_mobile_pages` int(11) NOT NULL DEFAULT '0', - `cf_link_target` varchar(255) NOT NULL DEFAULT '', + `cf_link_target` varchar(50) NOT NULL DEFAULT '', + `cf_bbs_rewrite` tinyint(4) NOT NULL DEFAULT '0', `cf_delay_sec` int(11) NOT NULL DEFAULT '0', `cf_filter` text NOT NULL, `cf_possible_ip` text NOT NULL, `cf_intercept_ip` text NOT NULL, `cf_analytics` text NOT NULL, `cf_add_meta` text NOT NULL, - `cf_member_skin` varchar(255) NOT NULL DEFAULT '', + `cf_member_skin` varchar(50) NOT NULL DEFAULT '', `cf_use_homepage` tinyint(4) NOT NULL DEFAULT '0', `cf_req_homepage` tinyint(4) NOT NULL DEFAULT '0', `cf_use_tel` tinyint(4) NOT NULL DEFAULT '0', @@ -272,44 +273,44 @@ CREATE TABLE IF NOT EXISTS `g5_config` ( `cf_privacy` text NOT NULL, `cf_open_modify` int(11) NOT NULL DEFAULT '0', `cf_memo_send_point` int(11) NOT NULL DEFAULT '0', - `cf_mobile_new_skin` varchar(255) NOT NULL DEFAULT '', - `cf_mobile_search_skin` varchar(255) NOT NULL DEFAULT '', - `cf_mobile_connect_skin` varchar(255) NOT NULL DEFAULT '', - `cf_mobile_faq_skin` varchar(255) NOT NULL DEFAULT '', - `cf_mobile_member_skin` varchar(255) NOT NULL DEFAULT '', + `cf_mobile_new_skin` varchar(50) NOT NULL DEFAULT '', + `cf_mobile_search_skin` varchar(50) NOT NULL DEFAULT '', + `cf_mobile_connect_skin` varchar(50) NOT NULL DEFAULT '', + `cf_mobile_faq_skin` varchar(50) NOT NULL DEFAULT '', + `cf_mobile_member_skin` varchar(50) NOT NULL DEFAULT '', `cf_captcha_mp3` varchar(255) NOT NULL DEFAULT '', - `cf_editor` varchar(255) NOT NULL DEFAULT '', + `cf_editor` varchar(50) NOT NULL DEFAULT '', `cf_cert_use` tinyint(4) NOT NULL DEFAULT '0', `cf_cert_ipin` varchar(255) NOT NULL DEFAULT '', `cf_cert_hp` varchar(255) NOT NULL DEFAULT '', `cf_cert_kcb_cd` varchar(255) NOT NULL DEFAULT '', `cf_cert_kcp_cd` varchar(255) NOT NULL DEFAULT '', - `cf_lg_mid` varchar(255) NOT NULL DEFAULT '', - `cf_lg_mert_key` varchar(255) NOT NULL DEFAULT '', + `cf_lg_mid` varchar(100) NOT NULL DEFAULT '', + `cf_lg_mert_key` varchar(100) NOT NULL DEFAULT '', `cf_cert_limit` int(11) NOT NULL DEFAULT '0', `cf_cert_req` tinyint(4) NOT NULL DEFAULT '0', `cf_sms_use` varchar(255) NOT NULL DEFAULT '', `cf_sms_type` varchar(10) NOT NULL DEFAULT '', `cf_icode_id` varchar(255) NOT NULL DEFAULT '', `cf_icode_pw` varchar(255) NOT NULL DEFAULT '', - `cf_icode_server_ip` varchar(255) NOT NULL DEFAULT '', - `cf_icode_server_port` varchar(255) NOT NULL DEFAULT '', - `cf_googl_shorturl_apikey` varchar(255) NOT NULL DEFAULT '', + `cf_icode_server_ip` varchar(50) NOT NULL DEFAULT '', + `cf_icode_server_port` varchar(50) NOT NULL DEFAULT '', + `cf_googl_shorturl_apikey` varchar(50) NOT NULL DEFAULT '', `cf_social_login_use` tinyint(4) NOT NULL DEFAULT '0', `cf_social_servicelist` varchar(255) NOT NULL DEFAULT '', `cf_payco_clientid` varchar(100) NOT NULL DEFAULT '', `cf_payco_secret` varchar(100) NOT NULL DEFAULT '', - `cf_facebook_appid` varchar(255) NOT NULL, - `cf_facebook_secret` varchar(255) NOT NULL, - `cf_twitter_key` varchar(255) NOT NULL, - `cf_twitter_secret` varchar(255) NOT NULL, + `cf_facebook_appid` varchar(100) NOT NULL, + `cf_facebook_secret` varchar(100) NOT NULL, + `cf_twitter_key` varchar(100) NOT NULL, + `cf_twitter_secret` varchar(100) NOT NULL, `cf_google_clientid` varchar(100) NOT NULL DEFAULT '', `cf_google_secret` varchar(100) NOT NULL DEFAULT '', `cf_naver_clientid` varchar(100) NOT NULL DEFAULT '', `cf_naver_secret` varchar(100) NOT NULL DEFAULT '', `cf_kakao_rest_key` varchar(100) NOT NULL DEFAULT '', `cf_kakao_client_secret` varchar(100) NOT NULL DEFAULT '', - `cf_kakao_js_apikey` varchar(255) NOT NULL, + `cf_kakao_js_apikey` varchar(100) NOT NULL, `cf_captcha` varchar(100) NOT NULL DEFAULT '', `cf_recaptcha_site_key` varchar(100) NOT NULL DEFAULT '', `cf_recaptcha_secret_key` varchar(100) NOT NULL DEFAULT '', @@ -416,7 +417,7 @@ CREATE TABLE IF NOT EXISTS `g5_group_member` ( DROP TABLE IF EXISTS `g5_login`; CREATE TABLE IF NOT EXISTS `g5_login` ( - `lo_ip` varchar(255) NOT NULL default '', + `lo_ip` varchar(100) NOT NULL default '', `mb_id` varchar(20) NOT NULL default '', `lo_datetime` datetime NOT NULL default '0000-00-00 00:00:00', `lo_location` text NOT NULL, @@ -645,11 +646,14 @@ CREATE TABLE IF NOT EXISTS `g5_scrap` ( DROP TABLE IF EXISTS `g5_visit`; CREATE TABLE IF NOT EXISTS `g5_visit` ( `vi_id` int(11) NOT NULL default '0', - `vi_ip` varchar(255) NOT NULL default '', + `vi_ip` varchar(100) NOT NULL default '', `vi_date` date NOT NULL default '0000-00-00', `vi_time` time NOT NULL default '00:00:00', `vi_referer` text NOT NULL, - `vi_agent` varchar(255) NOT NULL default '', + `vi_agent` varchar(200) NOT NULL default '', + `vi_browser` varchar(255) NOT NULL DEFAULT '', + `vi_os` varchar(255) NOT NULL DEFAULT '', + `vi_device` varchar(255) NOT NULL DEFAULT '', PRIMARY KEY (`vi_id`), UNIQUE KEY `index1` (`vi_ip`,`vi_date`), KEY `index2` (`vi_date`) diff --git a/install/install_db.php b/install/install_db.php index 4f359bd12..93bfcde1c 100644 --- a/install/install_db.php +++ b/install/install_db.php @@ -62,7 +62,7 @@ if (!$select_db) { } $mysql_set_mode = 'false'; -sql_set_charset('utf8', $dblink); +sql_set_charset(G5_DB_CHARSET, $dblink); $result = sql_query(" SELECT @@sql_mode as mode ", true, $dblink); $row = sql_fetch_array($result); if($row['mode']) { @@ -87,7 +87,10 @@ $file = preg_replace('/`g5_([^`]+`)/', '`'.$table_prefix.'$1', $file); $f = explode(';', $file); for ($i=0; $i @@ -181,7 +184,7 @@ sql_query($sql, true, $dblink); // 관리자 회원가입 $sql = " insert into `{$table_prefix}member` set mb_id = '$admin_id', - mb_password = PASSWORD('$admin_pass'), + mb_password = '".get_encrypt_string($admin_pass)."', mb_name = '$admin_name', mb_nick = '$admin_name', mb_email = '$admin_email', @@ -284,6 +287,8 @@ for ($i=0; $i= PBKDF2_COMPAT_ITERATIONS) { + return false; + } else { + return true; + } +} + +// Compares two strings $a and $b in length-constant time. + +function slow_equals($a, $b) +{ + $diff = strlen($a) ^ strlen($b); + for($i = 0; $i < strlen($a) && $i < strlen($b); $i++) { + $diff |= ord($a[$i]) ^ ord($b[$i]); + } + return $diff === 0; +} + +// PBKDF2 key derivation function as defined by RSA's PKCS #5: https://www.ietf.org/rfc/rfc2898.txt +// Test vectors can be found here: https://www.ietf.org/rfc/rfc6070.txt +// This implementation of PBKDF2 was originally created by https://defuse.ca +// With improvements by http://www.variations-of-shadow.com + +function pbkdf2_default($algo, $password, $salt, $count, $key_length) +{ + // Sanity check. + + if ($count <= 0 || $key_length <= 0) { + trigger_error('PBKDF2 ERROR: Invalid parameters.', E_USER_ERROR); + } + + // Check if we should use the fallback function. + + if (!$algo) return pbkdf2_fallback($password, $salt, $count, $key_length); + + // Check if the selected algorithm is available. + + $algo = strtolower($algo); + if (!function_exists('hash_algos') || !in_array($algo, hash_algos())) { + if ($algo === 'sha1') { + return pbkdf2_fallback($password, $salt, $count, $key_length); + } else { + trigger_error('PBKDF2 ERROR: Hash algorithm not supported.', E_USER_ERROR); + } + } + + // Use built-in function if available. + + if (function_exists('hash_pbkdf2')) { + return hash_pbkdf2($algo, $password, $salt, $count, $key_length, true); + } + + // Count the blocks. + + $hash_length = strlen(hash($algo, '', true)); + $block_count = ceil($key_length / $hash_length); + + // Hash it! + + $output = ''; + for ($i = 1; $i <= $block_count; $i++) { + $last = $salt . pack('N', $i); // $i encoded as 4 bytes, big endian. + $last = $xorsum = hash_hmac($algo, $last, $password, true); // first iteration. + for ($j = 1; $j < $count; $j++) { // The other $count - 1 iterations. + $xorsum ^= ($last = hash_hmac($algo, $last, $password, true)); + } + $output .= $xorsum; + } + + // Truncate and return. + + return substr($output, 0, $key_length); +} + +// Fallback function using sha1() and a pure-PHP implementation of HMAC. +// The result is identical to the default function when used with SHA-1. +// But it is approximately 1.6x slower than the hash_hmac() function of PHP 5.1.2+, +// And approximately 2.3x slower than the hash_pbkdf2() function of PHP 5.5+. + +function pbkdf2_fallback($password, $salt, $count, $key_length) +{ + // Count the blocks. + + $hash_length = 20; + $block_count = ceil($key_length / $hash_length); + + // Prepare the HMAC key and padding. + + if (strlen($password) > 64) { + $password = str_pad(sha1($password, true), 64, chr(0)); + } else { + $password = str_pad($password, 64, chr(0)); + } + + $opad = str_repeat(chr(0x5C), 64) ^ $password; + $ipad = str_repeat(chr(0x36), 64) ^ $password; + + // Hash it! + + $output = ''; + for ($i = 1; $i <= $block_count; $i++) { + $last = $salt . pack('N', $i); + $xorsum = $last = pack('H*', sha1($opad . pack('H*', sha1($ipad . $last)))); + for ($j = 1; $j < $count; $j++) { + $last = pack('H*', sha1($opad . pack('H*', sha1($ipad . $last)))); + $xorsum ^= $last; + } + $output .= $xorsum; + } + + // Truncate and return. + + return substr($output, 0, $key_length); +} diff --git a/lib/uri.lib.php b/lib/uri.lib.php index 44de67572..42ac7aa66 100644 --- a/lib/uri.lib.php +++ b/lib/uri.lib.php @@ -257,28 +257,31 @@ function exist_seo_title_recursive($type, $seo_title, $write_table, $sql_id=0){ return exist_seo_title_recursive($type, $seo_title, $write_table, $sql_id); } -function seo_title_update($write_table, $wr_id, $type='bbs'){ +function seo_title_update($db_table, $pk_id, $type='bbs'){ global $g5; + $pk_id = (int) $pk_id; + if( $type === 'bbs' ){ - $sql = "select wr_seo_title FROM {$write_table} WHERE wr_seo_title = '".sql_real_escape_string($seo_title)."' AND wr_id <> '$sql_id' limit 1"; - $row = sql_fetch($sql); - - echo $sql; - - $exists_title = $row['wr_seo_title']; + $write = get_write($db_table, $pk_id, true); + if( ! $write['wr_seo_title'] && $co['wr_subject'] ){ + $wr_seo_title = exist_seo_title_recursive('bbs', generate_seo_title($write['wr_subject']), $db_table, $pk_id); + $sql = " update `{$db_table}` set wr_seo_title = '{$wr_seo_title}' where wr_id = '{$pk_id}' "; + sql_query($sql); + } } else if ( $type === 'content' ){ - $sql = "select co_seo_title FROM {$write_table} WHERE co_seo_title = '".sql_real_escape_string($seo_title)."' AND co_id <> '$sql_id' limit 1"; - $row = sql_fetch($sql); - - $exists_title = $row['co_seo_title']; + $co = get_content_db($pk_id, true); + if( ! $co['co_seo_title'] && $co['co_subject'] ){ + $co_seo_title = exist_seo_title_recursive('content', generate_seo_title($co['co_subject']), $db_table, $pk_id); + $sql = " update `{$db_table}` set co_seo_title = '{$co_seo_title}' where co_id = '{$pk_id}' "; + sql_query($sql); + } } - } function get_nginx_conf_rules($return_string=false){ From 7f22566ecd3e2d80c6131d966600d9687d77340d Mon Sep 17 00:00:00 2001 From: thisgun Date: Mon, 22 Oct 2018 19:07:50 +0900 Subject: [PATCH 22/90] =?UTF-8?q?=EC=9E=98=EB=AA=BB=EB=90=9C=20=EA=B5=AC?= =?UTF-8?q?=EB=AC=B8=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- install/gnuboard5.sql | 2 +- lib/pbkdf2.compat.php | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/install/gnuboard5.sql b/install/gnuboard5.sql index 4e1755264..d6aa5e1d0 100644 --- a/install/gnuboard5.sql +++ b/install/gnuboard5.sql @@ -544,7 +544,7 @@ CREATE TABLE IF NOT EXISTS `g5_point` ( `po_mb_point` int(11) NOT NULL default '0', `po_rel_table` varchar(20) NOT NULL default '', `po_rel_id` varchar(20) NOT NULL default '', - `po_rel_action` varchar(255) NOT NULL default '', + `po_rel_action` varchar(100) NOT NULL default '', PRIMARY KEY (`po_id`), KEY `index1` (`mb_id`,`po_rel_table`,`po_rel_id`,`po_rel_action`), KEY `index2` (`po_expire_date`) diff --git a/lib/pbkdf2.compat.php b/lib/pbkdf2.compat.php index 7aac1afd5..6bfada1a9 100644 --- a/lib/pbkdf2.compat.php +++ b/lib/pbkdf2.compat.php @@ -48,7 +48,7 @@ function create_hash($password, $force_compat = false) if (function_exists('mcrypt_create_iv')) { $salt = base64_encode(mcrypt_create_iv(PBKDF2_COMPAT_SALT_BYTES, MCRYPT_DEV_URANDOM)); - } elseif (file_exists('/dev/urandom') && $fp = @fopen('/dev/urandom', 'r')) { + } elseif (@file_exists('/dev/urandom') && $fp = @fopen('/dev/urandom', 'r')) { $salt = base64_encode(fread($fp, PBKDF2_COMPAT_SALT_BYTES)); } else { $salt = ''; From eca24d196ed46c3c41787ad4d79ead13ba4ba8bb Mon Sep 17 00:00:00 2001 From: thisgun Date: Wed, 24 Oct 2018 11:05:48 +0900 Subject: [PATCH 23/90] =?UTF-8?q?url=20=EA=B4=80=EB=A0=A8=20=EC=BD=94?= =?UTF-8?q?=EB=93=9C=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/URI/obj.class.php | 13 +++++++++++++ lib/uri.lib.php | 18 ++++++++++++++++-- 2 files changed, 29 insertions(+), 2 deletions(-) diff --git a/lib/URI/obj.class.php b/lib/URI/obj.class.php index 194f4f923..8e606e1d3 100644 --- a/lib/URI/obj.class.php +++ b/lib/URI/obj.class.php @@ -4,6 +4,7 @@ if (!defined('_GNUBOARD_')) exit; Class G5_object_store { public $writes = array(); public $contents = array(); + public $etcs = array(); function get($type, $key, $group ='default') { @@ -14,6 +15,9 @@ Class G5_object_store { case 'content' : $datas = $this->contents; break; + default : + $datas = $this->etcs; + break; } if( $this->exists($type, $key, $group) ){ @@ -37,6 +41,9 @@ Class G5_object_store { case 'content': $datas = $this->contents; break; + default : + $datas = $this->etcs; + break; } return isset($datas[$group]) && ( isset($datas[$group][$key]) || array_key_exists($key, $datas[$group]) ); @@ -53,6 +60,9 @@ Class G5_object_store { case 'content': $this->contents[$group][$key] = $data; break; + default : + $datas = $this->etcs[$group][$key] = $data; + break; } } @@ -65,6 +75,9 @@ Class G5_object_store { case 'content': $datas = $this->contents; break; + default : + $datas = $this->etcs; + break; } if ( ! $this->exists('bbs', $key, $group) ) diff --git a/lib/uri.lib.php b/lib/uri.lib.php index 42ac7aa66..fb7a893f6 100644 --- a/lib/uri.lib.php +++ b/lib/uri.lib.php @@ -13,6 +13,10 @@ function get_pretty_url($folder, $no='', $query_string='', $action='') $segments = array(); $url = $add_query = ''; + if( $url = apply_replace('get_pretty_url', $url, $folder, $no, $query_string, $action) ){ + return $url; + } + // use shortten url if($config['cf_bbs_rewrite']) { @@ -286,7 +290,7 @@ function seo_title_update($db_table, $pk_id, $type='bbs'){ function get_nginx_conf_rules($return_string=false){ - $get_path_url = parse_url( G5_URL ); + $get_path_url = parse_url(G5_URL); $base_path = isset($get_path_url['path']) ? $get_path_url['path'].'/' : '/'; @@ -294,6 +298,11 @@ function get_nginx_conf_rules($return_string=false){ $rules[] = '#### '.G5_VERSION.' url rules BOF #####'; $rules[] = 'if (!-e $request_filename){'; + + if( $add_rules = apply_replace('add_nginx_conf_rules', '', $get_path_url, $base_path, $return_string) ){ + $rules[] = $add_rules; + } + $rules[] = "rewrite ^{$base_path}content/([0-9a-zA-Z_]+)$ {$base_path}bbs/content.php?co_id=$1&rewrite=1 break;"; $rules[] = "rewrite ^{$base_path}content/([^/]+)/$ {$base_path}bbs/content.php?co_seo_title=$1&rewrite=1 break;"; $rules[] = "rewrite ^{$base_path}rss/([0-9a-zA-Z_]+)$ {$base_path}bbs/rss.php?bo_table=$1 break;"; @@ -309,7 +318,7 @@ function get_nginx_conf_rules($return_string=false){ function get_mod_rewrite_rules($return_string=false){ - $get_path_url = parse_url( G5_URL ); + $get_path_url = parse_url(G5_URL); $base_path = isset($get_path_url['path']) ? $get_path_url['path'].'/' : '/'; @@ -321,6 +330,11 @@ function get_mod_rewrite_rules($return_string=false){ $rules[] = 'RewriteBase '.$base_path; $rules[] = 'RewriteCond %{REQUEST_FILENAME} !-f'; $rules[] = 'RewriteCond %{REQUEST_FILENAME} !-d'; + + if( $add_rules = apply_replace('add_mod_rewrite_rules', '', $get_path_url, $base_path, $return_string) ){ + $rules[] = $add_rules; + } + $rules[] = 'RewriteRule ^content/([0-9a-zA-Z_]+)$ '.G5_BBS_DIR.'/content.php?co_id=$1&rewrite=1 [L]'; $rules[] = 'RewriteRule ^content/([^/]+)/$ '.G5_BBS_DIR.'/content.php?co_seo_title=$1&rewrite=1 [QSA,L]'; $rules[] = 'RewriteRule ^rss/([0-9a-zA-Z_]+)$ '.G5_BBS_DIR.'/rss.php?bo_table=$1 [L]'; From cf566e3512e605c7cb5d3e1fd5c3cd03face69b6 Mon Sep 17 00:00:00 2001 From: thisgun Date: Wed, 24 Oct 2018 13:53:44 +0900 Subject: [PATCH 24/90] =?UTF-8?q?URL=20=ED=83=80=EC=9D=B4=ED=8B=80=20?= =?UTF-8?q?=EC=A7=80=EC=A0=95=20=EC=BD=94=EB=93=9C=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- adm/dbupgrade.php | 6 ++++-- lib/uri.lib.php | 8 +++----- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/adm/dbupgrade.php b/adm/dbupgrade.php index e3c7e1c73..d61b41b36 100644 --- a/adm/dbupgrade.php +++ b/adm/dbupgrade.php @@ -86,7 +86,7 @@ while ($row = sql_fetch_array($result)) { if( !$row ){ sql_query("ALTER TABLE `{$write_table}` - ADD `wr_seo_title` varchar(255) NOT NULL DEFAULT '' AFTER `wr_content`, + ADD `wr_seo_title` varchar(200) NOT NULL DEFAULT '' AFTER `wr_content`, ADD INDEX `wr_seo_title` (`wr_seo_title`); ", false); @@ -100,7 +100,7 @@ $row = sql_fetch($sql); if( !$row ){ sql_query("ALTER TABLE `{$g5['content_table']}` - ADD `co_seo_title` varchar(255) NOT NULL DEFAULT '' AFTER `co_content`, + ADD `co_seo_title` varchar(200) NOT NULL DEFAULT '' AFTER `co_content`, ADD INDEX `co_seo_title` (`co_seo_title`); ", false); @@ -125,6 +125,8 @@ while ($row = sql_fetch_array($result)) { } +$is_check = apply_replace('admin_dbupgrade', $is_check); + $db_upgrade_msg = $is_check ? 'DB 업그레이드가 완료되었습니다.' : '더 이상 업그레이드 할 내용이 없습니다.
현재 DB 업그레이드가 완료된 상태입니다.'; ?> diff --git a/lib/uri.lib.php b/lib/uri.lib.php index fb7a893f6..cc5d317aa 100644 --- a/lib/uri.lib.php +++ b/lib/uri.lib.php @@ -221,8 +221,6 @@ function exist_seo_url($type, $seo_title, $write_table, $sql_id=0){ $sql = "select wr_seo_title FROM {$write_table} WHERE wr_seo_title = '".sql_real_escape_string($seo_title)."' AND wr_id <> '$sql_id' limit 1"; $row = sql_fetch($sql); - - echo $sql; $exists_title = $row['wr_seo_title']; @@ -234,7 +232,7 @@ function exist_seo_url($type, $seo_title, $write_table, $sql_id=0){ $exists_title = $row['co_seo_title']; } else { - return $seo_title; + return apply_replace('exist_check_seo_title', $seo_title, $type, $write_table, $sql_id); } if ($exists_title) @@ -246,7 +244,7 @@ function exist_seo_url($type, $seo_title, $write_table, $sql_id=0){ function exist_seo_title_recursive($type, $seo_title, $write_table, $sql_id=0){ static $count = 0; - $seo_title_add = ($count > 0) ? utf8_strcut($seo_title, 255 - ($count+1), '')."-$count" : $seo_title; + $seo_title_add = ($count > 0) ? utf8_strcut($seo_title, 200 - ($count+1), '')."-$count" : $seo_title; if( ! exist_seo_url($type, $seo_title_add, $write_table, $sql_id) ){ return $seo_title_add; @@ -254,7 +252,7 @@ function exist_seo_title_recursive($type, $seo_title, $write_table, $sql_id=0){ $count++; - if( $count > 253 ){ + if( $count > 198 ){ return $seo_title_add; } From 0954bd8b5f6fbdda4c0d1b6ea9c533acb2825285 Mon Sep 17 00:00:00 2001 From: thisgun Date: Wed, 24 Oct 2018 18:32:54 +0900 Subject: [PATCH 25/90] =?UTF-8?q?=EC=9E=98=EB=AA=BB=EB=90=9C=20rewrite=20?= =?UTF-8?q?=EA=B7=9C=EC=B9=99=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/common.lib.php | 9 +++++++++ lib/uri.lib.php | 6 +++--- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/lib/common.lib.php b/lib/common.lib.php index cabf0d5d2..71c8da598 100644 --- a/lib/common.lib.php +++ b/lib/common.lib.php @@ -1523,6 +1523,15 @@ function sql_set_charset($charset, $link=null) mysql_query(" set names {$charset} ", $link); } +function sql_data_seek($result, $offset=0) +{ + if ( ! $result ) return; + + if(function_exists('mysqli_set_charset') && G5_MYSQLI_USE) + mysqli_data_seek($result, $offset); + else + mysql_data_seek($result, $offset); +} // mysqli_query 와 mysqli_error 를 한꺼번에 처리 // mysql connect resource 지정 - 명랑폐인님 제안 diff --git a/lib/uri.lib.php b/lib/uri.lib.php index cc5d317aa..cb13e701b 100644 --- a/lib/uri.lib.php +++ b/lib/uri.lib.php @@ -219,7 +219,6 @@ function exist_seo_url($type, $seo_title, $write_table, $sql_id=0){ if( $type === 'bbs' ){ $sql = "select wr_seo_title FROM {$write_table} WHERE wr_seo_title = '".sql_real_escape_string($seo_title)."' AND wr_id <> '$sql_id' limit 1"; - $row = sql_fetch($sql); $exists_title = $row['wr_seo_title']; @@ -326,8 +325,9 @@ function get_mod_rewrite_rules($return_string=false){ $rules[] = ''; $rules[] = 'RewriteEngine On'; $rules[] = 'RewriteBase '.$base_path; - $rules[] = 'RewriteCond %{REQUEST_FILENAME} !-f'; - $rules[] = 'RewriteCond %{REQUEST_FILENAME} !-d'; + $rules[] = 'RewriteCond %{REQUEST_FILENAME} -f [OR]'; + $rules[] = 'RewriteCond %{REQUEST_FILENAME} -d'; + $rules[] = 'RewriteRule ^ - [L]'; if( $add_rules = apply_replace('add_mod_rewrite_rules', '', $get_path_url, $base_path, $return_string) ){ $rules[] = $add_rules; From 73fa80fc52363fee39e3e9ac03a7f39da8cc3cc9 Mon Sep 17 00:00:00 2001 From: thisgun Date: Tue, 30 Oct 2018 18:08:57 +0900 Subject: [PATCH 26/90] =?UTF-8?q?hook=20=EC=BD=94=EB=93=9C=20=EB=B0=8F=20?= =?UTF-8?q?=ED=9A=8C=EC=9B=90=20=EC=A1=B0=ED=9A=8C=20=ED=95=A8=EC=88=98?= =?UTF-8?q?=EB=AA=85=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- adm/board_form_update.php | 2 + adm/member_form_update.php | 2 + adm/member_list_update.php | 8 +- bbs/delete.php | 2 + bbs/delete_all.php | 2 + bbs/delete_comment.php | 2 + bbs/login.php | 2 + bbs/login_check.php | 2 + bbs/logout.php | 2 + bbs/memo_delete.php | 2 + bbs/memo_form_update.php | 17 ++- bbs/move.php | 1 + bbs/move_update.php | 2 + bbs/new_delete.php | 2 + bbs/qawrite_update.php | 2 + bbs/register_form_update.php | 20 +++- bbs/write.php | 2 + bbs/write_comment_update.php | 6 +- bbs/write_update.php | 4 + config.php | 3 +- install/gnuboard5.sql | 4 +- lib/common.lib.php | 22 +++- lib/get_data.lib.php | 103 ++++++++++++++++++ mobile/skin/board/basic/list.skin.php | 8 +- mobile/skin/board/gallery/list.skin.php | 8 +- skin/board/basic/list.skin.php | 8 +- skin/board/gallery/list.skin.php | 8 +- .../mobile/skin/board/basic/list.skin.php | 8 +- .../mobile/skin/board/gallery/list.skin.php | 8 +- theme/basic/skin/board/basic/list.skin.php | 8 +- theme/basic/skin/board/gallery/list.skin.php | 8 +- 31 files changed, 212 insertions(+), 66 deletions(-) diff --git a/adm/board_form_update.php b/adm/board_form_update.php index b3de17f01..1d0114b7f 100644 --- a/adm/board_form_update.php +++ b/adm/board_form_update.php @@ -440,5 +440,7 @@ delete_cache_latest($bo_table); if(function_exists('get_admin_captcha_by')) get_admin_captcha_by('remove'); +start_event('admin_board_form_update', $bo_table, $w); + goto_url("./board_form.php?w=u&bo_table={$bo_table}&{$qstr}"); ?> diff --git a/adm/member_form_update.php b/adm/member_form_update.php index 30dd4e7d5..757a9d1ad 100644 --- a/adm/member_form_update.php +++ b/adm/member_form_update.php @@ -228,5 +228,7 @@ else if ($w == 'u') else alert('제대로 된 값이 넘어오지 않았습니다.'); +start_event('admin_member_form_update', $w, $mb_id); + goto_url('./member_form.php?'.$qstr.'&w=u&mb_id='.$mb_id, false); ?> \ No newline at end of file diff --git a/adm/member_list_update.php b/adm/member_list_update.php index 915fdb880..85b5efc53 100644 --- a/adm/member_list_update.php +++ b/adm/member_list_update.php @@ -12,6 +12,8 @@ auth_check($auth[$sub_menu], 'w'); check_admin_token(); +$mb_datas = array(); + if ($_POST['act_button'] == "선택수정") { for ($i=0; $i alert("'.$msg.'"); '; alert($msg); +start_event('admin_member_list_update', $_POST['act_button'], $mb_datas); + goto_url('./member_list.php?'.$qstr); ?> diff --git a/bbs/delete.php b/bbs/delete.php index eccd079ef..c0a4d1d1c 100644 --- a/bbs/delete.php +++ b/bbs/delete.php @@ -134,5 +134,7 @@ if ($count_write > 0 || $count_comment > 0) delete_cache_latest($bo_table); +start_event('bbs_delete', $write, $board); + goto_url(short_url_clean(G5_HTTP_BBS_URL.'/board.php?bo_table='.$bo_table.'&page='.$page.$qstr)); ?> diff --git a/bbs/delete_all.php b/bbs/delete_all.php index 8bcef3d69..13d4793f8 100644 --- a/bbs/delete_all.php +++ b/bbs/delete_all.php @@ -156,5 +156,7 @@ if ($count_write > 0 || $count_comment > 0) delete_cache_latest($bo_table); +start_event('bbs_delete_all', $tmp_array, $board); + goto_url(short_url_clean(G5_HTTP_BBS_URL.'/board.php?bo_table='.$bo_table.'&page='.$page.$qstr)); ?> diff --git a/bbs/delete_comment.php b/bbs/delete_comment.php index 6b4929f63..c7727398d 100644 --- a/bbs/delete_comment.php +++ b/bbs/delete_comment.php @@ -86,5 +86,7 @@ sql_query(" delete from {$g5['board_new_table']} where bo_table = '{$bo_table}' delete_cache_latest($bo_table); +start_event('bbs_delete_comment', $comment_id, $board); + goto_url(G5_HTTP_BBS_URL.'/board.php?bo_table='.$bo_table.'&wr_id='.$write['wr_parent'].'&page='.$page. $qstr); ?> diff --git a/bbs/login.php b/bbs/login.php index 30a3fe867..90f593ac1 100644 --- a/bbs/login.php +++ b/bbs/login.php @@ -31,5 +31,7 @@ if (!file_exists($login_file)) include_once($member_skin_path.'/login.skin.php'); +start_event('member_login_tail', $login_url, $login_action_url, $member_skin_path, $url); + include_once('./_tail.sub.php'); ?> diff --git a/bbs/login_check.php b/bbs/login_check.php index ba7c65987..1337657ff 100644 --- a/bbs/login_check.php +++ b/bbs/login_check.php @@ -118,5 +118,7 @@ if(function_exists('social_login_success_after')){ social_login_session_clear(1); } +start_event('member_login_check', $mb, $link); + goto_url($link); ?> diff --git a/bbs/logout.php b/bbs/logout.php index c868e78ee..5925e967b 100644 --- a/bbs/logout.php +++ b/bbs/logout.php @@ -34,5 +34,7 @@ if ($url) { $link = G5_URL; } +start_event('member_logout', $link); + goto_url($link); ?> diff --git a/bbs/memo_delete.php b/bbs/memo_delete.php index 743d8392e..87e3ae853 100644 --- a/bbs/memo_delete.php +++ b/bbs/memo_delete.php @@ -29,5 +29,7 @@ $sql = " delete from {$g5['memo_table']} and (me_recv_mb_id = '{$member['mb_id']}' or me_send_mb_id = '{$member['mb_id']}') "; sql_query($sql); +start_event('memo_delete', $me_id, $row); + goto_url('./memo.php?kind='.$kind); ?> diff --git a/bbs/memo_form_update.php b/bbs/memo_form_update.php index cc9f00abe..2835b9a76 100644 --- a/bbs/memo_form_update.php +++ b/bbs/memo_form_update.php @@ -14,6 +14,9 @@ $str_nick_list = ''; $msg = ''; $error_list = array(); $member_list = array(); + +start_event('memo_form_update_before', $recv_list); + for ($i=0; $i \ No newline at end of file diff --git a/bbs/move.php b/bbs/move.php index c7d435a36..39d5b32c3 100644 --- a/bbs/move.php +++ b/bbs/move.php @@ -156,5 +156,6 @@ function fboardmoveall_submit(f) diff --git a/bbs/move_update.php b/bbs/move_update.php index 198e59dae..f6bcc6af1 100644 --- a/bbs/move_update.php +++ b/bbs/move_update.php @@ -210,6 +210,8 @@ $msg = '해당 게시물을 선택한 게시판으로 '.$act.' 하였습니다.' $opener_href = get_pretty_url($bo_table,'','&page='.$page.'&'.$qstr); $opener_href1 = str_replace('&', '&', $opener_href); +start_event('bbs_move_update', $bo_table, $chk_bo_table, $wr_id_list, $opener_href); + echo << '; +start_event('register_form_update_after', $mb_id, $w); + if ($w == '') { goto_url(G5_HTTP_BBS_URL.'/register_result.php'); } else if ($w == 'u') { diff --git a/bbs/write.php b/bbs/write.php index 7722f3456..ce424d54b 100644 --- a/bbs/write.php +++ b/bbs/write.php @@ -31,6 +31,8 @@ if ($w == 'u' || $w == 'r') { } } +start_event('bbs_write', $board, $wr_id, $w); + if ($w == '') { if ($wr_id) { alert('글쓰기에는 \$wr_id 값을 사용하지 않습니다.', G5_BBS_URL.'/board.php?bo_table='.$bo_table); diff --git a/bbs/write_comment_update.php b/bbs/write_comment_update.php index a1b55501d..224cda5b4 100644 --- a/bbs/write_comment_update.php +++ b/bbs/write_comment_update.php @@ -337,5 +337,9 @@ else if ($w == 'cu') // 댓글 수정 delete_cache_latest($bo_table); -goto_url(short_url_clean(G5_HTTP_BBS_URL.'/board.php?bo_table='.$bo_table.'&wr_id='.$wr['wr_parent'].'&'.$qstr.'&#c_'.$comment_id)); +$redirect_url = short_url_clean(G5_HTTP_BBS_URL.'/board.php?bo_table='.$bo_table.'&wr_id='.$wr['wr_parent'].'&'.$qstr.'&#c_'.$comment_id); + +start_event('comment_update_after', $board, $wr_id, $w, $qstr, $redirect_url); + +goto_url($redirect_url); ?> diff --git a/bbs/write_update.php b/bbs/write_update.php index b5719fd5b..36d6cdd38 100644 --- a/bbs/write_update.php +++ b/bbs/write_update.php @@ -127,6 +127,8 @@ for ($i=1; $i<=10; $i++) { @include_once($board_skin_path.'/write_update.head.skin.php'); +start_event('write_update_before', $board, $wr_id, $w, $qstr); + if ($w == '' || $w == 'u') { // 외부에서 글을 등록할 수 있는 버그가 존재하므로 공지는 관리자만 등록이 가능해야 함 @@ -607,6 +609,8 @@ for ($i=0; $i') : '올바른 방법으로 이용해 주십시오.'; @@ -171,6 +173,8 @@ function alert_close($msg, $error=true) { global $g5; + start_event('alert_close', $msg, $error); + $msg = strip_tags($msg, '
'); $header = ''; @@ -247,7 +251,7 @@ function url_auto_link($str) $str = preg_replace("/\t_gt_\t/", ">", $str); */ - return $str; + return apply_replace('url_auto_link', $str); } @@ -3410,6 +3414,20 @@ function check_vaild_callback($callback){ } } +function is_url_base64_encoded($s) +{ + $s_encode = strtr($s, '._-', '+/='); + + if (!preg_match('/^[a-zA-Z0-9\/\r\n+]*={0,2}$/', $s_encode)) return false; + + $decoded = base64_decode($s_encode, true); + if(false === $decoded) return false; + + if(base64_encode($decoded) != $s_encode) return false; + + return true; +} + // 문자열 암복호화 class str_encrypt { @@ -3494,7 +3512,7 @@ function get_member_profile_img($mb_id='', $width='', $height='', $alt='profile_ if( isset($member_cache[$mb_id]) ){ $src = $member_cache[$mb_id]; } else { - $member_img = G5_DATA_PATH.'/member_image/'.substr($mb_id,0,2).'/'.$mb_id.'.gif'; + $member_img = G5_DATA_PATH.'/member_image/'.substr($mb_id,0,2).'/'.get_mb_icon_name($mb_id).'.gif'; if (is_file($member_img)) { $member_cache[$mb_id] = $src = str_replace(G5_DATA_PATH, G5_DATA_URL, $member_img); } diff --git a/lib/get_data.lib.php b/lib/get_data.lib.php index b7f65ad99..5d11c7a51 100644 --- a/lib/get_data.lib.php +++ b/lib/get_data.lib.php @@ -277,6 +277,73 @@ function get_db_create_replace($sql_str){ return $sql_str; } +function get_class_encrypt(){ + static $cache; + + if( $cache && is_object($obj) ){ + return $cache; + } + + $cache = apply_replace('get_class_encrypt', new str_encrypt()); + + return $cache; +} + +function get_string_encrypt($str){ + + $new = get_class_encrypt(); + + $encrypt_str = $new->encrypt($str); + + return $encrypt_str; +} + +function get_bool_encrypt_encoded($str){ + return apply_replace('get_bool_encrypt_encoded', is_url_base64_encoded($str), $str); +} + +function get_string_check_decrypt($str, $field=''){ + + if( $field === 'mb_id' ){ + $pattern = '/[^0-9a-z_]+/i'; + } else { + $pattern = '/[^a-zA-Z0-9\/:@\.\+-s]/'; + } + + if( get_bool_encrypt_encoded($str) ){ + + if( $field === 'mb_id' ){ + return preg_replace($pattern, '', get_string_decrypt($str)); + } + + return get_string_decrypt($str); + } + + return preg_replace($pattern, '', strip_tags($str)); +} + +function get_string_decrypt($str){ + + $new = get_class_encrypt(); + + $decrypt_str = $new->decrypt($str); + + return $decrypt_str; +} + +function get_member_by_hash($mb_id='', $mb_hash=''){ + + global $is_admin; + + if( $is_admin && $mb_id ){ + return $mb_id; + } else if ( $mb_hash ){ + return get_string_check_decrypt($mb_hash, 'mb_id'); + } + + return ''; +} + function get_permission_debug_show(){ global $member; @@ -300,6 +367,15 @@ function get_check_mod_rewrite(){ return $mod_rewrite; } +function get_mb_icon_name($mb_id){ + + if( $icon_name = apply_replace('get_mb_icon_name', '', $mb_id) ){ + return $icon_name; + } + + return md5($mb_id); +} + // 생성되면 안되는 게시판명 function get_bo_table_banned_word(){ @@ -312,6 +388,33 @@ function get_bo_table_banned_word(){ return apply_replace('get_bo_table_banned_word', $folders); } +function get_add_mbhash_params($qstr, $board, $wr_id){ + + if( isset($_GET['mb_hash']) && is_url_base64_encoded($_GET['mb_hash']) ){ + $qstr .= '&mb_hash=' . strip_tags($_GET['mb_hash']); + } + + return $qstr; +} + +function get_board_sfl_select_options($sfl){ + + global $is_admin; + + $str = ''; + $str .= ''; + $str .= ''; + $str .= ''; + if ( $is_admin ){ + $str .= ''; + $str .= ''; + } + $str .= ''; + $str .= ''; + + return apply_replace('get_board_sfl_select_options', $str, $sfl); +} + // 읽지 않은 메모 갯수 반환 function get_memo_not_read($mb_id, $add_where='') { diff --git a/mobile/skin/board/basic/list.skin.php b/mobile/skin/board/basic/list.skin.php index 149d1f22a..c9331c5a2 100644 --- a/mobile/skin/board/basic/list.skin.php +++ b/mobile/skin/board/basic/list.skin.php @@ -136,13 +136,7 @@ add_stylesheet('', 0 diff --git a/mobile/skin/board/gallery/list.skin.php b/mobile/skin/board/gallery/list.skin.php index abaab110a..5d8329eb2 100644 --- a/mobile/skin/board/gallery/list.skin.php +++ b/mobile/skin/board/gallery/list.skin.php @@ -162,13 +162,7 @@ add_stylesheet('', 0 diff --git a/skin/board/basic/list.skin.php b/skin/board/basic/list.skin.php index 7c9fa75d5..8d1ab4dcd 100644 --- a/skin/board/basic/list.skin.php +++ b/skin/board/basic/list.skin.php @@ -165,13 +165,7 @@ add_stylesheet('', 0 diff --git a/skin/board/gallery/list.skin.php b/skin/board/gallery/list.skin.php index 36b32bfbe..e20e146fd 100644 --- a/skin/board/gallery/list.skin.php +++ b/skin/board/gallery/list.skin.php @@ -170,13 +170,7 @@ add_stylesheet('', 0 diff --git a/theme/basic/mobile/skin/board/basic/list.skin.php b/theme/basic/mobile/skin/board/basic/list.skin.php index 149d1f22a..c9331c5a2 100644 --- a/theme/basic/mobile/skin/board/basic/list.skin.php +++ b/theme/basic/mobile/skin/board/basic/list.skin.php @@ -136,13 +136,7 @@ add_stylesheet('', 0 diff --git a/theme/basic/mobile/skin/board/gallery/list.skin.php b/theme/basic/mobile/skin/board/gallery/list.skin.php index 33ad640b1..5f7e18df7 100644 --- a/theme/basic/mobile/skin/board/gallery/list.skin.php +++ b/theme/basic/mobile/skin/board/gallery/list.skin.php @@ -162,13 +162,7 @@ add_stylesheet('', 0 diff --git a/theme/basic/skin/board/basic/list.skin.php b/theme/basic/skin/board/basic/list.skin.php index 7c9fa75d5..8d1ab4dcd 100644 --- a/theme/basic/skin/board/basic/list.skin.php +++ b/theme/basic/skin/board/basic/list.skin.php @@ -165,13 +165,7 @@ add_stylesheet('', 0 diff --git a/theme/basic/skin/board/gallery/list.skin.php b/theme/basic/skin/board/gallery/list.skin.php index 3795ce0c6..05daac605 100644 --- a/theme/basic/skin/board/gallery/list.skin.php +++ b/theme/basic/skin/board/gallery/list.skin.php @@ -170,13 +170,7 @@ add_stylesheet('', 0 From c55a0e4600663d9c09b61c23e8f6070f5b44039b Mon Sep 17 00:00:00 2001 From: thisgun Date: Wed, 31 Oct 2018 11:38:46 +0900 Subject: [PATCH 27/90] =?UTF-8?q?=ED=8B=80=EB=A6=B0=20=EC=BD=94=EB=93=9C?= =?UTF-8?q?=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- bbs/content.php | 1 + bbs/view_comment.php | 6 +++--- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/bbs/content.php b/bbs/content.php index 343924124..1885d557c 100644 --- a/bbs/content.php +++ b/bbs/content.php @@ -11,6 +11,7 @@ if( !isset($g5['content_table']) ){ // 내용 if($co_seo_title){ $co = get_content_by_field($g5['content_table'], 'content', 'co_seo_title', $co_seo_title); + $co_id = $co['co_id']; } else { $co = get_content_db($co_id); } diff --git a/bbs/view_comment.php b/bbs/view_comment.php index 32c87e219..89e27ac91 100644 --- a/bbs/view_comment.php +++ b/bbs/view_comment.php @@ -48,7 +48,7 @@ for ($i=0; $row=sql_fetch_array($result); $i++) $ss_name = 'ss_secret_comment_'.$bo_table.'_'.$list[$i]['wr_id']; if(!get_session($ss_name)) - $list[$i]['content'] = '댓글내용 확인'; + $list[$i]['content'] = '댓글내용 확인'; else { $list[$i]['content'] = conv_content($row['wr_content'], 0, 'wr_content'); $list[$i]['content'] = search_font($stx, $list[$i]['content']); @@ -74,7 +74,7 @@ for ($i=0; $row=sql_fetch_array($result); $i++) if ($row['mb_id'] === $member['mb_id'] || $is_admin) { set_session('ss_delete_comment_'.$row['wr_id'].'_token', $token = uniqid(time())); - $list[$i]['del_link'] = './delete_comment.php?bo_table='.$bo_table.'&comment_id='.$row['wr_id'].'&token='.$token.'&page='.$page.$qstr; + $list[$i]['del_link'] = G5_BBS_URL.'/delete_comment.php?bo_table='.$bo_table.'&comment_id='.$row['wr_id'].'&token='.$token.'&page='.$page.$qstr; $list[$i]['is_edit'] = true; $list[$i]['is_del'] = true; } @@ -82,7 +82,7 @@ for ($i=0; $row=sql_fetch_array($result); $i++) else { if (!$row['mb_id']) { - $list[$i]['del_link'] = './password.php?w=x&bo_table='.$bo_table.'&comment_id='.$row['wr_id'].'&page='.$page.$qstr; + $list[$i]['del_link'] = G5_BBS_URL.'/password.php?w=x&bo_table='.$bo_table.'&comment_id='.$row['wr_id'].'&page='.$page.$qstr; $list[$i]['is_del'] = true; } } From 704ae9863f28c8333f785f46ec29e69a28d4d0ae Mon Sep 17 00:00:00 2001 From: thisgun Date: Thu, 1 Nov 2018 09:46:26 +0900 Subject: [PATCH 28/90] =?UTF-8?q?=EC=AA=BD=EC=A7=80=20=EB=B0=8F=20?= =?UTF-8?q?=EA=B2=8C=EC=8B=9C=ED=8C=90=20=ED=9A=8C=EC=9B=90=20=EC=BD=94?= =?UTF-8?q?=EB=93=9C=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- adm/member_form.php | 8 +-- adm/member_form_update.php | 4 +- bbs/formmail.php | 5 ++ bbs/list.php | 8 ++- bbs/memo_form.php | 11 ++- bbs/memo_form_update.php | 17 ++++- bbs/new.php | 32 +++++++-- bbs/profile.php | 6 +- bbs/register_form.php | 8 +-- bbs/register_form_update.php | 4 +- extend/g5_54version_update.extend.php | 27 ++++++++ install/gnuboard5.sql | 7 +- lib/common.lib.php | 67 ++++++++++++++----- mobile/skin/member/basic/memo_form.skin.php | 4 +- mobile/skin/member/basic/memo_view.skin.php | 2 +- skin/member/basic/memo_form.skin.php | 4 +- skin/member/basic/memo_view.skin.php | 2 +- .../skin/member/basic/memo_form.skin.php | 4 +- .../skin/member/basic/memo_view.skin.php | 2 +- .../skin/member/basic/memo_form.skin.php | 4 +- .../skin/member/basic/memo_view.skin.php | 2 +- 21 files changed, 173 insertions(+), 55 deletions(-) create mode 100644 extend/g5_54version_update.extend.php diff --git a/adm/member_form.php b/adm/member_form.php index efeed3d77..696584c37 100644 --- a/adm/member_form.php +++ b/adm/member_form.php @@ -240,9 +240,9 @@ add_javascript(G5_POSTCODE_JS, 0); //다음 주소 js '; echo '삭제'; } @@ -256,9 +256,9 @@ add_javascript(G5_POSTCODE_JS, 0); //다음 주소 js '; echo '삭제'; } diff --git a/adm/member_form_update.php b/adm/member_form_update.php index 757a9d1ad..54b90839b 100644 --- a/adm/member_form_update.php +++ b/adm/member_form_update.php @@ -116,13 +116,13 @@ else if ($w == 'u') alert('이미 존재하는 이메일입니다.\\nID : '.$row['mb_id'].'\\n이름 : '.$row['mb_name'].'\\n닉네임 : '.$row['mb_nick'].'\\n메일 : '.$row['mb_email']); $mb_dir = substr($mb_id,0,2); + $mb_icon_img = get_mb_icon_name($mb_id).'.gif'; // 회원 아이콘 삭제 if ($del_mb_icon) - @unlink(G5_DATA_PATH.'/member/'.$mb_dir.'/'.$mb_id.'.gif'); + @unlink(G5_DATA_PATH.'/member/'.$mb_dir.'/'.$mb_icon_img); $image_regex = "/(\.(gif|jpe?g|png))$/i"; - $mb_icon_img = $mb_id.'.gif'; // 아이콘 업로드 if (isset($_FILES['mb_icon']) && is_uploaded_file($_FILES['mb_icon']['tmp_name'])) { diff --git a/bbs/formmail.php b/bbs/formmail.php index fe099d23e..fdd045ecf 100644 --- a/bbs/formmail.php +++ b/bbs/formmail.php @@ -8,6 +8,11 @@ if (!$config['cf_email_use']) if (!$is_member && $config['cf_formmail_is_member']) alert_close('회원만 이용하실 수 있습니다.'); +$mb_id = isset($mb_id) ? $mb_id : ''; +$mb_hash = isset($mb_hash) ? $mb_hash : ''; + +$mb_id = get_search_string(get_member_by_hash($mb_id, $mb_hash)); + if ($is_member && !$member['mb_open'] && $is_admin != "super" && $member['mb_id'] != $mb_id) alert_close('자신의 정보를 공개하지 않으면 다른분에게 메일을 보낼 수 없습니다.\\n\\n정보공개 설정은 회원정보수정에서 하실 수 있습니다.'); diff --git a/bbs/list.php b/bbs/list.php index 85f179c7c..8e089bad0 100644 --- a/bbs/list.php +++ b/bbs/list.php @@ -36,9 +36,9 @@ $stx = trim($stx); //검색인지 아닌지 구분하는 변수 초기화 $is_search_bbs = false; -if ($sca || $stx || $stx === '0') { //검색이면 +if ($sca || $stx || $mb_hash || $stx === '0') { //검색이면 $is_search_bbs = true; //검색구분변수 true 지정 - $sql_search = get_sql_search($sca, $sfl, $stx, $sop); + $sql_search = get_sql_search($sca, $sfl, $stx, $sop, $mb_hash); // 가장 작은 번호를 얻어서 변수에 저장 (하단의 페이징에서 사용) $sql = " select MIN(wr_num) as min_wr_num from {$write_table} "; @@ -202,6 +202,10 @@ if($page_rows > 0) { g5_latest_cache_data($board['bo_table'], $list); +if( $mb_hash ){ + $qstr.="&mb_hash=$mb_hash"; +} + $write_pages = get_paging(G5_IS_MOBILE ? $config['cf_mobile_pages'] : $config['cf_write_pages'], $page, $total_page, get_pretty_url($bo_table, '', $qstr.'&page=')); $list_href = ''; diff --git a/bbs/memo_form.php b/bbs/memo_form.php index 4ada2ccc3..7fff33cf4 100644 --- a/bbs/memo_form.php +++ b/bbs/memo_form.php @@ -10,9 +10,18 @@ if (!$member['mb_open'] && $is_admin != 'super' && $member['mb_id'] != $mb_id) $content = ""; // 탈퇴한 회원에게 쪽지 보낼 수 없음 -if ($me_recv_mb_id) + +$mb_id = isset($mb_id) ? $mb_id : ''; +$mb_hash = isset($mb_hash) ? $mb_hash : ''; +$me_recv_mb_nicks = ''; + +if ($mb_id || $mb_hash) { + $me_recv_mb_id = get_search_string(get_member_by_hash($mb_id, $mb_hash)); + $mb = get_member($me_recv_mb_id); + $me_recv_mb_nicks = $mb['mb_nick']; + if (!$mb['mb_id']) alert_close('회원정보가 존재하지 않습니다.\\n\\n탈퇴하였을 수 있습니다.'); diff --git a/bbs/memo_form_update.php b/bbs/memo_form_update.php index 2835b9a76..ae5a3a9f0 100644 --- a/bbs/memo_form_update.php +++ b/bbs/memo_form_update.php @@ -9,16 +9,21 @@ if (!chk_captcha()) { alert('자동등록방지 숫자가 틀렸습니다.'); } -$recv_list = explode(',', trim($_POST['me_recv_mb_id'])); +$recv_list = explode(',', trim($_POST['me_recv_mb_nicks'])); $str_nick_list = ''; $msg = ''; $error_list = array(); -$member_list = array(); +$member_list = array('id'=>array(), 'nick'=>array()); start_event('memo_form_update_before', $recv_list); for ($i=0; $i \ No newline at end of file diff --git a/install/gnuboard5.sql b/install/gnuboard5.sql index c820c6375..5042bbc1f 100644 --- a/install/gnuboard5.sql +++ b/install/gnuboard5.sql @@ -515,12 +515,17 @@ CREATE TABLE IF NOT EXISTS `g5_member` ( DROP TABLE IF EXISTS `g5_memo`; CREATE TABLE IF NOT EXISTS `g5_memo` ( - `me_id` int(11) NOT NULL default '0', + `me_id` INT(11) NOT NULL AUTO_INCREMENT, `me_recv_mb_id` varchar(20) NOT NULL default '', `me_send_mb_id` varchar(20) NOT NULL default '', `me_send_datetime` datetime NOT NULL default '0000-00-00 00:00:00', `me_read_datetime` datetime NOT NULL default '0000-00-00 00:00:00', `me_memo` text NOT NULL, + `me_send_id` INT(11) NOT NULL DEFAULT '0', + `me_type` ENUM('send','receive') NOT NULL DEFAULT 'receive', + `me_readed` TINYINT(4) NOT NULL DEFAULT '0', + `me_send_ip` VARCHAR(100) NOT NULL DEFAULT '', + `me_memo` text NOT NULL, PRIMARY KEY (`me_id`), KEY `me_recv_mb_id` (`me_recv_mb_id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8; diff --git a/lib/common.lib.php b/lib/common.lib.php index aeb72a309..846d15472 100644 --- a/lib/common.lib.php +++ b/lib/common.lib.php @@ -598,7 +598,7 @@ function html_purifier($html) // 검색 구문을 얻는다. -function get_sql_search($search_ca_name, $search_field, $search_text, $search_operator='and') +function get_sql_search($search_ca_name, $search_field, $search_text, $search_operator='and', $mb_hashkey='') { global $g5; @@ -609,7 +609,7 @@ function get_sql_search($search_ca_name, $search_field, $search_text, $search_op $search_text = strip_tags(($search_text)); $search_text = trim(stripslashes($search_text)); - if (!$search_text && $search_text !== '0') { + if (!$search_text && $search_text !== '0' && !$mb_hashkey) { if ($search_ca_name) { return $str; } else { @@ -657,6 +657,11 @@ function get_sql_search($search_ca_name, $search_field, $search_text, $search_op $str .= $op2; switch ($field[$k]) { case "mb_id" : + if( $is_admin ){ + $str .= " $field[$k] = '$s[$i]' "; + $mb_hashkey = ''; + } + break; case "wr_name" : $str .= " $field[$k] = '$s[$i]' "; break; @@ -687,6 +692,12 @@ function get_sql_search($search_ca_name, $search_field, $search_text, $search_op $op1 = " $search_operator "; } + + if ($mb_hashkey){ + $str .= (preg_match('/[a-z]/i', $str) ? " $search_operator" : '' )." mb_id = '".get_string_check_decrypt($mb_hashkey, 'mb_id')."' "; + $not_comment = 1; + } + $str .= " ) "; if ($not_comment) $str .= " and wr_is_comment = '0' "; @@ -844,12 +855,19 @@ function is_admin($mb_id) { global $config, $group, $board; - if (!$mb_id) return; + if (!$mb_id) return ''; - if ($config['cf_admin'] == $mb_id) return 'super'; - if (isset($group['gr_admin']) && ($group['gr_admin'] == $mb_id)) return 'group'; - if (isset($board['bo_admin']) && ($board['bo_admin'] == $mb_id)) return 'board'; - return ''; + $is_authority = ''; + + if ($config['cf_admin'] == $mb_id){ + $is_authority = 'super'; + } else if (isset($group['gr_admin']) && ($group['gr_admin'] == $mb_id)){ + $is_authority = 'group'; + } else if (isset($board['bo_admin']) && ($board['bo_admin'] == $mb_id)){ + $is_authority = 'board'; + } + + return apply_replace('is_admin', $is_authority, $mb_id); } @@ -1263,8 +1281,7 @@ function get_sideview($mb_id, $name='', $email='', $homepage='') global $g5; global $bo_table, $sca, $is_admin, $member; - $email_enc = new str_encrypt(); - $email = $email_enc->encrypt($email); + $email = get_string_encrypt($email); $homepage = set_http(clean_xss_tags($homepage)); $name = get_text($name, 0, true); @@ -1272,18 +1289,27 @@ function get_sideview($mb_id, $name='', $email='', $homepage='') $homepage = get_text($homepage); $tmp_name = ""; + $en_mb_id = $mb_id; + + if( $is_admin ){ + $mb_params = 'mb_id='.$mb_id; + } else { + $en_mb_id = get_string_encrypt($mb_id); + $mb_params = 'mb_hash='.$en_mb_id; + } + if ($mb_id) { //$tmp_name = "$name"; $tmp_name = ''; if ($config['cf_use_member_icon']) { $mb_dir = substr($mb_id,0,2); - $icon_file = G5_DATA_PATH.'/member/'.$mb_dir.'/'.$mb_id.'.gif'; + $icon_file = G5_DATA_PATH.'/member/'.$mb_dir.'/'.get_mb_icon_name($mb_id).'.gif'; if (file_exists($icon_file)) { $width = $config['cf_member_icon_width']; $height = $config['cf_member_icon_height']; - $icon_file_url = G5_DATA_URL.'/member/'.$mb_dir.'/'.$mb_id.'.gif'; + $icon_file_url = G5_DATA_URL.'/member/'.$mb_dir.'/'.get_mb_icon_name($mb_id).'.gif'; $tmp_name .= ''; if ($config['cf_use_member_icon'] == 2) // 회원아이콘+이름 @@ -1316,21 +1342,26 @@ function get_sideview($mb_id, $name='', $email='', $homepage='') $str2 = "\n"; if($mb_id) - $str2 .= "쪽지보내기\n"; + $str2 .= "쪽지보내기\n"; if($email) - $str2 .= "메일보내기\n"; + $str2 .= "메일보내기\n"; if($homepage) $str2 .= "홈페이지\n"; if($mb_id) - $str2 .= "자기소개\n"; + $str2 .= "자기소개\n"; if($bo_table) { - if($mb_id) - $str2 .= "아이디로 검색\n"; - else + if($mb_id) { + if( $is_admin ){ + $str2 .= "아이디로 검색\n"; + } else { + $str2 .= "아이디로 검색\n"; + } + } else { $str2 .= "이름으로 검색\n"; + } } if($mb_id) - $str2 .= "전체게시물\n"; + $str2 .= "전체게시물\n"; if($is_admin == "super" && $mb_id) { $str2 .= "회원정보변경\n"; $str2 .= "포인트내역\n"; diff --git a/mobile/skin/member/basic/memo_form.skin.php b/mobile/skin/member/basic/memo_form.skin.php index 66fc1b0ed..6a33bb96c 100644 --- a/mobile/skin/member/basic/memo_form.skin.php +++ b/mobile/skin/member/basic/memo_form.skin.php @@ -18,9 +18,9 @@ add_stylesheet('',

쪽지쓰기

  • - + - + 여러 회원에게 보낼때는 컴마(,)로 구분하세요.
    쪽지 보낼때 회원당 점의 포인트를 차감합니다. diff --git a/mobile/skin/member/basic/memo_view.skin.php b/mobile/skin/member/basic/memo_view.skin.php index 3e8c03a4d..2f4e91841 100644 --- a/mobile/skin/member/basic/memo_view.skin.php +++ b/mobile/skin/member/basic/memo_view.skin.php @@ -43,7 +43,7 @@ add_stylesheet('',
    - 답장 + 답장 이전쪽지 diff --git a/skin/member/basic/memo_form.skin.php b/skin/member/basic/memo_form.skin.php index 67693cb95..7c2874c17 100644 --- a/skin/member/basic/memo_form.skin.php +++ b/skin/member/basic/memo_form.skin.php @@ -20,9 +20,9 @@ add_stylesheet('',

    쪽지쓰기

    • - + - + 여러 회원에게 보낼때는 컴마(,)로 구분하세요.
      쪽지 보낼때 회원당 점의 포인트를 차감합니다. diff --git a/skin/member/basic/memo_view.skin.php b/skin/member/basic/memo_view.skin.php index fe62d7a6b..ce5841502 100644 --- a/skin/member/basic/memo_view.skin.php +++ b/skin/member/basic/memo_view.skin.php @@ -56,7 +56,7 @@ add_stylesheet('', 목록 - 답장 + 답장
    diff --git a/theme/basic/mobile/skin/member/basic/memo_form.skin.php b/theme/basic/mobile/skin/member/basic/memo_form.skin.php index 66fc1b0ed..6a33bb96c 100644 --- a/theme/basic/mobile/skin/member/basic/memo_form.skin.php +++ b/theme/basic/mobile/skin/member/basic/memo_form.skin.php @@ -18,9 +18,9 @@ add_stylesheet('',

    쪽지쓰기

    • - + - + 여러 회원에게 보낼때는 컴마(,)로 구분하세요.
      쪽지 보낼때 회원당 점의 포인트를 차감합니다. diff --git a/theme/basic/mobile/skin/member/basic/memo_view.skin.php b/theme/basic/mobile/skin/member/basic/memo_view.skin.php index 3e8c03a4d..2f4e91841 100644 --- a/theme/basic/mobile/skin/member/basic/memo_view.skin.php +++ b/theme/basic/mobile/skin/member/basic/memo_view.skin.php @@ -43,7 +43,7 @@ add_stylesheet('',
      - 답장 + 답장 이전쪽지 diff --git a/theme/basic/skin/member/basic/memo_form.skin.php b/theme/basic/skin/member/basic/memo_form.skin.php index 67693cb95..7c2874c17 100644 --- a/theme/basic/skin/member/basic/memo_form.skin.php +++ b/theme/basic/skin/member/basic/memo_form.skin.php @@ -20,9 +20,9 @@ add_stylesheet('',

      쪽지쓰기

      • - + - + 여러 회원에게 보낼때는 컴마(,)로 구분하세요.
        쪽지 보낼때 회원당 점의 포인트를 차감합니다. diff --git a/theme/basic/skin/member/basic/memo_view.skin.php b/theme/basic/skin/member/basic/memo_view.skin.php index fe62d7a6b..ce5841502 100644 --- a/theme/basic/skin/member/basic/memo_view.skin.php +++ b/theme/basic/skin/member/basic/memo_view.skin.php @@ -56,7 +56,7 @@ add_stylesheet('', 목록 - 답장 + 답장
      From e1c071a59611b6963a56aada1e6c915416eff798 Mon Sep 17 00:00:00 2001 From: thisgun Date: Fri, 2 Nov 2018 09:02:37 +0900 Subject: [PATCH 29/90] =?UTF-8?q?=EA=B2=8C=EC=8B=9C=ED=8C=90=20=EB=B9=84?= =?UTF-8?q?=EB=B0=80=EB=B2=88=ED=98=B8=20=EC=A0=80=EC=9E=A5=20=EB=B0=A9?= =?UTF-8?q?=EC=8B=9D=20=EB=B0=8F=20=EC=97=AC=EB=9F=AC=EA=B0=80=EC=A7=80=20?= =?UTF-8?q?=EB=AC=B8=EC=A0=9C=EC=A0=90=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- adm/config_form.php | 6 + adm/dbupgrade.php | 22 + bbs/login_check.php | 3 + bbs/memo.php | 12 +- bbs/memo_delete.php | 13 +- bbs/memo_form_update.php | 15 +- bbs/memo_view.php | 40 +- bbs/new.php | 2 +- bbs/password_check.php | 20 +- bbs/write_comment_update.php | 6 +- bbs/write_update.php | 7 +- extend/g5_54version_update.extend.php | 32 + install/gnuboard5.sql | 4 +- lib/hook.lib.php | 4 - lib/outlogin.lib.php | 8 +- lib/thumbnail.lib.php | 49 +- mobile/skin/new/basic/new.skin.php | 6 +- plugin/sns/facebook/.gitignore | 1 - plugin/sns/facebook/.travis.yml | 5 - plugin/sns/facebook/_common.php | 3 - plugin/sns/facebook/callback.php | 62 - plugin/sns/facebook/changelog.md | 28 - plugin/sns/facebook/composer.json | 22 - plugin/sns/facebook/readme.md | 85 - plugin/sns/facebook/src/base_facebook.php | 1444 ------ plugin/sns/facebook/src/facebook.php | 160 - .../sns/facebook/src/fb_ca_chain_bundle.crt | 3920 ----------------- plugin/sns/facebook/tests/bootstrap.php | 5 - plugin/sns/facebook/tests/tests.php | 2038 --------- plugin/sns/view_comment_write.sns.skin.php | 41 - skin/board/basic/view_comment.skin.php | 2 +- skin/new/basic/new.skin.php | 9 +- .../basic/mobile/skin/new/basic/new.skin.php | 6 +- theme/basic/skin/new/basic/new.skin.php | 6 +- 34 files changed, 194 insertions(+), 7892 deletions(-) delete mode 100644 plugin/sns/facebook/.gitignore delete mode 100644 plugin/sns/facebook/.travis.yml delete mode 100644 plugin/sns/facebook/_common.php delete mode 100644 plugin/sns/facebook/callback.php delete mode 100644 plugin/sns/facebook/changelog.md delete mode 100644 plugin/sns/facebook/composer.json delete mode 100644 plugin/sns/facebook/readme.md delete mode 100644 plugin/sns/facebook/src/base_facebook.php delete mode 100644 plugin/sns/facebook/src/facebook.php delete mode 100644 plugin/sns/facebook/src/fb_ca_chain_bundle.crt delete mode 100644 plugin/sns/facebook/tests/bootstrap.php delete mode 100644 plugin/sns/facebook/tests/tests.php diff --git a/adm/config_form.php b/adm/config_form.php index d0efb3150..9a963faf7 100644 --- a/adm/config_form.php +++ b/adm/config_form.php @@ -259,6 +259,12 @@ if (!isset($config['cf_bbs_rewrite'])) { ADD `cf_bbs_rewrite` tinyint(4) NOT NULL DEFAULT '0' AFTER `cf_link_target` ", true); } +// 읽지 않은 메모 수 칼럼 +if(!isset($member['mb_memo_cnt'])) { + sql_query(" ALTER TABLE `{$g5['member_table']}` + ADD `mb_memo_cnt` int(11) NOT NULL DEFAULT '0' AFTER `mb_memo_call`", true); +} + if(!$config['cf_faq_skin']) $config['cf_faq_skin'] = "basic"; if(!$config['cf_mobile_faq_skin']) $config['cf_mobile_faq_skin'] = "basic"; diff --git a/adm/dbupgrade.php b/adm/dbupgrade.php index d61b41b36..52f94bd30 100644 --- a/adm/dbupgrade.php +++ b/adm/dbupgrade.php @@ -122,7 +122,29 @@ while ($row = sql_fetch_array($result)) { sql_query($sql); } +} +// 메모 테이블 +$sql = " SHOW COLUMNS FROM `{$g5['memo_table']}` LIKE 'me_send_id' "; +$row = sql_fetch($sql); + +if( !$row ){ + sql_query("ALTER TABLE `{$g5['memo_table']}` + ADD `me_send_id` INT(11) NOT NULL DEFAULT '0', + ADD `me_type` ENUM('send','recv') NOT NULL DEFAULT 'recv', + ADD `me_send_ip` VARCHAR(100) NOT NULL DEFAULT '', + CHANGE COLUMN `me_id` `me_id` INT(11) NOT NULL AUTO_INCREMENT; + ", false); + + $is_check = true; +} + +// 읽지 않은 메모 수 칼럼 +if(!isset($member['mb_memo_cnt'])) { + sql_query(" ALTER TABLE `{$g5['member_table']}` + ADD `mb_memo_cnt` int(11) NOT NULL DEFAULT '0' AFTER `mb_memo_call`", true); + + $is_check = true; } $is_check = apply_replace('admin_dbupgrade', $is_check); diff --git a/bbs/login_check.php b/bbs/login_check.php index 1337657ff..07fa4da78 100644 --- a/bbs/login_check.php +++ b/bbs/login_check.php @@ -30,6 +30,9 @@ if(function_exists('social_is_login_check')){ // 회원아이디를 입력해 보고 맞으면 또 비밀번호를 입력해보는 경우를 방지하기 위해서입니다. // 불법사용자의 경우 회원아이디가 틀린지, 비밀번호가 틀린지를 알기까지는 많은 시간이 소요되기 때문입니다. if (!$is_social_password_check && (!$mb['mb_id'] || !login_password_check($mb, $mb_password, $mb['mb_password'])) ) { + + start_event('password_is_wrong', 'login', $mb); + alert('가입된 회원아이디가 아니거나 비밀번호가 틀립니다.\\n비밀번호는 대소문자를 구분합니다.'); } diff --git a/bbs/memo.php b/bbs/memo.php index 72ba5b33e..b8d9f7d93 100644 --- a/bbs/memo.php +++ b/bbs/memo.php @@ -18,12 +18,15 @@ else if ($kind == 'send') else alert(''.$kind .'값을 넘겨주세요.'); -$sql = " select count(*) as cnt from {$g5['memo_table']} where me_{$kind}_mb_id = '{$member['mb_id']}' "; +if ($page < 1) { $page = 1; } // 페이지가 없으면 첫 페이지 (1 페이지) + +start_event('memo_list', $kind, $unkind, $page); + +$sql = " select count(*) as cnt from {$g5['memo_table']} where me_{$kind}_mb_id = '{$member['mb_id']}' and me_type = '$kind' "; $row = sql_fetch($sql); $total_count = $row['cnt']; $total_page = ceil($total_count / $config['cf_page_rows']); // 전체 페이지 계산 -if ($page < 1) { $page = 1; } // 페이지가 없으면 첫 페이지 (1 페이지) $from_record = ((int) $page - 1) * $config['cf_page_rows']; // 시작 열을 구함 if ($kind == 'recv') @@ -44,8 +47,11 @@ $list = array(); $sql = " select a.*, b.mb_id, b.mb_nick, b.mb_email, b.mb_homepage from {$g5['memo_table']} a left join {$g5['member_table']} b on (a.me_{$unkind}_mb_id = b.mb_id) - where a.me_{$kind}_mb_id = '{$member['mb_id']}' + where a.me_{$kind}_mb_id = '{$member['mb_id']}' and a.me_type = '$kind' order by a.me_id desc limit $from_record, {$config['cf_page_rows']} "; + +echo $sql; + $result = sql_query($sql); for ($i=0; $row=sql_fetch_array($result); $i++) { diff --git a/bbs/memo_delete.php b/bbs/memo_delete.php index 87e3ae853..6a46cc862 100644 --- a/bbs/memo_delete.php +++ b/bbs/memo_delete.php @@ -15,6 +15,11 @@ $me_id = (int)$_REQUEST['me_id']; $sql = " select * from {$g5['memo_table']} where me_id = '{$me_id}' "; $row = sql_fetch($sql); +$sql = " delete from {$g5['memo_table']} + where me_id = '{$me_id}' + and (me_recv_mb_id = '{$member['mb_id']}' or me_send_mb_id = '{$member['mb_id']}') "; +sql_query($sql); + if (!$row['me_read_datetime'][0]) // 메모 받기전이면 { $sql = " update {$g5['member_table']} @@ -22,12 +27,10 @@ if (!$row['me_read_datetime'][0]) // 메모 받기전이면 where mb_id = '{$row['me_recv_mb_id']}' and mb_memo_call = '{$row['me_send_mb_id']}' "; sql_query($sql); -} -$sql = " delete from {$g5['memo_table']} - where me_id = '{$me_id}' - and (me_recv_mb_id = '{$member['mb_id']}' or me_send_mb_id = '{$member['mb_id']}') "; -sql_query($sql); + $sql = " update `{$g5['member_table']}` set mb_memo_cnt = '".get_memo_not_read($member['mb_id'])."' where mb_id = '{$member['mb_id']}' "; + sql_query($sql); +} start_event('memo_delete', $me_id, $row); diff --git a/bbs/memo_form_update.php b/bbs/memo_form_update.php index ae5a3a9f0..40b36c50d 100644 --- a/bbs/memo_form_update.php +++ b/bbs/memo_form_update.php @@ -71,12 +71,21 @@ for ($i=0; $i '{$me_id}' - and me_{$kind}_mb_id = '{$member['mb_id']}' - order by me_id asc - limit 1 "; -$prev = sql_fetch($sql); -if ($prev['me_id']) - $prev_link = './memo_view.php?kind='.$kind.'&me_id='.$prev['me_id']; -else - //$prev_link = 'javascript:alert(\'쪽지의 처음입니다.\');'; - $prev_link = ''; +$sql = " select me.*, a.rownum from `{$g5['memo_table']}` as me inner join ( select me_id , (@rownum:=@rownum+1) as rownum from `{$g5['memo_table']}` as memo, (select @rownum:=0) tmp where me_{$kind}_mb_id = '{$member['mb_id']}' and memo.me_type = '$kind' order by me_id desc ) as a on a.me_id = me.me_id where me.me_id < '$me_id' and me.me_{$kind}_mb_id = '{$member['mb_id']}' and me.me_type = '$kind' order by me.me_id desc limit 1 "; +$prev = sql_fetch($sql); +if ($prev['me_id']) { + $prev_link = './memo_view.php?kind='.$kind.'&me_id='.$prev['me_id']; + $prev['page'] = ceil( (int)$prev['rownum'] / $config['cf_page_rows']); // 이동할 페이지 계산 + if( (int)$prev['page'] > 0 ) $prev_link .= "&page=".$prev['page']; +} else { + $prev_link = ''; +} // 다음 쪽지 -$sql = " select * from {$g5[memo_table]} - where me_id < '{$me_id}' - and me_{$kind}_mb_id = '{$member[mb_id]}' - order by me_id desc - limit 1 "; +$sql = " select me.*, a.rownum from `{$g5['memo_table']}` as me inner join ( select me_id , (@rownum:=@rownum+1) as rownum from `{$g5['memo_table']}` as memo, (select @rownum:=0) tmp where me_{$kind}_mb_id = '{$member['mb_id']}' and memo.me_type = '$kind' order by me_id asc ) as a on a.me_id = me.me_id where me.me_id > '$me_id' and me.me_{$kind}_mb_id = '{$member['mb_id']}' and me.me_type = '$kind' order by me.me_id asc limit 1 "; + $next = sql_fetch($sql); -if ($next['me_id']) +if ($next['me_id']) { $next_link = './memo_view.php?kind='.$kind.'&me_id='.$next['me_id']; -else - //$next_link = 'javascript:alert(\'쪽지의 마지막입니다.\');'; + $next['page'] = ceil( (int)$next['rownum'] / $config['cf_page_rows']); // 이동할 페이지 계산 + if( (int)$next['page'] > 0 ) $next_link .= "&page=".$next['page']; +} else { $next_link = ''; +} $mb = get_member($memo['me_'.$unkind.'_mb_id']); diff --git a/bbs/new.php b/bbs/new.php index fca91fb56..bb20b3204 100644 --- a/bbs/new.php +++ b/bbs/new.php @@ -23,7 +23,7 @@ else if(isset($mb_nick) && $mb_nick){ // 닉네임으로 요청한 경우 $mb_nick = get_search_string(strip_tags($mb_nick)); - $sql = "select mb_id from `{$gml['member_table']}` where mb_nick = '".sql_real_escape_string($mb_nick)."' "; + $sql = "select mb_id from `{$g5['member_table']}` where mb_nick = '".sql_real_escape_string($mb_nick)."' "; $mb = sql_fetch($sql); if( $mb['mb_id'] ){ diff --git a/bbs/password_check.php b/bbs/password_check.php index b13e6fc85..01292b017 100644 --- a/bbs/password_check.php +++ b/bbs/password_check.php @@ -6,8 +6,16 @@ if ($w == 's') { $wr = get_write($write_table, $wr_id); - if (!check_password($wr_password, $wr['wr_password'])) + if( !$wr['wr_password'] && $wr['mb_id'] ){ + if ( $mb = get_member($wr['mb_id']) ){ + $wr['wr_password'] = $mb['mb_password']; + } + } + + if (!check_password($wr_password, $wr['wr_password'])) { + start_event('password_is_wrong', 'bbs', $wr); alert('비밀번호가 틀립니다.'); + } // 세션에 아래 정보를 저장. 하위번호는 비밀번호없이 보아야 하기 때문임. //$ss_name = 'ss_secret.'_'.$bo_table.'_'.$wr_id'; @@ -20,8 +28,16 @@ if ($w == 's') { $wr = get_write($write_table, $wr_id); - if (!check_password($wr_password, $wr['wr_password'])) + if( !$wr['wr_password'] && $wr['mb_id'] ){ + if ( $mb = get_member($wr['mb_id']) ){ + $wr['wr_password'] = $mb['mb_password']; + } + } + + if (!check_password($wr_password, $wr['wr_password'])){ + start_event('password_is_wrong', 'bbs', $wr); alert('비밀번호가 틀립니다.'); + } // 세션에 아래 정보를 저장. 하위번호는 비밀번호없이 보아야 하기 때문임. $ss_name = 'ss_secret_comment_'.$bo_table.'_'.$wr['wr_id']; diff --git a/bbs/write_comment_update.php b/bbs/write_comment_update.php index 224cda5b4..ea02128a6 100644 --- a/bbs/write_comment_update.php +++ b/bbs/write_comment_update.php @@ -54,18 +54,20 @@ if (empty($wr['wr_id'])) // 이 옵션을 사용 안 함으로 설정할 경우 어떤 스크립트도 실행 되지 않습니다. //if (!trim($_POST["wr_content"])) die ("내용을 입력하여 주십시오."); +$post_wr_password = ''; if ($is_member) { $mb_id = $member['mb_id']; // 4.00.13 - 실명 사용일때 댓글에 닉네임으로 입력되던 오류를 수정 $wr_name = addslashes(clean_xss_tags($board['bo_use_name'] ? $member['mb_name'] : $member['mb_nick'])); - $wr_password = $member['mb_password']; + $wr_password = ''; $wr_email = addslashes($member['mb_email']); $wr_homepage = addslashes(clean_xss_tags($member['mb_homepage'])); } else { $mb_id = ''; + $post_wr_password = $wr_password; $wr_password = get_encrypt_string($wr_password); } @@ -289,7 +291,7 @@ else if ($w == 'cu') // 댓글 수정 if ($member['mb_id'] !== $comment['mb_id']) alert('자신의 글이 아니므로 수정할 수 없습니다.'); } else { - if($comment['wr_password'] != $wr_password) + if( !($comment['mb_id'] === '' && $comment['wr_password'] && check_password($post_wr_password, $comment['wr_password'])) ) alert('댓글을 수정할 권한이 없습니다.'); } diff --git a/bbs/write_update.php b/bbs/write_update.php index 36d6cdd38..3822ff888 100644 --- a/bbs/write_update.php +++ b/bbs/write_update.php @@ -220,7 +220,7 @@ if ($w == '' || $w == 'r') { if ($member['mb_id']) { $mb_id = $member['mb_id']; $wr_name = addslashes(clean_xss_tags($board['bo_use_name'] ? $member['mb_name'] : $member['mb_nick'])); - $wr_password = $member['mb_password']; + $wr_password = ''; $wr_email = addslashes($member['mb_email']); $wr_homepage = addslashes(clean_xss_tags($member['mb_homepage'])); } else { @@ -552,6 +552,8 @@ for ($i=0; $i \ No newline at end of file diff --git a/install/gnuboard5.sql b/install/gnuboard5.sql index 5042bbc1f..5c3d965f8 100644 --- a/install/gnuboard5.sql +++ b/install/gnuboard5.sql @@ -491,6 +491,7 @@ CREATE TABLE IF NOT EXISTS `g5_member` ( `mb_open_date` date NOT NULL default '0000-00-00', `mb_profile` text NOT NULL, `mb_memo_call` varchar(255) NOT NULL default '', + `mb_memo_cnt` int(11) NOT NULL DEFAULT '0', `mb_1` varchar(255) NOT NULL default '', `mb_2` varchar(255) NOT NULL default '', `mb_3` varchar(255) NOT NULL default '', @@ -522,8 +523,7 @@ CREATE TABLE IF NOT EXISTS `g5_memo` ( `me_read_datetime` datetime NOT NULL default '0000-00-00 00:00:00', `me_memo` text NOT NULL, `me_send_id` INT(11) NOT NULL DEFAULT '0', - `me_type` ENUM('send','receive') NOT NULL DEFAULT 'receive', - `me_readed` TINYINT(4) NOT NULL DEFAULT '0', + `me_type` ENUM('send','recv') NOT NULL DEFAULT 'recv', `me_send_ip` VARCHAR(100) NOT NULL DEFAULT '', `me_memo` text NOT NULL, PRIMARY KEY (`me_id`), diff --git a/lib/hook.lib.php b/lib/hook.lib.php index 77ca17253..f383da7f1 100644 --- a/lib/hook.lib.php +++ b/lib/hook.lib.php @@ -16,7 +16,6 @@ function get_hook_class(){ } function put_event($tag, $func, $priority=G5_HOOK_DEFAULT_PRIORITY, $args=0){ - global $gml; if( $hook = get_hook_class() ){ $hook::addAction($tag, $func, $priority, $args); @@ -24,7 +23,6 @@ function put_event($tag, $func, $priority=G5_HOOK_DEFAULT_PRIORITY, $args=0){ } function start_event($tag, $arg = ''){ - global $gml; if( $hook = get_hook_class() ){ @@ -55,7 +53,6 @@ function start_event($tag, $arg = ''){ } function put_replace($tag, $func, $priority=G5_HOOK_DEFAULT_PRIORITY, $args=0){ - global $gml; if( $hook = get_hook_class() ){ return $hook::addFilter($tag, $func, $priority, $args); @@ -65,7 +62,6 @@ function put_replace($tag, $func, $priority=G5_HOOK_DEFAULT_PRIORITY, $args=0){ } function apply_replace($tag, $arg = ''){ - global $gml; if( $hook = get_hook_class() ){ diff --git a/lib/outlogin.lib.php b/lib/outlogin.lib.php index 912777199..47ba4185c 100644 --- a/lib/outlogin.lib.php +++ b/lib/outlogin.lib.php @@ -36,9 +36,11 @@ function outlogin($skin_dir='basic') // 읽지 않은 쪽지가 있다면 if ($is_member) { - $sql = " select count(*) as cnt from {$g5['memo_table']} where me_recv_mb_id = '{$member['mb_id']}' and me_read_datetime = '0000-00-00 00:00:00' "; - $row = sql_fetch($sql); - $memo_not_read = $row['cnt']; + if( isset($member['mb_memo_cnt']) ){ + $memo_not_read = $member['mb_memo_cnt']; + } else { + $memo_not_read = get_memo_not_read($member['mb_id']); + } $is_auth = false; $sql = " select count(*) as cnt from {$g5['auth_table']} where mb_id = '{$member['mb_id']}' "; diff --git a/lib/thumbnail.lib.php b/lib/thumbnail.lib.php index 81f1da0fe..448f649d7 100644 --- a/lib/thumbnail.lib.php +++ b/lib/thumbnail.lib.php @@ -17,37 +17,36 @@ function get_list_thumbnail($bo_table, $wr_id, $thumb_width, $thumb_height, $is_ $filepath = G5_DATA_PATH.'/file/'.$bo_table; $alt = get_text($row['bf_content']); } else { - $write_table = $g5['write_prefix'].$bo_table; - $sql = " select wr_content from $write_table where wr_id = '$wr_id' "; - $write = sql_fetch($sql); - $matches = get_editor_image($write['wr_content'], false); + $write = get_thumbnail_find_cache($bo_table, $wr_id, 'content'); $edt = true; + + if( $matches = get_editor_image($write['wr_content'], false) ){ + for($i=0; $i', 0);
    • + +
    • 메뉴 준비 중입니다.
      관리자모드 > 환경설정 > 메뉴설정에서 설정하실 수 있습니다.
    • + +
    + + + + + + + + + +
    + + +
    +
    + +
    +

    + diff --git a/theme/54/head.sub.php b/theme/54/head.sub.php new file mode 100644 index 000000000..5e18db3cb --- /dev/null +++ b/theme/54/head.sub.php @@ -0,0 +1,90 @@ + + + + + +'.PHP_EOL; + echo ''.PHP_EOL; + echo ''.PHP_EOL; +} else { + echo ''.PHP_EOL; + echo ''.PHP_EOL; +} + +if($config['cf_add_meta']) + echo $config['cf_add_meta'].PHP_EOL; +?> +<?php echo $g5_head_title; ?> + + + + + + + + + +'.PHP_EOL; // overflow scroll 감지 +} +if(!defined('G5_IS_ADMIN')) + echo $config['cf_add_script']; +?> + +> +'.$sr_admin_msg.get_text($member['mb_nick']).'님 로그인 중 '; + echo '로그아웃
    '; +} +?> \ No newline at end of file diff --git a/theme/54/img/btn_end.gif b/theme/54/img/btn_end.gif new file mode 100644 index 0000000000000000000000000000000000000000..e7d61056442735d7fdb9f9780503a466b6d1cb5b GIT binary patch literal 1176 zcmZ?wbhEHbCgqow*eU^C z3h_d2fv+#z;Jjizu!r=L^Ka}t%N=+=uFAB-e&w-_YfQeiaKZd}bLY&SHFL)FX;Y_6o-}bne_wA;cUNaeds}Nub5mnOeO+x$bya0Wd0A;m zaZzDGeqL@)c2;IadRl5qa#CVKd|YfybW~(Scvxsia8O`?zn`y7yetOgf{ zR2HP_2c;J0mlh?b0+lO+tSYc_E=o--$uA1Y&(DE{Vn9ZINq%ugeu08>u$h8JcxGNo zetEGbSiP^Wm1kaYNn&1ds;7&s63_&_%*+%k6E|}sGdCj>S7#SssJoguIU88Gnp!$p zn7O$)8XG#o^t$9Hm*%GCmB93-AoQBz)C)=qxdlL*T~doO%TiO^it=+6z+Se>#O)R% zoaRCGrr>sqF;2buK*#8VA{Hs4VM4&v17gCHEsz6G_^Elo)LsNk){OuE{r&U%*Uul{ zzkU7k`P0V_@87+B^ZM1x7tfzPee(Fx!w2{8-Mw@B*3BE&uU)-z`O?J;=g*xzbNbZD z6UUDoJ#zTa!2|pE?cK9`*UlZ=w{6|BdDF%X>({MavwGFa70Z_`U9x!5!Ugl^&7CuQ z*322xr%jzQdD6rQ{e8VX-Cdm>?QN|s%}tFB^>wv1)m4=h1nAc$w`R`@o}*+(NU2R;bEa6!9jrm{(inb-d>&_?ryFw&Q6XF_I9>5)>f7l=4PfQ z#zuw)`g*!L+FF_#>T0Sg%1Vj~@^Z2=(o&KV;$osA!a{-q{CvDT++3U->};$o%uI|7 z42nNlfFvV>4ybSh)t3w$atzEIED8k=9Gcjf86qkQ7CN``%R9N8Fj#o7iGhiU!5RQh Cn}zWJ literal 0 HcmV?d00001 diff --git a/theme/54/img/btn_next.gif b/theme/54/img/btn_next.gif new file mode 100644 index 0000000000000000000000000000000000000000..eb714a33b9d4bfc35f39d34b184f4e2c9625c434 GIT binary patch literal 1169 zcmZ?wbhEHbWMN=uXkcWRKY#xJ|Nj;Lb4U0FD7Yk+Bm!w0`-+0ZCgqow*eU^C z3h_d2fv+#z;Jjizu!r=L^K}F`_YUXHS=;&f( z1<(a0N3l8S6q^qmz)Z-HxpVgsyL#pF zrHdENpF4Zz^r@34jvqUEVojbN~+qz}*ri~lcuUorj^{SOCmM>en zWbvYf3+B(8J7@N+nKPzOn>uCkq=^&y`+9r2yE;4C+ge+in;IMH>uPJNt12tX%Sua% ziwXi?qaq{1!$L!Xg8~Em{d|4Ay*xeK-CSLqog5wP z?QCtVtt>6f%}h;lT#wKO%<)l^lKl@t}^7yetOgf{ zR2HP_2c;J0mlh?b0+lO+tSYc_E=o--$uA1Y&(DE{Vn9ZINq%ugeu08>u$h8JcxGNo zetEGbSiP^Wm1kaYNn&1ds;7&s63_&_%*+%k11BeALjz|+S7#SssJoh3SeUywyBHf= zxSE(7S{NI`^t$9Hm*%GCmB93-AoLpH)C)=qxdlL*T~doO%TiO^it=+6z+Se>#OW3% zH=O1{^`_uv@OxBG5|NZ^*``6DO z-@kqR^7+%p5AWZ-ee?R&%NNg|J$>@{(ZdJ#@7=v~`_|1H*RNf@a{1E53+K6ZM9qnzcEzM1h4fS=kHPuy>73F26CB;RB1^IcoIoVm6 z8R==MDalER3Gs2UG0{A;Cd`0selzKHgrQ9`0_gF3wJl4)%7oHr7^_7UpKA zCdNjF2KsusI@(&A8tQ7QD#}WV3i5KYGSX6#65?W_BEmv~0{ncuJltHI9PDhYEX+)d q3=E1tS%4%XgAS;01l5-e96}7t94rPC6dIa2c;$373>X?37_0$NrGO#; literal 0 HcmV?d00001 diff --git a/theme/54/img/bullet.gif b/theme/54/img/bullet.gif new file mode 100644 index 0000000000000000000000000000000000000000..a7cd0fc913b9f1ffc467b34d709b472d15c5c41b GIT binary patch literal 1165 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 literal 0 HcmV?d00001 diff --git a/theme/54/img/gnb_bg00.gif b/theme/54/img/gnb_bg00.gif new file mode 100644 index 0000000000000000000000000000000000000000..fd24f34da9bdf9a056c6bd3c311849133bf97407 GIT binary patch literal 54 zcmZ?wbhEHb6k%XtXkcWhtgQV1|G(l-7DfgJMg|=QAOOiQF!8qVFFf6IbCK~Ty^Lr^ G25SI*`VKV! literal 0 HcmV?d00001 diff --git a/theme/54/img/gnb_bg2.gif b/theme/54/img/gnb_bg2.gif new file mode 100644 index 0000000000000000000000000000000000000000..fe636b93014581dea522c3b1071d7217575b760b GIT binary patch literal 49 zcmZ?wbhEHbWM^PuXkcJiz5U1k|Nj+#vM@3*Ff!;c00Bsbfr*2qNo>{49SMvK)&Nd1 B3|{~M literal 0 HcmV?d00001 diff --git a/theme/54/img/mobile/btn_close.png b/theme/54/img/mobile/btn_close.png new file mode 100644 index 0000000000000000000000000000000000000000..22f13faaec161bb79b92f35cab729acfd69d8bb5 GIT binary patch literal 3265 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 C4nrjX literal 0 HcmV?d00001 diff --git a/theme/54/img/mobile/gnb_bg2.png b/theme/54/img/mobile/gnb_bg2.png new file mode 100644 index 0000000000000000000000000000000000000000..5828f41b7cd81d3958d5383073a5c8ba91328027 GIT binary patch literal 976 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 UB`Y^oGynhq07*qoM6N<$g4?ZVo&W#< literal 0 HcmV?d00001 diff --git a/theme/54/img/wrest.gif b/theme/54/img/wrest.gif new file mode 100644 index 0000000000000000000000000000000000000000..a5ecfb334be107c3830c02709fb06c8ef837ebef GIT binary patch literal 51 zcmZ?wbhEHbWMg1sXkcWBjrIHg|G(l-7DfgJMg|=QAOOiQFmbiWr%ycbk74!#1_o;Y DKOqcu literal 0 HcmV?d00001 diff --git a/theme/54/index.php b/theme/54/index.php new file mode 100644 index 000000000..f7bd1020b --- /dev/null +++ b/theme/54/index.php @@ -0,0 +1,60 @@ + + +

    최신글

    + +
    + + + 'mobile' "; + if(!$is_admin) + $sql .= " and a.bo_use_cert = '' "; + $sql .= " and a.bo_table not in ('notice', 'gallery') "; //공지사항과 갤러리 게시판은 제외 + $sql .= " order by b.gr_order, a.bo_order "; + $result = sql_query($sql); + for ($i=0; $row=sql_fetch_array($result); $i++) { + if ($i%2==1) $lt_style = "margin-left:2%"; + else $lt_style = ""; + ?> +
    + +
    + + + +
    + +
    + + + +
    + + \ No newline at end of file diff --git a/theme/54/mobile/_common.php b/theme/54/mobile/_common.php new file mode 100644 index 000000000..2ce42a3fc --- /dev/null +++ b/theme/54/mobile/_common.php @@ -0,0 +1,3 @@ + \ No newline at end of file diff --git a/theme/54/mobile/group.php b/theme/54/mobile/group.php new file mode 100644 index 000000000..aa9187851 --- /dev/null +++ b/theme/54/mobile/group.php @@ -0,0 +1,35 @@ + + + + 'pc' "; +if(!$is_admin) + $sql .= " and bo_use_cert = '' "; +$sql .= " order by bo_order "; +$result = sql_query($sql); +for ($i=0; $row=sql_fetch_array($result); $i++) { + // 이 함수가 바로 최신글을 추출하는 역할을 합니다. + // 스킨은 입력하지 않을 경우 관리자 > 환경설정의 최신글 스킨경로를 기본 스킨으로 합니다. + + // 사용방법 + // latest(스킨, 게시판아이디, 출력라인, 글자수); + echo latest('theme/basic', $row['bo_table'], 5, 70); +} +?> + + + diff --git a/theme/54/mobile/head.php b/theme/54/mobile/head.php new file mode 100644 index 000000000..a63bb027a --- /dev/null +++ b/theme/54/mobile/head.php @@ -0,0 +1,192 @@ + + +
    +

    + + + + + +
    + + + + + +
    + + + + +
    +

    사이트 내 전체검색

    +
    + + + + + + + +
    +
    + + +
    + + + + + + +
    + + + + +
    +
    + + + +
    +
    + + + +
    + +
    +

    diff --git a/theme/54/mobile/index.php b/theme/54/mobile/index.php new file mode 100644 index 000000000..3df4ba11b --- /dev/null +++ b/theme/54/mobile/index.php @@ -0,0 +1,30 @@ + + + + 'pc' "; +if(!$is_admin) + $sql .= " and a.bo_use_cert = '' "; +$sql .= " order by b.gr_order, a.bo_order "; +$result = sql_query($sql); +for ($i=0; $row=sql_fetch_array($result); $i++) { + // 이 함수가 바로 최신글을 추출하는 역할을 합니다. + // 스킨은 입력하지 않을 경우 관리자 > 환경설정의 최신글 스킨경로를 기본 스킨으로 합니다. + + // 사용방법 + // latest(스킨, 게시판아이디, 출력라인, 글자수); + echo latest('theme/basic', $row['bo_table'], 5, 25); +} +?> + + + \ No newline at end of file diff --git a/theme/54/mobile/skin/board/basic/img/btn_next2.gif b/theme/54/mobile/skin/board/basic/img/btn_next2.gif new file mode 100644 index 0000000000000000000000000000000000000000..f17993bb163dcdecc4e41ffc964c31e45d79877a GIT binary patch literal 55 zcmZ?wbhEHbWMklFXkcK-$;tWu|G(l-7DfgJMg|=QAOOiQF!8z6B}kmwJ0V&4R77?) HD}yxvenk!U literal 0 HcmV?d00001 diff --git a/theme/54/mobile/skin/board/basic/img/btn_prev2.gif b/theme/54/mobile/skin/board/basic/img/btn_prev2.gif new file mode 100644 index 0000000000000000000000000000000000000000..63604af1a8a977511177cde67e5c0c6a9fad5baa GIT binary patch literal 56 zcmZ?wbhEHbWMklFXkcK-$;tWu|G(l-7DfgJMg|=QAOOiQF!A^Bich%l`^LnsbI(Pt JEMQ=;1^}Mz5N7}Y literal 0 HcmV?d00001 diff --git a/theme/54/mobile/skin/board/basic/img/cmt_btn.png b/theme/54/mobile/skin/board/basic/img/cmt_btn.png new file mode 100644 index 0000000000000000000000000000000000000000..202f1ff475be9d3b371fb8d87034e9cdebd8d37f GIT binary patch literal 2862 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 VnTK9&Vf6=<>z=NDF6*2UngFu!X5|0? literal 0 HcmV?d00001 diff --git a/theme/54/mobile/skin/board/basic/img/icon_file.gif b/theme/54/mobile/skin/board/basic/img/icon_file.gif new file mode 100644 index 0000000000000000000000000000000000000000..244af004d50b31239c1f480bb0fc3df177333285 GIT binary patch literal 197 zcmZ?wbhEHbC>k_efsqC=g;fbt^4xj%d%z5mM&eoe*OCY|Nk=(0Th3-FfuR*Gw6WSg6w2qb$X!U z$Hc&q>@{nJ*0kkTEC-YHz8FZQ@k?m79C_~0!PRq;F{w*Nt%pfLL5hQAm*)W&QCq3S Ux{8k4(}h`B4?g#9XJD`f08N@mPXGV_ literal 0 HcmV?d00001 diff --git a/theme/54/mobile/skin/board/basic/img/icon_good.png b/theme/54/mobile/skin/board/basic/img/icon_good.png new file mode 100644 index 0000000000000000000000000000000000000000..69841a1340a76f2b4bfeb4a3a9e74b8a5846fe43 GIT binary patch literal 1288 zcmbVMZA{!`9Pfq1I3`QxTc&=n7KtP5t}l1(T`MO!+PiVnyJN>0&WwBEfC(!}ei*Fj>^OWDGN(0*8Je`(V?j z&)fg^`@eUnIk~f{^3h5JL8{_SLK@Cn-Er?d@cXp7a|uq5*wL)rqUY?QXaXc6>m2}% zt70ce15xgM@jR$Ukcym=$=cb(bDX5BKGBu&IjRBC2vXnR7@|}FHrfF?6)lWipZo$t z6*-Kx(g`AA@F1@=^_ifhFPV}03KA=04bPzU4hIQTV2h}uc54>rgs~M~4zAr}979(` z>_Qk@H7c8EMtR)?DDCrmC4wYThVhXBnqkNtC`FJIPQaJ(k^zopI4X#)Js8wx$~i7A z#MX4dT^P&Tw!z_eu~_sK{XX67#7UNAT@H%!LJ6PKqSU6p#T#VSU*WdnGnnRSt=SMLm@vyM))!|u35IINuaD(fqK`l z^j)zWZvxTQ&5W*hmn)z-uiLtn*A0|!VbJZZiYDtttJY1=s<#3#m6w1VGj$bRi7%&Y zpx;mNQ3?*CG0Ly_%|{4!*b2hKZZ{{_(Jop+76y-KXW$q_Xo-O%a=aC`cZ1WboBP*_w2RP7iz}1 zV^=nX_v6!qt#o-lU7Q+y{Qf8J%TJ%W{NCIhGTuZlyfwY$jBz-(>G0xL74Q7;`q;^^ zlKIAaa(kr{`;g;i@Po#IUir7dns1#{!}Otrh64j_??1->a;J+Je0g$qPisy6$NN4T zPqw!SQ$&}fX;VWZBX4r0V*ku*{d+e*Fwy!--PpjXRQ0HnPcMv*{Q2;5^>P0CkA>4u zBtqvLvG3W^1y4>o7}`fC^aW*U8M$=p`L)uVzOBcVHvhC-c=byHnc~&&{ z->-j+TI7Rv!7V`uOwG1%KXu`g-ElyLo%xOxyl()9DW@ z4u9Nq;_b{GKkvSLl0M@}>a^$Oi(YlCc{hLW^YVqy3g$hEnecJr$$!6oy_>V=^X`lP z|Nm#83@H9&VPs&?V$cB@1M(9CTZ}`flj9^Et%(QJ7fUf1%n9mvbTfv5`KaU4O$-dO z?;0DPu2Nzx<~oougO#bcIZ)xq*%-!!4ICLCVuTnuw1gSdDmWR0)A$)Q)VY-y_!|Tm Sl@%BT8e;g^*!U_O8LR=!XM;xo literal 0 HcmV?d00001 diff --git a/theme/54/mobile/skin/board/basic/img/icon_img.gif b/theme/54/mobile/skin/board/basic/img/icon_img.gif new file mode 100644 index 0000000000000000000000000000000000000000..fefa10d4a09ae3dd2407fd94582594c06aafa7fc GIT binary patch literal 145 zcmZ?wbhEHbzHen|7VvwFnzUPlarEA ZqW~YXyUO~T+#YkUoJ%KCQw{PFXi4*tl-~Zypi#>bx zoH=vm#*G`BH*daj<;uHv@4kQkzG~H~FJHdAeEIUtn>R;~9_{Mtx_0f_nl)?Ity_2O z*s&i!ek@+Rc+|z@W*X12PHZCkD2d15*k#mgtxrdBSj@My2(%!y%Ri725^|MOH?MNed6V zWH4B?bq0De3MeqNK4dLOaQFC-7{bsIBBkKW&mha9!6PH#$(QSt&+Vx$CMmB}=`ZBN Q!0YeKBE>UT(~-d%0A})n?*IS* literal 0 HcmV?d00001 diff --git a/theme/54/mobile/skin/board/basic/img/icon_lock.png b/theme/54/mobile/skin/board/basic/img/icon_lock.png new file mode 100644 index 0000000000000000000000000000000000000000..2a083a51d9aa7f27a9a379bee2c49d2ca9cc96c6 GIT binary patch literal 1225 zcmbVMOKjU@9CwqjReiHb2qr;4xm2{$;%Dr{rs(5WiB{UD9aj5$M`YxQgL!;>dU#a?KyY4qt7h+l6u0fDD)j3## zs=j>g3pjyc(YjHo`qjcIQL{}#4P}VHbPyWDCXNM;sx3et)Zm<9rSUr--N1pNr}0^? zKouMb&KuJ!E-bIiRJ4@^P0;aUlVBnc5rGMP6$EC(^28vGw|GUg4v$G3v_$-cG`?$8 zwNM0-?Lxp2Y+R#g8t^zO4bM?AdlBe3b&@PS7 z`@SQRWV6{Mnk-?vb0jSYLdd}|aU>Dw@VN3VXzs*A5g485yV!NfQ)lnxS7UY0odgf6dre+N&%(kSsyZUUW5-kNQXljAD0p zMWGn6gWv%C^kp)3@s-+ z9Q$EYaze^72|-a(3{5M1O5t-7olWxW6eA0CqJzy_p08RO?C3R+-ZnOMSF9+xQ1xxM zV%v>Q1r+CP-}dHh2S{ZejLjOBZa2O0Fg?58%Fs2Ipg!f=CTPW1H1^TYGLpieLFE*w z<+qfjWQOAs$?TNGq*8brtN)*vk;oV_ERO#aOXmnxV7S~XeYDwY9%!MCaZzh@eLb$B zw)#CUXDh*XwX-*4eCFEl`uXS%34ZL|`lT~wV9|lXA+TnNa zo$a~x<>${SoA*8Q&{Fl#htaJ_=33vl@pEK@y0BK~4)lWS$8+y=y?q7irm&Y^kj{@; RZ% literal 0 HcmV?d00001 diff --git a/theme/54/mobile/skin/board/basic/img/icon_reply.gif b/theme/54/mobile/skin/board/basic/img/icon_reply.gif new file mode 100644 index 0000000000000000000000000000000000000000..7fe2c65580ed22e254718fdd45ed93efb554672d GIT binary patch literal 1187 zcmZ?wbhEHbCgqow*eU^C z3h_d2fv+#z;Jjizu!r=L^Ke6^lgE!9KDdAH?w#AWZr-?l?dp}w zmo8p7f9~v=)2B|JIDYKtk;8`$9@xKc@1EVecJA1|ZR?iJn>KD(zi#cC)vH#nSiWrO zlEsS_E|@=W?wr}PX3m&CZR(WClO|5+@9XX9?&|DlZ)CJqCAJzX7bElmw|HB}X5B}D~!IawKLDM<-&F;Nj=AwdCtK3*Pf zE=~@1HdYp9CPoGZ#h)xdl954&0SG`P4+E1_OY=;&S8qgOKCNk!;0vz)T^YHC++&YW4WV8MX{2Y_l09y~a2-n^qnkN*GvpMgq1@h1x-1A{t)4#+%^ zpBUJp4@};0iP6RF&=XgqlMO2KpR9E8oa7XAR_$b`iXzA51f4?;er$&r12dHQSe%^| zeYK<-8VnLWIhYwLop{)I>Km)nnc11!o1El48(8?6rcGz!XW`>+oY%E1CJY$zMikVi`-#gIi|DbmsXBWf6U5szE@->A`0*`&<;b@XASRrB8=E6~=S>Pbm I%fes{0AXt-SpWb4 literal 0 HcmV?d00001 diff --git a/theme/54/mobile/skin/board/basic/img/icon_view.png b/theme/54/mobile/skin/board/basic/img/icon_view.png new file mode 100644 index 0000000000000000000000000000000000000000..bfa5eb1e62ce43590450d01d3048539ee2b6a4d0 GIT binary patch literal 1936 zcmaJ?Yfuws6b%UKprR-QL8~!V1kGzh5=crwNC*!JVu*@`Dj``ygzSc7ArQ4AVSMta zpn_sV5zwkAK>|XtNa~0qEn@M7)=^?gEDknSrUHW4jTPD-r8~R(J?5Nq@BQwX`S!;| zhs|;Fbi!aTb0WgI0(A7YeKV({|NQYLIXZYCp>aqooQ$YNN)Qt)fs;U7gj^&A1)xZh zoqh`pz+k4~Wx_ZljvvJm!*Y_yh9PCi6(}2n2?)wkh{UNNf=dFWGKh`0wp_#GWD+)h z6P-`tD>z_^EL@`mV>Qu2u_jf_l;DE`aRFH@R6q_QB3za{4N|eP*!YjSEOc($CgX7* zAxJ74|94Vx{1_YuR)RP>$(Jam0054`AOSQwg8>k5R0=>PQ_z<|1ZXTegGKejeR}X{ zG^He&CE)Tt#X?tXd#e%Y@zP4O($)OE+&l+La5u7sIBiN_OdV-2Zso5urTZKz|rj~1?dZK zb{#8CjpD|Nwfost`OSemR zBX;-E1Pis$ddPa=?AB{TZ0X7ataUpdkB&cmHu^=^Xh4@WyZqUhNzpSzUaPe(Ep5`K zJDQ!wtxjGgM~>WhQ@(Vzo!Lk^Xs5{`opKv?c)Dw4?~O;P}R5c^pUZpZUb$0U~;mNE>O8+MB|$ z3C@L{9rp)Q>(A-phBmr(jQGF6J{!SA{`PL0xZHau=0RFtb?>V0LVip?cn%w7|6J~8$@INJzyC0%sn zbl{$#*x7ltIc|fC9q$fTKOWls1al^eQPVpA>d?MxL%K>fVEbsqA0ZCiLryVo}h)1K>!c1UNY zZa-3?TkN9b_u=U^-IcHGPUNTe_rJ~M7^2jf9Z7xVxczsywJW8@vSqv6IfhU?z;qB-f1bKoj*=pghq2Og(PbK0xq=_ A=>Px# literal 0 HcmV?d00001 diff --git a/theme/54/mobile/skin/board/basic/img/require.png b/theme/54/mobile/skin/board/basic/img/require.png new file mode 100644 index 0000000000000000000000000000000000000000..c03e1eb6f5e8bc7ac6e40bbf6324bd2ac3fd3039 GIT binary patch literal 2922 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 UB`Y^oGynhq07*qoM6N<$g4?ZVo&W#< literal 0 HcmV?d00001 diff --git a/theme/54/mobile/skin/board/basic/img/sch_btn.png b/theme/54/mobile/skin/board/basic/img/sch_btn.png new file mode 100644 index 0000000000000000000000000000000000000000..94f98db8f486c86e4c73c8c457b1f6170d716d7e GIT binary patch literal 1234 zcmbVMO>Em_7L#sBtRF5+bZX+C#7^urYZBY(0!yiqNNf2KbK)0BR-RP@zdo6HJ|iG^BCa5F7?#5?nZ-4hg{lAu$fLXon#|%jYyH9I73# zY=1v~p6C7f-q&x8jtuV)JsBbhVt?+GQo!Q@|JfVF?-Sp>^E@7UTy@MXqN>}_Y)GVa zRE8jDY7?*kHGOva9vmcy&ZN-)x5Cf^tBZf=u~W@?i$Df zzM@t}Gj5W?o^FR=*7NxtVasVH3a5=>*cI)RX6ukHKnKm( z6?`7mzBU=>?(v3vAofOj(Khg*Xj2NR%$U$}b4rrJUn07pOA41r^U=7da*Cn~EGx!E zURG2lnqdWwRpM=p-MAu?&I+-NsLHa)vZ|2g8CI1US&pkwUXJZ>bC%<3Rt2{08rW`& zn|Lf&l5MED$Sxr?)vkci8gh|SLvGzLkJ6Z+W#yO~GZDfLGekEfU z`%F|-)7iKh!yY%|meY*F@q8?v&dOXOLAAL0|H&DRouU2W_)oF4w{Qje)1A`Ci=F0y z7Va1ux5m=32j37xMiq zJLKa1C7$hMyGgXCJaK*PRd6MA_l1Q=LGlK{9w2|~yg5K3MF2hb9v(`4{njtXJHW}s zYhNB6|Ko6J{b|zqY5m;8{xPc7S{uH8>2RuRF?l`_T>0S7rJt`Z@AKr5 hVCZu7y(G~QB)VQHjxXGLX~6%>', 0); +?> + + + + + +
    + + + + + +
    + 전체 건 + 페이지 +
    + + +
    + + + + + + + + + + + + +
    +
      + +
    • 목록
    • + + +
    • +
    • +
    • + +
    +
    + + +
    + + + + + + + + +
    + 게시물 검색 + +
    + + + + + + + + +
    + + + + + diff --git a/theme/54/mobile/skin/board/basic/style.css b/theme/54/mobile/skin/board/basic/style.css new file mode 100644 index 000000000..b30511b36 --- /dev/null +++ b/theme/54/mobile/skin/board/basic/style.css @@ -0,0 +1,279 @@ +@charset "utf-8"; + +/* ### 기본 스타일 커스터마이징 시작 ### */ + +/* 게시판 버튼 */ +/* 목록 버튼 */ +#bo_list a.btn_b01 {} +#bo_list a.btn_b01:focus, #bo_list .btn_b01:hover {} +#bo_list a.btn_b02 {} +#bo_list a.btn_b02:focus, #bo_list .btn_b02:hover {} +#bo_list a.btn_admin {} /* 관리자 전용 버튼 */ +#bo_list a.btn_admin:focus, #bo_list a.btn_admin:hover {} +.chk_all{margin:10px 0} +/* 읽기 버튼 */ +#bo_v a.btn_b01 {} +#bo_v a.btn_b01:focus, #bo_v .btn_b01:hover {} +#bo_v a.btn_b02 {} +#bo_v a.btn_b02:focus, #bo_v .btn_b02:hover {} +#bo_v a.btn_admin {} /* 관리자 전용 버튼 */ +#bo_v a.btn_admin:focus, #bo_v a.btn_admin:hover {} + +/* 쓰기 버튼 */ +#bo_w .btn_confirm {} /* 서식단계 진행 */ +#bo_w .btn_submit {} +#bo_w .btn_cancel {} +#bo_w .btn_frmline {} /* 우편번호검색버튼 등 */ + + +/* 게시판 목록 */ +#bo_list .td_chk {width:30px;text-align:center} +#bo_list .td_group {width:100px;text-align:center} +#bo_list .td_board {width:120px;text-align:center} +#bo_list .td_num {width:50px;text-align:center} +#bo_list .td_numbig {width:80px;text-align:center} +#bo_list .td_mb_id {width:100px;text-align:center} +#bo_list .td_nick {width:100px;text-align:center} +#bo_list .td_name {width:100px;text-align:left} +#bo_list .td_date {width:60px;text-align:center} +#bo_list .td_datetime {width:150px;text-align:center} +#bo_list .td_mng {width:80px;text-align:center} +#bo_list .notice_icon{display: inline-block;background: #ff6f6f;padding: 0 5px;line-height: 20px;border-radius: 5px;font-weight: normal;font-size:11px;color: #fff;} +#bo_list .notice_icon i{color:#fff} +#bo_list .bo_subject .fa-download{width:16px;height:16px;line-height:16px;background:#ecaa30;color:#fff;text-align:center;font-size:10px;border-radius:2px} +#bo_list .bo_subject .fa-link{width:16px;height:16px;line-height:16px;background:#2aa974;color:#fff;text-align:center;font-size:10px;border-radius:2px} +#bo_list .bo_subject .fa-heart{color:#ff0000;;text-align:center;font-size:10px;border-radius:2px} +#bo_list .bo_subject .new_icon{display:inline-block;padding: 0 3px;line-height:16px ;font-size:0.833em;color:#fff;background:#c56bed} +#bo_list .bo_tit .fa-lock{color:#666} + + +#bo_cate h2 {width:0;height:0;font-size:0;line-height:0;overflow:hidden} +#bo_cate ul {margin: 10px;padding-left:1px;zoom:1} +#bo_cate ul:after {display:block;visibility:hidden;clear:both;content:""} +#bo_cate li{display:inline-block;float:left;margin:3px 5px 3px 0} +#bo_cate a {display:block;line-height:24px;padding:0 10px;border-radius:13px;background:#fff;} +#bo_cate #bo_cate_on {background:#4162ff;color:#fff; +-webkit-box-shadow:0 0 5px rgba(65,98,255,0.8); +-moz-box-shadow:0 0 5px rgba(65,98,255,0.8); +box-shadow: 0 0 8px rgba(65,98,255,0.8);} + +/* 관리자일 때 */ +#bo_list_admin th label {position:absolute;font-size:0;line-height:0;overflow:hidden} + +#bo_list_admin th:nth-of-type(1) {width:40px} +#bo_list_admin th:nth-of-type(3) {width:100px} + +#bo_list_admin td:nth-of-type(1) {text-align:center} +#bo_list_admin td:nth-of-type(3) {text-align:center} + +/* 관리자가 아닐 때 */ +#bo_list th:nth-of-type(2) {width:100px} +#bo_list td:nth-of-type(2) {text-align:center} + +/* 게시판 목록 공통 */ +.bo_fx {margin-bottom:5px;padding:0 10px} +.bo_fx:after {display:block;visibility:hidden;clear:both;content:""} +.bo_fx ul {margin:0;padding:0;list-style:none} +#bo_list_total{position:absolute;margin:0;padding:0;font-size:0;line-height:0;text-indent:-9999em;overflow:hidden;font-size:0} +.btn_bo_user {float:right;margin:0;padding:0;list-style:none} +.btn_bo_user li {float:left;margin-left:5px} +.btn_bo_adm {text-align:center} +.btn_bo_adm li {display:inline-block;} +.btn_bo_adm button {border:0;padding:0 10px;background:#d13f4a;color:#fff;text-decoration:none;vertical-align:middle} +.bo_notice td {background:#f7f7f7} +.bo_notice td a {font-weight:bold} +.td_num strong {color:#000} +.bo_cate_link {;color:#3ca1ff !important;font-weight:normal;text-decoration:none;font-size:0.92em} /* 글제목줄 분류스타일 */ +.bo_subject{display:block;font-size:1.083em;font-weight:bold;margin:5px 0} +.bo_subject i{color: #8d96c2;font-size:12px} +.bo_subject .fa-heart{color:#ff0000} +.bo_current {color:#e8180c} +.bo_info{border-top: 1px solid #eee;margin: 10px 0 0;line-height: 20px;color: #666;position: relative;padding-top: 10px;vertical-align:top} +.bo_info .comment_icon{background:url(./img/icon_comment.png) no-repeat 50% 50% ;display:inline-block;width:20px;height:28px;text-indent:-999px;overflow:hidden;vertical-align:top;background-size:70%;margin:0 0px 0 5px} +.bo_info .bo_date{position:absolute;top:10px;right:0;font-style: italic;} +.bo_info .cnt_cmt {display:inline-block;margin: 0 5px 0 3px;} +.bo_info .profile_img img{border-radius:50%;vertical-align:top} + +#bo_sch {background:#fff;border:1px solid #bdc2d8;position:relative;margin:10px;border-radius:3px} +#bo_sch:after {display:block;visibility:hidden;clear:both;content:""} +#bo_sch legend {position:absolute;margin:0;padding:0;font-size:0;line-height:0;text-indent:-9999em;overflow:hidden} +#bo_sch select{border:0;;margin:9px 0;height:20px;border-right:1px solid #ddd;float:left;width:40%} +#bo_sch .sch_input{height:38px;border:0;padding:0;background-color:transparent;float:left;width:60%;padding:0 40px 0 10px} +#bo_sch .sch_btn{height:38px;position:absolute;top:0;right:0;border:0;width:40px;background:none;font-size:15px} + +.view_is_list.btn_top{position:relative;z-index:auto;top:0;left:0} +.view_is_list{margin:8px 10px 0;height:50px;padding:10px;line-height:30px;border-radius:3px;border-bottom:1px solid #ccc;background:#fff;color:#333;text-align:right} +.view_is_list li{display:inline-block} + +#bo_list{margin:10px 0} + +/* 게시판 쓰기 */ +#bo_w #wr_email, #bo_w #wr_homepage, #bo_w #wr_subject {width:100%} + +#char_count_desc {display:block;margin:0 0 5px;padding:0} +#char_count_wrap {margin:5px 0 0;text-align:right} +#char_count {font-weight:bold} + +#wr_email, #wr_homepage, #wr_subject, .wr_link {width:100%} + +/* 게시판 읽기 */ +#bo_v {padding:20px 10px 10px;background:#fff +;-webkit-box-shadow: 0 1px 4px #ddd; +-moz-box-shadow: 0 1px 4px #ddd; +box-shadow: 0 1px 4px #ddd;} + +#bo_v_table {padding: 10px;color:#999;font-size:0.9em;font-weight:bold} + +#bo_v_title {;text-align:center} +.bo_v_cate{display:inline-block;background: #4162ff;color: #fff;border-radius: 13px;line-height: 24px;padding: 0 10px;font-weight:normal; +-webkit-box-shadow: 0 0 5px rgba(65,98,255,0.8); +-moz-box-shadow: 0 0 5px rgba(65,98,255,0.8); +box-shadow: 0 0 8px rgba(65,98,255,0.8);} +.bo_v_tit{display:block;font-size:1.5em;margin:10px 0 0} +#bo_v header p{font-size:0.92em;color:#777;font-style:italic ;text-align:center;margin:10px 0 0 } + +#bo_v_info {padding:15px 0px 10px;border-bottom:1px solid #eee;text-align:center;color:#666;line-height:20px;} +#bo_v_info h2 {position:absolute;font-size:0;text-indent:-9999em;line-height:0;overflow:hidden} +#bo_v_info strong {display:inline-block;font-weight:normal;margin:0 5px} +#bo_v_info .profile_img img{border-radius:50%;vertical-align:top} +#bo_v_info .icon_view{display:inline-block;background:url(./img/icon_view.png) no-repeat 50% 50%;background-size:80%;height:15px;width:20px;overflow:hidden;text-indent:-999px;vertical-align:middle;margin:0 3px 0 5px} +#bo_v_info .icon_comment{display:inline-block;background:url(./img/icon_comment.png) no-repeat 50% 50%;background-size:70%;height:15px;width:20px;overflow:hidden;text-indent:-999px;vertical-align:middle;margin:0 3px 0 5px} + +#bo_v_file {margin:10px 0} +#bo_v_file h2 {background:#949ab4;color:#fff;margin-bottom:1px;line-height:35px;padding: 0 10px} +#bo_v_file ul {margin:0;padding:0;list-style:none} +#bo_v_file li {padding: 10px;border-bottom:1px solid #fff;background:#f1f7fa;color:#777} +#bo_v_file a {display:block;color:#000;text-decoration:none;margin:0 0 3px} +#bo_v_file a:focus, #bo_v_file a:hover, #bo_v_file a:active {text-decoration:none} +#bo_v_file a strong{color:#3497d9;text-decoration:underline} +.bo_v_file_cnt {font-size:0.92em} + +#bo_v_link{margin:10px 0} +#bo_v_link h2 {background:#949ab4;color:#fff;margin-bottom:1px;line-height:35px;padding: 0 10px} +#bo_v_link ul {margin:0;padding:0;list-style:none} +#bo_v_link li {padding: 10px;border-bottom:1px solid #fff;background:#f1f7fa;color:#777} +#bo_v_link a {display:block;color:#000;text-decoration:none;margin:0 0 3px} +#bo_v_link a strong{color:#3497d9;text-decoration:underline} +#bo_v_link a:focus, #bo_v_link a:hover, #bo_v_link a:active {text-decoration:none} +.bo_v_link_cnt {font-size:0.92em} + +#bo_v_top {margin:10px 0;} +#bo_v_top:after {display:block;visibility:hidden;clear:both;content:""} +#bo_v_top h2 {position:absolute;font-size:0;text-indent:-9999em;line-height:0;overflow:hidden} +#bo_v_top ul {margin:0;padding:0;list-style:none} +#bo_v_top ul:after {display:block;visibility:hidden;clear:both;content:""} +#bo_v_top ul li{display:inline-block;} +.bo_v_left{float:left} +.bo_v_right{float:right} + +#bo_v_bot {padding:0 10px} +#bo_v_bot:after {display:block;visibility:hidden;clear:both;content:""} +#bo_v_bot h2 {position:absolute;font-size:0;text-indent:-9999em;line-height:0;overflow:hidden} +#bo_v_bot ul {margin:0;padding:0;list-style:none} + +.bo_v_nb{margin:10px 0;border-top:1px solid #ddd;border-bottom:1px solid #ddd;text-align:center;position:relative;} +.bo_v_nb:after {display:block;visibility:hidden;clear:both;content:""} +.bo_v_nb li {} +.bo_v_nb li a{display:inline-block;padding:10px;color:#777} +.bo_v_nb .bo_v_next{;position:absolute;top:0;right:0;} +.bo_v_nb .bo_v_prev{;position:absolute;top:0;left:0;} + +#bo_v_atc {min-height:200px} +#bo_v_atc_title {margin:0;padding:0;height:0;overflow:hidden} + +#bo_v_img {margin:0 0 10px;width:100%;overflow:hidden;zoom:1} +#bo_v_img:after {display:block;visibility:hidden;clear:both;content:""} +#bo_v_img a.view_image{display:block} +#bo_v_img img {margin-bottom:15px;max-width:100%;height:auto} + +#bo_v_con {min-height:200px;margin-bottom:20px;width:100%;font-size:1.250em;line-height:1.7em;word-break:break-all;overflow:hidden} +#bo_v_con a {color:#000;text-decoration:underline} +#bo_v_con img {max-width:100%;height:auto} + +#bo_v_act {margin-bottom:30px;text-align:center} +#bo_v_act .bo_v_act_gng {position:relative} +#bo_v_act a {margin-right:5px;vertical-align:middle} +#bo_v_act a:hover{background-color:#f3f3f3} +#bo_v_act_good, #bo_v_act_nogood {display:none;position:absolute;top:30px;left:0;padding:10px 0;width:165px;background:#ff3061;color:#fff;text-align:center} +#bo_v_act .bo_v_good{padding:15px 0;display:inline-block;border:1px solid #000;width:70px;height:70px;line-height:20px;border-radius:50%;font-style:italic} +#bo_v_act .bo_v_nogood{padding:15px 0;display:inline-block;border:1px solid #000;width:70px;height:70px;line-height:20px;border-radius:50%;font-style:italic} +#bo_v_act .bo_v_good i,#bo_v_act .bo_v_nogood i{font-size:18px;} +#bo_v_share{position:relative;margin:20px 0;text-align:right} +#bo_v_share:after {display:block;visibility:hidden;clear:both;content:""} +#bo_v_share .btn_scrap{display:inline-block;background:#d4d4d4;color:#444;line-height:40px;width:60px;font-weight:bold;text-align:center;float:left;border-radius:3px} + +.btn_share{display:none;} +.bo_v_snswr{position:relative;float:right} +#bo_v_sns {;padding:0;list-style:none;zoom:1} +#bo_v_sns:after {display:block;visibility:hidden;clear:both;content:""} +#bo_v_sns li {float:left;width:50px;text-align:center;margin-left:3px} +#bo_v_sns li a{height:40px;padding:10px 0;} +#bo_v_sns li .sns_f{display:block;background:#415b92;border-radius:3px} +#bo_v_sns li .sns_t{display:block;background:#35b3dc;border-radius:3px} +#bo_v_sns li .sns_g{display:block;background:#d5503a;border-radius:3px} +#bo_v_sns li .sns_k{display:block;background:#fbe300;border-radius:3px} +#bo_v_sns li img{vertical-align:top} + +/* 게시판 댓글 */ +.cmt_btn{background:url('./img/cmt_btn.png') no-repeat right 8px;text-align:left ;width:100% ;border:0;color:#ed6478;font-weight:bold;font-size:1.167em;margin: 20px 0 10px;padding:0 0 10px ;border-bottom:1px solid #e8e8e8} +.cmt_btn_op{background:url('./img/cmt_btn.png') no-repeat right -23px} + +#bo_vc {} +#bo_vc h2 {position:absolute;font-size:0;line-height:0;overflow:hidden} +#bo_vc article {margin:0 0 15px} +#bo_vc header {position:relative;padding:0 0 0 50px;height:40px;line-height:20px} +#bo_vc .comment_profile_img{position:absolute;top:0;left:0} +#bo_vc .comment_profile_img img, #bo_vc .profile_img img{border-radius:50%} +#bo_vc .sv_member, #bo_vc .sv_guest {font-weight:bold} +.bo_vc_hdinfo {display:inline-block;color:#777;font-style:italic} +#bo_vc h1 {width:0;height:0;font-size:0;line-height:0;overflow:hidden} +#bo_vc .cmt_contents {padding:10px 15px ;margin:5px 0 0 ;border-radius:5px;background:#f6f6f6;line-height:1.8em} +#bo_vc .cmt_contents p{font-size:1.083em} +#bo_vc p a {text-decoration:underline} +#bo_vc p a.s_cmt {text-decoration:underline;color:#ed6479} +#bo_vc_empty {margin:0;padding:15px !important;text-align:center} +#bo_vc #bo_vc_winfo {float:left} +#bo_vc footer {zoom:1} +#bo_vc footer:after {display:block;visibility:hidden;clear:both;content:""} + +.bo_vc_act {text-align:right;;margin:0;list-style:none} +.bo_vc_act:after {display:block;visibility:hidden;clear:both;content:""} +.bo_vc_act li {display:inline-block;margin:0 2px} +.bo_vc_act li a{color:#3497d9;text-decoration:underline} + +.bo_vc_w {position:relative;margin:10px 0;display:block;} +.bo_vc_w:after {display:block;visibility:hidden;clear:both;content:""} +.bo_vc_w h2 {position:absolute;font-size:0;line-height:0;overflow:hidden} +.bo_vc_w #char_cnt {display:block;margin:0 0 5px} +.bo_vc_w textarea{border:1px solid #ccc;background:#fff;color:#000;vertical-align:middle;border-radius:3px;padding:5px;width:100%;height:120px} +#wr_secret{} +.bo_vc_w_info{margin:5px 0} +.bo_vc_w_info:after {display:block;visibility:hidden;clear:both;content:""} +.bo_vc_w_info .frm_input{float:left;;width:49.5%;margin: 0 0 5px 0} +.bo_vc_w_info #wr_password{float:right;} +.bo_vc_w_info #captcha{;display:block;clear:both} +.bo_vc_w .btn_confirm{margin-top:5px;clear:both} +.bo_vc_w .icon_lock{display:inline-block;font-size:17px;padding: 5px;margin-right:5px;} +.bo_vc_w .btn_submit{height:50px;width:100%;padding:0 20px;border-radius:3px;font-weight:bold;font-size:1.083em;} +.bo_vc_w_wr:after {display:block;visibility:hidden;clear:both;content:""} +.bo_vc_w .bo_vc_secret{float:right;display:block;} + +#bo_vc_send_sns{display:block;float:left} +#bo_vc_sns {display:block;margin:0;padding:0;list-style:none;zoom:1} +#bo_vc_sns:after {display:block;visibility:hidden;clear:both;content:""} +#bo_vc_sns li {float:left;margin:0 5px 0 0} +#bo_vc_sns .sns_li_f{border-radius:3px;background:#3a589b;height:40px;;padding: 10px 0 10px 10px} +#bo_vc_sns .sns_li_t{border-radius:3px;background:#00aced;height:40px;;padding: 10px 0 10px 10px} +#bo_vc_sns .sns_li_off{background:#bbb} +#bo_vc_sns a{display:inline-block;padding:0 15px 0 5px;} +#bo_vc_sns input {margin:0 5px 0 0 } + +/*글쓰기*/ +#bo_w .bo_w_select select{border:1px solid #3497d9;background:#fff;width:100%} +#bo_w .bo_w_link label{position:absolute;top:1px;left:1px;border-radius:3px 0 0 3px;height:38px;line-height:38px;width:40px;background:#eee;text-align:center} +#bo_w .bo_w_link .frm_input{padding-left:50px} +#bo_w .bo_w_flie .lb_icon{position:absolute;top:0px;left:0px;border-radius:3px 0 0 3px;height:38px;line-height:38px;width:40px;background:#eee;text-align:center} +#bo_w .bo_w_flie .frm_file{padding-left:50px;} +#bo_w .bo_w_flie .file_wr{border:1px solid #ccc;background:#fff;color:#000;vertical-align:middle;border-radius:3px;padding:5px;height:40px;margin:0} +#bo_w .bo_w_flie .frm_input{margin:5px 0 0 } + diff --git a/theme/54/mobile/skin/board/basic/view.skin.php b/theme/54/mobile/skin/board/basic/view.skin.php new file mode 100644 index 000000000..a0b0f4d87 --- /dev/null +++ b/theme/54/mobile/skin/board/basic/view.skin.php @@ -0,0 +1,278 @@ +', 0); +?> + + + + + +
    +
    +

    + + + + + +

    +

    작성일

    +
    + +
    +

    페이지 정보

    + 작성자 + 조회 회 + 댓글 건 +
    + +
    + + + + +
    + +
    +

    본문

    + + \n"; + + for ($i=0; $i<=count($view['file']); $i++) { + if ($view['file'][$i]['view']) { + //echo $view['file'][$i]['view']; + echo get_view_thumbnail($view['file'][$i]['view']); + } + } + + echo "
    \n"; + } + ?> + +
    + + +

    + + +
    + + +
    추천
    + 이 글을 추천하셨습니다 +
    + + + +
    비추천
    + +
    + +
    + +
    +
    추천
    +
    비추천
    +
    + + +
    + 스크랩 + + +
    + + + + + + + +
    +

    첨부파일

    + +
    + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/theme/54/mobile/skin/board/basic/view_comment.skin.php b/theme/54/mobile/skin/board/basic/view_comment.skin.php new file mode 100644 index 000000000..06dd49ea2 --- /dev/null +++ b/theme/54/mobile/skin/board/basic/view_comment.skin.php @@ -0,0 +1,328 @@ + + + + + + + +
    +

    댓글목록

    + \]/i", "", $str); + ?> +
    style="margin-left:px;border-top-color:#e0e0e0"> +
    +

    님의 댓글의 댓글

    + + + + 아이피 + () + +
    + 작성일 + + +
    +
    + +

    + "; ?> + +

    + + + + +
    + + + "> + + +
    + +

    등록된 댓글이 없습니다.

    + +
    + + + + + + diff --git a/theme/54/mobile/skin/board/basic/write.skin.php b/theme/54/mobile/skin/board/basic/write.skin.php new file mode 100644 index 000000000..9165fd212 --- /dev/null +++ b/theme/54/mobile/skin/board/basic/write.skin.php @@ -0,0 +1,247 @@ +', 0); +?> + +
    +
    + + + + + + + + + + + '.PHP_EOL.''; + } + + if ($is_html) { + if ($is_dhtml_editor) { + $option_hidden .= ''; + } else { + $option .= PHP_EOL.''.PHP_EOL.''; + } + } + + if ($is_secret) { + if ($is_admin || $is_secret==1) { + $option .= PHP_EOL.''.PHP_EOL.''; + } else { + $option_hidden .= ''; + } + } + + if ($is_mail) { + $option .= PHP_EOL.''.PHP_EOL.''; + } + } + + echo $option_hidden; + ?> +
    +

    + + +
    + + +
    + + + +
    + + +
    + + + +
    + + class="frm_input full_input " maxlength="20" placeholder="비밀번호"> +
    + + + +
    + + +
    + + + +
    + + +
    + + + +
    + 옵션 + +
    + + +
    + + +
    + +
    + + + +

    이 게시판은 최소 글자 이상, 최대 글자 이하까지 글을 쓰실 수 있습니다.

    + + + + +
    글자
    + +
    + + + + + + + + +
    +
    + + +
    + + + + + + + + + + +
    + + + +
    + 자동등록방지 + + +
    + + +
    + +
    + 취소 + +
    + +
    + + diff --git a/theme/54/mobile/skin/board/gallery/img/icon_file.gif b/theme/54/mobile/skin/board/gallery/img/icon_file.gif new file mode 100644 index 0000000000000000000000000000000000000000..cca47f566ac0db655fb2ab0f56628b64958e48b2 GIT binary patch literal 107 zcmZ?wbhEHb-Wqsc#^P~2x#@rVooH@5wHB9i@BozKb;P9uI^*c|UyXO5@>VyLmgEat< Cr6(f* literal 0 HcmV?d00001 diff --git a/theme/54/mobile/skin/board/gallery/img/icon_hot.gif b/theme/54/mobile/skin/board/gallery/img/icon_hot.gif new file mode 100644 index 0000000000000000000000000000000000000000..c95b839aeef0c1e26a4bab4ea50cd6d3f1969d7f GIT binary patch literal 97 zcmZ?wbhEHbzHen|7VvwFnzUPlarEA ZqW~YXyUO~T+#YkUoJ%V_>ib05Q5F AasU7T literal 0 HcmV?d00001 diff --git a/theme/54/mobile/skin/board/gallery/img/icon_mobile.gif b/theme/54/mobile/skin/board/gallery/img/icon_mobile.gif new file mode 100644 index 0000000000000000000000000000000000000000..ad934d23c440c83db0c4589596465cb087353e01 GIT binary patch literal 62 zcmZ?wbhEHbZ% literal 0 HcmV?d00001 diff --git a/theme/54/mobile/skin/board/gallery/img/icon_reply.gif b/theme/54/mobile/skin/board/gallery/img/icon_reply.gif new file mode 100644 index 0000000000000000000000000000000000000000..91c135977b4f445a90c849310dc80efde1983830 GIT binary patch literal 77 zcmZ?wbhEHb&!1E4^4&ClEzh)PmWxV3{9A~!gB2-%RL5bHcgg3Zp^!+W)H2^A_AxQuL literal 0 HcmV?d00001 diff --git a/theme/54/mobile/skin/board/gallery/img/icon_sound.gif b/theme/54/mobile/skin/board/gallery/img/icon_sound.gif new file mode 100644 index 0000000000000000000000000000000000000000..c5188318a5cdc394b984125c0ddd376c5f57bbe4 GIT binary patch literal 113 zcmZ?wbhEHbE1CJY$zMikVi`-#gIi|DbmsXBWf6U5szE@->A`0*`&<;b@XASRrB8=E6~=S>Pbm I%fes{0AXt-SpWb4 literal 0 HcmV?d00001 diff --git a/theme/54/mobile/skin/board/gallery/list.skin.php b/theme/54/mobile/skin/board/gallery/list.skin.php new file mode 100644 index 000000000..5f7e18df7 --- /dev/null +++ b/theme/54/mobile/skin/board/gallery/list.skin.php @@ -0,0 +1,236 @@ +', 0); +?> + + + + + + + + +
    + + + + + +
    + 전체 건 + 페이지 +
    + +
    + + + + + + + + + +

    이미지 목록

    + + +
    + + +
    + + +
      + +
    • +
      + + + + + + + + + 열람중"; + else + echo $list[$i]['num']; + ?> + + + + + 공지 + '; + } else { + $img_content = 'no image'; + } + + echo $img_content; + } + ?> + +
      + + + + + + 댓글개 + + '; } + + if (isset($list[$i]['icon_new'])) echo $list[$i]['icon_new']; + if (isset($list[$i]['icon_hot'])) echo $list[$i]['icon_hot']; + //if (isset($list[$i]['icon_file'])) echo $list[$i]['icon_file']; + //if (isset($list[$i]['icon_link'])) echo $list[$i]['icon_link']; + //if (isset($list[$i]['icon_secret'])) echo $list[$i]['icon_secret']; + ?> + 작성자 +
      + 조회 + 추천 + 비추천 + 작성일 +
      +
      +
      +
    • + + 게시물이 없습니다."; } ?> +
    + + +
    +
      + +
    • 목록
    • + + +
    • +
    • +
    • + +
    +
    + + + +
    + + + + + + + + + +
    + 게시물 검색 + +
    + + + + + + + + +
    + + + + + + diff --git a/theme/54/mobile/skin/board/gallery/style.css b/theme/54/mobile/skin/board/gallery/style.css new file mode 100644 index 000000000..e35747966 --- /dev/null +++ b/theme/54/mobile/skin/board/gallery/style.css @@ -0,0 +1,302 @@ +@charset "utf-8"; + +/* ### 기본 스타일 커스터마이징 시작 ### */ + +/* 게시판 버튼 */ +/* 목록 버튼 */ +#bo_gall a.btn_b01 {} +#bo_gall a.btn_b01:focus, #bo_gall .btn_b01:hover {} +#bo_gall a.btn_b02 {} +#bo_gall a.btn_b02:focus, #bo_gall .btn_b02:hover {} +#bo_gall a.btn_admin {} /* 관리자 전용 버튼 */ +#bo_gall a.btn_admin:focus, #bo_gall a.btn_admin:hover {} + +/* 읽기 버튼 */ +#bo_v a.btn_b01 {} +#bo_v a.btn_b01:focus, #bo_v .btn_b01:hover {} +#bo_v a.btn_b02 {} +#bo_v a.btn_b02:focus, #bo_v .btn_b02:hover {} +#bo_v a.btn_admin {} /* 관리자 전용 버튼 */ +#bo_v a.btn_admin:focus, #bo_v a.btn_admin:hover {} + +/* 쓰기 버튼 */ +#bo_w .btn_confirm {} /* 서식단계 진행 */ +#bo_w .btn_submit {} +#bo_w .btn_cancel {} +#bo_w .btn_frmline {} /* 우편번호검색버튼 등 */ + +/* 기본테이블 */ +/* 읽기 내 테이블 */ +#bo_v .tbl_head01 {} +#bo_v .tbl_head01 caption {} +#bo_v .tbl_head01 thead th {} +#bo_v .tbl_head01 thead a {} +#bo_v .tbl_head01 thead th input {} /* middle 로 하면 게시판 읽기에서 목록 사용시 체크박스 라인 깨짐 */ +#bo_v .tbl_head01 tfoot th {} +#bo_v .tbl_head01 tfoot td {} +#bo_v .tbl_head01 tbody th {} +#bo_v .tbl_head01 td {} +#bo_v .tbl_head01 a {} +#bo_v td.empty_table {} + +/* 쓰기 테이블 */ +#bo_w table {} +#bo_w caption {} +#bo_w .frm_address {} +#bo_w .frm_file {} +#bo_w .frm_info {} + +#bo_w .tbl_frm01 {} +#bo_w .tbl_frm01 caption {} +#bo_w .tbl_frm01 th {} +#bo_w .tbl_frm01 td {} +#bo_w .tbl_frm01 textarea, #bo_w .frm_input {} +#bo_w .tbl_frm01 textarea {} +/* +#bo_w .tbl_frm01 #captcha {} +#bo_w .tbl_frm01 #captcha input {} +*/ +#bo_w .tbl_frm01 a {} + +#bo_w .required, #bo_w textarea.required {} + +/* ### 기본 스타일 커스터마이징 끝 ### */ + +/* 갤러리 목록 */ +#bo_gall h2 {margin:0;padding:0;width:0;height:0;font-size:0;line-height:0;overflow:hidden} + +#bo_gall #gall_allchk {margin:0 10px} + +#bo_gall #gall_ul {margin:10px 0 0;padding:0 10px;list-style:none} +#bo_gall #gall_ul:after {display:block;visibility:hidden;clear:both;content:""} + +#bo_cate h2 {width:0;height:0;font-size:0;line-height:0;overflow:hidden} +#bo_cate ul {margin: 10px;padding-left:1px;zoom:1} +#bo_cate ul:after {display:block;visibility:hidden;clear:both;content:""} +#bo_cate li{display:inline-block;float:left;margin:3px 5px 3px 0} +#bo_cate a {display:block;line-height:24px;padding:0 10px;border-radius:13px;background:#fff;} +#bo_cate #bo_cate_on {background:#4162ff;color:#fff; +-webkit-box-shadow:0 0 5px rgba(65,98,255,0.8); +-moz-box-shadow:0 0 5px rgba(65,98,255,0.8); +box-shadow: 0 0 8px rgba(65,98,255,0.8);} + + +#bo_gall .gall_li {float:left;;width:50%;padding:5px} +#bo_gall .gall_li_wr{background:#fff;position:relative;} +#bo_gall .gall_li_chk{display:inline-block;padding:5px;position:absolute;top:0;left:0} +#bo_gall .gall_li:nth-child(2n+1) {clear:both} +#bo_gall .gall_li .gall_img img{width:100%;height:auto} +#bo_gall .gall_li .gall_img .no-img{display:block;background:#ddd;text-align:center;padding:30% 0} + +#bo_gall .gall_now .gall_text_href a {color:#ff3061} + +#bo_gall .gall_href a:link, #bo_gall .gall_href a:focus, #bo_gall .gall_href a:hover {text-decoration:none} +#bo_gall .gall_href strong, #bo_gall .gall_href span {display:block;width:174px;height:124px;background:#f7f7f7;text-align:center;line-height:8em} + +#bo_gall .gall_text_href {padding:10px;display:block} +#bo_gall .gall_li_tit{display:block;margin:5px 0;font-weight:bold} +#bo_gall .bo_cate_link {display:inline-block;color:#3ca1ff !important} +#bo_gall .profile_img img{border-radius:50%} +#bo_gall .gall_info{padding:5px 0 0;margin:10px 0 0 ;color:#777;font-size:0.92em;border-top:1px solid #eee;} +#bo_gall .gall_info:after {display:block;visibility:hidden;clear:both;content:""} +#bo_gall .gall_info strong{display:inline-block;margin-right:3px} +#bo_gall .date{float:right} + +/* 게시판 목록 공통 */ +.bo_fx {margin-bottom:5px;padding:5px 10px} +.bo_fx:after {display:block;visibility:hidden;clear:both;content:""} +.bo_fx ul {margin:0;padding:0;list-style:none} +#bo_list_total {float:left;padding:0;height:2.5em;line-height:2.5em} +.btn_bo_user {float:right;margin:0;padding:0;list-style:none} +.btn_bo_user li {float:left;margin-left:5px} +.btn_bo_adm {text-align:center} +.btn_bo_adm li {display:inline-block;} +.btn_bo_adm button {border:0;padding:0 10px;background:#d13f4a;color:#fff;text-decoration:none;vertical-align:middle}.bo_notice td {background:#f7f7f7} +.bo_notice td a {font-weight:bold} +.td_num strong {color:#000} +.bo_current {color:#e8180c} +.td_subject img {margin-left:3px} +.cnt_cmt {font-weight:bold} + +#bo_sch {background:#fff;border:1px solid #bdc2d8;position:relative;margin:10px;border-radius:3px} +#bo_sch:after {display:block;visibility:hidden;clear:both;content:""} +#bo_sch legend {position:absolute;margin:0;padding:0;font-size:0;line-height:0;text-indent:-9999em;overflow:hidden} +#bo_sch select{border:0;;margin:9px 0;height:20px;border-right:1px solid #ddd;float:left;width:40%} +#bo_sch .sch_input{height:38px;border:0;padding:0;background-color:transparent;float:left;width:60%;padding:0 40px 0 10px} +#bo_sch .sch_btn{height:38px;position:absolute;top:0;right:0;border:0;width:40px;background:none;font-size:15px} + +.view_is_list.btn_top{position:relative;z-index:auto;top:0;left:0} +.view_is_list{margin:8px 10px 0;height:50px;padding:10px;line-height:30px;border-radius:3px;border-bottom:1px solid #ccc;background:#fff;color:#333;text-align:right} +.view_is_list li{display:inline-block} + +#bo_gall li.empty_list {padding:30px 0;text-align:center} + +/* 게시판 쓰기 */ +#char_count_desc {display:block;margin:0 0 5px;padding:0} +#char_count_wrap {margin:5px 0 0;text-align:right} +#char_count {font-weight:bold} + +#wr_email, #wr_homepage, #wr_subject, .wr_link {width:100%} + +/* 게시판 읽기 */ +#bo_v {padding:20px 10px 10px;background:#fff +;-webkit-box-shadow: 0 1px 4px #ddd; +-moz-box-shadow: 0 1px 4px #ddd; +box-shadow: 0 1px 4px #ddd;} + +#bo_v_table {padding: 10px;color:#999;font-size:0.9em;font-weight:bold} + +#bo_v_title {;text-align:center} +.bo_v_cate{display:inline-block;background: #4162ff;color: #fff;border-radius: 13px;line-height: 24px;padding: 0 10px;font-weight:normal; +-webkit-box-shadow: 0 0 5px rgba(65,98,255,0.8); +-moz-box-shadow: 0 0 5px rgba(65,98,255,0.8); +box-shadow: 0 0 8px rgba(65,98,255,0.8);} +.bo_v_tit{display:block;font-size:1.5em;margin:10px 0 0} +#bo_v header p{font-size:0.92em;color:#777;font-style:italic ;text-align:center;margin:10px 0 0 } + +#bo_v_info {padding:15px 0px 10px;border-bottom:1px solid #eee;text-align:center;color:#666} +#bo_v_info h2 {position:absolute;font-size:0;text-indent:-9999em;line-height:0;overflow:hidden} +#bo_v_info strong {display:inline-block;font-weight:normal;margin:0 5px} +#bo_v_info .profile_img img{border-radius:50%} +#bo_v_info .icon_view{display:inline-block;background:url(./img/icon_view.png) no-repeat 50% 50%;background-size:80%;height:15px;width:20px;overflow:hidden;text-indent:-999px;vertical-align:middle;margin:0 3px 0 5px} +#bo_v_info .icon_comment{display:inline-block;background:url(./img/icon_comment.png) no-repeat 50% 50%;background-size:70%;height:15px;width:20px;overflow:hidden;text-indent:-999px;vertical-align:middle;margin:0 3px 0 5px} +#bo_v_info .ip{vertical-align:middle} + +#bo_v_file {margin:10px 0} +#bo_v_file h2 {background:#949ab4;color:#fff;margin-bottom:1px;line-height:35px;padding: 0 10px} +#bo_v_file ul {margin:0;padding:0;list-style:none} +#bo_v_file li {padding: 10px;border-bottom:1px solid #fff;background:#f1f7fa;color:#777} +#bo_v_file a {display:block;color:#000;text-decoration:none;margin:0 0 3px} +#bo_v_file a:focus, #bo_v_file a:hover, #bo_v_file a:active {text-decoration:none} +#bo_v_file a strong{color:#3497d9;text-decoration:underline} +.bo_v_file_cnt {font-size:0.92em} + +#bo_v_link{margin:10px 0} +#bo_v_link h2 {background:#949ab4;color:#fff;margin-bottom:1px;line-height:35px;padding: 0 10px} +#bo_v_link ul {margin:0;padding:0;list-style:none} +#bo_v_link li {padding: 10px;border-bottom:1px solid #fff;background:#f1f7fa;color:#777} +#bo_v_link a {display:block;color:#000;text-decoration:none;margin:0 0 3px} +#bo_v_link a strong{color:#3497d9;text-decoration:underline} +#bo_v_link a:focus, #bo_v_link a:hover, #bo_v_link a:active {text-decoration:none} +.bo_v_link_cnt {font-size:0.92em} + +#bo_v_top {margin:10px 0;} +#bo_v_top:after {display:block;visibility:hidden;clear:both;content:""} +#bo_v_top h2 {position:absolute;font-size:0;text-indent:-9999em;line-height:0;overflow:hidden} +#bo_v_top ul {margin:0;padding:0;list-style:none} +#bo_v_top ul:after {display:block;visibility:hidden;clear:both;content:""} +#bo_v_top ul li{display:inline-block;} +.bo_v_left{float:left} +.bo_v_right{float:right} + +#bo_v_bot {padding:0 10px} +#bo_v_bot:after {display:block;visibility:hidden;clear:both;content:""} +#bo_v_bot h2 {position:absolute;font-size:0;text-indent:-9999em;line-height:0;overflow:hidden} +#bo_v_bot ul {margin:0;padding:0;list-style:none} + +.bo_v_nb{margin:10px 0;border-top:1px solid #ddd;border-bottom:1px solid #ddd;text-align:center;position:relative;} +.bo_v_nb:after {display:block;visibility:hidden;clear:both;content:""} +.bo_v_nb li {} +.bo_v_nb li a{display:inline-block;padding:10px;color:#777} +.bo_v_nb .bo_v_next{;position:absolute;top:0;right:0;} +.bo_v_nb .bo_v_prev{;position:absolute;top:0;left:0;} + +#bo_v_atc {min-height:200px} +#bo_v_atc_title {margin:0;padding:0;height:0;overflow:hidden} + +#bo_v_img {margin:0 0 10px;width:100%;overflow:hidden;zoom:1} +#bo_v_img:after {display:block;visibility:hidden;clear:both;content:""} +#bo_v_img a.view_image{display:block} +#bo_v_img img {margin-bottom:15px;max-width:100%;height:auto} + +#bo_v_con {min-height:200px;margin-bottom:20px;width:100%;font-size:1.250em;line-height:1.7em;word-break:break-all;overflow:hidden} +#bo_v_con a {color:#000;text-decoration:underline} +#bo_v_con img {max-width:100%;height:auto} + +#bo_v_act {margin-bottom:30px;text-align:center} +#bo_v_act .bo_v_act_gng {position:relative} +#bo_v_act a {margin-right:5px;vertical-align:middle} +#bo_v_act a:hover{background-color:#f3f3f3} +#bo_v_act_good, #bo_v_act_nogood {display:none;position:absolute;top:30px;left:0;padding:10px 0;width:165px;background:#ff3061;color:#fff;text-align:center} +#bo_v_act .bo_v_good{padding:15px 0;display:inline-block;border:1px solid #000;width:70px;height:70px;line-height:20px;border-radius:50%;font-style:italic} +#bo_v_act .bo_v_nogood{padding:15px 0;display:inline-block;border:1px solid #000;width:70px;height:70px;line-height:20px;border-radius:50%;font-style:italic} +#bo_v_act .bo_v_good i,#bo_v_act .bo_v_nogood i{font-size:18px;} +#bo_v_share{position:relative;margin:20px 0;text-align:right} +#bo_v_share:after {display:block;visibility:hidden;clear:both;content:""} +#bo_v_share .btn_scrap{display:inline-block;background:#d4d4d4;color:#444;line-height:40px;width:60px;font-weight:bold;text-align:center;float:left;border-radius:3px} + +.btn_share{display:none;} +.bo_v_snswr{position:relative;float:right} +#bo_v_sns {;padding:0;list-style:none;zoom:1} +#bo_v_sns:after {display:block;visibility:hidden;clear:both;content:""} +#bo_v_sns li {float:left;width:50px;text-align:center;margin-left:3px} +#bo_v_sns li a{height:40px;padding:10px 0;} +#bo_v_sns li .sns_f{display:block;background:#415b92;border-radius:3px} +#bo_v_sns li .sns_t{display:block;background:#35b3dc;border-radius:3px} +#bo_v_sns li .sns_g{display:block;background:#d5503a;border-radius:3px} +#bo_v_sns li .sns_k{display:block;background:#fbe300;border-radius:3px} +#bo_v_sns li img{vertical-align:top} + +/* 게시판 댓글 */ +.cmt_btn{background:url('./img/cmt_btn.png') no-repeat 79px 8px;text-align:left ;width:100% ;border:0;color:#ed6478;font-weight:bold;font-size:1.167em;margin: 20px 0 10px;padding:0 0 10px ;border-bottom:1px solid #e8e8e8} +.cmt_btn_op{background:url('./img/cmt_btn.png') no-repeat 79px -23px} + +#bo_vc {} +#bo_vc h2 {position:absolute;font-size:0;line-height:0;overflow:hidden} +#bo_vc article {margin:0 0 15px} +#bo_vc header {position:relative;padding:0 0 0 50px;height:40px;line-height:20px} +#bo_vc .comment_profile_img{position:absolute;top:0;left:0} +#bo_vc .comment_profile_img img, #bo_vc .profile_img img{border-radius:50%} +#bo_vc .sv_member, #bo_vc .sv_guest {font-weight:bold} +.bo_vc_hdinfo {display:inline-block;color:#777;font-style:italic} +#bo_vc h1 {width:0;height:0;font-size:0;line-height:0;overflow:hidden} +#bo_vc .cmt_contents {padding:10px 15px ;margin:5px 0 0 ;border-radius:5px;background:#f6f6f6;line-height:1.8em} +#bo_vc .cmt_contents p{font-size:1.083em} +#bo_vc p a {text-decoration:underline} +#bo_vc p a.s_cmt {text-decoration:underline;color:#ed6479} +#bo_vc_empty {margin:0;padding:15px !important;text-align:center} +#bo_vc #bo_vc_winfo {float:left} +#bo_vc footer {zoom:1} +#bo_vc footer:after {display:block;visibility:hidden;clear:both;content:""} + +.bo_vc_act {text-align:right;;margin:0;list-style:none} +.bo_vc_act:after {display:block;visibility:hidden;clear:both;content:""} +.bo_vc_act li {display:inline-block;margin:0 2px} +.bo_vc_act li a{color:#3497d9;text-decoration:underline} + +.bo_vc_w {position:relative;margin:10px 0;display:block;} +.bo_vc_w:after {display:block;visibility:hidden;clear:both;content:""} +.bo_vc_w h2 {position:absolute;font-size:0;line-height:0;overflow:hidden} +.bo_vc_w #char_cnt {display:block;margin:0 0 5px} +.bo_vc_w textarea{border:1px solid #ccc;background:#fff;color:#000;vertical-align:middle;border-radius:3px;padding:5px;width:100%;height:120px} +#wr_secret{} +.bo_vc_w_info{margin:5px 0} +.bo_vc_w_info:after {display:block;visibility:hidden;clear:both;content:""} +.bo_vc_w_info .frm_input{float:left;;width:49.5%;margin: 0 0 5px 0} +.bo_vc_w_info #wr_password{float:right;} +.bo_vc_w_info #captcha{;display:block;clear:both} +.bo_vc_w .btn_confirm{margin-top:5px;clear:both} +.bo_vc_w .icon_lock{display:inline-block;font-size:17px;padding: 5px;margin-right:5px;} +.bo_vc_w .btn_submit{height:50px;width:100%;padding:0 20px;border-radius:3px;font-weight:bold;font-size:1.083em;} +.bo_vc_w_wr:after {display:block;visibility:hidden;clear:both;content:""} +.bo_vc_w .bo_vc_secret{float:right;display:block;} + +#bo_vc_send_sns{display:block;float:left} +#bo_vc_sns {display:block;margin:0;padding:0;list-style:none;zoom:1} +#bo_vc_sns:after {display:block;visibility:hidden;clear:both;content:""} +#bo_vc_sns li {float:left;margin:0 5px 0 0} +#bo_vc_sns .sns_li_f{border-radius:3px;background:#3a589b;height:40px;;padding: 10px 0 10px 10px} +#bo_vc_sns .sns_li_t{border-radius:3px;background:#00aced;height:40px;;padding: 10px 0 10px 10px} +#bo_vc_sns .sns_li_off{background:#bbb} +#bo_vc_sns a{display:inline-block;padding:0 15px 0 5px;} +#bo_vc_sns input {margin:0 5px 0 0 } + +/*글쓰기*/ +#bo_w .bo_w_select select{border:1px solid #3497d9;background:#fff;width:100%} +#bo_w .bo_w_link label{position:absolute;top:1px;left:1px;border-radius:3px 0 0 3px;height:38px;line-height:38px;width:40px;background:#eee;text-align:center} +#bo_w .bo_w_link .frm_input{padding-left:50px} +#bo_w .bo_w_flie .lb_icon{position:absolute;top:0px;left:0px;border-radius:3px 0 0 3px;height:38px;line-height:38px;width:40px;background:#eee;text-align:center} +#bo_w .bo_w_flie .frm_file{padding-left:50px;} +#bo_w .bo_w_flie .file_wr{border:1px solid #ccc;background:#fff;color:#000;vertical-align:middle;border-radius:3px;padding:5px;height:40px;margin:0} +#bo_w .bo_w_flie .frm_input{margin:5px 0 0 } + diff --git a/theme/54/mobile/skin/board/gallery/view.skin.php b/theme/54/mobile/skin/board/gallery/view.skin.php new file mode 100644 index 000000000..a0b0f4d87 --- /dev/null +++ b/theme/54/mobile/skin/board/gallery/view.skin.php @@ -0,0 +1,278 @@ +', 0); +?> + + + + + +
    +
    +

    + + + + + +

    +

    작성일

    +
    + +
    +

    페이지 정보

    + 작성자 + 조회 회 + 댓글 건 +
    + +
    + + + + +
    + +
    +

    본문

    + + \n"; + + for ($i=0; $i<=count($view['file']); $i++) { + if ($view['file'][$i]['view']) { + //echo $view['file'][$i]['view']; + echo get_view_thumbnail($view['file'][$i]['view']); + } + } + + echo "
    \n"; + } + ?> + +
    + + +

    + + +
    + + +
    추천
    + 이 글을 추천하셨습니다 +
    + + + +
    비추천
    + +
    + +
    + +
    +
    추천
    +
    비추천
    +
    + + +
    + 스크랩 + + +
    + + + + + + + +
    +

    첨부파일

    + +
    + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/theme/54/mobile/skin/board/gallery/view_comment.skin.php b/theme/54/mobile/skin/board/gallery/view_comment.skin.php new file mode 100644 index 000000000..06dd49ea2 --- /dev/null +++ b/theme/54/mobile/skin/board/gallery/view_comment.skin.php @@ -0,0 +1,328 @@ + + + + + + + +
    +

    댓글목록

    + \]/i", "", $str); + ?> +
    style="margin-left:px;border-top-color:#e0e0e0"> +
    +

    님의 댓글의 댓글

    + + + + 아이피 + () + +
    + 작성일 + + +
    +
    + +

    + "; ?> + +

    + + + + +
    + + + "> + + +
    + +

    등록된 댓글이 없습니다.

    + +
    + + + + + + diff --git a/theme/54/mobile/skin/board/gallery/write.skin.php b/theme/54/mobile/skin/board/gallery/write.skin.php new file mode 100644 index 000000000..1bec14b05 --- /dev/null +++ b/theme/54/mobile/skin/board/gallery/write.skin.php @@ -0,0 +1,247 @@ +', 0); +?> + +
    +
    + + + + + + + + + + + '.PHP_EOL.''; + } + + if ($is_html) { + if ($is_dhtml_editor) { + $option_hidden .= ''; + } else { + $option .= PHP_EOL.''.PHP_EOL.''; + } + } + + if ($is_secret) { + if ($is_admin || $is_secret==1) { + $option .= PHP_EOL.''.PHP_EOL.''; + } else { + $option_hidden .= ''; + } + } + + if ($is_mail) { + $option .= PHP_EOL.''.PHP_EOL.''; + } + } + + echo $option_hidden; + ?> +
    +

    + + +
    + + +
    + + + +
    + + +
    + + + +
    + + class="frm_input full_input " maxlength="20" placeholder="비밀번호"> +
    + + + +
    + + +
    + + + +
    + + +
    + + + +
    + 옵션 + +
    + + +
    + + +
    + +
    + + + +

    이 게시판은 최소 글자 이상, 최대 글자 이하까지 글을 쓰실 수 있습니다.

    + + + + +
    글자
    + +
    + + + + + + + + +
    +
    + + +
    + + + + + + + + + + +
    + + + +
    + 자동등록방지 + + +
    + + +
    + +
    + 취소 + +
    + +
    + + diff --git a/theme/54/mobile/skin/connect/basic/connect.skin.php b/theme/54/mobile/skin/connect/basic/connect.skin.php new file mode 100644 index 000000000..96d2da394 --- /dev/null +++ b/theme/54/mobile/skin/connect/basic/connect.skin.php @@ -0,0 +1,8 @@ +', 0); +?> + diff --git a/theme/54/mobile/skin/connect/basic/current_connect.skin.php b/theme/54/mobile/skin/connect/basic/current_connect.skin.php new file mode 100644 index 000000000..5d48dca9e --- /dev/null +++ b/theme/54/mobile/skin/connect/basic/current_connect.skin.php @@ -0,0 +1,32 @@ +', 0); +?> + +
    +
      + + ".$location.""; + else $display_location = $location; + ?> +
    • +
      + +
      + +
      +
    • + 현재 접속자가 없습니다."; + ?> +
    +
    \ No newline at end of file diff --git a/theme/54/mobile/skin/connect/basic/style.css b/theme/54/mobile/skin/connect/basic/style.css new file mode 100644 index 000000000..be5819fb8 --- /dev/null +++ b/theme/54/mobile/skin/connect/basic/style.css @@ -0,0 +1,17 @@ +@charset "utf-8"; +/* SIR 지운아빠 */ + +/* 현재접속자 */ +#current_connect{margin:0;padding:5px;} +#current_connect li {padding:5px;float:left;width:50%;text-align:center;} +#current_connect li:nth-child(2n+1){clear:both} +#current_connect .crt_name {padding:20px 0;display:block} +#current_connect .crt_name img{ border-radius:50%;margin: 0 0 5px} +#current_connect .crt_wr{background:#fff;position:relative; +-webkit-box-shadow: 0 1px 4px #cbd1df; + -moz-box-shadow: 0 1px 4px #cbd1df; + box-shadow: 0 1px 4px #cbd1df;} +#current_connect .crt_lct{display:block;text-align:center;border-top:1px solid #ddd;padding:10px 5px;line-height:1.4em} +#current_connect .crt_lct a{color:#3ca1ff} +#current_connect .crt_num{position:absolute;top:10px;left:10px;color:#777;font-weight:bold} +#current_connect .empty_li{width:100%;padding:100px 0;color:#777} \ No newline at end of file diff --git a/theme/54/mobile/skin/content/basic/content.skin.php b/theme/54/mobile/skin/content/basic/content.skin.php new file mode 100644 index 000000000..79d47d932 --- /dev/null +++ b/theme/54/mobile/skin/content/basic/content.skin.php @@ -0,0 +1,18 @@ +', 0); + +?> + +
    +
    +

    +
    + +
    + +
    + +
    \ No newline at end of file diff --git a/theme/54/mobile/skin/content/basic/style.css b/theme/54/mobile/skin/content/basic/style.css new file mode 100644 index 000000000..638229597 --- /dev/null +++ b/theme/54/mobile/skin/content/basic/style.css @@ -0,0 +1,8 @@ +@charset "utf-8"; + +/* 내용관리 */ +#ctt {margin:10px 0;padding:10px;border-top:1px solid #e9e9e9;border-bottom:1px solid #e9e9e9} +.ctt_admin {margin:0 5px;text-align:right} +#ctt header h1 {position:absolute;font-size:0;line-height:0;overflow:hidden} +#ctt_con {padding:10px 0} +.ctt_img {text-align:center} \ No newline at end of file diff --git a/theme/54/mobile/skin/faq/basic/list.skin.php b/theme/54/mobile/skin/faq/basic/list.skin.php new file mode 100644 index 000000000..68d928b2a --- /dev/null +++ b/theme/54/mobile/skin/faq/basic/list.skin.php @@ -0,0 +1,124 @@ +', 0); +?> + + +'.conv_content($fm['fm_mobile_head_html'], 1).'
    '; +?> + + + +
    +
    + + + + + +
    + + + + +
    + +
    +

    목록

    +
      + $v){ + if(empty($v)) + continue; + ?> +
    1. +

      Q

      +
      + A + +
      +
      +
    2. + +
    +
    + 검색된 게시물이 없습니다.

    '; + } else { + echo '
    등록된 FAQ가 없습니다.'; + if($is_admin) + echo '
    FAQ를 새로 등록하시려면 FAQ관리 메뉴를 이용하십시오.'; + echo '
    '; + } + } + ?> +
    + + + +'.conv_content($fm['fm_mobile_tail_html'], 1).'
    '; +?> + + + + + + \ No newline at end of file diff --git a/theme/54/mobile/skin/faq/basic/style.css b/theme/54/mobile/skin/faq/basic/style.css new file mode 100644 index 000000000..fcdc9cd86 --- /dev/null +++ b/theme/54/mobile/skin/faq/basic/style.css @@ -0,0 +1,34 @@ +@charset "utf-8"; + +#bo_cate h2 {width:0;height:0;font-size:0;line-height:0;overflow:hidden} +#bo_cate ul {margin: 10px;padding-left:1px;zoom:1} +#bo_cate ul:after {display:block;visibility:hidden;clear:both;content:""} +#bo_cate li{display:inline-block;float:left;margin:3px 5px 3px 0} +#bo_cate a {display:block;line-height:24px;padding:0 10px;border-radius:13px;background:#fff;} +#bo_cate #bo_cate_on {background:#4162ff;color:#fff; +-webkit-box-shadow:0 0 5px rgba(65,98,255,0.8); +-moz-box-shadow:0 0 5px rgba(65,98,255,0.8); +box-shadow: 0 0 8px rgba(65,98,255,0.8);} + +#faq_wrap {margin:10px 10px 60px} +#faq_wrap h2 {position:absolute;font-size:0;text-indent:-9999em;line-height:0;overflow:hidden} +.faq_admin {margin:0 5px;text-align:right} +#faq_wrap p {line-height:1.8em} +#faq_wrap ol {margin:0;padding:0;list-style:none} +#faq_wrap li{margin:10px 0;background:#fff;border-radius:3px; +-webkit-box-shadow: 0 1px 4px #cbd1df; + -moz-box-shadow: 0 1px 4px #cbd1df; + box-shadow: 0 1px 4px #cbd1df;} +#faq_con h3{position:relative;padding-left:30px;} +#faq_con h3 a {display:block;padding:10px;} +#faq_con .faq_alp{position:absolute;top:10px;left:10px;display:inline-block;background:#333;border-radius:50%;width:20px;height:20px;line-height:20px;text-align:center;color:#fff} +#faq_con .faq_alp_a{background:#aaa} +#faq_con .con_inner {;position:relative;display:none;padding:10px;padding-left:40px;line-height:1.8em;border-top:1px solid #eee;} +#faq_con .con_closer {margin:10px 0 0;text-align:right} +#faq_con .closer_btn {margin:0;padding:0 5px;line-height:24px;border:0;background:#666;color:#fff} +.faq_tolist {padding:0 10px;text-align:right} +.faq_img {text-align:center} + +#faq_sch {text-align:center;margin:10px;position:relative} +#faq_sch .frm_input {width:100%} +#faq_sch .btn_submit{position:absolute;top:0;right:0;width:40px;height:40px;background:none;color:#000;font-size:15px} \ No newline at end of file diff --git a/theme/54/mobile/skin/latest/basic/img/icon_comment.png b/theme/54/mobile/skin/latest/basic/img/icon_comment.png new file mode 100644 index 0000000000000000000000000000000000000000..bd7e67f335728b8a0d5cffcb2ed7ed2a27587c87 GIT binary patch literal 1604 zcmeAS@N?(olHy`uVBq!ia0vp^8X(NU1|)m_?Z^dEk|nMYCBgY=CFO}lsSJ)O`AMk? zp1FzXsX?iUDV2pMQ*9U+n3Xa^B1$5BeXNr6bM+EIYV;~{3xK*A7;Nk-3KEmEQ%e+* zQqwc@Y?a>c-mj#PnPRIHZt82`Ti~3Uk?B!Ylp0*+7m{3+ootz+WN)WnQ(*-(AUCxn zQK2F?C$HG5!d3}vt`(3C64qBz04piUwpD^SD#ABF!8yMuRl!uxSU1_g&``n5OwZ87 z)XdCKN5ROz&`93^h|F{iO{`4Ktc=VRpg;*|TTx1yRgjAt)Gi>;Rw<*Tq`*pFzr4I$ zuiRKKzbIYb(9+TpWQLKEE>MMTab;dfVufyAu`f(~1RD^r68eAMwS&*t9 zlvv ztM~P_^2{qPNz6-5^>ndS0-B(gnVDkcWN2b(Vd`Y)W^8I`Xy|I@Wa(t);%wpKW@_wg z?B-?;)9aF-T$-DjR|3H{644~kf%h=vIPQxAvS8D-IZNamDP|=y8kV;i?X)jx8RGeJ>`NZ52pUGl&*> zd2EZuVg(NG3IDWQ@^rMK*mfDjK1s{anGtyG{fWv#t2-Yp*Iz#qd!|wT^E=z=*7Lvb zEk9p=yufTW?@gJfA1h+E^*8WcV7Mk4aoYcb+?_tR#m;%@7Gm8OpGO%m^hIwf;6JFz z;cI>8V)n!x0@*K1!#^%$- zP6~h9;<5d*Zk~v&@q?0uM>H2|{(C2R@vaBcYS-fu9^$VLE}q_Gx+C!I3d2n9xC#4B zEEG>KR@tBuaHP(F>)1g>=Q`dUtoxdz7x+9iZ*qUYy<^IGzJ0fL@Mrz}Wq5{*wgo&jVN1`5 z?63UuhO0lIh2LeT%g)jo{fw}ejzTxio0jx@m`Jld@8WLoYrD_0^R&XlV#kvqU#$0d z=_Z_d?h;*5yw32+teSJ4QBehMCwJr<&TV{sP&seyPI{o+qPjP$uxP7a^ZpWtT*3SZ70G6= zrwQ|(S?&10-pi?Ni}TmFY1v_^KMr>Xy{h67n>X*dctWj!{Vf*3yKjUadoAhl*%)@A zx8?Xe^Ze%73)TO1y)9ckxpmg5MW%HIi2|1CvlD#_=Binn^RD}C)V}S%bdqNSBg2L4 VnTK9&Vf6=<>z=NDF6*2UngFu!X5|0? literal 0 HcmV?d00001 diff --git a/theme/54/mobile/skin/latest/basic/img/icon_file.gif b/theme/54/mobile/skin/latest/basic/img/icon_file.gif new file mode 100644 index 0000000000000000000000000000000000000000..244af004d50b31239c1f480bb0fc3df177333285 GIT binary patch literal 197 zcmZ?wbhEHbC>k_efsqC=g;fbt^4xj%d%z5mM&eoe*OCY|Nk=(0Th3-FfuR*Gw6WSg6w2qb$X!U z$Hc&q>@{nJ*0kkTEC-YHz8FZQ@k?m79C_~0!PRq;F{w*Nt%pfLL5hQAm*)W&QCq3S Ux{8k4(}h`B4?g#9XJD`f08N@mPXGV_ literal 0 HcmV?d00001 diff --git a/theme/54/mobile/skin/latest/basic/img/icon_hot.gif b/theme/54/mobile/skin/latest/basic/img/icon_hot.gif new file mode 100644 index 0000000000000000000000000000000000000000..4e8d7ff1b66c99bb3ec5173daa04e9ace5103e47 GIT binary patch literal 319 zcmZ?wbhEHb)uVzOBcVHvhC-c=byHnc~&&{ z->-j+TI7Rv!7V`uOwG1%KXu`g-ElyLo%xOxyl()9DW@ z4u9Nq;_b{GKkvSLl0M@}>a^$Oi(YlCc{hLW^YVqy3g$hEnecJr$$!6oy_>V=^X`lP z|Nm#83@H9&VPs&?V$cB@1M(9CTZ}`flj9^Et%(QJ7fUf1%n9mvbTfv5`KaU4O$-dO z?;0DPu2Nzx<~oougO#bcIZ)xq*%-!!4ICLCVuTnuw1gSdDmWR0)A$)Q)VY-y_!|Tm Sl@%BT8e;g^*!U_O8LR=!XM;xo literal 0 HcmV?d00001 diff --git a/theme/54/mobile/skin/latest/basic/img/icon_img.gif b/theme/54/mobile/skin/latest/basic/img/icon_img.gif new file mode 100644 index 0000000000000000000000000000000000000000..3ba495d054fa6588116e03c4fd4f38d58400b153 GIT binary patch literal 317 zcmZ?wbhEHbe)HzdzkmOpK7G1o&6@rD_kZ~C z0Z6`l`EvdG^($7a`10k;@87>SZ{B?6%9V{9H=a0gV&A@fKwYO#pT2+p{)-ncfKov2 zr%#`N;f!KYsiGiW~)lhIr>|74(23<(<=9yw$9#m#@ra2-+bRv!3%fd0dBQ?f)ODm;T_l^Ed4xq>LVCj3 U#2LJNXZi*?xy@tnaAdFs0Qg;*ivR!s literal 0 HcmV?d00001 diff --git a/theme/54/mobile/skin/latest/basic/img/icon_link.gif b/theme/54/mobile/skin/latest/basic/img/icon_link.gif new file mode 100644 index 0000000000000000000000000000000000000000..e9cb9559c9cd08a6f51993518a17dab128b82916 GIT binary patch literal 319 zcmZ?wbhEHbKCQw{PFXi4*tl-~Zypi#>bx zoH=vm#*G`BH*daj<;uHv@4kQkzG~H~FJHdAeEIUtn>R;~9_{Mtx_0f_nl)?Ity_2O z*s&i!ek@+Rc+|z@W*X12PHZCkD2d15*k#mgtxrdBSj@My2(%!y%Ri725^|MOH?MNed6V zWH4B?bq0De3MeqNK4dLOaQFC-7{bsIBBkKW&mha9!6PH#$(QSt&+Vx$CMmB}=`ZBN Q!0YeKBE>UT(~-d%0A})n?*IS* literal 0 HcmV?d00001 diff --git a/theme/54/mobile/skin/latest/basic/img/icon_mobile.gif b/theme/54/mobile/skin/latest/basic/img/icon_mobile.gif new file mode 100644 index 0000000000000000000000000000000000000000..43189ffaee886ff02c44094e1aa3decfbce02e7a GIT binary patch literal 339 zcmZ?wbhEHb6ky(%cf16Zrr$W z{rdHjCr{3vJ$vQKmCv3%n>1@!i5WK)~q>x{P^O< zi?3e2x^LgUUAuPu`Sa)6wQGO>{=Iqg=C5DBwt~R}F!=xfKLeG3;!hSv1_pHo9guk- zKQXWs9GJXe!Gr(?hAx*t0V{byl?6c)-Q>=>GF;f9(9+?}ED$k=Bf9zd1Wy$s_Wnkn z84PU88y&a=9iSXMhSSOWmH3xI$C literal 0 HcmV?d00001 diff --git a/theme/54/mobile/skin/latest/basic/img/icon_more.gif b/theme/54/mobile/skin/latest/basic/img/icon_more.gif new file mode 100644 index 0000000000000000000000000000000000000000..7cdf200a7baa62de1a95e3912c9ca1fb34b36644 GIT binary patch literal 169 zcmV;a09OA;Nk%w1VG95W0K@I6zOJt}3$`6RT1g06226*Z@+ongb7@ XU=fBkjtXNz0xpR_!)cQgkRbp&KI&WI literal 0 HcmV?d00001 diff --git a/theme/54/mobile/skin/latest/basic/img/icon_movie.gif b/theme/54/mobile/skin/latest/basic/img/icon_movie.gif new file mode 100644 index 0000000000000000000000000000000000000000..cb958f83f9c606f290a260714cd9a3cff043f3a2 GIT binary patch literal 110 zcmZ?wbhEHbZ% literal 0 HcmV?d00001 diff --git a/theme/54/mobile/skin/latest/basic/img/icon_reply.gif b/theme/54/mobile/skin/latest/basic/img/icon_reply.gif new file mode 100644 index 0000000000000000000000000000000000000000..7fe2c65580ed22e254718fdd45ed93efb554672d GIT binary patch literal 1187 zcmZ?wbhEHbCgqow*eU^C z3h_d2fv+#z;Jjizu!r=L^Ke6^lgE!9KDdAH?w#AWZr-?l?dp}w zmo8p7f9~v=)2B|JIDYKtk;8`$9@xKc@1EVecJA1|ZR?iJn>KD(zi#cC)vH#nSiWrO zlEsS_E|@=W?wr}PX3m&CZR(WClO|5+@9XX9?&|DlZ)CJqCAJzX7bElmw|HB}X5B}D~!IawKLDM<-&F;Nj=AwdCtK3*Pf zE=~@1HdYp9CPoGZ#h)xdl954&0SG`P4+E1_OY=;&S8qgOKCNk!;0vz)T^YHC++&YW4WV8MX{2Y_l09y~a2-n^qnkN*GvpMgq1@h1x-1A{t)4#+%^ zpBUJp4@};0iP6RF&=XgqlMO2KpR9E8oa7XAR_$b`iXzA51f4?;er$&r12dHQSe%^| zeYK<-8VnLWIhYwLop{)I>Km)nnc11!o1El48(8?6rcGz!XW`>+oY%E1CJY$zMikVi`-#gIi|DbmsXBWf6U5szE@->A`0*`&<;b@XASRrB8=E6~=S>Pbm I%fes{0AXt-SpWb4 literal 0 HcmV?d00001 diff --git a/theme/54/mobile/skin/latest/basic/latest.skin.php b/theme/54/mobile/skin/latest/basic/latest.skin.php new file mode 100644 index 000000000..45f0bcd65 --- /dev/null +++ b/theme/54/mobile/skin/latest/basic/latest.skin.php @@ -0,0 +1,44 @@ +', 0); +?> + + diff --git a/theme/54/mobile/skin/latest/basic/style.css b/theme/54/mobile/skin/latest/basic/style.css new file mode 100644 index 000000000..fa2a2ab8a --- /dev/null +++ b/theme/54/mobile/skin/latest/basic/style.css @@ -0,0 +1,19 @@ +@charset "utf-8"; + +/* 최근게시물 스킨 (latest) */ +.lt {position:relative;padding:15px 10px ;} +.lt ul {margin:10px 0 0 ;padding:0;list-style:none} +.lt .lt_title {display:inline-block;background: #4162ff;color: #fff;border-radius: 13px;line-height: 24px;padding: 0 10px;border-bottom:1px solid #ccc;} +.lt .lt_more {position:absolute;top:5px;right:10px} +.lt .cnt_cmt {display:inline-block;margin:0 5px 0 3px;} +.lt .lt_info{border-top: 1px solid #eee;margin: 10px 0 0;line-height: 20px;color: #666;position: relative;padding-top: 10px;vertical-align:top} +.lt .profile_img img{border-radius:50%;vertical-align:top} +.lt .lt_tit{display: block;font-size: 1.083em;font-weight: bold;margin: 5px 0;} +.lt li .fa-download{width:16px;height:16px;line-height:16px;background:#ecaa30;color:#fff;text-align:center;font-size:10px;border-radius:2px} +.lt li .fa-link{width:16px;height:16px;line-height:16px;background:#2aa974;color:#fff;text-align:center;font-size:10px;border-radius:2px} +.lt li .fa-heart{color:#ff0000;} +.lt li .new_icon{display:inline-block;padding: 0 3px;line-height:16px ;font-size:0.833em;color:#fff;background:#c56bed} +.lt .lt_tit .fa-heart{color: #fe4560;} +.lt .lt_date{position:absolute;top:10px;right:0;color:#666;font-style:italic} +.lt .comment_icon{background:url(./img/icon_comment.png) no-repeat 50% 50% ;display:inline-block;width:20px;height:28px;text-indent:-999px;overflow:hidden;vertical-align:top;background-size:70%;margin:0 0px 0 5px} +.lt .empty_li{text-align:center;padding:40px 0;color:#777} diff --git a/theme/54/mobile/skin/member/basic/formmail.skin.php b/theme/54/mobile/skin/member/basic/formmail.skin.php new file mode 100644 index 000000000..19688df2c --- /dev/null +++ b/theme/54/mobile/skin/member/basic/formmail.skin.php @@ -0,0 +1,94 @@ +', 0); +?> + +
    +

    님께 메일보내기

    + +
    + + + + + + + +
    +

    메일쓰기

    +
      + +
    • + + +
    • +
    • + + +
    • + +
    • + + +
    • +
    • + 형식 + + + + + +
    • +
    • + + +
    • +
    • + + +
    • +
    • + + +
    • +
    • + 자동등록방지 + +
    • +
    + +
    + + +
    +
    + + + +
    + + diff --git a/theme/54/mobile/skin/member/basic/img/btn_del.gif b/theme/54/mobile/skin/member/basic/img/btn_del.gif new file mode 100644 index 0000000000000000000000000000000000000000..484697f033d9a8ceb9ae048cce3f723c7d5bcdb3 GIT binary patch literal 1187 zcmZ?wbhEHb!Y#3Q(W~w5=#5%__*n4QdyVXRDM^Qc_^0uU}qXu2*iX zmtT~wZ)j<02{OaTNEfI=x41H|B(Xv_uUHvof=g;~a#3bMNoIbY0?5R~r2NtnTP2`N zAzsKW@b!fooL8&|_K;q3ey)B+Vu8M)o`HUDF34YC)x{-2sR(CaRb3oXS&*t9lvp$9i83WTuclt zj7^*^ESyZ;V0u0Cic1pnl2c*!W&-Vn>NUly*UGslHL)bWC?r2W2bKZ?GV)9Ei!<^I z6r6+26g0v!^HTE5i#0*f1M#g(YEfocYKmJ?ey##Ie62FE*l%QPWNd2c;_7VRY6-^T+pZU%!0*^zp;{cW>Xke)aOj^Jh<=Jbv`>!To!8@7%t1^TzdSSFc>Y zbn(LZb7#+-K6UcM@nc7i96ogL!2W%E_w3%abI0~=Teoc9v~k1wb!*qGUbS+?@?}ex zEMBy5!Tfo1=ggipbH?;(Q>RRxG;umQ)5GYU2RQuRb@qaS!qde zQDH%TUT#iyR%S+eT53viQer}UTx?8qRAfYWSZGLaP+)++pRbR%m#2rjo2!enlcR&Z zovn?vm8FHbnW>4fk)eUUp019zmZpZfnyQMjlA?mVoUDwrl%#~Xn5c-bke~oRA1@C# z7bgch8!HPl6C(qI;!hR^5YPb;ppu7yNs6bBGp%cHjL(NF?WueEw3qoReVrPs*7z`p Hfx#L8q@kZX literal 0 HcmV?d00001 diff --git a/theme/54/mobile/skin/member/basic/img/icon_file.gif b/theme/54/mobile/skin/member/basic/img/icon_file.gif new file mode 100644 index 0000000000000000000000000000000000000000..244af004d50b31239c1f480bb0fc3df177333285 GIT binary patch literal 197 zcmZ?wbhEHbC>k_efsqC=g;fbt^4xj%d%z5mM&eoe*OCY|Nk=(0Th3-FfuR*Gw6WSg6w2qb$X!U z$Hc&q>@{nJ*0kkTEC-YHz8FZQ@k?m79C_~0!PRq;F{w*Nt%pfLL5hQAm*)W&QCq3S Ux{8k4(}h`B4?g#9XJD`f08N@mPXGV_ literal 0 HcmV?d00001 diff --git a/theme/54/mobile/skin/member/basic/img/zip_ico_up.gif b/theme/54/mobile/skin/member/basic/img/zip_ico_up.gif new file mode 100644 index 0000000000000000000000000000000000000000..a1eff70fa850bea122f6924d8c3cd63f1d573c53 GIT binary patch literal 54 zcmZ?wbhEHb', 0); +?> + +
    +

    + +
    + + +
    + + + + +
    + + +
    + +
    + + + + + + + + +
    + + diff --git a/theme/54/mobile/skin/member/basic/login_check.skin.php b/theme/54/mobile/skin/member/basic/login_check.skin.php new file mode 100644 index 000000000..1b182915e --- /dev/null +++ b/theme/54/mobile/skin/member/basic/login_check.skin.php @@ -0,0 +1,5 @@ + diff --git a/theme/54/mobile/skin/member/basic/member_confirm.skin.php b/theme/54/mobile/skin/member/basic/member_confirm.skin.php new file mode 100644 index 000000000..08308c159 --- /dev/null +++ b/theme/54/mobile/skin/member/basic/member_confirm.skin.php @@ -0,0 +1,42 @@ +', 0); +?> + +
    +

    + +

    + 비밀번호를 한번 더 입력해주세요. + + 비밀번호를 입력하시면 회원탈퇴가 완료됩니다. + + 회원님의 정보를 안전하게 보호하기 위해 비밀번호를 한번 더 확인합니다. + +

    + +
    + + + +
    + 회원아이디 + + + +
    + + + +
    + + diff --git a/theme/54/mobile/skin/member/basic/memo.skin.php b/theme/54/mobile/skin/member/basic/memo.skin.php new file mode 100644 index 000000000..cfa7e11b5 --- /dev/null +++ b/theme/54/mobile/skin/member/basic/memo.skin.php @@ -0,0 +1,45 @@ +', 0); +?> + +
    +

    + + +
    +
    + 전체 쪽지 통
    +
    + +
      + +
    • + + + 에 쪽지 - + + + 삭제 +
    • + + 자료가 없습니다."; } ?> +
    + + + + +

    + 쪽지 보관일수는 최장 일 입니다. +

    +
    + +
    +
    +
    \ No newline at end of file diff --git a/theme/54/mobile/skin/member/basic/memo_form.skin.php b/theme/54/mobile/skin/member/basic/memo_form.skin.php new file mode 100644 index 000000000..d7daf9809 --- /dev/null +++ b/theme/54/mobile/skin/member/basic/memo_form.skin.php @@ -0,0 +1,54 @@ +', 0); +?> + +
    +

    쪽지보내기

    + + +
    +
    +

    쪽지쓰기

    +
      +
    • + + + + 여러 회원에게 보낼때는 컴마(,)로 구분하세요. + +
      쪽지 보낼때 회원당 점의 포인트를 차감합니다. + +
    • +
    • + + +
    • +
    • + 자동등록방지 + +
    • +
    +
    + +
    + + +
    + +
    + + diff --git a/theme/54/mobile/skin/member/basic/memo_view.skin.php b/theme/54/mobile/skin/member/basic/memo_view.skin.php new file mode 100644 index 000000000..51ed44b88 --- /dev/null +++ b/theme/54/mobile/skin/member/basic/memo_view.skin.php @@ -0,0 +1,57 @@ +', 0); +?> + +
    +

    + + +
    +
    +
    +

    쪽지 내용

    +
    +
      +
    • + 사람 + +
    • +
    • + 시간 + +
    • +
    +

    + +

    +
    + +
    + 답장 + + 이전쪽지 + + + 다음쪽지 + + 목록보기 + +
    +
    +
    \ No newline at end of file diff --git a/theme/54/mobile/skin/member/basic/password.skin.php b/theme/54/mobile/skin/member/basic/password.skin.php new file mode 100644 index 000000000..70fea0e0b --- /dev/null +++ b/theme/54/mobile/skin/member/basic/password.skin.php @@ -0,0 +1,44 @@ +', 0); +?> + +
    +

    +

    + + 작성자만 글을 수정할 수 있습니다. + 작성자 본인이라면, 글 작성시 입력한 비밀번호를 입력하여 글을 수정할 수 있습니다. + + 작성자만 글을 삭제할 수 있습니다. + 작성자 본인이라면, 글 작성시 입력한 비밀번호를 입력하여 글을 삭제할 수 있습니다. + + 비밀글 기능으로 보호된 글입니다. + 작성자와 관리자만 열람하실 수 있습니다. 본인이라면 비밀번호를 입력하세요. + +

    + +
    + + + + + + + + +
    + + +
    + + + +
    diff --git a/theme/54/mobile/skin/member/basic/password_lost.skin.php b/theme/54/mobile/skin/member/basic/password_lost.skin.php new file mode 100644 index 000000000..ce266e9f8 --- /dev/null +++ b/theme/54/mobile/skin/member/basic/password_lost.skin.php @@ -0,0 +1,47 @@ +', 0); +?> + +
    +

    아이디/비밀번호 찾기

    +
    +
    +
    +

    + 회원가입 시 등록하신 이메일 주소를 입력해 주세요.
    + 해당 이메일로 아이디와 비밀번호 정보를 보내드립니다. +

    + +
    + + + +
    + + +
    + +
    +
    + + diff --git a/theme/54/mobile/skin/member/basic/point.skin.php b/theme/54/mobile/skin/member/basic/point.skin.php new file mode 100644 index 000000000..ec86b37cf --- /dev/null +++ b/theme/54/mobile/skin/member/basic/point.skin.php @@ -0,0 +1,82 @@ +', 0); +?> + +
    +

    +
    +
      + 0) { + $point1 = '+' .number_format($row['po_point']); + $sum_point1 += $row['po_point']; + } else { + $point2 = number_format($row['po_point']); + $sum_point2 += $row['po_point']; + } + + $po_content = $row['po_content']; + + $expr = ''; + // if($row['po_expired'] == 1) + $expr = ' txt_expired'; + ?> +
    • +
      + + +
      +
      + + + + 만료: + + +
      +
    • + 자료가 없습니다.'; + else { + if ($sum_point1 > 0) + $sum_point1 = "+" . number_format($sum_point1); + $sum_point2 = number_format($sum_point2); + } + ?> +
    + +
    +
    + 지급 + +
    +
    + 사용 + +
    +
    + 보유 + +
    +
    + + + +
    +
    +
    \ No newline at end of file diff --git a/theme/54/mobile/skin/member/basic/profile.skin.php b/theme/54/mobile/skin/member/basic/profile.skin.php new file mode 100644 index 000000000..4d52b5fb0 --- /dev/null +++ b/theme/54/mobile/skin/member/basic/profile.skin.php @@ -0,0 +1,48 @@ +', 0); +?> + +
    +

    님의 프로필

    + +
    +
짧은주소 설정
> >
+ + + + + + + + + + + + + + + + + + + + + + + + +
회원권한
포인트
홈페이지
회원가입일= $mb['mb_level']) ? substr($mb['mb_datetime'],0,10) ." (".number_format($mb_reg_after)." 일)" : "알 수 없음"; ?>
최종접속일= $mb['mb_level']) ? $mb['mb_today_login'] : "알 수 없음"; ?>
+
+ +
+

인사말

+

+
+ +
+ +
+
diff --git a/theme/54/mobile/skin/member/basic/register.skin.php b/theme/54/mobile/skin/member/basic/register.skin.php new file mode 100644 index 000000000..b952cef5f --- /dev/null +++ b/theme/54/mobile/skin/member/basic/register.skin.php @@ -0,0 +1,105 @@ +', 0); +?> + +
+ + + +
+ +
+ + + +
+
+

회원가입약관

+ +
+ + +
+
+ +
+

개인정보처리방침안내

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
개인정보처리방침안내
목적
항목보유기간
이용자 식별 및 본인여부 확인
아이디, 이름, 비밀번호회원 탈퇴 시까지
고객서비스 이용에 관한 통지,
CS대응을 위한 이용자 식별
연락처 (이메일, 휴대전화번호)회원 탈퇴 시까지
+
+
+ + +
+
+ +
+ +
+ +
+ + + +
diff --git a/theme/54/mobile/skin/member/basic/register_form.skin.php b/theme/54/mobile/skin/member/basic/register_form.skin.php new file mode 100644 index 000000000..6f9137059 --- /dev/null +++ b/theme/54/mobile/skin/member/basic/register_form.skin.php @@ -0,0 +1,465 @@ +', 0); +?> + +
+ + + + + +
+ + + + + + + + date("Y-m-d", G5_SERVER_TIME - ($config['cf_nick_modify'] * 86400))) { // 닉네임수정일이 지나지 않았다면 ?> + + + + +
+

사이트 이용정보 입력

+
  • + + placeholder="아이디"> + + 영문자, 숫자, _ 만 입력 가능. 최소 3자이상 입력하세요. +
  • +
  • + + placeholder="비밀번호"> +
  • +
  • + + placeholder="비밀번호확인"> +
  • +
    + +
    + +

    개인정보 입력

    +
  • + + class="frm_input full_input " placeholder="이름"> + 아이핀 본인확인'.PHP_EOL; + if($config['cf_cert_hp']) + echo ''.PHP_EOL; + + echo ''.PHP_EOL; + } + ?> + + + 아이핀 본인확인 후에는 이름이 자동 입력되고 휴대폰 본인확인 후에는 이름과 휴대폰번호가 자동 입력되어 수동으로 입력할수 없게 됩니다. + +
    + 본인확인 및 성인인증 완료 +
    + + +
  • + +
  • + + + + 공백없이 한글,영문,숫자만 입력 가능 (한글2자, 영문4자 이상)
    + 닉네임을 바꾸시면 앞으로 일 이내에는 변경 할 수 없습니다. +
    + + + + +
  • + + +
  • + + + + + + + + + + + +
  • + + +
  • + + " maxlength="255" placeholder="홈페이지"> +
  • + + + +
  • + + " maxlength="20" placeholder="전화번호"> +
  • + + + +
  • + + + class="frm_input full_input " maxlength="20" placeholder="휴대폰번호"> + + + + +
  • + + + +
  • + 주소필수 + + class="frm_input " size="5" maxlength="6" placeholder="우편번호"> +
    + + class="frm_input frm_address " size="50" placeholder="주소">
    + + +
    + + + + +
  • + +
    + +
    + +

    기타 개인설정

    + +
  • + + +
  • + + + +
  • + + +
  • + + + = $config['cf_icon_level']) { ?> +
  • + + + + 이미지 크기는 가로 픽셀, 세로 픽셀 이하로 해주세요.
    + gif, jpg, png파일만 가능하며 용량 바이트 이하만 등록됩니다. +
    + + 회원아이콘 + + + + +
  • + + + = $config['cf_icon_level'] && $config['cf_member_img_size'] && $config['cf_member_img_width'] && $config['cf_member_img_height']) { ?> +
  • + + + + 이미지 크기는 가로 픽셀, 세로 픽셀 이하로 해주세요.
    + gif, jpg, png파일만 가능하며 용량 바이트 이하만 등록됩니다. +
    + + 회원아이콘 + + + + +
  • + + +
  • + + >정보 메일을 받겠습니다. + +
  • + + +
  • + + + > + 휴대폰 문자메세지를 받겠습니다. + +
  • + + + +
  • + + > + 다른분들이 나의 정보를 볼 수 있도록 합니다. + + 정보공개를 바꾸시면 앞으로 일 이내에는 변경이 안됩니다. + + + +
  • + +
  • + 정보공개 + + + + 정보공개는 수정후 일 이내, 까지는 변경이 안됩니다.
    + 이렇게 하는 이유는 잦은 정보공개 수정으로 인하여 쪽지를 보낸 후 받지 않는 경우를 막기 위해서 입니다. +
    + +
  • + + + + + +
  • + + +
  • + + +
  • + 자동등록방지 + +
  • + +
    + +
    + 취소 + +
    +
    + + +
    \ No newline at end of file diff --git a/theme/54/mobile/skin/member/basic/register_result.skin.php b/theme/54/mobile/skin/member/basic/register_result.skin.php new file mode 100644 index 000000000..fb677f0c1 --- /dev/null +++ b/theme/54/mobile/skin/member/basic/register_result.skin.php @@ -0,0 +1,45 @@ +', 0); +?> +
    +

    회원가입이 완료되었습니다.

    +
    +

    + 님의 회원가입을 진심으로 축하합니다.
    +

    + + +

    + 회원 가입 시 입력하신 이메일 주소로 인증메일이 발송되었습니다.
    + 발송된 인증메일을 확인하신 후 인증처리를 하시면 사이트를 원활하게 이용하실 수 있습니다. +

    +
    + 아이디 +
    + 이메일 주소 + +
    +

    + 이메일 주소를 잘못 입력하셨다면, 사이트 관리자에게 문의해주시기 바랍니다. +

    + + +

    + 회원님의 비밀번호는 아무도 알 수 없는 암호화 코드로 저장되므로 안심하셔도 좋습니다.
    + 아이디, 비밀번호 분실시에는 회원가입시 입력하신 이메일 주소를 이용하여 찾을 수 있습니다. +

    + +

    + 회원 탈퇴는 언제든지 가능하며 일정기간이 지난 후, 회원님의 정보는 삭제하고 있습니다.
    + 감사합니다. +

    +
    + + + +
    diff --git a/theme/54/mobile/skin/member/basic/scrap.skin.php b/theme/54/mobile/skin/member/basic/scrap.skin.php new file mode 100644 index 000000000..6ba0a162c --- /dev/null +++ b/theme/54/mobile/skin/member/basic/scrap.skin.php @@ -0,0 +1,27 @@ +', 0); +?> + +
    +

    + +
      + +
    • + + + 삭제 +
    • + + 자료가 없습니다."; ?> +
    + + + +
    + +
    +
    diff --git a/theme/54/mobile/skin/member/basic/scrap_popin.skin.php b/theme/54/mobile/skin/member/basic/scrap_popin.skin.php new file mode 100644 index 000000000..1b3fc792b --- /dev/null +++ b/theme/54/mobile/skin/member/basic/scrap_popin.skin.php @@ -0,0 +1,38 @@ +', 0); +?> + +
    +

    스크랩하기

    + +
    + + + +
    +

    제목 확인 및 댓글 쓰기

    +
      +
    • + 제목 + +
    • +
    • + + +
    • +
    + +

    + 스크랩을 하시면서 감사 혹은 격려의 댓글을 남기실 수 있습니다. +

    + +
    + +
    +
    + +
    +
    \ No newline at end of file diff --git a/theme/54/mobile/skin/member/basic/style.css b/theme/54/mobile/skin/member/basic/style.css new file mode 100644 index 000000000..7d2123881 --- /dev/null +++ b/theme/54/mobile/skin/member/basic/style.css @@ -0,0 +1,242 @@ +@charset "utf-8"; +/* ### 기본 스타일 커스터마이징 시작 ### */ +.mbskin{text-align:center;padding:10px} +.mbskin h1{font-size:1.75em;margin:40px 0 25px} +.mbskin p {padding-bottom:20px;border-bottom:1px solid #c8c8c8} +.mbskin p strong{color:#4162ff;padding-bottom:5px;display:block;font-size:1.083em} + +/* 버튼 */ +.mbskin a.btn01 {} +.mbskin a.btn01:focus, .mbskin a.btn01:hover {} +.mbskin a.btn02 {} +.mbskin a.btn02:focus, .mbskin .btn02:hover {} +.mbskin .btn_confirm {} /* 서식단계 진행 */ +.mbskin .btn_submit {} +.mbskin .btn_cancel {} +.mbskin .btn_frmline {} /* 우편번호검색버튼 등 */ +.mbskin .win_btn {} /* 새창용 */ +.mbskin .win_btn a {} +.mbskin .win_btn button {} +.mbskin .win_btn input {} +/* 게시판용 버튼 */ +.mbskin a.btn_b01 {} +.mbskin a.btn_b01:focus, .mbskin .btn_b01:hover {} +.mbskin a.btn_b02 {} +.mbskin a.btn_b02:focus, .mbskin .btn_b02:hover {} +.mbskin a.btn_admin {} /* 관리자 전용 버튼 */ +.mbskin a.btn_admin:focus, .mbskin a.btn_admin:hover {} + +/* 기본테이블 */ +.mbskin .tbl_head01 {} +.mbskin .tbl_head01 caption {} +.mbskin .tbl_head01 thead th {} +.mbskin .tbl_head01 thead a {} +.mbskin .tbl_head01 thead th input {} /* middle 로 하면 게시판 읽기에서 목록 사용시 체크박스 라인 깨짐 */ +.mbskin .tbl_head01 tfoot th {} +.mbskin .tbl_head01 tfoot td {} +.mbskin .tbl_head01 tbody th {} +.mbskin .tbl_head01 td {} +.mbskin .tbl_head01 a {} +.mbskin td.empty_table {} + +/* 폼 테이블 */ +.mb_skin table {} +.mb_skin caption {} +.mb_skin .frm_info {} +.mb_skin .frm_file {} + +.mbskin .tbl_frm01 {} +.mbskin .tbl_frm01 caption {} +.mbskin .tbl_frm01 th {} +.mbskin .tbl_frm01 td {} +.mbskin .tbl_frm01 textarea, .mbskin .frm_input {} +.mbskin .tbl_frm01 textarea {} +/* +.mbskin .tbl_frm01 #captcha {} +.mbskin .tbl_frm01 #captcha input {} +*/ +.mbskin .tbl_frm01 a {} + +.mbskin .required, .mbskin textarea.required {} /* 필수입력 */ + +/* 테이블 항목별 정의 */ +.mbskin .td_board {} +.mbskin .td_chk {} +.mbskin .td_date {} +.mbskin .td_datetime {} +.mbskin .td_group {} +.mbskin .td_mb_id {} +.mbskin .td_mng {} +.mbskin .td_name {} +.mbskin .td_nick {} +.mbskin .td_num {} +.mbskin .td_numbig {} + +/* ### 기본 스타일 커스터마이징 끝 ### */ + +/* 회원가입 약관 */ +#fregister section {background:#fff;margin:10px 0;border:1px solid #dbdbdb; +-webkit-box-shadow: 2px 2px 3px 0px rgba(0,0,0,0.2); +-moz-box-shadow: 2px 2px 3px 0px rgba(0,0,0,0.2); +box-shadow: 2px 2px 3px 0px rgba(0,0,0,0.2);} +#fregister .chk_all{text-align:left} +#fregister h2 {text-align:left;border-bottom:1px solid #dbdbdb;padding:10px 15px;line-height:1.7em;font-size:1.167em} +#fregister textarea {display:block;padding:10px;width:100%;border:0;background:#fff;height:180px;line-height:1.5em;color:#555} +.fregister_agree {border-top:1px solid #dbdbdb;padding:10px 15px;line-height:1.7em;text-align:left;font-size:1.083em} +.fregister_agree label {display:inline-block;margin-right:5px} +#fregister p {border:0;padding:0 0 5px;} +#fregister .btn_confirm {margin:15px 0} +#fregister_private .tbl_head01 {padding:20px;margin:0} +#fregister_private .tbl_head01 caption{position:absolute;font-size:0;line-height:0;overflow:hidden;top:0;color:#fff} + +/* 회원가입 입력 */ +#fregisterform #reg_mb_email, #fregisterform .frm_address {width:100%} +#fregisterform textarea {width:100%;height:50px} +#fregisterform #msg_certify {margin:5px 0 0;padding:5px;border:1px solid #dbecff;background:#eaf4ff;text-align:center} +#fregisterform .frm_address {margin:5px 0 0} +#fregisterform #mb_addr3 {display:block;margin:5px 0 0} +#fregisterform #mb_addr_jibeon {display:block;margin:5px 0 0} +#fregisterform .form_01{margin-bottom: 30px} +#fregisterform .form_01 h2{font-size:1.167em;margin:0 0 5px} +#fregisterform .frm_label{display:block;font-size:1.083em;margin:15px 0 5px;color:#555} +#fregisterform .btn_frmline {height:40px;padding:0 10px} +#fregisterform .rgs_name_li button{margin:5px 0 0 } +#fregisterform .reg_mb_img_file img{max-width:100%;height:auto} + +/* 회원가입 완료 */ +#reg_result {padding:20px 10px 10px} +#reg_result #result_email {margin:20px 0;padding:10px 50px;border-top:1px solid #eee;border-bottom:1px solid #eee;background:#fff;line-height:2em} +#reg_result #result_email span {display:inline-block;width:150px} +#reg_result #result_email strong {color:#e8180c;font-size:1.2em} +#reg_result h2{text-align:center;font-size:1.25em;margin:0 0 10px} +#reg_result h2 strong{color:#ed6478} +#reg_result p {line-height:1.7em} +#reg_result .btn_confirm {margin:20px 0 30px} +#reg_result .reg_result_wr{background:#fff;padding:10px 20px} +#reg_result .reg_cong{margin:10px 0;font-size:1.083em;font-weight:bold} +#reg_result .reg_cong strong{color:#3497d9} +#reg_result .btn_confirm a{display:inline-block;padding:0 20px;height:40px;line-height:38px;border:1px solid #ed6478;color:#ed6478;border-radius:3px;font-weight:bold} + +/* 아이디/비밀번호 찾기 */ +/*#find_info #info_fs {margin:0 20px 10px}*/ +#find_info #info_fs p {margin:0 0 10px;line-height:1.5em;font-size:0.92em;color:#4162ff} +#find_info #info_fs #mb_email {width:100%} +#find_info #captcha{margin:5px 0 } + +/* 로그인 */ +#mb_login {margin:40px auto 10px;;max-width:500px;padding:20px;} +#mb_login h1 {font-size:2em;text-align:center;margin:0 0 20px} +#mb_login h2 {margin:0} +#mb_login p {padding:10px 0;line-height:1.5em} +#mb_login #login_frm {position:relative} +#mb_login #login_frm div {padding:10px 0 ;text-align:right} +#mb_login .frm_input {width:100%;margin:5px 0} +#mb_login .btn_submit {width:100%;border-radius:3px;height:40px;margin:5px 0;font-size:1.083em;font-weight:bold} +#mb_login .mb_login_join{border-top:1px solid #ddd;margin:20px 0 0 ;padding:10px 0} +#mb_login .mb_login_join:after {display:block;visibility:hidden;clear:both;content:""} +#mb_login .mb_login_join h2{position:absolute;font-size:0;line-height:0;overflow:hidden} +#mb_login .mb_login_join a{display:block;float:left;width:50%;} +#login_password_lost{border-right:1px solid #cdcdcd;} + +#flogin{background:#fff;padding:20px;margin:20px 0;border-bottom:1px solid #ddd;} + +#mb_login_notmb{background:#fff;border-bottom:1px solid #ccc;padding:20px;} +#mb_login_notmb h2{font-size:1.25em;padding:10px;background:#f3f3f3} +#mb_login_notmb p{border:0;padding:0;margin:10px;color:#} +#guest_privacy p{border:1px solid #ddd;background:#fff;color:#666;min-height:20px;height:200px;padding:10px;text-align:left;overflow-y:auto;margin:10px 0} +#mb_login_notmb .btn_submit{width:100%;display:block;height:40px;line-height:40px} + +#mb_login_od_wr{background:#fff;border-bottom:1px solid #ccc;padding:20px;} +#mb_login_od_wr p{border:0;text-align:left;} +#mb_login_od_wr p strong{display:inline} +#mb_login_odinfo{margin:10px 0 0 ;background:#f3f3f3;padding:10px} +#mb_login_odinfo h2{font-size:1.167em} +/* 쪽지 */ +#memo_view_contents {} +#memo_view_contents h2 {position:absolute;font-size:0;line-height:0;overflow:hidden} +#memo_view_ul {margin:0 0 3px;background:#fff;padding:5px 10px;border-radius:3px; +-webkit-box-shadow: 0 0 5px rgba(50,50,50,0.2); +-moz-box-shadow: 0 0 5px rgba(50,50,50,0.2); +box-shadow: 0 1px 5px rgba(50,50,50,0.2);} +.memo_view_li {position:relative;padding:2px 0} +.memo_view_subj {display:inline-block;width:60px;font-size:0.92em;color:#777} +#memo_view_ul a {} +#memo_view p {padding:10px 15px;border-radius:3px;;min-height:150px;height:auto !important;height:150px;line-height:1.8em;background:#fff; +-webkit-box-shadow: 0 0 5px rgba(50,50,50,0.2); +-moz-box-shadow: 0 0 5px rgba(50,50,50,0.2); +box-shadow: 0 1px 5px rgba(50,50,50,0.2);} + +#memo_list_ul {} +#memo_list_ul li {position:relative;background:#fff;margin:10px 0;border-radius:3px;padding:10px 15px; +-webkit-box-shadow: 0 0 5px rgba(50,50,50,0.2); +-moz-box-shadow: 0 0 5px rgba(50,50,50,0.2); +box-shadow: 0 1px 5px rgba(50,50,50,0.2);} + +#memo_list_ul .memo_link {display:block;font-weight:bold;font-size:1.083em;margin:0 0 5px} +#memo_list_ul .memo_date{font-size:0.92em;color:#777;font-style:italic} +#memo_list_ul .memo_del{display:block;position:absolute;top:0;right:0;width:40px;height:40px;background:url(./img/btn_del.gif) no-repeat 50% 50%; text-indent:-9999px;overflow:hidden} + +#memo_write #me_recv_mb_id {width:100%} +#memo_write textarea {width:100%;height:100px} +#memo_write .win_btn{margin:10px;} + +/* 스크랩 */ +#scrap_ul li{position:relative;} +#scrap_ul .scrap_board {display:block;color:#4162ff;margin:0 0 5px} +#scrap_ul .scrap_del {display:block;position:absolute;top:0;right:0;width:40px;height:40px;background:url(./img/btn_del.gif) no-repeat 50% 50%; text-indent:-9999px;overflow:hidden} +#scrap_ul .scrap_link{font-weight:bold;font-size:1.083em;} +.scrap_tit{font-weight:bold;border-bottom:1px solid #d7d7d7;padding:0 0 10px;font-size:1.167em} +#scrap_do #wr_content{margin-top:5px} +#scrap_do label{color:#666} + +/* 포인트 */ +#point_ul {;padding:0;border-top:1px solid #e9e9e9;list-style:none} +#point_ul li {position:relative;} +#point_ul li:after {display:block;visibility:hidden;clear:both;content:""} +#point_ul .point_wrap01 {float:left} +#point_ul .point_wrap02 {float:right;text-align:right} +#point_ul .point_log{display:block;font-weight:bold;margin:0 0 5px;font-size:1.083em} +#point_ul .point_inout{display:block;font-weight:bold;margin:0 0 5px;color:#4162ff;font-size:1.083em} +#point_ul .point_date{font-style:italic} + +#point_sum{margin:10px 0 20px} +#point_sum:after {display:block;visibility:hidden;clear:both;content:''} +#point_sum .sum_row {float:left;width:33.333%;text-align:center;background:#939db8;color:#fff;} +#point_sum .sum_row:nth-child(even){background:#8490af} +#point_sum .sum_tit, #point_sum .sum_val {display:block;margin:0 0 1px;padding:10px} +#point_sum .sum_tit {} +#point_sum .sum_val {} + +/* 회원 비밀번호 확인 */ +#mb_confirm {margin:30px 0} +#mb_confirm h1 {margin:0 0 15px;padding:0 10px;font-size:1.3em} +#mb_confirm p {padding:15px 10px;border-bottom:1px solid #cfded8;border-bottom:0;background:#fff} +#mb_confirm p strong {display:block} +#mb_confirm fieldset {position:relative;margin:20px 0;text-align:left;color:#555} +#mb_confirm_id{font-weight:bold;display:block;font-size:1.083em;margin:5px 0} +#mb_confirm_pw {display:block;margin-top:10px;width:100%} +#mb_confirm .btn_submit {width:100%;height:40px;border-radius:3px;margin:10px 0} + +/* 비밀글 비밀번호 확인 */ +#pw_confirm fieldset {position:relative;margin:0 0 5px;padding:15px 0;border-top:1px solid #fffefe} +#pw_wr_password {width:100%} +#pw_confirm .btn_submit {margin:5px 0;width:100%;border-radius:3px;height:45px;font-weight:bold;font-size:1.083em} + +/* 폼메일 */ +#formmail #subject {width:100%} +#formmail textarea {width:100%;height:100px} +#formmail .frm_file{padding-left:50px;} +#formmail .file_wr{border:1px solid #ccc;background:#fff;color:#000;vertical-align:middle;border-radius:3px;padding:5px;height:40px;} +#formmail .lb_icon{position:absolute;top:0px;left:0px;border-radius:3px 0 0 3px;height:38px;line-height:38px;width:40px;overflow:hidden;text-indent:-999px;background:url(./img/icon_file.gif) no-repeat 50% 50% #eee} + +/* 자기소개 */ +#profile section {margin:10px; } +#profile h2 {margin:0} +#profile .sv_wrap a {color:#fdff2f} +#profile table{width:100%;border-collapse:collapse} +#profile table th{background:#fff;padding:10px;width:90px;text-align:left;border-bottom:1px solid #eee} +#profile table td{background:#fff;padding:10px;border-bottom:1px solid #eee} +#profile p{background:#fff;padding:10px;margin:10px 0; +-webkit-box-shadow: 0 0 5px rgba(50,50,50,0.2); +-moz-box-shadow: 0 0 5px rgba(50,50,50,0.2); +box-shadow: 0 1px 5px rgba(50,50,50,0.2);} \ No newline at end of file diff --git a/theme/54/mobile/skin/new/basic/new.skin.php b/theme/54/mobile/skin/new/basic/new.skin.php new file mode 100644 index 000000000..e7263f92f --- /dev/null +++ b/theme/54/mobile/skin/new/basic/new.skin.php @@ -0,0 +1,58 @@ +', 0); +?> + + +
    + 상세검색 +
    + + + + + +
    + +
    + + + +
    +
      + + +
    • + + + +
    • + + + 게시물이 없습니다.'; + ?> +
    +
    + + + \ No newline at end of file diff --git a/theme/54/mobile/skin/new/basic/style.css b/theme/54/mobile/skin/new/basic/style.css new file mode 100644 index 000000000..cfcd9728f --- /dev/null +++ b/theme/54/mobile/skin/new/basic/style.css @@ -0,0 +1,11 @@ +@charset "utf-8"; + +/* 새글 */ +#new_sch {margin:10px;border:1px solid #bdc2d8;background:#fff;position:relative} +#new_sch select{float:left;width:50%;border:0;height:40px} +#new_sch #view{border-left:1px solid #e2e2e2} +#new_sch .frm_input {border:0;border-top:1px solid #e2e2e2;width:100% } +#new_sch .btn_submit {position:absolute;bottom:0;right:0;width:40px;height:40px;background:none;color:#000;font-size:15px} +#new_list .new_tit{display:block;font-weight:bold;margin:0 0 5px;font-size:1.083em} +#new_list .new_date{float:right;color:#666;font-style:italic} +#new_list .new_board{color:#3ca1ff} \ No newline at end of file diff --git a/theme/54/mobile/skin/outlogin/basic/img/icon_edit.png b/theme/54/mobile/skin/outlogin/basic/img/icon_edit.png new file mode 100644 index 0000000000000000000000000000000000000000..cea6ea72d9620c528a1b3092c5795a96d9a3aed9 GIT binary patch literal 1605 zcmeAS@N?(olHy`uVBq!ia0vp^8X(NU1|)m_?Z^dEk|nMYCBgY=CFO}lsSJ)O`AMk? zp1FzXsX?iUDV2pMQ*9U+n3Xa^B1$5BeXNr6bM+EIYV;~{3xK*A7;Nk-3KEmEQ%e+* zQqwc@Y?a>c-mj#PnPRIHZt82`Ti~3Uk?B!Ylp0*+7m{3+ootz+WN)WnQ(*-(AUCxn zQK2F?C$HG5!d3}vt`(3C64qBz04piUwpD^SD#ABF!8yMuRl!uxSU1_g&``n5OwZ87 z)XdCKN5ROz&`93^h|F{iO{`4Ktc=VRpg;*|TTx1yRgjAt)Gi>;Rw<*Tq`*pFzr4I$ zuiRKKzbIYb(9+TpWQLKEE>MMTab;dfVufyAu`f(~1RD^r68eAMwS&*t9 zlvv ztM~P_^2{qPNz6-5^>ndS0-B(gnVDkc3JhTrOG8ID6GKx&Lsv6LOBWMYLn8|}GiM7I zBUek9UYGpj(%jU%5}4i;gkC3{dO=Acw*Y9fOKMSOS!#+~QGTuh*vnR#xZPrb(>$o& z6x?pH#Hm*w=oo!a#3DsBObD2IKumbD1#;jCKQ#}S+KYh6I%&%iAqEDfot`d^Ar-gI z%<%OHbrd`Q$x26V@td1mkK9(>wQ4T6 z_R`odjEyc&Pj|35_KG!5kaAPitc`f^#oq8x!S3>VGk5MW|M!sn(=p4>_2u{G6hEtS z;?QS0eqa^Hb(#Wgs6@9DR#LGk~v+B|fu2 zQm3V-eb$-Z&p-Xot>xmY+IdwfgKhm4{=aOoGlPB28qE{iQ%)?jycBm~we``}^Q!k= z$o(j2pu4}5+m=ChO3a~o52`ObJ#k0KV)-oYs;1~&oV$3N>Zfr2)&0TA*Eo5>K?OIV zJI~Z!8Ku=lv+rGCpyDSxBk9<#!@gI3E|@P^z}oN#GD;&6SmDT zS1;FE{r3Uej7>hO!aFk}!VfH4dhltC#2v|v*V67LXj&v>Zm<$(^UM`1PTF+e*lb72 z#v7s=ZWo+mP~QK`)GPCu!M_(1x3AZ_dGSqx&pz&3e~;R_EI;6UtZ#2fmeof+jfFw6 zvT15TT8Y(0DlhmxG)t~;tj_F`PN`mXl6is9laoIUFR-ccJUTPu&Z}K5b5}g5-#%wI zkC)|kD=*gd2ld!}Un>{5T@SphDP5e>S0WX2>FL3+fY(1RO}Qc&bDM4Zu99Wb>{ah% ziii~W6=qq_xGZ^P<`M_nPj6Rt&TCYe@od)VlneQjK1DCj|6_PLrrT(_1W(bKLLQ;# z2TKD)4a%A`4PMxmGR+BC)xXtIww9+jK6anW{M5K9bN0H_^UcdRR^ON%DE34907Fjo V)HRHr65BxqyQiz4%Q~loCIBm>VnP4_ literal 0 HcmV?d00001 diff --git a/theme/54/mobile/skin/outlogin/basic/img/icon_memo.png b/theme/54/mobile/skin/outlogin/basic/img/icon_memo.png new file mode 100644 index 0000000000000000000000000000000000000000..5b86133204b390a83248a7cdc5da056b1c22ad84 GIT binary patch literal 1852 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 literal 0 HcmV?d00001 diff --git a/theme/54/mobile/skin/outlogin/basic/img/icon_scrap.png b/theme/54/mobile/skin/outlogin/basic/img/icon_scrap.png new file mode 100644 index 0000000000000000000000000000000000000000..43e10b13ef800773625a14fc5b7502c325ebcd43 GIT binary patch literal 1717 zcmaJ?c~BE~7>z^@kwYA)_2|r+U=;_FEW$!!03!(!ArO-wsFf0u4T+F!$Sx!V3pAiM z1t}I7aTH++D)j&=mP>`8ph7|LptTCt0|fCz6s@(|4GQ*;(w*J?9rND%zVG+Foi*~q z*4W!Fuq6-(_S|5$03XTt<7Q)pznfR*1>nPcj1z?k5gDcxYhVIPip0VIS1FEz1+Z9} zlGqM22?QcZA&SDHc%cjlqNIq;7>Z7*#@Pe{GeD;nOX6V+h=t=6DnHVblg%VRA@w6g zdh=*Jbs#KP1nV`hP#-3e=;I}HDJj4oVCopSfD*>UfKHj9LK!+g(u6JppPRR-Bwzx9 z#ru)oCl$rx1A&MJ2D~XNJR~#_1R#h4dU-<-=ni<&Ku;1d_{xtY$1pX6O4Vw$6zvKMqKTt|bUNLv;pyptBRtR)6(-hss8I5x0vkpp z8ig8DAS%GDD2_#vFh3HW>H89t>M2}g-VKO zQMU;^kH_GuP)w|nz+AQ;30I&f6jBDqm(Ae>vAu%4Kpzm~Ky*6f&En7@U&!0bCy33S zBD3W1mkOol#6D2bg)92zjt= z$xzLW{a2$Ww{Z8Er&G4Y7gNTERk+(VxUEN75AWe$iyN2C66vnD7KO;2S#!46q!_uu zIfmBE9W!^@9yd4^aGdPV#k*Fp*70+eZYzD|n;I-)8+}f@*(^8Q;oO~F$R4fs|1Dp( z#JZ$)=cp4ebkRG*#-kqkWW6k|-|$`W{mRFG9;$0>OeW{vb>5b+uE(~~L=7O47iSwY zw57REhB9~8W@ZOQ7j9T>v%%sarJ#tjy*9tpy1-eG^XBc|mN?omer#Cg**i^Ec7}+` zGPjIC19Y}}th*LXo&9P=dL10^E+U75HNC{LAF7;OMek7lek!QE!wO*iI8tRXR9KqG zFBx~cC_Kd^-aY(orJR^*nptSn<@$VgzGrqe-Ks@emH6!7wY()?e%&@B{}wZP z*NLBBJE3c4HCS#zJ3F*(Tl=Hm-nZ+k2)hDSJK7Bv6_!W`oPN>E2+xhl9eJl?gt@Uz z#s^zAfo1z5!i`O~Y6mRyct-5O><0yh>TaLBaqdv%iRiG{G|9p4@Xq=q_W?V%N5rVx zfj023>%cUW54MWb{dp+E;;K(>SBIV#+%S~4c%g8Y=sq}J`!roXW>FiG)(tFc87yy4 z-}6lA7}9yu{lFR8ygq%W%k8n7_m)*V)mVjoW3)DLGAqLTk10CW_G(Sga7_|au`#Q| zXxX=>?Q)TRnCBo!Y5M9pYHCapJqw?uSXdZtcPhf4JmPdU!?RZs(v9c~S kM<1zw%yV(+d234}bPZmbllJL}m*yV{mlMXWTpeTh2e+i6n*aa+ literal 0 HcmV?d00001 diff --git a/theme/54/mobile/skin/outlogin/basic/outlogin.skin.1.php b/theme/54/mobile/skin/outlogin/basic/outlogin.skin.1.php new file mode 100644 index 000000000..9b9ed2da4 --- /dev/null +++ b/theme/54/mobile/skin/outlogin/basic/outlogin.skin.1.php @@ -0,0 +1,72 @@ +', 0); +?> + + + + + diff --git a/theme/54/mobile/skin/outlogin/basic/outlogin.skin.2.php b/theme/54/mobile/skin/outlogin/basic/outlogin.skin.2.php new file mode 100644 index 000000000..6b338c82a --- /dev/null +++ b/theme/54/mobile/skin/outlogin/basic/outlogin.skin.2.php @@ -0,0 +1,53 @@ +', 0); +?> + + + + + + diff --git a/theme/54/mobile/skin/outlogin/basic/style.css b/theme/54/mobile/skin/outlogin/basic/style.css new file mode 100644 index 000000000..d6d4f7cdb --- /dev/null +++ b/theme/54/mobile/skin/outlogin/basic/style.css @@ -0,0 +1,29 @@ +@charset "utf-8"; +.ol {position:relative;margin:0 0 10px;padding:20px;background:#292929;text-align:center;} +.ol h2 {width:0;height:0;overflow:hidden} + +#ol_before{padding:20px 30px 30px} +#ol_before input[type=text], #ol_before input[type=password] {width:100%;border:0;border-bottom:1px solid #434242;background:none;height:40px;;margin:0 0 10px;color:#fff} +#ol_submit {width:100%;height:40px;border-radius:23px;font-weight:bold;font-size:1.083em; } +#ol_svc {text-align:left;color:#dadada;font-size:0.92em;margin:5px 0 20px} +.ol_before_btn{margin:15px 0 0;color:#aaa;line-height:1em} +.ol_before_btn a{color:#fff;display:inline-block;width:50%;float:left} +#ol_password_lost{border-left:1px solid #777} + +#ol_after_hd strong {display:block;color:#fff;} +#ol_after_hd .btn_admin {display:block;padding:0 !important;text-align:center} +#ol_after_hd .profile_img{display:inline-block;position:relative;margin:0 0 10px} +#ol_after_hd .profile_img img{border-radius:50%;} +#ol_after_info{position:absolute;bottom:-5px;right:-5px;background:url(./img/icon_edit.png) no-repeat 50% 50% #292929;background-size:15px;width:30px;height:30px;text-indent:-9999px;overflow:hidden;border-radius:50%} + +#ol_after_private {margin:0;padding:0;list-style:none} +#ol_after_private:after {display:block;visibility:hidden;clear:both;content:""} +#ol_after_private li {float:left;width:33.333%} +#ol_after_memo {background:url(./img/icon_memo.png) no-repeat 36px 22px #2c2d2e;background-size:19px} +#ol_after_pt {background:url(./img/icon_point.png) no-repeat 38px 24px #313334;background-size:16px} +#ol_after_scrap {background:url(./img/icon_scrap.png) no-repeat 38px 22px #2c2d2e;background-size:18px} +#ol_after_private a {color:#fff;height:90px;display:block;padding-top:60px} + +#ol_after_btn {margin:15px 0} +#ol_after_btn a{display:inline-block;padding:0 10px;line-height:25px;border-radius:15px;font-weight:bold} +#ol_after_logout{background:#fff;color:#555} diff --git a/theme/54/mobile/skin/poll/basic/poll.skin.php b/theme/54/mobile/skin/poll/basic/poll.skin.php new file mode 100644 index 000000000..e570098a2 --- /dev/null +++ b/theme/54/mobile/skin/poll/basic/poll.skin.php @@ -0,0 +1,65 @@ +', 0); +?> + +
    + + + +
    + + \ No newline at end of file diff --git a/theme/54/mobile/skin/poll/basic/poll_result.skin.php b/theme/54/mobile/skin/poll/basic/poll_result.skin.php new file mode 100644 index 000000000..aafdbb84a --- /dev/null +++ b/theme/54/mobile/skin/poll/basic/poll_result.skin.php @@ -0,0 +1,113 @@ +', 0); +?> + +
    +

    +
    + 전체 표 +
    +

    결과

    +
      + +
    1. + + % +
      + 표 +
      +
    2. + +
    +
    + + +
    +

    이 설문에 대한 기타의견

    + + +
    +
    +

    님의 의견

    + + + 삭제"; } ?> + +
    +

    + +

    + +
    + + + = $po['po_level']) { ?> +
    + + + + +

    + +
    + + + + + + + + + + + + + + + + +
    +
    + +
    + +
    +
    + + +
    + + + + +
    + +
    +
    +
    + + \ No newline at end of file diff --git a/theme/54/mobile/skin/poll/basic/style.css b/theme/54/mobile/skin/poll/basic/style.css new file mode 100644 index 000000000..65da79acb --- /dev/null +++ b/theme/54/mobile/skin/poll/basic/style.css @@ -0,0 +1,103 @@ +@charset "utf-8"; +/* SIR 지운아빠 */ + +/* ### 기본 스타일 커스터마이징 시작 ### */ + +#poll a.btn_admin {} /* 관리자 전용 버튼 */ +#poll a.btn_admin:focus, #poll a.btn_admin:hover {} + +/* 폼 테이블 */ +#poll .tbl_frm table {} +#poll .tbl_frm .frm_address {} +#poll .tbl_frm .frm_file {} +#poll .tbl_frm .frm_info {} + +#poll .tbl_frm01 {} +#poll .tbl_frm01 caption {} +#poll .tbl_frm01 th {} +#poll .tbl_frm01 td {} +#poll .tbl_frm01 textarea, #poll .frm_input {} +#poll .tbl_frm01 textarea {} +/* +#poll .tbl_frm01 #captcha {} +#poll .tbl_frm01 #captcha input {} +*/ +#poll .tbl_frm01 a {} + +#poll .required, #poll textarea.required {} + +#poll .btn_confirm {} /* 서식단계 진행 */ +#poll .btn_submit {} +#poll .btn_cancel {} +#poll .btn_frmline {} /* 우편번호검색버튼 등 */ +#poll .win_btn {} /* 새창용 */ +#poll .win_btn a {} +#poll .win_btn button {} +#poll .win_btn input {} + +/* ### 기본 스타일 커스터마이징 끝 ### */ + +/* 설문조사 스킨 */ +#poll {margin:30px 10px } +#poll header {position:relative;} +#poll h2 {display:inline-block;background: #4162ff;color: #fff;border-radius: 13px;line-height: 24px;padding: 0 10px;margin:0 0 10px; +-webkit-box-shadow: 0 0 5px rgba(65,98,255,0.8); +-moz-box-shadow: 0 0 5px rgba(65,98,255,0.8); +box-shadow: 0 0 8px rgba(65,98,255,0.8); +} +#poll header .btn_admin {display:block;margin:0 0 5px;color:#fff;text-align:center;text-decoration:none;line-height:2em;vertical-align:middle} +#poll header p {padding:0;font-weight:bold} +#poll li {background:#fff;margin: 8px 0;padding:10px; + -webkit-box-shadow: 0 1px 4px #cbd1df; + -moz-box-shadow: 0 1px 4px #cbd1df; + box-shadow: 0 1px 4px #cbd1df;} +#poll footer:after {display:block;visibility:hidden;clear:both;content:""} +#poll footer input {float:right;font-weight:bold;} +#poll footer a {display:inline-block;float:left;background:#c6c6d2;color:#333;font-weight:bold} +#poll footer a:focus, #poll footer a:hover {text-decoration:none !important} + +/* 설문조사 결과 (새창) */ +#poll_result {} +#poll_result section {margin:0 0 20px;padding:25px;border:1px solid #dbdbdb;background:#fff; +-webkit-box-shadow: 0 0 5px rgba(55,55,5,0.1)); + -moz-box-shadow: 0 0 5px rgba(55,55,5,0.1)); + box-shadow: 0 0 5px rgba(55,55,5,0.1); } +#poll_result .tbl_wrap {margin:0} +#poll_result h2 {} +#poll_result a {} +#poll_result .sv_member, +#poll_result .sv_guest {font-weight:bold} +#poll_result .poll_all{float:right;display:inline-block;padding:0 5px;margin:0 0 10px;line-height:26px;border:1px solid #ddd;border-radius:3px;font-size:0.92em;background:#fff} +#poll_result .btn_confirm{text-align:right;margin:5px 0 0} +#poll_result_list {margin:0 auto 20px;clear:both} +#poll_result_list h2 {margin:0;font-size:1.083em;padding: 0 0 15px;margin:0 0 15px;border-bottom:1px solid #ddd;text-align:center;} +#poll_result_list dt {margin-right:5%;color:#e8180d;text-align:right} +#poll_result_list ol {margin:0;padding:0} +#poll_result_list li {margin:20px 0;position:relative;list-style-position:inside} +#poll_result_list .poll_percent{position:absolute;top:0;right:0;color:#415b72;font-weight:bold} +.poll_result_graph {position:relative;margin-right:5%;margin:5px 0 ;height:15px;background:#f4f4f4;border-radius:10px 10px} +.poll_result_graph span {position:absolute;top:0;left:0;height:15px;background:#ae99da;border-radius:10px 10px} +.poll_result_graph span .poll_cnt {display:none;position:absolute;top:18px;right:0;font-size:0.92em;text-align:right;background:#333;color:#fff;padding:0 7px;line-height:22px;border-radius:3px} +.poll_result_graph span:hover .poll_cnt {display:block;white-space: nowrap;} +.poll_result_graph span .poll_cnt:before{content: "";position: absolute;top: -6px;left: 50%;margin-left:-4px;width: 0;height: 0;border-style: solid;border-width: 0 4px 6px 4px;border-color: transparent transparent #333 transparent;} +#poll_result_cmt {} +#poll_result_cmt h2 {;font-size:1.083em;} +#poll_result_cmt h3 {margin:0;font-size:1.083em;padding: 0 0 15px;margin:0 0 15px;border-bottom:1px solid #ddd;text-align:center;} +#poll_result_cmt article {margin:15px 0 ;position:relative;} +#poll_result_cmt h2 {position:absolute;margin:0;padding:0;border:0;font-size:0;text-indent:-9999em;line-height:0;overflow:hidden} +#poll_result_cmt header{margin:0 0 5px} +#poll_result_cmt .poll_datetime{display:inline-block;position:absolute;top:0;right:0;font-size:0.92em;color:#777;font-style:italic} +#poll_result_cmt .profile_img img{border-radius:50%} +#poll_result_cmt p {padding:10px;background:#f6f6f6;border-radius:5px;} +#poll_result_cmt fieldset {margin-bottom:0;text-align:left} +#poll_result_cmt fieldset p {margin:0 0 15px;padding:3px 0 0px;text-align:left} +#poll_result_cmt footer {text-align:right} +#poll_result_cmt .btn_submit {height:40px;padding:0 20px} + +.poll_cmt_del a {display:inline-block;margin-left:5px;color:#49857c;font-size:16px;} +.poll_cmt_del a:hover{color:#98ca69} +#poll_result_oth {padding:0} +#poll_result_oth ul {margin:0;padding:0;list-style:none;} +#poll_result_oth li{position:relative} +#poll_result_oth li:after {display:block;visibility:hidden;clear:both;content:""} +#poll_result_oth li span{float:right;color:#777;font-size:0.92em;font-style:italic} diff --git a/theme/54/mobile/skin/popular/basic/popular.skin.php b/theme/54/mobile/skin/popular/basic/popular.skin.php new file mode 100644 index 000000000..42f239e48 --- /dev/null +++ b/theme/54/mobile/skin/popular/basic/popular.skin.php @@ -0,0 +1,21 @@ +', 0); +?> + + \ No newline at end of file diff --git a/theme/54/mobile/skin/popular/basic/style.css b/theme/54/mobile/skin/popular/basic/style.css new file mode 100644 index 000000000..74f4e373e --- /dev/null +++ b/theme/54/mobile/skin/popular/basic/style.css @@ -0,0 +1,10 @@ +@charset "utf-8"; + +/* 인기검색어 */ +#popular {margin:30px 10px } +#popular h2 {display:inline-block;background: #4162ff;color: #fff;border-radius: 13px;line-height: 24px;padding: 0 10px;margin:0 0 10px; +-webkit-box-shadow: 0 0 5px rgba(65,98,255,0.8); +-moz-box-shadow: 0 0 5px rgba(65,98,255,0.8); +box-shadow: 0 0 8px rgba(65,98,255,0.8); } +#popular a{display:inline-block;height:22px;line-height:22px;background:#b9bdd3;color:#fff;margin:2px 0;padding: 0 5px;border-radius:3px} +#popular a:hover{background:#646982} \ No newline at end of file diff --git a/theme/54/mobile/skin/qa/basic/img/btn_close.gif b/theme/54/mobile/skin/qa/basic/img/btn_close.gif new file mode 100644 index 0000000000000000000000000000000000000000..040b180ac6584ae612ef2886487110f0ad079963 GIT binary patch literal 211 zcmZ?wbhEHbC>lw|Nj2|^XJd+Ki|K7yLIc<@85r}UAy+@_wT|Ns9P2m!^PEMO%%AQEIJ18abSL2rs@7wgh> zI-xzeYYr882T$7a>~-(!J@=MOy}Z$ltNl`73Cq0Bi3wIGB-b=ECVhGFY*&ANIg94( d^Unm859R4|2rw-)wA%9i`(c-qSMQw}tN}eeW+eas literal 0 HcmV?d00001 diff --git a/theme/54/mobile/skin/qa/basic/img/icon_answer.gif b/theme/54/mobile/skin/qa/basic/img/icon_answer.gif new file mode 100644 index 0000000000000000000000000000000000000000..91c135977b4f445a90c849310dc80efde1983830 GIT binary patch literal 77 zcmZ?wbhEHb-Wqsc#^P~2x#@rVooH@5wHB9i@BozKb;P9uI^*c|UyXO5@>VyLmgEat< Cr6(f* literal 0 HcmV?d00001 diff --git a/theme/54/mobile/skin/qa/basic/img/icon_hot.gif b/theme/54/mobile/skin/qa/basic/img/icon_hot.gif new file mode 100644 index 0000000000000000000000000000000000000000..c95b839aeef0c1e26a4bab4ea50cd6d3f1969d7f GIT binary patch literal 97 zcmZ?wbhEHbzHen|7VvwFnzUPlarEA ZqW~YXyUO~T+#YkUoJ%V_>ib05Q5F AasU7T literal 0 HcmV?d00001 diff --git a/theme/54/mobile/skin/qa/basic/img/icon_mobile.gif b/theme/54/mobile/skin/qa/basic/img/icon_mobile.gif new file mode 100644 index 0000000000000000000000000000000000000000..ad934d23c440c83db0c4589596465cb087353e01 GIT binary patch literal 62 zcmZ?wbhEHbZ% literal 0 HcmV?d00001 diff --git a/theme/54/mobile/skin/qa/basic/img/icon_secret.gif b/theme/54/mobile/skin/qa/basic/img/icon_secret.gif new file mode 100644 index 0000000000000000000000000000000000000000..c04899f14fa727b64223f6c5457877c6c939639d GIT binary patch literal 97 zcmZ?wbhEHb&!1E4^4&ClEzh)PmWxV3{9A~!gB2-%RL5bHcgg3Zp^!+W)H2^A_AxQuL literal 0 HcmV?d00001 diff --git a/theme/54/mobile/skin/qa/basic/img/icon_sound.gif b/theme/54/mobile/skin/qa/basic/img/icon_sound.gif new file mode 100644 index 0000000000000000000000000000000000000000..c5188318a5cdc394b984125c0ddd376c5f57bbe4 GIT binary patch literal 113 zcmZ?wbhEHbE1CJY$zMikVi`-#gIi|DbmsXBWf6U5szE@->A`0*`&<;b@XASRrB8=E6~=S>Pbm I%fes{0AXt-SpWb4 literal 0 HcmV?d00001 diff --git a/theme/54/mobile/skin/qa/basic/list.skin.php b/theme/54/mobile/skin/qa/basic/list.skin.php new file mode 100644 index 000000000..09fe7c0fd --- /dev/null +++ b/theme/54/mobile/skin/qa/basic/list.skin.php @@ -0,0 +1,151 @@ +', 0); +?> + +
    + + + + + + + + + + + +
    +
    + Total 건 + 페이지 +
    + + +
    + + +
    + + + + + +
    + + +
    + + +
    +
      + +
    • + +
      + + +
      + +
      + + + + +
      +
      + + + +
      답변완료' : ' 답변대기'); ?>
      + +
      +
    • + + + 게시물이 없습니다.'; } ?> +
    +
    + +
    + +
      +
    • +
    + + + +
    +
    +
    + + + + + + + + + +
    + 게시물 검색 + +
    + + + + +
    +
    + + + + + + \ No newline at end of file diff --git a/theme/54/mobile/skin/qa/basic/style.css b/theme/54/mobile/skin/qa/basic/style.css new file mode 100644 index 000000000..fb1255593 --- /dev/null +++ b/theme/54/mobile/skin/qa/basic/style.css @@ -0,0 +1,275 @@ +@charset "utf-8"; + +/* ### 기본 스타일 커스터마이징 시작 ### */ + +/* 게시판 버튼 */ +/* 목록 버튼 */ +#bo_list a.btn_b01 {} +#bo_list a.btn_b01:focus, #bo_list .btn_b01:hover {} +#bo_list a.btn_b02 {} +#bo_list a.btn_b02:focus, #bo_list .btn_b02:hover {} +#bo_list a.btn_admin {} /* 관리자 전용 버튼 */ +#bo_list a.btn_admin:focus, #bo_list a.btn_admin:hover {} + +/* 읽기 버튼 */ +#bo_v a.btn_b01 {} +#bo_v a.btn_b01:focus, #bo_v .btn_b01:hover {} +#bo_v a.btn_b02 {} +#bo_v a.btn_b02:focus, #bo_v .btn_b02:hover {} +#bo_v a.btn_admin {} /* 관리자 전용 버튼 */ +#bo_v a.btn_admin:focus, #bo_v a.btn_admin:hover {} + +/* 쓰기 버튼 */ +#bo_w .btn_confirm {} /* 서식단계 진행 */ +#bo_w .btn_submit {} +#bo_w .btn_cancel {} +#bo_w .btn_frmline {} /* 우편번호검색버튼 등 */ + +/* 읽기 내 테이블 */ +#bo_v .tbl_head01 {} +#bo_v .tbl_head01 caption {} +#bo_v .tbl_head01 thead th {} +#bo_v .tbl_head01 thead a {} +#bo_v .tbl_head01 thead th input {} /* middle 로 하면 게시판 읽기에서 목록 사용시 체크박스 라인 깨짐 */ +#bo_v .tbl_head01 tfoot th {} +#bo_v .tbl_head01 tfoot td {} +#bo_v .tbl_head01 tbody th {} +#bo_v .tbl_head01 td {} +#bo_v .tbl_head01 a {} +#bo_v td.empty_table {} + +/* 쓰기 테이블 */ +#bo_w table {} +#bo_w caption {} +#bo_w .frm_address {} +#bo_w .frm_file {} +#bo_w .frm_info {} + +#bo_w .tbl_frm01 {} +#bo_w .tbl_frm01 caption {} +#bo_w .tbl_frm01 th {} +#bo_w .tbl_frm01 td {} +#bo_w .tbl_frm01 textarea, #bo_w .frm_input {} +#bo_w .tbl_frm01 textarea {} +/* +#bo_w .tbl_frm01 #captcha {} +#bo_w .tbl_frm01 #captcha input {} +*/ +#bo_w .tbl_frm01 a {} + +#bo_w .required, #bo_w textarea.required {} + +/* ### 기본 스타일 커스터마이징 끝 ### */ + +/* 게시판 목록 */ +#bo_list #list_chk {padding:0 10px } + +#bo_list .li_stat{float:right;display:inline-block;height:25px;padding:0 10px;border-radius:15px;margin-top:3px} +#bo_list .txt_rdy{border:1px solid #ff63ab;color:#ff63ab;line-height:23px} +#bo_list .txt_done{background:#ff63ab;color:#fff;line-height:25px} + +#bo_list .li_title{display: block;font-weight: bold;margin: 5px 0;} +#bo_list .li_title strong{color: #3ca1ff !important;font-weight: normal;text-decoration: none;font-size: 0.92em;} +#bo_list .li_info{border-top: 1px solid #eee;margin: 10px 0 0;line-height: 28px;color: #666;position: relative;padding-top: 3px;} +#bo_list .li_info:after {display:block;visibility:hidden;clear:both;content:""}#bo_list .profile_img img{border-radius:50%;} +#bo_list .li_sbj{display: block;font-weight: bold;margin: 5px 0;font-size: 1.083em;} + +#bo_cate h2 {width:0;height:0;font-size:0;line-height:0;overflow:hidden} +#bo_cate ul {margin: 10px;padding-left:1px;zoom:1} +#bo_cate ul:after {display:block;visibility:hidden;clear:both;content:""} +#bo_cate li{display:inline-block;float:left;margin:3px 5px 3px 0} +#bo_cate a {display:block;line-height:24px;padding:0 10px;border-radius:13px;background:#fff;} +#bo_cate #bo_cate_on {background:#4162ff;color:#fff; +-webkit-box-shadow:0 0 5px rgba(65,98,255,0.8); +-moz-box-shadow:0 0 5px rgba(65,98,255,0.8); +box-shadow: 0 0 8px rgba(65,98,255,0.8);} + +/* 관리자일 때 */ +#bo_list_admin th label {position:absolute;font-size:0;line-height:0;overflow:hidden} + +#bo_list_admin th:nth-of-type(1) {width:40px} +#bo_list_admin th:nth-of-type(3) {width:100px} + +#bo_list_admin td:nth-of-type(1) {text-align:center} +#bo_list_admin td:nth-of-type(3) {text-align:center} + +/* 관리자가 아닐 때 */ +#bo_list th:nth-of-type(2) {width:100px} + +#bo_list td:nth-of-type(2) {text-align:center} + +/* 게시판 목록 공통 */ +.bo_fx {margin-bottom:5px;padding:5px 10px} +.bo_fx:after {display:block;visibility:hidden;clear:both;content:""} +.bo_fx ul {margin:0;padding:0;list-style:none} +#bo_list_total {float:left;padding:0;height:2.5em;line-height:2.5em} +.btn_bo_user {float:right;margin:0;padding:0;list-style:none} +.btn_bo_user li {float:left;margin-left:5px} +.btn_bo_adm {float:left} +.btn_bo_adm li {float:left;margin-right:5px} +.btn_bo_adm input {padding:0 10px;height:2em;border:1px solid #e8180c !important;background:#e8180c;color:#fff;text-decoration:none;vertical-align:middle;cursor:pointer;-webkit-appearance:none} +.bo_notice td {background:#f7f7f7} +.bo_notice td a {font-weight:bold} +.td_num strong {color:#000} +.bo_cate_link {display:inline-block;margin:0 3px 0 0;padding:0 6px 0 0;border-right:1px solid #e7f1ed;color:#999 !important;font-weight:bold;text-decoration:none} /* 글제목줄 분류스타일 */ +.bo_current {color:#e8180c} +.td_subject img {margin-left:3px} +#bo_list .cnt_cmt {display:inline-block;margin:0 0 0 3px;font-weight:bold} + +#bo_sch {margin-bottom:10px;padding-top:5px;text-align:center} +#bo_sch .btn_submit{width:40px;height:40px} + + +/* 게시판 쓰기 */ +#bo_w #wr_email, #bo_w #wr_homepage, #bo_w #wr_subject {width:100%} + +#char_count_desc {display:block;margin:0 0 5px;padding:0} +#char_count_wrp {margin:5px 0 0;text-align:right} +#char_count {font-weight:bold} + +#qa_subject {width:100%} + +/* 게시판 읽기 */ +#bo_v {margin-bottom:15px;padding-bottom:15px} +#bo_v .bo_v_wr{background:#fff;margin:10px;border-radius:5px;padding:15px; +-webkit-box-shadow: 0 1px 4px #cbd1df; +-moz-box-shadow: 0 1px 4px #cbd1df; +box-shadow: 0 1px 4px #cbd1df;} + +#bo_v_table {margin:0 0 5px;padding:0 10px;color:#999;font-size:0.9em;font-weight:bold} + +#bo_v_title {padding:0 0 10px;font-size:1.2em} +#bo_v_title span{display:block;font-size:11px;color:#4162ff} + +#bo_v_info {padding:0 0 10px;border-bottom:1px solid #eee;position:relative;} +#bo_v_info h2 {position:absolute;font-size:0;text-indent:-9999em;line-height:0;overflow:hidden} +#bo_v_info strong {display:inline-block;margin:0 ;font-weight:normal} +#bo_v_info .info_date{position:absolute;top:0;right:0;color:#777} +#bo_v_info .profile_img img{border-radius:50%} + +#bo_v_file {} +#bo_v_file h2 {position:absolute;font-size:0;text-indent:-9999em;line-height:0;overflow:hidden} +#bo_v_file ul {margin:0;padding:0;list-style:none} +#bo_v_file li {padding:0 10px;border-bottom:1px solid #eee;background:#f7f7f7} +#bo_v_file a {display:inline-block;padding:5px 0;color:#000;text-decoration:none} +#bo_v_file a:focus, #bo_v_file a:hover, #bo_v_file a:active {text-decoration:none} +.bo_v_file_cnt {display:inline-block;margin:0 10px} + +#bo_v_link {} +#bo_v_link h2 {position:absolute;font-size:0;text-indent:-9999em;line-height:0;overflow:hidden} +#bo_v_link ul {margin:0;padding:0;list-style:none} +#bo_v_link li {padding:0 10px;border-bottom:1px solid #eee;background:#f7f7f7} +#bo_v_link a {display:inline-block;padding:5px 0;color:#000;text-decoration:none} +#bo_v_link a:focus, #bo_v_link a:hover, #bo_v_link a:active {text-decoration:none} +.bo_v_link_cnt {display:inline-block;margin:0 10px} + +#bo_v_contact {border-bottom:1px solid #eee} +#bo_v_contact h2 {position:absolute;font-size:0;text-indent:-9999em;line-height:0;overflow:hidden} +#bo_v_contact dl {margin:0;padding:5px 0;color:#666;list-style:none} +#bo_v_contact dl:after {display:block;visibility:hidden;clear:both;content:""} +#bo_v_contact dt, #bo_v_contact dd {float:left;margin:0} +#bo_v_contact dt {clear:both;padding:3px 0 ;width:30px;text-align:center;font-weight:bold} +#bo_v_contact dd {padding:3px 0;width:80%} + +#bo_v_top {margin:0 0 10px;padding:10px} +#bo_v_top:after {display:block;visibility:hidden;clear:both;content:""} +#bo_v_top h2 {position:absolute;font-size:0;text-indent:-9999em;line-height:0;overflow:hidden} +#bo_v_top ul {margin:0;padding:0;list-style:none} + +#bo_v_bot {padding:0 10px} +#bo_v_bot:after {display:block;visibility:hidden;clear:both;content:""} +#bo_v_bot h2 {position:absolute;font-size:0;text-indent:-9999em;line-height:0;overflow:hidden} +#bo_v_bot ul {margin:0;padding:0;list-style:none} + +.bo_v_nb {float:left} +.bo_v_nb li {float:left;margin-right:5px} +.bo_v_com {float:right} +.bo_v_com li {float:left;margin-left:5px} + +#bo_v_atc {padding:10px 0;min-height:100px} +#bo_v_atc_title {margin:0;padding:0;height:0;overflow:hidden} + +#bo_v_img {margin:0 0 10px;width:100%;overflow:hidden;zoom:1} +#bo_v_img:after {display:block;visibility:hidden;clear:both;content:""} +#bo_v_img img {margin-bottom:15px;max-width:100%;height:auto} + +#bo_v_con {margin-bottom:20px;width:100%;line-height:1.7em;word-break:break-all;overflow:hidden} +#bo_v_con a {color:#000;text-decoration:underline} +#bo_v_con img {max-width:100%;height:auto} + +#bo_v_act {margin-bottom:20px;text-align:center} +#bo_v_act a {margin-right:5px;vertical-align:top} +#bo_v_act span {display:inline-block;margin-right:5px;padding:0 10px;border:1px solid #eee !important;background:#fafafa !important;color:#000 !important;text-decoration:none !important;line-height:2em;vertical-align:top} +#bo_v_act strong {color:#ff3061} +#bo_v_act_good, #bo_v_act_nogood {display:inline-block;width:1px;height:1px;font-size:0;line-height:0;overflow:hidden} + +#bo_v_sns {margin:0 0 20px;padding:0;list-style:none;zoom:1} +#bo_v_sns:after {display:block;visibility:hidden;clear:both;content:""} +#bo_v_sns li {float:left;margin:0 5px 0 0} + +#bo_v_addq {margin:0 0 30px;text-align:right} + +#bo_v_ans {} +#bo_v_ans h2 {font-size:1.2em;margin:10px} +#bo_v_ans h2 span{display:block} +#bo_v_ans h2 .tit_rpl{display:inline-block;font-size:11px;padding:0 5px;line-height:23px;font-weight:normal;background:#646982;color:#fff;} +#bo_v_ans #ans_datetime {padding:5px 0 10px;border-bottom:1px solid #eee;color:#777} +#bo_v_ans #ans_con {margin:10px 0 ;line-height:1.8em} +#bo_v_ans #ans_con img{max-width:100%;height:auto} +#bo_v_ans #ans_add {text-align:right} +#bo_v_ans #ans_msg {padding:40px 0;background:#f2f5f9;text-align:center} +#bo_v_ans .btn_submit{width:100%;height:40px;border-radius:5px} +#bo_v_ans .btn_confirm{margin:0 10px} + +#bo_v_rel {} +#bo_v_rel h2 {margin:0 10px 10px;font-size:1.2em} +#bo_v_rel .li_stat{float:right;display:inline-block;height:25px;padding:0 10px;border-radius:15px;margin-top:3px} +#bo_v_rel .txt_rdy{border:1px solid #ff63ab;color:#ff63ab;line-height:23px} +#bo_v_rel .txt_done{background:#ff63ab;color:#fff;line-height:25px} + +#bo_v_rel .li_title{display: block;font-weight: bold;margin: 5px 0;} +#bo_v_rel .li_title strong{color: #3ca1ff !important;font-weight: normal;text-decoration: none;font-size: 0.92em;} +#bo_v_rel .li_info{border-top: 1px solid #eee;margin: 10px 0 0;line-height: 28px;color: #666;position: relative;padding-top: 3px;} +#bo_v_rel .li_info:after {display:block;visibility:hidden;clear:both;content:""}#bo_list .profile_img img{border-radius:50%;} +#bo_v_rel .li_sbj{display: block;font-weight: bold;margin: 5px 0;font-size: 1.083em;} + + + +/* 게시판 댓글 */ +#bo_vc {margin:0 0 5px;padding:15px 15px 5px;border-top:1px solid #cfded8;border-bottom:1px solid #cfded8;background:#f7f7f7} +#bo_vc h2 {margin-bottom:5px} +#bo_vc article {padding:0 0 5px;border-top:1px dotted #ccc} +#bo_vc header {position:relative;padding:13px 0 5px} +#bo_vc header .icon_reply {position:absolute;top:13px;left:-20px} +#bo_vc .sv_member, #bo_vc .sv_guest {font-weight:bold} +.bo_vc_hdinfo {display:inline-block;margin:0 10px 0 5px} +#bo_vc h1 {width:0;height:0;font-size:0;line-height:0;overflow:hidden} +#bo_vc a {color:#000;text-decoration:none} +#bo_vc p {padding:0 0 5px;line-height:1.8em} +#bo_vc p a {text-decoration:underline} +#bo_vc_empty {margin:0;padding:15px !important;border-bottom:1px dotted #ccc;text-align:center} +#bo_vc fieldset {margin:0 0 10px;padding:0} +#bo_vc #bo_vc_winfo {float:left} +#bo_vc footer {zoom:1} +#bo_vc footer:after {display:block;visibility:hidden;clear:both;content:""} + +.bo_vc_act {float:right;margin:0;list-style:none} +.bo_vc_act:after {display:block;visibility:hidden;clear:both;content:""} +.bo_vc_act li {float:left;margin-left:5px} + +#bo_vc_w {position:relative;margin-bottom:10px;padding:0 15px 15px;border-bottom:1px solid #cfded8} +#bo_vc_w h2 {padding:10px 0 5px} +#bo_vc_w #char_cnt {display:block;margin-bottom:5px} +#bo_vc_w textarea {width:99%} + +#bo_vc_sns {margin:0;padding:0;list-style:none;zoom:1} +#bo_vc_sns:after {display:block;visibility:hidden;clear:both;content:""} +#bo_vc_sns li {float:left;margin:0 10px 0 0} +#bo_vc_sns input {margin:0 0 0 5px} + +#bo_vc form {padding:0} + +#bo_w .bo_w_flie .lb_icon{position:absolute;top:0px;left:0px;border-radius:3px 0 0 3px;height:38px;line-height:38px;width:40px;background:#eee;text-align:center} +#bo_w .bo_w_flie .frm_file{padding-left:50px;} +#bo_w .bo_w_flie .file_wr{border:1px solid #ccc;background:#fff;color:#000;vertical-align:middle;border-radius:3px;padding:5px;height:40px;margin:0} +#bo_w .bo_w_flie .frm_input{margin:5px 0 0 } diff --git a/theme/54/mobile/skin/qa/basic/view.answer.skin.php b/theme/54/mobile/skin/qa/basic/view.answer.skin.php new file mode 100644 index 000000000..b1bc9ac61 --- /dev/null +++ b/theme/54/mobile/skin/qa/basic/view.answer.skin.php @@ -0,0 +1,25 @@ + + +
    +

    답변

    + +
    + +
    +
    + +
    + + +
    \ No newline at end of file diff --git a/theme/54/mobile/skin/qa/basic/view.answerform.skin.php b/theme/54/mobile/skin/qa/basic/view.answerform.skin.php new file mode 100644 index 000000000..3eea2b9e4 --- /dev/null +++ b/theme/54/mobile/skin/qa/basic/view.answerform.skin.php @@ -0,0 +1,121 @@ + + +
    + +

    답변등록

    + +
    + + + + + + '; + } else { + $option .= "\n".''."\n".''; + } + + echo $option_hidden; + ?> + +
    +
      + +
    • + 옵션 + +
    • + +
    • + + +
    • +
    • + + +
    • +
    +
    + +
    + +
    +
    + + + +

    고객님의 문의에 대한 답변을 준비 중입니다.

    + +
    \ No newline at end of file diff --git a/theme/54/mobile/skin/qa/basic/view.skin.php b/theme/54/mobile/skin/qa/basic/view.skin.php new file mode 100644 index 000000000..c0c5bec20 --- /dev/null +++ b/theme/54/mobile/skin/qa/basic/view.skin.php @@ -0,0 +1,182 @@ +', 0); +?> + + + + + +
    +
    +
    +

    + + +

    +
    +
    +

    페이지 정보

    + 작성자 + 작성일 +
    + + +
    +

    연락처정보

    +
    + +
    이메일
    +
    + + +
    휴대폰
    +
    + +
    +
    + + +
    +

    본문

    + + \n"; + + for ($i=0; $i<$view['img_count']; $i++) { + //echo $view['img_file'][$i]; + echo get_view_thumbnail($view['img_file'][$i], $qaconfig['qa_image_width']); + } + + echo "
    \n"; + } + ?> + + +
    + + + + + + + + + +
    +

    첨부파일

    + +
    + + + + + +
    + + +
    + +
    + +
    + + + + + + + +
    + + + + + +
    +

    연관질문

    + +
    + +
      + +
    • +
      + + + + + +
      +
      + + +
      +
    • + +
    +
    +
    + + + + + + + + \ No newline at end of file diff --git a/theme/54/mobile/skin/qa/basic/write.skin.php b/theme/54/mobile/skin/qa/basic/write.skin.php new file mode 100644 index 000000000..3d19ca931 --- /dev/null +++ b/theme/54/mobile/skin/qa/basic/write.skin.php @@ -0,0 +1,174 @@ +', 0); +?> + +
    + +
    + + + + + + '; + } else { + $option .= "\n".''."\n".''; + } + + echo $option_hidden; + ?> + +
    +
      + +
    • + + +
    • + + + +
    • + 옵션 + +
    • + + + +
    • + + class="frm_input full_input email" maxlength="100" placeholder="이메일"> + > + +
    • + + + +
    • + + class="frm_input full_input" size="30" placeholder="휴대폰"> + + > 답변등록 SMS알림 수신 + +
    • + + +
    • + + +
    • + +
    • + +
      + +
      +
    • + +
    • +
      + 파일 #1 + + + + +
      +
    • + +
    • +
      + 파일 #2 + + + + +
      +
    • + +
    +
    + +
    + 목록 + +
    +
    + + +
    + \ No newline at end of file diff --git a/theme/54/mobile/skin/search/basic/search.skin.php b/theme/54/mobile/skin/search/basic/search.skin.php new file mode 100644 index 000000000..d4229ec77 --- /dev/null +++ b/theme/54/mobile/skin/search/basic/search.skin.php @@ -0,0 +1,147 @@ +', 0); +?> + +
    + +
    + 상세검색 +
    + + + + + + + + + + + +
    +
    + id="sop_or" name="sop"> + + id="sop_and" name="sop"> + +
    +
    +
    + +
    + + +
    +

    전체검색 결과

    +
    +
    게시판
    +
    개
    +
    게시물
    +
    개
    +
    +

    / 페이지 열람 중

    +
    + + + + + +
    검색된 자료가 하나도 없습니다.
    + + +
    +
    +
    + +

    게시판 내 결과

    +
      + 댓글 '; + $comment_href = '#c_'.$list[$idx][$i]['wr_id']; + } + else + { + $comment_def = ''; + $comment_href = ''; + } + ?> +
    • +
      + + 새창 +
      +

      +
      + + +
      +
    • + +
    + + +
    + + +
    +
    + + + +
    diff --git a/theme/54/mobile/skin/search/basic/style.css b/theme/54/mobile/skin/search/basic/style.css new file mode 100644 index 000000000..3206a7506 --- /dev/null +++ b/theme/54/mobile/skin/search/basic/style.css @@ -0,0 +1,43 @@ +@charset "utf-8"; +/* 전체검색결과 스킨 */ +#sch_res_detail {margin:10px;text-align:center} +#sch_res_detail legend {position:absolute;font-size:0;line-height:0;overflow:hidden} +#sch_res_detail .sch_wr {position:relative;border:1px solid #bdc2d8;background:#fff;margin:0 0 5px} +#sch_res_detail select{width:50%;float:left;height:40px;border:0} +#sch_res_detail #sfl{border-left:1px solid #e2e2e2;} +#sch_res_detail .frm_input {position:relative;width:100%;border:0;border-top:1px solid #e2e2e2;border-radius:0;clear:both} +#sch_res_detail .btn_submit{position:absolute;bottom:0;right:0;width:40px;height:40px;background:none;color:#000;font-size:15px} + +#sch_res_ov {margin: 10px;padding:20px;background:#e4e4e4;text-align:center;zoom:1} +#sch_res_ov:after {display:block;visibility:hidden;clear:both;content:""} +#sch_res_ov h2 {font-size:1.25em;margin:0 0 5px} +#sch_res_ov dl {margin:0 0 5px;display:inline-block;;zoom:1} +#sch_res_ov dt {display:inline-block} +#sch_res_ov dd {display:inline-block;margin:0 2px 0 5px} +#sch_res_ov p {margin:0;padding:0;color:#666;font-size:0.92em} + +#sch_res_board {margin: 10px;padding-left:1px;zoom:1} +#sch_res_board:after {display:block;visibility:hidden;clear:both;content:""} +#sch_res_board li {display:inline-block;float:left;margin:3px 5px 3px 0} +#sch_res_board a {display:block;line-height:24px;border-radius:13px;padding:0 10px;background:#fff} +#sch_res_board .sch_on {background:#4162ff;color:#fff; +-webkit-box-shadow:0 0 5px rgba(65,98,255,0.8); +-moz-box-shadow:0 0 5px rgba(65,98,255,0.8); +box-shadow: 0 0 8px rgba(65,98,255,0.8);} + + +.sch_res_list {margin:0 0 10px;padding:10px 0} +.sch_res_list h2 {margin:0 0 10px;font-size:1.083m} +.sch_res_list ul {margin:0;padding:0;list-style:none} +.sch_res_list li {margin:0 0 10px;padding:0 10px 10px;border-bottom:1px solid #e9e9e9} +.sch_res_list a {text-decoration:none} +.sch_res_title {display:block;font-weight:bold;padding:10px 0;padding-right:30px;position:relative} +.sch_res_info{line-height:28px;border-top:1px solid #eee;padding:3px 0 0;margin: 10px 0 0;color:#666 } +.sch_res_info:after {display:block;visibility:hidden;clear:both;content:""} +.sch_res_new{position:absolute;top:10px;right:0;font-size:0.92em;color:#777;width:20px;height:20px;line-height:20px;display:block;background:#eee;text-align:center} +.sch_res_list p {margin:0 0 10px;line-height:1.4em;color:#777;font-size:0.92em} +.sch_more {padding:0 0 30px;font-size:0.92em;text-align:right } +.sch_more a{;color:#f2664f} +.sch_more i{font-size:13px} +.sch_datetime{float:right;font-style:italic} +.sch_res_info .profile_img img{border-radius:50%} \ No newline at end of file diff --git a/theme/54/mobile/skin/visit/basic/style.css b/theme/54/mobile/skin/visit/basic/style.css new file mode 100644 index 000000000..26ee1ad6e --- /dev/null +++ b/theme/54/mobile/skin/visit/basic/style.css @@ -0,0 +1,15 @@ +@charset "utf-8"; + +#visit {margin:30px 10px} +#visit h2 {display:inline-block;background: #4162ff;color: #fff;border-radius: 13px;line-height: 24px;padding: 0 10px;margin:0 0 10px; +-webkit-box-shadow: 0 0 5px rgba(65,98,255,0.8); +-moz-box-shadow: 0 0 5px rgba(65,98,255,0.8); +box-shadow: 0 0 8px rgba(65,98,255,0.8); } +#visit dl{background:#fff;padding:10px;border-radius:3px;line-height:20px; +-webkit-box-shadow: 0 1px 4px #cbd1df; + -moz-box-shadow: 0 1px 4px #cbd1df; + box-shadow: 0 1px 4px #cbd1df;} +#visit dl:after {display:block;visibility:hidden;clear:both;content:""} +#visit dt {float:left;width:50%} +#visit dd {float:left;width:50%;text-align:right} +#visit a {display:inline-block;padding:10px 3px;text-decoration:none} \ No newline at end of file diff --git a/theme/54/mobile/skin/visit/basic/visit.skin.php b/theme/54/mobile/skin/visit/basic/visit.skin.php new file mode 100644 index 000000000..3e4bf3430 --- /dev/null +++ b/theme/54/mobile/skin/visit/basic/visit.skin.php @@ -0,0 +1,23 @@ +', 0); +?> + + diff --git a/theme/54/mobile/tail.php b/theme/54/mobile/tail.php new file mode 100644 index 000000000..547b52676 --- /dev/null +++ b/theme/54/mobile/tail.php @@ -0,0 +1,70 @@ + + + + + + + + + + +
    +
    + + Copyright © 소유하신 도메인. All rights reserved.
    +
    + + + PC 버전으로 보기 + +
    + + + + + + \ No newline at end of file diff --git a/theme/54/readme.txt b/theme/54/readme.txt new file mode 100644 index 000000000..9517c16b5 --- /dev/null +++ b/theme/54/readme.txt @@ -0,0 +1,8 @@ +Theme Name: 베이직 +Theme URI: http://theme.sir.kr/gnuboard5/demo/basic +Maker: SIR +Maker URI: http://sir.kr +Version: 1.0.0 +Detail: 베이직 테마는 SIR에서 제공하는 그누보드5 테마입니다. 베이직 테마는 웹표준 및 접근성을 준수합니다. +License: GNU LESSER GENERAL PUBLIC LICENSE Version 2.1 +License URI: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html \ No newline at end of file diff --git a/theme/54/screenshot.png b/theme/54/screenshot.png new file mode 100644 index 0000000000000000000000000000000000000000..249f4c1345579f491530ed520a52937ea0b4969c GIT binary patch literal 36358 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 LNkvXXu0mjfdfJMW literal 0 HcmV?d00001 diff --git a/theme/54/skin/board/basic/img/btn_close.gif b/theme/54/skin/board/basic/img/btn_close.gif new file mode 100644 index 0000000000000000000000000000000000000000..040b180ac6584ae612ef2886487110f0ad079963 GIT binary patch literal 211 zcmZ?wbhEHbC>lw|Nj2|^XJd+Ki|K7yLIc<@85r}UAy+@_wT|Ns9P2m!^PEMO%%AQEIJ18abSL2rs@7wgh> zI-xzeYYr882T$7a>~-(!J@=MOy}Z$ltNl`73Cq0Bi3wIGB-b=ECVhGFY*&ANIg94( d^Unm859R4|2rw-)wA%9i`(c-qSMQw}tN}eeW+eas literal 0 HcmV?d00001 diff --git a/theme/54/skin/board/basic/img/btn_next2.gif b/theme/54/skin/board/basic/img/btn_next2.gif new file mode 100644 index 0000000000000000000000000000000000000000..9ec94650a55df093e69afc30b366af38f10d4166 GIT binary patch literal 1898 zcmZ?wbhEHb^nUk#C56lsTcvPQUjyF)=hTc$kE){7;3~h6MhI|Z8xtBTx$+|-gp zg^Jvqyke^gTcyO5{G?PXAR8pCucQE0Qj%?}vtM~P_^2{qPNz6-5^>ndS0-B(gnVDi`U})iN>1b)}>f&r-Xy|I@WZ-D*;%4aP z;$~!EX<}gv)9aF-T$-DjR|3v4~Pj*wm=R%;iu*SQ+p9GSu_6s_xI25Uq63* z|MvCE=T9F$ynpxh&Ffb$Up#;I^vUB#4%#K*+RD$;tWu|G(mY?g-xi1((E!Y#3Q(W~w5=#5%__*n4QdyVXRDM^Qc_^0uU}qXu2*iX zmtT~wZ)j<02{OaTNEfI=x41H|B(Xv_uUHvof=g;~a#3bMNoIbY0?5R~r2NtnTP2`N zAzsKW@b!fooL8&|_K;q3ey)B+Vu8M)o`HUDF34YC)x{-2sR(CaRb3oXS&*t9lvsNTp{2Q{sk4i#fw7aJnUSH3Im`@fdL5nIoGnev9bH|VjSUT5&74duEnJ-~ zOpVN(UCd1koMC!B^NLFn^O93x_GSX@h3d7$tJli8C^fMpzbGU>KL?fq0y6ST@{2R_ z3lyA#%@j1kGxJjN%ZoKZ(F5_VOKMSOS!#+~QGTuhIDD-#vDj~HQ=>r|34@w+Ji3KJEOo1RKJm~{D@XV8%2h1@=z^uXe z|KHy~zkmJw@%`J^FP}es{P6zW+c&RYy?pWf+0!SFA3c0<|K8m@w{P9NasArWE0-@_ zym0>9*)yk4ojh^;*wG`04;?(Pf8X9cyLau}v3=XtEt@xO+^~M#+BK_Jtz5Bu+0rG8 z7cE>cf8N|VvuDkmF@4(9DU&BnoY3Fb+tc0E+0owC+S1(A*ic_rTT@+CSy5hAT2fq8 zSdgEWo0FZDnUS8Bnv$H9m=GTq8xtKB84(^98WJ277~t>c>*MX^>EZ4Mj8G>>2YWkP z8*3{|3v)A56JsMo1ARSR9c?X54RtkD6=fww1$jAH8EGj=32`w|5n&-g0e(JS9&Rp9 z4t6$H7G@?!1_s5SEI^WxL5BedKqU_YlSEH`1N*MMOf`JI(UE@9?*BYxf5e7lM6ohh F0{~W;oRI(k literal 0 HcmV?d00001 diff --git a/theme/54/skin/board/basic/img/close_btn.png b/theme/54/skin/board/basic/img/close_btn.png new file mode 100644 index 0000000000000000000000000000000000000000..50e9f26efe0886d2b17fb435f1a1f2ca5398ab31 GIT binary patch literal 1147 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 qkCV?y5r00009a7bBm000XU z000XU0RWnu7ytkYPiaF#P*7-ZbZ>KLZ*U+IBfRsybQWXdwQbLP>6pAqfylh#{fb6;Z(vMMVS~$e@S=j*ftg6;Uhf59&ghTmgWD0l;*T zI709Y^p6lP1rIRMx#05C~cW=H_Aw*bJ-5DT&Z2n+x)QHX^p z00esgV8|mQcmRZ%02D^@S3L16t`O%c004NIvOKvYIYoh62rY33S640`D9%Y2D-rV&neh&#Q1i z007~1e$oCcFS8neI|hJl{-P!B1ZZ9hpmq0)X0i`JwE&>$+E?>%_LC6RbVIkUx0b+_+BaR3cnT7Zv!AJxW zizFb)h!jyGOOZ85F;a?DAXP{m@;!0_IfqH8(HlgRxt7s3}k3K`kFu>>-2Q$QMFfPW!La{h336o>X zu_CMttHv6zR;&ZNiS=X8v3CR#fknUxHUxJ0uoBa_M6WNWeqIg~6QE69c9o#eyhGvpiOA@W-aonk<7r1(?fC{oI5N*U!4 zfg=2N-7=cNnjjOr{yriy6mMFgG#l znCF=fnQv8CDz++o6_Lscl}eQ+l^ZHARH>?_s@|##Rr6KLRFA1%Q+=*RRWnoLsR`7U zt5vFIcfW3@?wFpwUVxrVZ>QdQz32KIeJ}k~{cZZE^+ya? z2D1z#2HOnI7(B%_ac?{wFUQ;QQA1tBKtrWrm0_3Rgps+?Jfqb{jYbcQX~taRB;#$y zZN{S}1|}gUOHJxc?wV3fxuz+mJ4`!F$IZ;mqRrNsHJd##*D~ju=bP7?-?v~|cv>vB zsJ6IeNwVZxrdjT`yl#bBIa#GxRa#xMMy;K#CDyyGyQdMSxlWT#tDe?p!?5wT$+oGt z8L;Kp2HUQ-ZMJ=3XJQv;x5ci*?vuTfeY$;({XGW_huIFR9a(?@3)XSs8O^N5RyOM=TTmp(3=8^+zpz2r)C z^>JO{deZfso3oq3?Wo(Y?l$ge?uXo;%ru`Vo>?<<(8I_>;8Eq#KMS9gFl*neeosSB zfoHYnBQIkwkyowPu(zdms`p{<7e4kra-ZWq<2*OsGTvEV%s0Td$hXT+!*8Bnh2KMe zBmZRodjHV?r+_5^X9J0WL4jKW`}lf%A-|44I@@LTvf1rHjG(ze6+w@Jt%Bvjts!X0 z?2xS?_ve_-kiKB_KiJlZ$9G`c^=E@oNG)mWWaNo-3TIW8)$Hg0Ub-~8?KhvJ>$ z3*&nim@mj(aCxE5!t{lw7O5^0EIO7zOo&c6l<+|iDySBWCGrz@C5{St!X3hAA}`T4 z(TLbXTq+(;@<=L8dXnssyft|w#WSTW<++3>sgS%(4NTpeI-VAqb|7ssJvzNHgOZVu zaYCvgO_R1~>SyL=cFU|~g|hy|Zi}}s9+d~lYqOB71z9Z$wnC=pR9Yz4DhIM>Wmjgu z&56o6maCpC&F##y%G;1PobR9i?GnNg;gYtchD%p19a!eQtZF&3JaKv33gZ<8D~47E ztUS1iwkmDaPpj=$m#%)jCVEY4fnLGNg2A-`YwHVD3gv};>)hAvT~AmqS>Lr``i7kw zJ{5_It`yrBmlc25DBO7E8;5VoznR>Ww5hAaxn$2~(q`%A-YuS64wkBy=9dm`4cXeX z4c}I@?e+FW+b@^RDBHV(wnMq2zdX3SWv9u`%{xC-q*U}&`cyXV(%rRT*Z6MH?i+i& z_B8C(+grT%{XWUQ+f@NoP1R=AW&26{v-dx)iK^-Nmiuj8txj!m?Z*Ss1N{dh4z}01 z)YTo*JycSU)+_5r4#yw9{+;i4Ee$peRgIj+;v;ZGdF1K$3E%e~4LaI(jC-u%2h$&R z9cLXcYC@Xwnns&bn)_Q~Te?roKGD|d-g^8;+aC{{G(1^(O7m37Y1-+6)01cN&y1aw zoqc{T`P^XJqPBbIW6s}d4{z_f5Om?vMgNQEJG?v2T=KYd^0M3I6IZxbny)%vZR&LD zJpPl@Psh8QyPB@KTx+@RdcC!KX7}kEo;S|j^u2lU7XQ}Oo;f|;z4Ll+_r>@1-xl3| zawq-H%e&ckC+@AhPrP6BKT#_XdT7&;F71j}Joy zkC~6lh7E@6o;W@^IpRNZ{ptLtL(gQ-CY~4mqW;US7Zxvm_|@yz&e53Bp_lTPlfP|z zrTyx_>lv@x#=^!PzR7qqF<$gm`|ZJZ+;<)Cqu&ot2z=0000WV@Og>004R=004l4008;_004mL004C`008P>0026e000+nl3&F} z0003MNkl8F|0W|#Y}=ChOmyeKPGoz z9>oMBSj9?{6I8LB3sBL#RUlU<(2IP$^MRoigIRL6Knt$05qJ$ZNU(@o^rRD#Oo4AK z;VkeDF7bu^;6MIW05((alW@2XvFm=J{U0K>*Cr@q0nhkI5lZ3EAM37JTjZ1z%;5lA znGT9lzF%Vm*t!x{6m_R4aF`E+m4%H-eRTr5KV>k-+Un8N^=nk@% sHXdv1!h1bZu7T1|7{xUn>Jfeh02WO-Ud}{VSO5S307*qoM6N<$f;@Gin*aa+ literal 0 HcmV?d00001 diff --git a/theme/54/skin/board/basic/img/icon_file.gif b/theme/54/skin/board/basic/img/icon_file.gif new file mode 100644 index 0000000000000000000000000000000000000000..244af004d50b31239c1f480bb0fc3df177333285 GIT binary patch literal 197 zcmZ?wbhEHbC>k_efsqC=g;fbt^4xj%d%z5mM&eoe*OCY|Nk=(0Th3-FfuR*Gw6WSg6w2qb$X!U z$Hc&q>@{nJ*0kkTEC-YHz8FZQ@k?m79C_~0!PRq;F{w*Nt%pfLL5hQAm*)W&QCq3S Ux{8k4(}h`B4?g#9XJD`f08N@mPXGV_ literal 0 HcmV?d00001 diff --git a/theme/54/skin/board/basic/img/icon_good.png b/theme/54/skin/board/basic/img/icon_good.png new file mode 100644 index 0000000000000000000000000000000000000000..69841a1340a76f2b4bfeb4a3a9e74b8a5846fe43 GIT binary patch literal 1288 zcmbVMZA{!`9Pfq1I3`QxTc&=n7KtP5t}l1(T`MO!+PiVnyJN>0&WwBEfC(!}ei*Fj>^OWDGN(0*8Je`(V?j z&)fg^`@eUnIk~f{^3h5JL8{_SLK@Cn-Er?d@cXp7a|uq5*wL)rqUY?QXaXc6>m2}% zt70ce15xgM@jR$Ukcym=$=cb(bDX5BKGBu&IjRBC2vXnR7@|}FHrfF?6)lWipZo$t z6*-Kx(g`AA@F1@=^_ifhFPV}03KA=04bPzU4hIQTV2h}uc54>rgs~M~4zAr}979(` z>_Qk@H7c8EMtR)?DDCrmC4wYThVhXBnqkNtC`FJIPQaJ(k^zopI4X#)Js8wx$~i7A z#MX4dT^P&Tw!z_eu~_sK{XX67#7UNAT@H%!LJ6PKqSU6p#T#VSU*WdnGnnRSt=SMLm@vyM))!|u35IINuaD(fqK`l z^j)zWZvxTQ&5W*hmn)z-uiLtn*A0|!VbJZZiYDtttJY1=s<#3#m6w1VGj$bRi7%&Y zpx;mNQ3?*CG0Ly_%|{4!*b2hKZZ{{_(Jop+76y-KXW$q_Xo-O%a=aC`cZ1WboBP*_w2RP7iz}1 zV^=nX_v6!qt#o-lU7Q+y{Qf8J%TJ%W{NCIhGTuZlyfwY$jBz-(>G0xL74Q7;`q;^^ zlKIAaa(kr{`;g;i@Po#IUir7dns1#{!}Otrh64j_??1->a;J+Je0g$qPisy6$NN4T zPqw!SQ$&}fX;VWZBX4r0V*ku*{d+e*Fwy!--PpjXRQ0HnPcMv*{Q2;5^>P0CkA>4u zBtqvLvG3W^1y4>o7}`fC^aW*U8M$=p`LEtQ*YwDiOn)&_i-FLfo-m9wo z`|J0u%&d1icYVEm_r>BxZ?|rFGGXHDwQFCm-*CUS=J$v9pH827v1swLIkVqv-S&FT znm60GKA$`H`~63^^YZTG=H0KWebV3eV)0@i<6e3B&6LzPTeklF^XuipMep|=`2YVu z17$$*CkrD3gBF7h$QY2H7}#PQLY*8Z>1a(npuSj&!C+2M$D^Au49rIzmu_NUkbT$K z@N|_DYcbb>j2Wy<#m#{VN6yADE^Oe)_z)w+$e|_7pjN@jAe_d}prOvK#K7Mmz^JUi QD9{kY$HvB2;mBYO0LU4C3IG5A literal 0 HcmV?d00001 diff --git a/theme/54/skin/board/basic/img/icon_img.gif b/theme/54/skin/board/basic/img/icon_img.gif new file mode 100644 index 0000000000000000000000000000000000000000..3ba495d054fa6588116e03c4fd4f38d58400b153 GIT binary patch literal 317 zcmZ?wbhEHbe)HzdzkmOpK7G1o&6@rD_kZ~C z0Z6`l`EvdG^($7a`10k;@87>SZ{B?6%9V{9H=a0gV&A@fKwYO#pT2+p{)-ncfKov2 zr%#`N;f!KYsiGiW~)lhIr>|74(23<(<=9yw$9#m#@ra2-+bRv!3%fd0dBQ?f)ODm;T_l^Ed4xq>LVCj3 U#2LJNXZi*?xy@tnaAdFs0Qg;*ivR!s literal 0 HcmV?d00001 diff --git a/theme/54/skin/board/basic/img/icon_link.gif b/theme/54/skin/board/basic/img/icon_link.gif new file mode 100644 index 0000000000000000000000000000000000000000..e9cb9559c9cd08a6f51993518a17dab128b82916 GIT binary patch literal 319 zcmZ?wbhEHbKCQw{PFXi4*tl-~Zypi#>bx zoH=vm#*G`BH*daj<;uHv@4kQkzG~H~FJHdAeEIUtn>R;~9_{Mtx_0f_nl)?Ity_2O z*s&i!ek@+Rc+|z@W*X12PHZCkD2d15*k#mgtxrdBSj@My2(%!y%Ri725^|MOH?MNed6V zWH4B?bq0De3MeqNK4dLOaQFC-7{bsIBBkKW&mha9!6PH#$(QSt&+Vx$CMmB}=`ZBN Q!0YeKBE>UT(~-d%0A})n?*IS* literal 0 HcmV?d00001 diff --git a/theme/54/skin/board/basic/img/icon_lock.png b/theme/54/skin/board/basic/img/icon_lock.png new file mode 100644 index 0000000000000000000000000000000000000000..2a083a51d9aa7f27a9a379bee2c49d2ca9cc96c6 GIT binary patch literal 1225 zcmbVMOKjU@9CwqjReiHb2qr;4xm2{$;%Dr{rs(5WiB{UD9aj5$M`YxQgL!;>dU#a?KyY4qt7h+l6u0fDD)j3## zs=j>g3pjyc(YjHo`qjcIQL{}#4P}VHbPyWDCXNM;sx3et)Zm<9rSUr--N1pNr}0^? zKouMb&KuJ!E-bIiRJ4@^P0;aUlVBnc5rGMP6$EC(^28vGw|GUg4v$G3v_$-cG`?$8 zwNM0-?Lxp2Y+R#g8t^zO4bM?AdlBe3b&@PS7 z`@SQRWV6{Mnk-?vb0jSYLdd}|aU>Dw@VN3VXzs*A5g485yV!NfQ)lnxS7UY0odgf6dre+N&%(kSsyZUUW5-kNQXljAD0p zMWGn6gWv%C^kp)3@s-+ z9Q$EYaze^72|-a(3{5M1O5t-7olWxW6eA0CqJzy_p08RO?C3R+-ZnOMSF9+xQ1xxM zV%v>Q1r+CP-}dHh2S{ZejLjOBZa2O0Fg?58%Fs2Ipg!f=CTPW1H1^TYGLpieLFE*w z<+qfjWQOAs$?TNGq*8brtN)*vk;oV_ERO#aOXmnxV7S~XeYDwY9%!MCaZzh@eLb$B zw)#CUXDh*XwX-*4eCFEl`uXS%34ZL|`lT~wV9|lXA+TnNa zo$a~x<>${SoA*8Q&{Fl#htaJ_=33vl@pEK@y0BK~4)lWS$8+y=y?q7irm&Y^kj{@; R(%cf16Zrr$W z{rdHjCr{3vJ$vQKmCv3%n>1@!i5WK)~q>x{P^O< zi?3e2x^LgUUAuPu`Sa)6wQGO>{=Iqg=C5DBwt~R}F!=xfKLeG3;!hSv1_pHo9guk- zKQXWs9GJXe!Gr(?hAx*t0V{byl?6c)-Q>=>GF;f9(9+?}ED$k=Bf9zd1Wy$s_Wnkn z84PU88y&a=9iSXMhSSOWmH3xI$C literal 0 HcmV?d00001 diff --git a/theme/54/skin/board/basic/img/icon_movie.gif b/theme/54/skin/board/basic/img/icon_movie.gif new file mode 100644 index 0000000000000000000000000000000000000000..cb958f83f9c606f290a260714cd9a3cff043f3a2 GIT binary patch literal 110 zcmZ?wbhEHb3@AOMLlFzK}PuRQ&h|M0|xLCPCfS!F+{3@-DP f-?4DY(nWejQ)6d06;;oc{oQqepNC77mBAVS=eiro literal 0 HcmV?d00001 diff --git a/theme/54/skin/board/basic/img/icon_reply.gif b/theme/54/skin/board/basic/img/icon_reply.gif new file mode 100644 index 0000000000000000000000000000000000000000..7fe2c65580ed22e254718fdd45ed93efb554672d GIT binary patch literal 1187 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 I%fes{0AXt-SpWb4 literal 0 HcmV?d00001 diff --git a/theme/54/skin/board/basic/img/icon_view.png b/theme/54/skin/board/basic/img/icon_view.png new file mode 100644 index 0000000000000000000000000000000000000000..ea76f54424bc4ccedf3334a5c9912725be81c441 GIT binary patch literal 3130 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 hVCZu7y(G~QB)VQHjxXGLX~6%>', 0); +?> + + +
    + + + +
    +
    + Total 건 + 페이지 +
    + + + + +
    + + + + + + + + +
    + + + + + + + + + + +
    + + + + + + + + + + + + + + + + + + + "> + + + + + + + + + + + + + + + '; } ?> + +
    목록
    + + + 번호제목글쓴이조회 추천 비추천 날짜
    + + + + 공지'; + else if ($wr_id == $list[$i]['wr_id']) + echo "열람중"; + else + echo $list[$i]['num']; + ?> + + + + +
    + + + + + + + + '; } + if (isset($list[$i]['icon_file'])) echo rtrim($list[$i]['icon_file']); + if (isset($list[$i]['icon_link'])) echo rtrim($list[$i]['icon_link']); + if (isset($list[$i]['icon_new'])) echo rtrim($list[$i]['icon_new']); + if (isset($list[$i]['icon_hot'])) echo rtrim($list[$i]['icon_hot']); + ?> + 댓글+ 개 +
    + +
    게시물이 없습니다.
    +
    + + +
    + + + +
    + + +
    + + +
    + 게시물 검색 + +
    + + + + + + + + +
    +
    + +
    + + + + + + + + + + + + + + + diff --git a/theme/54/skin/board/basic/style.css b/theme/54/skin/board/basic/style.css new file mode 100644 index 000000000..37bf7fab7 --- /dev/null +++ b/theme/54/skin/board/basic/style.css @@ -0,0 +1,370 @@ +@charset "utf-8"; + +/* 게시판 버튼 */ +/* 목록 버튼 */ +#bo_list a.btn_b01 {} +#bo_list a.btn_b01:focus, #bo_list a.btn_b01:hover {} +#bo_list a.btn_b02 {} +#bo_list a.btn_b02:focus, #bo_list a.btn_b02:hover {} +#bo_list a.btn_admin {} /* 관리자 전용 버튼 */ +#bo_list a.btn_admin:focus, #bo_list .btn_admin:hover {} + +/* 읽기 버튼 */ +#bo_v a.btn_b01 {} +#bo_v a.btn_b01:focus, #bo_v a.btn_b01:hover {} +#bo_v a.btn_b02 {} +#bo_v a.btn_b02:focus, #bo_v a.btn_b02:hover {} +#bo_v a.btn_admin {} /* 관리자 전용 버튼 */ +#bo_v a.btn_admin:focus, #bo_v a.btn_admin:hover {} + +/* 쓰기 버튼 */ +#bo_w .btn_confirm {} /* 서식단계 진행 */ +#bo_w .btn_submit {padding:0 20px} +#bo_w button.btn_submit {} +#bo_w fieldset .btn_submit {} +#bo_w .btn_cancel {} +#bo_w button.btn_cancel {} +#bo_w .btn_cancel:focus, #bo_w .btn_cancel:hover {} +#bo_w a.btn_frmline, #bo_w button.btn_frmline {} /* 우편번호검색버튼 등 */ +#bo_w button.btn_frmline {} + +/* 기본 테이블 */ +/* 목록 테이블 */ +#bo_list .tbl_head01 {} +#bo_list .tbl_head01 caption {} +#bo_list .tbl_head01 thead th {} +#bo_list .tbl_head01 thead a {} +#bo_list .tbl_head01 thead th input {} /* middle 로 하면 게시판 읽기에서 목록 사용시 체크박스 라인 깨짐 */ +#bo_list .tbl_head01 tfoot th {} +#bo_list .tbl_head01 tfoot td {} +#bo_list .tbl_head01 tbody th {} +#bo_list .tbl_head01 td {} +#bo_list .tbl_head01 a {} +#bo_list td.empty_table {} + +/* 읽기 내 테이블 */ +#bo_v .tbl_head01 {} +#bo_v .tbl_head01 caption {} +#bo_v .tbl_head01 thead th {} +#bo_v .tbl_head01 thead a {} +#bo_v .tbl_head01 thead th input {} /* middle 로 하면 게시판 읽기에서 목록 사용시 체크박스 라인 깨짐 */ +#bo_v .tbl_head01 tfoot th {} +#bo_v .tbl_head01 tfoot td {} +#bo_v .tbl_head01 tbody th {} +#bo_v .tbl_head01 td {} +#bo_v .tbl_head01 a {} +#bo_v td.empty_table {} + +/* 쓰기 테이블 */ +#bo_w table {} +#bo_w caption {} +#bo_w .frm_info {} +#bo_w .frm_address {} +#bo_w .frm_file {} + +#bo_w .tbl_frm01 {} +#bo_w .tbl_frm01 th {} +#bo_w .tbl_frm01 td {} +#bo_w .tbl_frm01 textarea, #bo_w tbl_frm01 .frm_input {} +#bo_w .tbl_frm01 textarea {} +/* +#bo_w .tbl_frm01 #captcha {} +#bo_w .tbl_frm01 #captcha input {} +*/ +#bo_w .tbl_frm01 a {} + +/* 필수입력 */ +#bo_w .required, #bo_w textarea.required {} + +#bo_w .cke_sc {} +#bo_w button.btn_cke_sc{} +#bo_w .cke_sc_def {} +#bo_w .cke_sc_def dl {} +#bo_w .cke_sc_def dl:after {} +#bo_w .cke_sc_def dt, #bo_w .cke_sc_def dd {} +#bo_w .cke_sc_def dt {} +#bo_w .cke_sc_def dd {} + +/* ### 기본 스타일 커스터마이징 끝 ### */ + +/* 게시판 목록 */ +#bo_list {position:relative} +#bo_list:after {display:block;visibility:hidden;clear:both;content:""} +#bo_list .td_board {width:120px;text-align:center} +#bo_list .td_chk {width:30px;text-align:center} +#bo_list .td_date {width:60px;text-align:center;font-style: italic;} +#bo_list .td_datetime {width:60px;text-align:center;font-style: italic} +#bo_list .td_group {width:100px;text-align:center} +#bo_list .td_mb_id {width:100px;text-align:center} +#bo_list .td_mng {width:80px;text-align:center} +#bo_list .td_name {width:90px;text-align:left;padding:10px 0} +#bo_list .td_nick {width:100px;text-align:center} +#bo_list .td_num {width:50px;text-align:center} +#bo_list .td_num2 {width:50px;text-align:center} +#bo_list .td_numbig {width:80px;text-align:center} +#bo_list .txt_active {color:#5d910b} +#bo_list .txt_expired {color:#ccc} +#bo_list tbody tr:hover {border-left:2px solid #253dbe} + +#bo_cate {background:#ecf2f3;padding:7px;margin:10px 0;border:1px solid #bed1d4} +#bo_cate h2 {position:absolute;font-size:0;line-height:0;overflow:hidden} +#bo_cate ul {zoom:1} +#bo_cate ul:after {display:block;visibility:hidden;clear:both;content:""} +#bo_cate li {display:inline-block;padding:2px;} +#bo_cate a {display:block;line-height:26px;padding:0 10px;border-radius:3px;border:1px solid transparent} +#bo_cate a:focus, #bo_cate a:hover, #bo_cate a:active {text-decoration:none;background:#d2d6dc;} +#bo_cate #bo_cate_on {z-index:2;background:#3497d9;color:#fff;font-weight:bold;border-bottom-color:#1977b5; +-webkit-box-shadow: inset 0 2px 5px rgb(33, 135, 202); +-moz-box-shadow: inset 0 2px 5px rgb(33, 135, 202); +box-shadow:inset 0 2px 5px rgb(33, 135, 202);} +.td_subject img {margin-left:5px} + +/* 게시판 목록 공통 */ +#bo_btn_top{margin: 10px 0 } +#bo_btn_top:after {display:block;visibility:hidden;clear:both;content:""} +.bo_fx {margin-bottom:5px;float:right;zoom:1} +.bo_fx:after {display:block;visibility:hidden;clear:both;content:""} +.bo_fx ul {margin:0;padding:0;list-style:none} +#bo_list_total {float:left;line-height:30px;font-size:0.92em;color:#4e546f;background:#d4d4d4;padding:0 10px;border-radius:5px;} + +.btn_bo_user {float:right;margin:0;padding:0;list-style:none} +.btn_bo_user li {float:left;margin-left:5px} +.btn_bo_adm {float:left} +.btn_bo_adm li {float:left;margin-right:5px} +.btn_bo_adm input {padding:0 8px;border:0;background:#d4d4d4;color:#666;text-decoration:none;vertical-align:middle} +.bo_notice td {background:#e6f8ff !important;border-bottom:1px solid #c3dfe8;} +.bo_notice td a {font-weight:bold;} + +.bo_notice .notice_icon{display:inline-block;background:#4158d1;width:25px;line-height:25px;border-radius:5px;font-weight:normal;color:#fff} +.td_num strong {color:#000} +.bo_cate_link {display: inline-block;color: #3497d9;height: 20px;font-size:0.92em} /* 글제목줄 분류스타일 */ +.bo_tit{display:block;color:#000;font-weight:bold;} +.bo_current {color:#e8180c} +/*#bo_list .profile_img {display:inline-block;margin-right:2px}*/ +#bo_list .profile_img img{border-radius:50%} +#bo_list .cnt_cmt{background:#5c85c1;color:#fff; font-size:11px;height:16px;line-height:16px;padding:0 5px;border-radius:3px;vertical-align:middle; +-webkit-box-shadow: inset 0 2px 5px rgba(255,255,255,0.3); +-moz-box-shadow: inset 0 2px 5px rgba(255,255,255,0.3); +box-shadow: inset 0 2px 5px rgba(255,255,255,0.3);} + +#bo_list .bo_tit .title_icon{margin-right:2px} +#bo_list .bo_tit .fa-download{width:16px;height:16px;line-height:16px;background:#e89f31;color:#fff;text-align:center;font-size:10px;border-radius:2px;margin-right:2px;vertical-align:middle} +#bo_list .bo_tit .fa-link{width:16px;height:16px;line-height:16px;background:#ad68d8;color:#fff;text-align:center;font-size:10px;border-radius:2px;margin-right:2px;vertical-align:middle;font-weight:normal} +#bo_list .bo_tit .new_icon{display:inline-block;width: 16px;line-height:16px ;font-size:0.833em;color:#ffff00;background:#6db142;text-align:center;border-radius: 2px;vertical-align:middle;margin-right:2px} +#bo_list .bo_tit .fa-heart{display:inline-block;width: 16px;line-height:16px ;font-size:0.833em;color:#fff;background:#e52955;text-align:center;border-radius: 2px;vertical-align:middle;margin-right:2px;font-weight:normal} +#bo_list .bo_tit .fa-lock{display: inline-block;line-height: 14px;width: 16px;font-size: 0.833em;color: #4f818c;background: #cbe3e8;text-align: center;border-radius: 2px;font-size: 12px;border:1px solid #a2c6ce} + + +#bo_sch {float:left;border:1px solid #ccc;background:#fff;border-radius:3px} +#bo_sch:after {display:block;visibility:hidden;clear:both;content:""} +#bo_sch legend {position:absolute;margin:0;padding:0;font-size:0;line-height:0;text-indent:-9999em;overflow:hidden} +#bo_sch select{border:0;margin:9px 5px ;height:20px;float:left;border-right:1px solid #ddd;} +#bo_sch .sch_input{height:38px;border:0;padding:0;background-color:transparent;float:left} +#bo_sch .sch_btn{height:38px;float:left;background:none;border:0;width:40px;font-size:15px} + + +/* 게시판 쓰기 */ +#char_count_desc {display:block;margin:0 0 5px;padding:0} +#char_count_wrap {margin:5px 0 0;text-align:right} +#char_count {font-weight:bold} + +#autosave_wrapper {position:relative} +#autosave_pop {display:none;z-index:10;position:absolute !important;top:34px;right:0;width:350px;height:auto !important;height:180px;max-height:180px;border:1px solid #565656;background:#fff; +-webkit-box-shadow: 2px 2px 3px 0px rgba(0,0,0,0.2); +-moz-box-shadow: 2px 2px 3px 0px rgba(0,0,0,0.2); +box-shadow: 2px 2px 3px 0px rgba(0,0,0,0.2);} +#autosave_pop:before{content: "";position: absolute;top: -8px;right: 45px;width: 0;height: 0;border-style: solid;border-width: 0 6px 8px 6px;border-color: transparent transparent #000 transparent;} +#autosave_pop:after{content: "";position: absolute;top: -7px;right: 45px;width: 0;height: 0;border-style: solid;border-width: 0 6px 8px 6px;border-color: transparent transparent #fff transparent;} +html.no-overflowscrolling #autosave_pop {height:auto;max-height:10000px !important} /* overflow 미지원 기기 대응 */ +#autosave_pop strong {position:absolute;font-size:0;line-height:0;overflow:hidden} +#autosave_pop div {text-align:center;margin:0 !important;} +#autosave_pop button {margin:0;padding:0;border:0;} +#autosave_pop ul {padding:15px;border-top:1px solid #e9e9e9;list-style:none;overflow-y:scroll;height:130px;border-bottom:1px solid #e8e8e8} +#autosave_pop li {padding:8px 5px;border-bottom:1px solid #fff;background:#eee;zoom:1} +#autosave_pop li:after {display:block;visibility:hidden;clear:both;content:""} +#autosave_pop a {display:block;float:left} +#autosave_pop span {display:block;float:right;font-size:0.92em;font-style:italic;color:#999} +.autosave_close {cursor:pointer;width:100%;height:30px;background:none;color:#888;font-weight:bold;font-size:0.92em} +.autosave_close:hover{background:#f3f3f3;color:#3597d9} +.autosave_content {display:none} +.autosave_del{background:url(./img/close_btn.png) no-repeat 50% 50%;text-indent:-999px;overflow:hidden;height:20px;width:20px;} + +/* 게시판 읽기 */ +#bo_v {margin-bottom:20px;padding:20px;background:#fff;box-sizing:border-box} + +#bo_v_table {position:absolute;top:0;right:16px;margin:0;padding:0 5px;height:25px;background:#ff3061;color:#fff;font-weight:bold;line-height:2.2em} + +#bo_v_title {} +#bo_v_title .bo_v_cate{display:inline-block;line-height:26px;background: #3497d9;color: #fff;font-weight: bold;border-bottom:1px solid #1977b5;padding:0 10px;border-radius:3px; +-webkit-box-shadow: inset 0 2px 5px rgb(33, 135, 202); +-moz-box-shadow: inset 0 2px 5px rgb(33, 135, 202); +box-shadow: inset 0 2px 5px rgb(33, 135, 202); +} +#bo_v_title .bo_v_tit{display:block;font-size:2em;margin:5px 0 0;word-break:break-all} + +#bo_v_info {padding: 10px 0 15px;margin:0 0 20px;border-bottom:1px solid #ddd;color:#666} +#bo_v_info:after {display:block;visibility:hidden;clear:both;content:""} +#bo_v_info h2 {position:absolute;font-size:0;line-height:0;overflow:hidden} +#bo_v_info strong {display:inline-block;margin:0 10px 0 0;font-weight:normal} +#bo_v_info .sv_member, +#bo_v_info .sv_guest, +#bo_v_info .member, +#bo_v_info .guest {font-weight:bold} +#bo_v_info .profile_img {} +#bo_v_info .profile_img img{border-radius:50%} +#bo_v_info .sv_member{color:#000} +#bo_v_info .if_view{display:inline-block;background:url(./img/icon_view.png) no-repeat 50% 50%;height:15px;width:20px;overflow:hidden;text-indent:-999px;vertical-align:middle;margin-right:3px} +#bo_v_info .if_comment{display:inline-block;background:url(./img/icon_comment.png) no-repeat 50% 50%;height:15px;width:20px;overflow:hidden;text-indent:-999px;vertical-align:middle;margin-right:3px} +#bo_v_info .if_date{float:right;margin:0;font-style:italic;color:#888} + +#bo_v_file {margin:10px 0;border:1px solid #d4d4d4} +#bo_v_file h2 {padding:10px;background: #f3f3f3} +#bo_v_file ul {margin:0;padding:5px 0;list-style:none} +#bo_v_file li {padding:5px 10px;position:relative;} +#bo_v_file a {display:inline-block;color:#3497d9;text-decoration:underline;word-wrap:break-word} +#bo_v_file a:focus, #bo_v_file a:hover, #bo_v_file a:active {text-decoration:none} +#bo_v_file img {float:left;margin:0 10px 0 0} +.bo_v_file_cnt {position:absolute;top:5px;right:10px;color:#888;font-size:0.92em} + +#bo_v_link {margin:10px 0;border:1px solid #d4d4d4} +#bo_v_link h2 {padding:10px;border-bottom:1px solid #e8e8e8;background: #f3f3f3} +#bo_v_link ul {margin:0;padding:5px 0;list-style:none} +#bo_v_link li {padding:5px 10px;position:relative;} +#bo_v_link a {display:inline-block;color:#3497d9;text-decoration:underline;word-wrap:break-word} +#bo_v_link a:focus, #bo_v_link a:hover, #bo_v_link a:active {text-decoration:none} +.bo_v_link_cnt {position:absolute;top:5px;right:10px;color:#888;font-size:0.92em} + +#bo_v_top {zoom:1} +#bo_v_top:after {display:block;visibility:hidden;clear:both;content:""} +#bo_v_top h2 {position:absolute;font-size:0;line-height:0;overflow:hidden} +#bo_v_top ul {padding:0;list-style:none;word-break:break-all} + +#bo_v_bot {zoom:1} +#bo_v_bot:after {display:block;visibility:hidden;clear:both;content:""} +#bo_v_bot h2 {position:absolute;font-size:0;line-height:0;overflow:hidden} +#bo_v_bot ul {padding:0;list-style:none} + +.bo_v_com {margin:20px 0;float:right} +.bo_v_com li {float:left;margin-left:5px} + +.bo_v_left {margin:20px 0;float:left} +.bo_v_left li {float:left;margin-right:5px} + +.bo_v_nb {margin:20px 0;position:relative;clear:both;text-align:left;border-bottom:1px solid #ddd} +.bo_v_nb:after {display:block;visibility:hidden;clear:both;content:""} +.bo_v_nb li {border-top:1px solid #ddd;padding:13px;border-left:1px solid #ddd;border-right:1px solid #ddd;} +.bo_v_nb li:hover{background:#f6f6f6} +.bo_v_nb li i{font-size:13px} +.bo_v_nb li .nb_tit{display:inline-block;padding-right:20px;color:#4567b5} +.bo_v_nb li .nb_date{float:right;color:#888} + +#bo_v_atc {min-height:200px;height:auto !important;height:200px} +#bo_v_atc_title {position:absolute;font-size:0;line-height:0;overflow:hidden} + +#bo_v_img {width:100%;overflow:hidden;zoom:1} +#bo_v_img:after {display:block;visibility:hidden;clear:both;content:""} +#bo_v_img a.view_image{display:block} +#bo_v_img img {margin-bottom:20px;max-width:100%;height:auto} + +#bo_v_con {margin:10px 0 30px;width:100%;line-height:1.7em;min-height:200px;word-break:break-all;overflow:hidden} +#bo_v_con a {color:#000;text-decoration:underline} +#bo_v_con img {max-width:100%;height:auto} + +#bo_v_act {margin-bottom:30px;text-align:center} +#bo_v_act .bo_v_act_gng {position:relative} +#bo_v_act a {margin-right:5px;vertical-align:middle} +#bo_v_act a:hover{background-color:#f3f3f3} +#bo_v_act_good, #bo_v_act_nogood {display:none;position:absolute;top:30px;left:0;padding:10px 0;width:165px;background:#ff3061;color:#fff;text-align:center} +#bo_v_act .bo_v_good{display:inline-block;border:1px solid #000;width:70px;height:70px;padding-top:40px;background:url(./img/icon_good.png) 25px 18px no-repeat;border-radius:50%;font-style:italic} +#bo_v_act .bo_v_nogood{display:inline-block;border:1px solid #000;width:70px;height:70px;padding-top:40px;background:url(./img/icon_bad.png) 25px 18px no-repeat;border-radius:50%;font-style:italic} + +#bo_v_share{position:relative;margin:20px 0;text-align:right} +#bo_v_share .btn{padding:0 10px 0 0;color:#555;font-weight:normal;font-size:1em ;line-height:30px;height:32px;border-radius:0;border-color:#d5d5d5} +#bo_v_share .btn:hover{background:#fff} +#bo_v_share .btn i{margin-right:5px;background:#eee;color:#333;text-align:center;width:30px;line-height:30px;vertical-align:top;} +#bo_v_share .btn_share{} +#bo_v_share .btn_share:hover{} + +.bo_v_snswr{position:relative;display:inline-block;margin-left:-1px} +#bo_v_sns {display:none;position:absolute;top:-50px;left:50%;margin-left:-90px;width:180px;padding:0;list-style:none;zoom:1} +#bo_v_sns:after {display:block;visibility:hidden;clear:both;content:""} +#bo_v_sns:before{content: "";position: absolute;bottom: -7px;left: 84px;width: 0;height: 0;border-style: solid;border-width: 7px 6px 0 6px;border-color: #415b92 transparent transparent transparent;} +#bo_v_sns li {float:left;width:60px;text-align:center} +#bo_v_sns li a{height:40px;padding:10px 0;} +#bo_v_sns li .sns_f{display:block;background:#415b92} +#bo_v_sns li .sns_t{display:block;background:#35b3dc} +#bo_v_sns li .sns_g{display:block;background:#d5503a} +#bo_v_sns.show_kakao{width:240px;margin-left:-120px} +#bo_v_sns li .sns_k{display:block;background:#fbe300} +#bo_v_sns li img{vertical-align:top} + +/* 게시판 댓글 */ +.cmt_btn{background:url('./img/cmt_btn.png') no-repeat 85px 8px;text-align:left ;width:100% ;border:0;color:#ed6478;font-weight:bold;font-size:1.25em;margin: 30px 0 0px;padding:0 0 10px } +.cmt_btn_op{background:url('./img/cmt_btn.png') no-repeat 85px -23px} +#bo_vc {} +#bo_vc h2 {position:absolute;font-size:0;line-height:0;overflow:hidden} +#bo_vc article {margin:20px 0;position:relative} +#bo_vc article .profile_img img{border-radius:50%} +#bo_vc header {} +#bo_vc header:after {display:block;visibility:hidden;clear:both;content:""} +#bo_vc header .icon_reply {position:absolute;top:15px;left:-20px} +#bo_vc .member, #bo_vc .guest, #bo_vc .sv_member, #bo_vc .sv_guest {font-weight:bold} +.bo_vc_hdinfo{float:right;font-style:italic;color:#777} +#bo_vc h1 {position:absolute;font-size:0;line-height:0;overflow:hidden} +#bo_vc .cmt_contents {padding:15px ;margin:10px 0 0;background: #f8fafb;border-radius:5px;border: 1px solid #e8e8e8;line-height:1.8em} +#bo_vc p a {text-decoration:underline} +#bo_vc p a.s_cmt {text-decoration:underline;color:#ed6479} +#bo_vc_empty {margin:0;padding:80px 0 !important;color:#777;text-align:center} +#bo_vc #bo_vc_winfo {float:left} + +.bo_vc_act {text-align:right;margin:0;list-style:none;zoom:1} +.bo_vc_act:after {display:block;visibility:hidden;clear:both;content:""} +.bo_vc_act li {display:inline-block;} +.bo_vc_act li a{padding:0 5px;line-height:23px} + +.bo_vc_w {position:relative;margin:10px 0;display:block;} +.bo_vc_w:after {display:block;visibility:hidden;clear:both;content:""} +.bo_vc_w h2 {position:absolute;font-size:0;line-height:0;overflow:hidden} +.bo_vc_w #char_cnt {display:block;margin:0 0 5px} +.bo_vc_w textarea{border:1px solid #ccc;background:#fff;color:#000;vertical-align:middle;border-radius:3px;padding:5px;width:100%;height:120px; +-webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1); +-moz-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1); +box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);} +#wr_secret{} +.bo_vc_w_info{margin:10px 0;float:left} +.bo_vc_w_info:after {display:block;visibility:hidden;clear:both;content:""} +.bo_vc_w_info .frm_input{float:left;margin-right:5px} +.bo_vc_w_info #captcha{padding-top:10px;display:block;clear:both} +.bo_vc_w .btn_confirm{float:right;margin-top:10px} +.bo_vc_w .btn_confirm label{display:inline-block;margin-right:10px;border-radius:3px;font-size:1.5em;text-align:center;} +.bo_vc_w .btn_submit{height:45px;padding:0 20px;border-radius:3px;font-weight:bold;font-size:1.083em;} +.bo_vc_w_wr:after {display:block;visibility:hidden;clear:both;content:""} + +#bo_vc_send_sns{display:inline-block;float:left} +#bo_vc_sns {display:inline-block;margin:0;padding:0;list-style:none;zoom:1} +#bo_vc_sns:after {display:block;visibility:hidden;clear:both;content:""} +#bo_vc_sns li {float:left;margin:0 5px 0 0} +#bo_vc_sns .sns_li_f{border-radius:3px;background:#3a589b;height:40px;line-height:40px;padding:0 0 0 10px} +#bo_vc_sns .sns_li_t{border-radius:3px;background:#00aced;height:40px;line-height:40px;padding:0 0 0 10px} +#bo_vc_sns .sns_li_off{background:#bbb} +#bo_vc_sns a{display:inline-block;padding:0 15px 0 5px;} +#bo_vc_sns input {margin:0 5px 0 0 } + + +/*글쓰기*/ +#bo_w .write_div{margin:10px 0;position:relative} +#bo_w .bo_w_info:after {display:block;visibility:hidden;clear:both;content:""} +#bo_w .bo_w_info .frm_input{float:left;width:33%} +#bo_w #wr_password{margin:0 0.5% } +#bo_w .wr_content.smarteditor2 iframe{background:#fff} +#bo_w .bo_w_tit{position:relative} +#bo_w .bo_w_tit .frm_input{padding-right:120px;} +#bo_w .bo_w_tit #btn_autosave{position:absolute;top:5px;right:5px;line-height:30px;height:30px;} +#bo_w .bo_w_link label{position:absolute;top:1px;left:1px;border-radius:3px 0 0 3px;height:38px;line-height:38px;width:40px;background: #eee;text-align:center;color:#888} +#bo_w .bo_w_link .frm_input{padding-left:50px} +#bo_w .bo_w_flie .lb_icon{position:absolute;top:0px;left:0px;border-radius:3px 0 0 3px;height:38px;line-height:38px;width:40px;background:#eee;text-align:center;color:#888} +#bo_w .bo_w_flie .frm_file{padding-left:50px;} +#bo_w .bo_w_flie .file_wr{border:1px solid #ccc;background:#fff;color:#000;vertical-align:middle;border-radius:3px;padding:5px;height:40px;margin:0} +#bo_w .bo_w_flie .frm_input{margin:10px 0 0 } +#bo_w .bo_w_flie .file_del{position:absolute;top:10px;right:10px;font-size:0.92em;color:#7d7d7d} +#bo_w .bo_w_select select{border:1px solid #3497d9;height:40px;border-radius:3px} \ No newline at end of file diff --git a/theme/54/skin/board/basic/view.skin.php b/theme/54/skin/board/basic/view.skin.php new file mode 100644 index 000000000..326c4320a --- /dev/null +++ b/theme/54/skin/board/basic/view.skin.php @@ -0,0 +1,299 @@ +', 0); +?> + + + + + +
    +
    +

    + + + + + +

    +
    + +
    +

    페이지 정보

    + 작성자 + 댓글 건 + 조회 회 + 작성일 + +
    + +
    +

    본문

    + + \n"; + + for ($i=0; $i<=count($view['file']); $i++) { + if ($view['file'][$i]['view']) { + //echo $view['file'][$i]['view']; + echo get_view_thumbnail($view['file'][$i]['view']); + } + } + + echo "\n"; + } + ?> + + +
    + + + +

    + + + + +
    + + + 추천 + + + + + + 비추천 + + + +
    + +
    + 추천 + 비추천 +
    + + +
    + +
    + 스크랩 + + +
    + + + + + +
    +

    첨부파일

    +
      + +
    • + + + + + () + 회 다운로드 | DATE : +
    • + +
    +
    + + + + + + + + + + +
    + + + + + + + +
      +
    • 이전글
    • +
    • 다음글
    • +
    + + +
    + + + + + +
    + + + + + + \ No newline at end of file diff --git a/theme/54/skin/board/basic/view_comment.skin.php b/theme/54/skin/board/basic/view_comment.skin.php new file mode 100644 index 000000000..a372ff01f --- /dev/null +++ b/theme/54/skin/board/basic/view_comment.skin.php @@ -0,0 +1,325 @@ + + + + + +
    +

    댓글목록

    + \]/i", "", $comment); + $cmt_sv = $cmt_amt - $i + 1; // 댓글 헤더 z-index 재설정 ie8 이하 사이드뷰 겹침 문제 해결 + ?> + +
    style="margin-left:px;border-top-color:#e0e0e0"> +
    +

    님의 댓글의 댓글

    + + + 아이피 + () + + 작성일 + + +
    + + +
    +

    + 비밀글 + +

    + + + +
    + + + + " id="secret_comment_"> + + +
    + +

    등록된 댓글이 없습니다.

    + +
    + + + + + + + + + \ No newline at end of file diff --git a/theme/54/skin/board/basic/write.skin.php b/theme/54/skin/board/basic/write.skin.php new file mode 100644 index 000000000..f41ee7a29 --- /dev/null +++ b/theme/54/skin/board/basic/write.skin.php @@ -0,0 +1,259 @@ +', 0); +?> + +
    +

    + + +
    + + + + + + + + + + + + '."\n".''; + } + + if ($is_html) { + if ($is_dhtml_editor) { + $option_hidden .= ''; + } else { + $option .= "\n".''."\n".''; + } + } + + if ($is_secret) { + if ($is_admin || $is_secret==1) { + $option .= "\n".''."\n".''; + } else { + $option_hidden .= ''; + } + } + + if ($is_mail) { + $option .= "\n".''."\n".''; + } + } + + echo $option_hidden; + ?> + + +
    + + +
    + + +
    + + + + + + + + class="frm_input " placeholder="비밀번호"> + + + + + + +
    + + +
    + + +
    + + + +
    + 옵션 + +
    + + +
    + + +
    + + + + + +
    + 임시 저장된 글 목록 +
      +
      +
      + +
      + +
      + +
      + +
      + + +

      이 게시판은 최소 글자 이상, 최대 글자 이하까지 글을 쓰실 수 있습니다.

      + + + + +
      글자
      + +
      + +
      + + + + + + +
      +
      + + +
      + + + + + + + + + + +
      + + + + +
      + +
      + + + +
      + 취소 + +
      +
      + + +
      + \ No newline at end of file diff --git a/theme/54/skin/board/gallery/img/btn_close.gif b/theme/54/skin/board/gallery/img/btn_close.gif new file mode 100644 index 0000000000000000000000000000000000000000..040b180ac6584ae612ef2886487110f0ad079963 GIT binary patch literal 211 zcmZ?wbhEHbC>lw|Nj2|^XJd+Ki|K7yLIc<@85r}UAy+@_wT|Ns9P2m!^PEMO%%AQEIJ18abSL2rs@7wgh> zI-xzeYYr882T$7a>~-(!J@=MOy}Z$ltNl`73Cq0Bi3wIGB-b=ECVhGFY*&ANIg94( d^Unm859R4|2rw-)wA%9i`(c-qSMQw}tN}eeW+eas literal 0 HcmV?d00001 diff --git a/theme/54/skin/board/gallery/img/btn_next2.gif b/theme/54/skin/board/gallery/img/btn_next2.gif new file mode 100644 index 0000000000000000000000000000000000000000..9ec94650a55df093e69afc30b366af38f10d4166 GIT binary patch literal 1898 zcmZ?wbhEHb^nUk#C56lsTcvPQUjyF)=hTc$kE){7;3~h6MhI|Z8xtBTx$+|-gp zg^Jvqyke^gTcyO5{G?PXAR8pCucQE0Qj%?}vtM~P_^2{qPNz6-5^>ndS0-B(gnVDi`U})iN>1b)}>f&r-Xy|I@WZ-D*;%4aP z;$~!EX<}gv)9aF-T$-DjR|3v4~Pj*wm=R%;iu*SQ+p9GSu_6s_xI25Uq63* z|MvCE=T9F$ynpxh&Ffb$Up#;I^vUB#4%#K*+RD$;tWu|G(mY?g-xi1((E!Y#3Q(W~w5=#5%__*n4QdyVXRDM^Qc_^0uU}qXu2*iX zmtT~wZ)j<02{OaTNEfI=x41H|B(Xv_uUHvof=g;~a#3bMNoIbY0?5R~r2NtnTP2`N zAzsKW@b!fooL8&|_K;q3ey)B+Vu8M)o`HUDF34YC)x{-2sR(CaRb3oXS&*t9lvsNTp{2Q{sk4i#fw7aJnUSH3Im`@fdL5nIoGnev9bH|VjSUT5&74duEnJ-~ zOpVN(UCd1koMC!B^NLFn^O93x_GSX@h3d7$tJli8C^fMpzbGU>KL?fq0y6ST@{2R_ z3lyA#%@j1kGxJjN%ZoKZ(F5_VOKMSOS!#+~QGTuhIDD-#vDj~HQ=>r|34@w+Ji3KJEOo1RKJm~{D@XV8%2h1@=z^uXe z|KHy~zkmJw@%`J^FP}es{P6zW+c&RYy?pWf+0!SFA3c0<|K8m@w{P9NasArWE0-@_ zym0>9*)yk4ojh^;*wG`04;?(Pf8X9cyLau}v3=XtEt@xO+^~M#+BK_Jtz5Bu+0rG8 z7cE>cf8N|VvuDkmF@4(9DU&BnoY3Fb+tc0E+0owC+S1(A*ic_rTT@+CSy5hAT2fq8 zSdgEWo0FZDnUS8Bnv$H9m=GTq8xtKB84(^98WJ277~t>c>*MX^>EZ4Mj8G>>2YWkP z8*3{|3v)A56JsMo1ARSR9c?X54RtkD6=fww1$jAH8EGj=32`w|5n&-g0e(JS9&Rp9 z4t6$H7G@?!1_s5SEI^WxL5BedKqU_YlSEH`1N*MMOf`JI(UE@9?*BYxf5e7lM6ohh F0{~W;oRI(k literal 0 HcmV?d00001 diff --git a/theme/54/skin/board/gallery/img/close_btn.png b/theme/54/skin/board/gallery/img/close_btn.png new file mode 100644 index 0000000000000000000000000000000000000000..50e9f26efe0886d2b17fb435f1a1f2ca5398ab31 GIT binary patch literal 1147 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 Be9!;@ literal 0 HcmV?d00001 diff --git a/theme/54/skin/board/gallery/img/gplus.png b/theme/54/skin/board/gallery/img/gplus.png new file mode 100644 index 0000000000000000000000000000000000000000..45bdf43966a0aff0acbe600636e81d186b2cee67 GIT binary patch literal 3041 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 literal 0 HcmV?d00001 diff --git a/theme/54/skin/board/gallery/img/icon_bad.png b/theme/54/skin/board/gallery/img/icon_bad.png new file mode 100644 index 0000000000000000000000000000000000000000..e568b1d8305405c40aec147ea40b490815ea85f3 GIT binary patch literal 1287 zcmbVMZEVzJ9PcuwI5Nr9M45c3Wxf!+_S(Dlu61{K*Y>uC-Q2w>M7$LlUAGd>Lekf<$8oeo-TdCJKonfqn4l?QZ&E;e$<| zK5zfu@BiNM-k#2u=C)=8L0Y6PAr9wOXRN&gexJ}fZ^CJVEvD>*(Qg-J6Ck0q(FagT zlQSR=kYY^=yagaa*wv3jv0o~$C0j$c)!L@TtU}#mu z&IPb#qf*gcls8O((zwT^xJeRa7@YLd3`0JSQf`tW-0)>wq?e-^j`E?k2ZP$obUzmt zA~jub7r?T%o#zOmSS;d24{n$lf@E3N;h-oNlyF%?x-FMny0xj!AOK4-)x515I_faW zeMZ3!V9?TK7qomdx*1v}MP^zh1QiX1^`4fm9(!lcLpf}s>NpxcrVz~Bv@R@0n7`9rkF$BL97hzv=xK9=SM z(d`M73`GjQI>%~Qnq@_irTn76dPq`a!d_3r9}f9EUY4Thh^LN~bjy}?1=RJbP;U+E zyDgUEO(5HbnKX=ndIj`m4coA?Mjqu84Eor1RZkm5YqOJ{Wp4#ws=GltVj3D+jW4IJ zqTfUDA_a##Eb>*q`H)+nXxi%wMR>~Z$71}HnX_$)d?OOBlo-^BKld-$Th49?#rNtX}pKh(pFO(}^>${8BCnhq7_fO34 zivOJ%_~}w`>P}_P`GeHPugJ0JmCLt2<%ie)n)+hmFmZgeIpW^m)FE^2gXDE`UvS?+ z?7KrVONq+a%5)?B$`8_H`{&f`2d@S3t9wtpGt&O<&8Kf9qLb~%ri_>FAEY;Q1|O2P z9GHKz^Www!1?^1h*c%J{hg{+6;#i{lts|l5Pk#1d8(xWZ%UhPdKcL&#bn%7J!sVRE zZdBKOvbf$W9gj8eQxCrX-nO0GpF4Wzho{e~zw8X$x_8G??w*U!{C4!)?(AQ${`}GK qkCV?y5r00009a7bBm000XU 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 literal 0 HcmV?d00001 diff --git a/theme/54/skin/board/gallery/img/icon_file.gif b/theme/54/skin/board/gallery/img/icon_file.gif new file mode 100644 index 0000000000000000000000000000000000000000..244af004d50b31239c1f480bb0fc3df177333285 GIT binary patch literal 197 zcmZ?wbhEHbC>k_efsqC=g;fbt^4xj%d%z5mM&eoe*OCY|Nk=(0Th3-FfuR*Gw6WSg6w2qb$X!U z$Hc&q>@{nJ*0kkTEC-YHz8FZQ@k?m79C_~0!PRq;F{w*Nt%pfLL5hQAm*)W&QCq3S Ux{8k4(}h`B4?g#9XJD`f08N@mPXGV_ literal 0 HcmV?d00001 diff --git a/theme/54/skin/board/gallery/img/icon_good.png b/theme/54/skin/board/gallery/img/icon_good.png new file mode 100644 index 0000000000000000000000000000000000000000..69841a1340a76f2b4bfeb4a3a9e74b8a5846fe43 GIT binary patch literal 1288 zcmbVMZA{!`9Pfq1I3`QxTc&=n7KtP5t}l1(T`MO!+PiVnyJN>0&WwBEfC(!}ei*Fj>^OWDGN(0*8Je`(V?j z&)fg^`@eUnIk~f{^3h5JL8{_SLK@Cn-Er?d@cXp7a|uq5*wL)rqUY?QXaXc6>m2}% zt70ce15xgM@jR$Ukcym=$=cb(bDX5BKGBu&IjRBC2vXnR7@|}FHrfF?6)lWipZo$t z6*-Kx(g`AA@F1@=^_ifhFPV}03KA=04bPzU4hIQTV2h}uc54>rgs~M~4zAr}979(` z>_Qk@H7c8EMtR)?DDCrmC4wYThVhXBnqkNtC`FJIPQaJ(k^zopI4X#)Js8wx$~i7A z#MX4dT^P&Tw!z_eu~_sK{XX67#7UNAT@H%!LJ6PKqSU6p#T#VSU*WdnGnnRSt=SMLm@vyM))!|u35IINuaD(fqK`l z^j)zWZvxTQ&5W*hmn)z-uiLtn*A0|!VbJZZiYDtttJY1=s<#3#m6w1VGj$bRi7%&Y zpx;mNQ3?*CG0Ly_%|{4!*b2hKZZ{{_(Jop+76y-KXW$q_Xo-O%a=aC`cZ1WboBP*_w2RP7iz}1 zV^=nX_v6!qt#o-lU7Q+y{Qf8J%TJ%W{NCIhGTuZlyfwY$jBz-(>G0xL74Q7;`q;^^ zlKIAaa(kr{`;g;i@Po#IUir7dns1#{!}Otrh64j_??1->a;J+Je0g$qPisy6$NN4T zPqw!SQ$&}fX;VWZBX4r0V*ku*{d+e*Fwy!--PpjXRQ0HnPcMv*{Q2;5^>P0CkA>4u zBtqvLvG3W^1y4>o7}`fC^aW*U8M$=p`L)uVzOBcVHvhC-c=byHnc~&&{ z->-j+TI7Rv!7V`uOwG1%KXu`g-ElyLo%xOxyl()9DW@ z4u9Nq;_b{GKkvSLl0M@}>a^$Oi(YlCc{hLW^YVqy3g$hEnecJr$$!6oy_>V=^X`lP z|Nm#83@H9&VPs&?V$cB@1M(9CTZ}`flj9^Et%(QJ7fUf1%n9mvbTfv5`KaU4O$-dO z?;0DPu2Nzx<~oougO#bcIZ)xq*%-!!4ICLCVuTnuw1gSdDmWR0)A$)Q)VY-y_!|Tm Sl@%BT8e;g^*!U_O8LR=!XM;xo literal 0 HcmV?d00001 diff --git a/theme/54/skin/board/gallery/img/icon_img.gif b/theme/54/skin/board/gallery/img/icon_img.gif new file mode 100644 index 0000000000000000000000000000000000000000..fefa10d4a09ae3dd2407fd94582594c06aafa7fc GIT binary patch literal 145 zcmZ?wbhEHbzHen|7VvwFnzUPlarEA ZqW~YXyUO~T+#YkUoJ%KCQw{PFXi4*tl-~Zypi#>bx zoH=vm#*G`BH*daj<;uHv@4kQkzG~H~FJHdAeEIUtn>R;~9_{Mtx_0f_nl)?Ity_2O z*s&i!ek@+Rc+|z@W*X12PHZCkD2d15*k#mgtxrdBSj@My2(%!y%Ri725^|MOH?MNed6V zWH4B?bq0De3MeqNK4dLOaQFC-7{bsIBBkKW&mha9!6PH#$(QSt&+Vx$CMmB}=`ZBN Q!0YeKBE>UT(~-d%0A})n?*IS* literal 0 HcmV?d00001 diff --git a/theme/54/skin/board/gallery/img/icon_lock.png b/theme/54/skin/board/gallery/img/icon_lock.png new file mode 100644 index 0000000000000000000000000000000000000000..2a083a51d9aa7f27a9a379bee2c49d2ca9cc96c6 GIT binary patch literal 1225 zcmbVMOKjU@9CwqjReiHb2qr;4xm2{$;%Dr{rs(5WiB{UD9aj5$M`YxQgL!;>dU#a?KyY4qt7h+l6u0fDD)j3## zs=j>g3pjyc(YjHo`qjcIQL{}#4P}VHbPyWDCXNM;sx3et)Zm<9rSUr--N1pNr}0^? zKouMb&KuJ!E-bIiRJ4@^P0;aUlVBnc5rGMP6$EC(^28vGw|GUg4v$G3v_$-cG`?$8 zwNM0-?Lxp2Y+R#g8t^zO4bM?AdlBe3b&@PS7 z`@SQRWV6{Mnk-?vb0jSYLdd}|aU>Dw@VN3VXzs*A5g485yV!NfQ)lnxS7UY0odgf6dre+N&%(kSsyZUUW5-kNQXljAD0p zMWGn6gWv%C^kp)3@s-+ z9Q$EYaze^72|-a(3{5M1O5t-7olWxW6eA0CqJzy_p08RO?C3R+-ZnOMSF9+xQ1xxM zV%v>Q1r+CP-}dHh2S{ZejLjOBZa2O0Fg?58%Fs2Ipg!f=CTPW1H1^TYGLpieLFE*w z<+qfjWQOAs$?TNGq*8brtN)*vk;oV_ERO#aOXmnxV7S~XeYDwY9%!MCaZzh@eLb$B zw)#CUXDh*XwX-*4eCFEl`uXS%34ZL|`lT~wV9|lXA+TnNa zo$a~x<>${SoA*8Q&{Fl#htaJ_=33vl@pEK@y0BK~4)lWS$8+y=y?q7irm&Y^kj{@; R3@AOMLlFzK}PuRQ&h|M0|xLCPCfS!F+{3@-DP f-?4DY(nWejQ)6d06;;oc{oQqepNC77mBAVS=eiro literal 0 HcmV?d00001 diff --git a/theme/54/skin/board/gallery/img/icon_reply.gif b/theme/54/skin/board/gallery/img/icon_reply.gif new file mode 100644 index 0000000000000000000000000000000000000000..7fe2c65580ed22e254718fdd45ed93efb554672d GIT binary patch literal 1187 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 I%fes{0AXt-SpWb4 literal 0 HcmV?d00001 diff --git a/theme/54/skin/board/gallery/img/icon_view.png b/theme/54/skin/board/gallery/img/icon_view.png new file mode 100644 index 0000000000000000000000000000000000000000..ea76f54424bc4ccedf3334a5c9912725be81c441 GIT binary patch literal 3130 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 literal 0 HcmV?d00001 diff --git a/theme/54/skin/board/gallery/list.skin.php b/theme/54/skin/board/gallery/list.skin.php new file mode 100644 index 000000000..05daac605 --- /dev/null +++ b/theme/54/skin/board/gallery/list.skin.php @@ -0,0 +1,256 @@ +', 0); +?> + + + +
      + + + + + + + +
      +
      + Total 건 + 페이지 +
      + + + + +
      + + +
      + + + + + + + + + + +
      + + +
      + + + + + +
      + + + +
      + +
      + + +
      + 게시물 검색 + +
      + + + + + + + + +
      +
      + +
      + + + + + + + + + + + + + diff --git a/theme/54/skin/board/gallery/style.css b/theme/54/skin/board/gallery/style.css new file mode 100644 index 000000000..e20ab1c66 --- /dev/null +++ b/theme/54/skin/board/gallery/style.css @@ -0,0 +1,383 @@ +@charset "utf-8"; +/* SIR 지운아빠 */ + +/* ### 기본 스타일 커스터마이징 시작 ### */ + +/* 게시판 버튼 */ +/* 목록 버튼 */ +#bo_gall a.btn_b01 {} +#bo_gall a.btn_b01:focus, #bo_gall a.btn_b01:hover {} +#bo_gall a.btn_b02 {} +#bo_gall a.btn_b02:focus, #bo_gall a.btn_b02:hover {} +#bo_gall a.btn_admin {} /* 관리자 전용 버튼 */ +#bo_gall a.btn_admin:focus, #bo_gall .btn_admin:hover {} + +/* 읽기 버튼 */ +#bo_v a.btn_b01 {} +#bo_v a.btn_b01:focus, #bo_v a.btn_b01:hover {} +#bo_v a.btn_b02 {} +#bo_v a.btn_b02:focus, #bo_v a.btn_b02:hover {} +#bo_v a.btn_admin {} /* 관리자 전용 버튼 */ +#bo_v a.btn_admin:focus, #bo_v a.btn_admin:hover {} + +/* 쓰기 버튼 */ +#bo_w .btn_confirm {} /* 서식단계 진행 */ +#bo_w .btn_submit {padding:0 20px} +#bo_w button.btn_submit {} +#bo_w fieldset .btn_submit {} +#bo_w .btn_cancel {} +#bo_w button.btn_cancel {} +#bo_w .btn_cancel:focus, #bo_w .btn_cancel:hover {} +#bo_w a.btn_frmline, #bo_w button.btn_frmline {} /* 우편번호검색버튼 등 */ +#bo_w button.btn_frmline {} + +/* 기본 테이블 */ +/* 읽기 내 테이블 */ +#bo_v .tbl_head01 {} +#bo_v .tbl_head01 caption {} +#bo_v .tbl_head01 thead th {} +#bo_v .tbl_head01 thead a {} +#bo_v .tbl_head01 thead th input {} /* middle 로 하면 게시판 읽기에서 목록 사용시 체크박스 라인 깨짐 */ +#bo_v .tbl_head01 tfoot th {} +#bo_v .tbl_head01 tfoot td {} +#bo_v .tbl_head01 tbody th {} +#bo_v .tbl_head01 td {} +#bo_v .tbl_head01 a {} +#bo_v td.empty_table {} + +/* 쓰기 테이블 */ +#bo_w table {} +#bo_w caption {} +#bo_w .frm_info {} +#bo_w .frm_address {} +#bo_w .frm_file {} + +#bo_w .tbl_frm01 {} +#bo_w .tbl_frm01 th {} +#bo_w .tbl_frm01 td {} +#bo_w .tbl_frm01 textarea, #bo_w tbl_frm01 .frm_input {} +#bo_w .tbl_frm01 textarea {} +/* +#bo_w .tbl_frm01 #captcha {} +#bo_w .tbl_frm01 #captcha input {} +*/ +#bo_w .tbl_frm01 a {} + +/* 필수입력 */ +#bo_w .required, #bo_w textarea.required {} + +#bo_w .cke_sc {} +#bo_w button.btn_cke_sc{} +#bo_w .cke_sc_def {} +#bo_w .cke_sc_def dl {} +#bo_w .cke_sc_def dl:after {} +#bo_w .cke_sc_def dt, #bo_w .cke_sc_def dd {} +#bo_w .cke_sc_def dt {} +#bo_w .cke_sc_def dd {} + +/* ### 기본 스타일 커스터마이징 끝 ### */ + +/* 게시판 목록 */ +#bo_cate {background:#ecf2f3;padding:7px;margin:10px 0;border:1px solid #bed1d4} +#bo_cate h2 {position:absolute;font-size:0;line-height:0;overflow:hidden} +#bo_cate ul {zoom:1} +#bo_cate ul:after {display:block;visibility:hidden;clear:both;content:""} +#bo_cate li {display:inline-block;padding:2px;} +#bo_cate a {display:block;line-height:26px;padding:0 10px;border-radius:3px;border:1px solid transparent} +#bo_cate a:focus, #bo_cate a:hover, #bo_cate a:active {text-decoration:none;background:#d2d6dc;} +#bo_cate #bo_cate_on {z-index:2;background:#3497d9;color:#fff;font-weight:bold;border-bottom-color:#1977b5; +-webkit-box-shadow: inset 0 2px 5px rgb(33, 135, 202); +-moz-box-shadow: inset 0 2px 5px rgb(33, 135, 202); +box-shadow:inset 0 2px 5px rgb(33, 135, 202);} + +.td_subject img {margin-left:3px} + +/* 갤러리 목록 */ +#bo_gall h2 {margin:0;padding:0;width:1px;height:1px;font-size:0;line-height:0;overflow:hidden} +#bo_gall #gall_ul {margin:10px -10px 0;padding:0;list-style:none;zoom:1} +#bo_gall #gall_ul:after {display:block;visibility:hidden;clear:both;content:""} +#bo_gall .gall_box {position:relative;margin:0 0 30px 0;border:1px solid #ccc;background:#fff;border-radius:0 0 2px 2px} +#bo_gall .gall_li .gall_chk{position:absolute;top:0;left:0;padding:5px;} + +.gall_row .col-gn-0,.gall_row .col-gn-1,.gall_row .col-gn-2,.gall_row .col-gn-3,.gall_row .col-gn-4,.gall_row .col-gn-5,.gall_row .col-gn-6,.gall_row .col-gn-7,.gall_row .col-gn-8,.gall_row .col-gn-9,.gall_row .col-gn-10{position:relative;min-height:1px;padding-left:10px;*padding-left:0;padding-right:10px;*padding-right:0;float:left;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;margin-left:0;} +.gall_row .col-gn-0,.latest_row .col-gn-1{width:100%} +.gall_row .col-gn-2{width:50%} +.gall_row .col-gn-3{width:33.33333333%} +.gall_row .col-gn-4{width:25%} +.gall_row .col-gn-5{width:20%} +.gall_row .col-gn-6{width:16.66666667%} +.gall_row .col-gn-7{width:14.28571428%} +.gall_row .col-gn-8{width:12.5%} +.gall_row .col-gn-9{width:11.11111111%} +.gall_row .col-gn-10{width:10%} + +.gall_row .box_clear{clear:both} + +#bo_gall .gall_now .gall_text_href a {color:#ff3061} + +#bo_gall .gall_href a:link, #bo_gall .gall_href a:focus, #bo_gall .gall_href a:hover {text-decoration:none} +#bo_gall .gall_img{border-bottom:1px solid #eee;text-align:center} +#bo_gall .gall_img a,#bo_gall .gall_img .no_image,#bo_gall .gall_img .is_notice{display:block} +#bo_gall .gall_img img{max-width:100%;height:auto !important} +#bo_gall .gall_img span{display:inline-block;background:#eee;text-align:center;line-height:150px;text-transform:uppercase;font-weight:bold;font-size:1.25em;color:#777} + +#bo_gall .gall_text_href {margin:10px} +#bo_gall .gall_text_href a {font-weight:bold} +#bo_gall .gall_text_href img {margin:0 0 0 4px} +#bo_gall .bo_tit{display:block;font-weight:bold;color:#000;font-size:1.083em} +#bo_gall .bo_tit .cnt_cmt{background:#5c85c1;color:#fff; font-size:11px;height:16px;line-height:16px;padding:0 5px;border-radius:3px;vertical-align:middle; +-webkit-box-shadow: inset 0 2px 5px rgba(255,255,255,0.3); +-moz-box-shadow: inset 0 2px 5px rgba(255,255,255,0.3); +box-shadow: inset 0 2px 5px rgba(255,255,255,0.3);} +#bo_gall .profile_img img{border-radius:50%} +#bo_gall .gall_name{margin:10px} + +#bo_gall .bo_tit .fa-download{width:16px;height:16px;line-height:16px;background:#e89f31;color:#fff;text-align:center;font-size:10px;border-radius:2px;margin-right:2px;vertical-align:middle} +#bo_gall .bo_tit .fa-link{width:16px;height:16px;line-height:16px;background:#ad68d8;color:#fff;text-align:center;font-size:10px;border-radius:2px;margin-right:2px;vertical-align:middle;font-weight:normal} +#bo_gall .bo_tit .fa-link{width:16px;height:16px;line-height:16px;background:#ad68d8;color:#fff;text-align:center;font-size:10px;border-radius:2px;margin-right:2px;vertical-align:middle;margin-right:2px} +#bo_gall .bo_tit .new_icon{display:inline-block;width: 16px;line-height:16px ;font-size:0.833em;color:#fff;background:#6db142;text-align:center;border-radius: 2px;vertical-align:middle;margin-right:2px} +#bo_gall .bo_tit .hot_icon{display:inline-block;width: 16px;line-height:16px ;font-size:0.833em;color:#fff;background:#e52955;text-align:center;border-radius: 2px;vertical-align:middle;margin-right:2px} +#bo_gall .bo_tit .fa-lock{display: inline-block;line-height: 16px;color: #999;text-align: center;vertical-align:middle;} + + +#bo_gall .gall_info{line-height:1.5em;padding:10px;font-size:0.92em;background:#f6f6f6;line-height:20px} +#bo_gall .gall_info strong{ display:inline-block;margin:0 0 0 10px } +#bo_gall .gall_info i{font-size:12px} +#bo_gall .gall_info .gall_date{position:absolute;bottom:10px;right:10px;font-style:italic;display:inline-block;color:#777;} +/* 게시판 목록 공통 */ +#bo_btn_top{margin: 10px 0} +#bo_btn_top:after {display:block;visibility:hidden;clear:both;content:""} +.bo_fx {margin-bottom:5px;float:right;zoom:1} +.bo_fx:after {display:block;visibility:hidden;clear:both;content:""} +.bo_fx ul {margin:0;padding:0;list-style:none} +#bo_list_total {float:left;line-height:30px;font-size:0.92em;color:#4e546f;background:#d4d4d4;padding:0 10px;border-radius:5px;} + +.btn_bo_user {float:right;margin:0;padding:0;list-style:none} +.btn_bo_user li {float:left;margin-left:5px} +.btn_bo_adm {float:left} +.btn_bo_adm li {float:left;margin-right:5px} +.btn_bo_adm input {padding:0 8px;border:0;background:#d4d4d4;color:#666;text-decoration:none;vertical-align:middle} +.bo_notice td {background:#f5f6fa} +.bo_notice td a {font-weight:bold} +.bo_notice .notice_icon{display:inline-block;background:#ed6478;padding:0 3px;line-height:20px;font-weight:normal;font-size:0.92em;color:#fff} +.td_num strong {color:#000} +.bo_cate_link {display:inline-block;margin:0 3px 0 0;font-size:0.92em;color:#3598db !important;font-weight:bold} /* 글제목줄 분류스타일 */ +.bo_current {color:#e8180c} +#bo_list .profile_img {display:inline-block;margin-right:5px} +#bo_list .profile_img img{border-radius:50%} +#bo_list .cnt_cmt {display:inline-block;margin:0 0 0 3px;font-weight:bold;color:#ed6478;font-size:0.86em} + +#bo_sch {float:left;border:1px solid #ccc;border-radius:3px;margin:0 0 20px;background:#fff} +#bo_sch:after {display:block;visibility:hidden;clear:both;content:""} +#bo_sch legend {position:absolute;margin:0;padding:0;font-size:0;line-height:0;text-indent:-9999em;overflow:hidden} +#bo_sch select{border:0;margin:9px 5px ;height:20px;float:left;border-right:1px solid #ddd;} +#bo_sch .sch_input{height:38px;border:0;padding:0;background-color:transparent;float:left} +#bo_sch .sch_btn{height:38px;float:left;background:url('./img/sch_btn.png') no-repeat 50% 50%;border:0;width:40px;text-indent:-999px;overflow:hidden} + +#bo_gall li.empty_list {padding:85px 0;text-align:center} + + +/* 게시판 쓰기 */ +#char_count_desc {display:block;margin:0 0 5px;padding:0} +#char_count_wrap {margin:5px 0 0;text-align:right} +#char_count {font-weight:bold} + +#autosave_wrapper {position:relative} +#autosave_pop {display:none;z-index:10;position:absolute !important;top:34px;right:0;width:350px;height:auto !important;height:180px;max-height:180px;border:1px solid #565656;background:#fff; +-webkit-box-shadow: 2px 2px 3px 0px rgba(0,0,0,0.2); +-moz-box-shadow: 2px 2px 3px 0px rgba(0,0,0,0.2); +box-shadow: 2px 2px 3px 0px rgba(0,0,0,0.2);} +#autosave_pop:before{content: "";position: absolute;top: -8px;right: 45px;width: 0;height: 0;border-style: solid;border-width: 0 6px 8px 6px;border-color: transparent transparent #000 transparent;} +#autosave_pop:after{content: "";position: absolute;top: -7px;right: 45px;width: 0;height: 0;border-style: solid;border-width: 0 6px 8px 6px;border-color: transparent transparent #fff transparent;} +html.no-overflowscrolling #autosave_pop {height:auto;max-height:10000px !important} /* overflow 미지원 기기 대응 */ +#autosave_pop strong {position:absolute;font-size:0;line-height:0;overflow:hidden} +#autosave_pop div {text-align:center;margin:0 !important;} +#autosave_pop button {margin:0;padding:0;border:0;} +#autosave_pop ul {padding:15px;border-top:1px solid #e9e9e9;list-style:none;overflow-y:scroll;height:130px;border-bottom:1px solid #e8e8e8} +#autosave_pop li {padding:8px 5px;border-bottom:1px solid #fff;background:#eee;zoom:1} +#autosave_pop li:after {display:block;visibility:hidden;clear:both;content:""} +#autosave_pop a {display:block;float:left} +#autosave_pop span {display:block;float:right;font-size:0.92em;font-style:italic;color:#999} +.autosave_close {cursor:pointer;width:100%;height:30px;background:none;color:#888;font-weight:bold;font-size:0.92em} +.autosave_close:hover{background:#f3f3f3;color:#3597d9} +.autosave_content {display:none} +.autosave_del{background:url(./img/close_btn.png) no-repeat 50% 50%;text-indent:-999px;overflow:hidden;height:20px;width:20px;} + +/* 게시판 읽기 */ +#bo_v {margin-bottom:20px;padding:20px;background:#fff;box-sizing:border-box} + +#bo_v_table {position:absolute;top:0;right:16px;margin:0;padding:0 5px;height:25px;background:#ff3061;color:#fff;font-weight:bold;line-height:2.2em} + +#bo_v_title {} +#bo_v_title .bo_v_cate{display:inline-block;line-height:26px;background: #3497d9;color: #fff;font-weight: bold;border-bottom:1px solid #1977b5;padding:0 10px;border-radius:3px; +-webkit-box-shadow: inset 0 2px 5px rgb(33, 135, 202); +-moz-box-shadow: inset 0 2px 5px rgb(33, 135, 202); +box-shadow: inset 0 2px 5px rgb(33, 135, 202);} +#bo_v_title .bo_v_tit{display:block;font-size:2em;margin:5px 0 0;word-break:break-all} + +#bo_v_info {padding: 10px 0 15px;margin:0 0 20px;border-bottom:1px solid #ddd;color:#666} +#bo_v_info:after {display:block;visibility:hidden;clear:both;content:""} +#bo_v_info h2 {position:absolute;font-size:0;line-height:0;overflow:hidden} +#bo_v_info strong {display:inline-block;margin:0 10px 0 0;font-weight:normal} +#bo_v_info .sv_member, +#bo_v_info .sv_guest, +#bo_v_info .member, +#bo_v_info .guest {font-weight:bold} +#bo_v_info .profile_img {} +#bo_v_info .profile_img img{border-radius:50%} +#bo_v_info .sv_member{color:#000} +#bo_v_info .if_view{display:inline-block;background:url(./img/icon_view.png) no-repeat 50% 50%;height:15px;width:20px;overflow:hidden;text-indent:-999px;vertical-align:middle;margin-right:3px} +#bo_v_info .if_comment{display:inline-block;background:url(./img/icon_comment.png) no-repeat 50% 50%;height:15px;width:20px;overflow:hidden;text-indent:-999px;vertical-align:middle;margin-right:3px} +#bo_v_info .if_date{float:right;margin:0;font-style:italic;color:#888} + +#bo_v_file {margin:10px 0;border:1px solid #d4d4d4} +#bo_v_file h2 {padding:10px;background: #f3f3f3} +#bo_v_file ul {margin:0;padding:5px 0;list-style:none} +#bo_v_file li {padding:5px 10px;position:relative;} +#bo_v_file a {display:inline-block;color:#3497d9;text-decoration:underline;word-wrap:break-word} +#bo_v_file a:focus, #bo_v_file a:hover, #bo_v_file a:active {text-decoration:none} +#bo_v_file img {float:left;margin:0 10px 0 0} +.bo_v_file_cnt {position:absolute;top:5px;right:10px;color:#888;font-size:0.92em} + +#bo_v_link {margin:10px 0;border:1px solid #d4d4d4} +#bo_v_link h2 {padding:10px;border-bottom:1px solid #e8e8e8;background: #f3f3f3} +#bo_v_link ul {margin:0;padding:5px 0;list-style:none} +#bo_v_link li {padding:5px 10px;position:relative;} +#bo_v_link a {display:inline-block;color:#3497d9;text-decoration:underline;word-wrap:break-word} +#bo_v_link a:focus, #bo_v_link a:hover, #bo_v_link a:active {text-decoration:none} +.bo_v_link_cnt {position:absolute;top:5px;right:10px;color:#888;font-size:0.92em} + +#bo_v_top {zoom:1} +#bo_v_top:after {display:block;visibility:hidden;clear:both;content:""} +#bo_v_top h2 {position:absolute;font-size:0;line-height:0;overflow:hidden} +#bo_v_top ul {padding:0;list-style:none;word-break:break-all} + +#bo_v_bot {zoom:1} +#bo_v_bot:after {display:block;visibility:hidden;clear:both;content:""} +#bo_v_bot h2 {position:absolute;font-size:0;line-height:0;overflow:hidden} +#bo_v_bot ul {padding:0;list-style:none} + +.bo_v_com {margin:20px 0;float:right} +.bo_v_com li {float:left;margin-left:5px} + +.bo_v_left {margin:20px 0;float:left} +.bo_v_left li {float:left;margin-right:5px} + +.bo_v_nb {margin:20px 0;position:relative;clear:both;text-align:left;border-bottom:1px solid #ddd} +.bo_v_nb:after {display:block;visibility:hidden;clear:both;content:""} +.bo_v_nb li {border-top:1px solid #ddd;padding:13px;border-left:1px solid #ddd;border-right:1px solid #ddd;} +.bo_v_nb li:hover{background:#f6f6f6} +.bo_v_nb li i{font-size:13px} +.bo_v_nb li .nb_tit{display:inline-block;padding-right:20px;color:#4567b5} +.bo_v_nb li .nb_date{float:right;color:#888} + +#bo_v_atc {min-height:200px;height:auto !important;height:200px} +#bo_v_atc_title {position:absolute;font-size:0;line-height:0;overflow:hidden} + +#bo_v_img {width:100%;overflow:hidden;zoom:1} +#bo_v_img:after {display:block;visibility:hidden;clear:both;content:""} +#bo_v_img a.view_image{display:block} +#bo_v_img img {margin-bottom:20px;max-width:100%;height:auto} + +#bo_v_con {margin:10px 0 30px;width:100%;line-height:1.7em;min-height:200px;word-break:break-all;overflow:hidden} +#bo_v_con a {color:#000;text-decoration:underline} +#bo_v_con img {max-width:100%;height:auto} + +#bo_v_act {margin-bottom:30px;text-align:center} +#bo_v_act .bo_v_act_gng {position:relative} +#bo_v_act a {margin-right:5px;vertical-align:middle} +#bo_v_act a:hover{background-color:#f3f3f3} +#bo_v_act_good, #bo_v_act_nogood {display:none;position:absolute;top:30px;left:0;padding:10px 0;width:165px;background:#ff3061;color:#fff;text-align:center} +#bo_v_act .bo_v_good{display:inline-block;border:1px solid #000;width:70px;height:70px;padding-top:40px;background:url(./img/icon_good.png) 25px 18px no-repeat;border-radius:50%;font-style:italic} +#bo_v_act .bo_v_nogood{display:inline-block;border:1px solid #000;width:70px;height:70px;padding-top:40px;background:url(./img/icon_bad.png) 25px 18px no-repeat;border-radius:50%;font-style:italic} + +#bo_v_share{position:relative;margin:20px 0;text-align:right} +#bo_v_share .btn{padding:0 10px 0 0;color:#555;font-weight:normal;font-size:1em ;line-height:30px;height:32px;border-radius:0;border-color:#d5d5d5} +#bo_v_share .btn:hover{background:#fff} +#bo_v_share .btn i{margin-right:5px;background:#eee;color:#333;text-align:center;width:30px;line-height:30px;vertical-align:top;} +#bo_v_share .btn_share{} +#bo_v_share .btn_share:hover{} + +.bo_v_snswr{position:relative;display:inline-block;margin-left:-1px} +#bo_v_sns {display:none;position:absolute;top:-50px;left:50%;margin-left:-90px;width:180px;padding:0;list-style:none;zoom:1} +#bo_v_sns:after {display:block;visibility:hidden;clear:both;content:""} +#bo_v_sns:before{content: "";position: absolute;bottom: -7px;left: 84px;width: 0;height: 0;border-style: solid;border-width: 7px 6px 0 6px;border-color: #415b92 transparent transparent transparent;} +#bo_v_sns li {float:left;width:60px;text-align:center} +#bo_v_sns li a{height:40px;padding:10px 0;} +#bo_v_sns li .sns_f{display:block;background:#415b92} +#bo_v_sns li .sns_t{display:block;background:#35b3dc} +#bo_v_sns li .sns_g{display:block;background:#d5503a} +#bo_v_sns.show_kakao{width:240px;margin-left:-120px} +#bo_v_sns li .sns_k{display:block;background:#fbe300} +#bo_v_sns li img{vertical-align:top} + + +/* 게시판 댓글 */ +.cmt_btn{background:url('./img/cmt_btn.png') no-repeat 85px 8px;text-align:left ;width:100% ;border:0;color:#ed6478;font-weight:bold;font-size:1.25em;margin: 30px 0 0px;padding:0 0 10px;cursor:pointer} +.cmt_btn_op{background:url('./img/cmt_btn.png') no-repeat 85px -23px} +#bo_vc {} +#bo_vc h2 {position:absolute;font-size:0;line-height:0;overflow:hidden} +#bo_vc article {margin:20px 0;position:relative} +#bo_vc article .profile_img img{border-radius:50%} +#bo_vc header {} +#bo_vc header:after {display:block;visibility:hidden;clear:both;content:""} +#bo_vc header .icon_reply {position:absolute;top:15px;left:-20px} +#bo_vc .member, #bo_vc .guest, #bo_vc .sv_member, #bo_vc .sv_guest {font-weight:bold} +.bo_vc_hdinfo{float:right;font-style:italic;color:#777} +#bo_vc h1 {position:absolute;font-size:0;line-height:0;overflow:hidden} +#bo_vc .cmt_contents {padding:15px ;margin:10px 0 0;background: #f8fafb;border-radius:5px;border: 1px solid #e8e8e8;line-height:1.8em} +#bo_vc p a {text-decoration:underline} +#bo_vc p a.s_cmt {text-decoration:underline;color:#ed6479} +#bo_vc_empty {margin:0;padding:80px 0 !important;color:#777;text-align:center} +#bo_vc #bo_vc_winfo {float:left} + +.bo_vc_act {text-align:right;margin:0;list-style:none;zoom:1} +.bo_vc_act:after {display:block;visibility:hidden;clear:both;content:""} +.bo_vc_act li {display:inline-block;} +.bo_vc_act li a{padding:0 5px;line-height:23px} + +.bo_vc_w {position:relative;margin:10px 0;display:block;} +.bo_vc_w:after {display:block;visibility:hidden;clear:both;content:""} +.bo_vc_w h2 {position:absolute;font-size:0;line-height:0;overflow:hidden} +.bo_vc_w #char_cnt {display:block;margin:0 0 5px} +.bo_vc_w textarea{border:1px solid #ccc;background:#fff;color:#000;vertical-align:middle;border-radius:3px;padding:5px;width:100%;height:120px; +-webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1); +-moz-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1); +box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);} +#wr_secret{} +.bo_vc_w_info{margin:10px 0;float:left} +.bo_vc_w_info:after {display:block;visibility:hidden;clear:both;content:""} +.bo_vc_w_info .frm_input{float:left;margin-right:5px} +.bo_vc_w_info #captcha{padding-top:10px;display:block;clear:both} +.bo_vc_w .btn_confirm{float:right;margin-top:10px} +.bo_vc_w .btn_confirm label{display:inline-block;margin-right:10px;border-radius:3px;font-size:1.5em;text-align:center;} +.bo_vc_w .btn_submit{height:45px;padding:0 20px;border-radius:3px;font-weight:bold;font-size:1.083em;} +.bo_vc_w_wr:after {display:block;visibility:hidden;clear:both;content:""} + +#bo_vc_send_sns{display:inline-block;float:left} +#bo_vc_sns {display:inline-block;margin:0;padding:0;list-style:none;zoom:1} +#bo_vc_sns:after {display:block;visibility:hidden;clear:both;content:""} +#bo_vc_sns li {float:left;margin:0 5px 0 0} +#bo_vc_sns .sns_li_f{border-radius:3px;background:#3a589b;height:40px;line-height:40px;padding:0 0 0 10px} +#bo_vc_sns .sns_li_t{border-radius:3px;background:#00aced;height:40px;line-height:40px;padding:0 0 0 10px} +#bo_vc_sns .sns_li_off{background:#bbb} +#bo_vc_sns a{display:inline-block;padding:0 15px 0 5px;} +#bo_vc_sns input {margin:0 5px 0 0 } + +/*글쓰기*/ +#bo_w .write_div{margin:10px 0;position:relative} +#bo_w .bo_w_info:after {display:block;visibility:hidden;clear:both;content:""} +#bo_w .bo_w_info .frm_input{float:left;width:33%} +#bo_w #wr_password{margin:0 0.5% } +#bo_w .wr_content.smarteditor2 iframe{background:#fff} +#bo_w .bo_w_tit{position:relative} +#bo_w .bo_w_tit .frm_input{padding-right:120px;} +#bo_w .bo_w_tit #btn_autosave{position:absolute;top:5px;right:5px;line-height:30px;height:30px;} +#bo_w .bo_w_link label{position:absolute;top:1px;left:1px;border-radius:3px 0 0 3px;height:38px;line-height:38px;width:40px;background: #eee;text-align:center;color:#888} +#bo_w .bo_w_link .frm_input{padding-left:50px} +#bo_w .bo_w_flie .lb_icon{position:absolute;top:0px;left:0px;border-radius:3px 0 0 3px;height:38px;line-height:38px;width:40px;background:#eee;text-align:center;color:#888} +#bo_w .bo_w_flie .frm_file{padding-left:50px;} +#bo_w .bo_w_flie .file_wr{border:1px solid #ccc;background:#fff;color:#000;vertical-align:middle;border-radius:3px;padding:5px;height:40px;margin:0} +#bo_w .bo_w_flie .frm_input{margin:10px 0 0 } +#bo_w .bo_w_flie .file_del{position:absolute;top:10px;right:10px;font-size:0.92em;color:#7d7d7d} +#bo_w .bo_w_select select{border:1px solid #3497d9;height:40px;border-radius:3px} \ No newline at end of file diff --git a/theme/54/skin/board/gallery/view.skin.php b/theme/54/skin/board/gallery/view.skin.php new file mode 100644 index 000000000..b1507b3e9 --- /dev/null +++ b/theme/54/skin/board/gallery/view.skin.php @@ -0,0 +1,299 @@ +', 0); +?> + + + + + +
      +
      +

      + + + + + +

      +
      + +
      +

      페이지 정보

      + 작성자 + 댓글 건 + 조회 회 + 작성일 + +
      + +
      +

      본문

      + + \n"; + + for ($i=0; $i<=count($view['file']); $i++) { + if ($view['file'][$i]['view']) { + //echo $view['file'][$i]['view']; + echo get_view_thumbnail($view['file'][$i]['view']); + } + } + + echo "\n"; + } + ?> + + +
      + + + +

      + + + + +
      + + + 추천 + + + + + + 비추천 + + + +
      + +
      + 추천 + 비추천 +
      + + +
      + +
      + 스크랩 + + +
      + + + + + +
      +

      첨부파일

      +
        + +
      • + + + + + () + 회 다운로드 | DATE : +
      • + +
      +
      + + + + + + + + + + +
      + + + + + + + +
        +
      • 이전글
      • +
      • 다음글
      • +
      + + +
      + + + + + +
      + + + + + + \ No newline at end of file diff --git a/theme/54/skin/board/gallery/view_comment.skin.php b/theme/54/skin/board/gallery/view_comment.skin.php new file mode 100644 index 000000000..a372ff01f --- /dev/null +++ b/theme/54/skin/board/gallery/view_comment.skin.php @@ -0,0 +1,325 @@ + + + + + +
      +

      댓글목록

      + \]/i", "", $comment); + $cmt_sv = $cmt_amt - $i + 1; // 댓글 헤더 z-index 재설정 ie8 이하 사이드뷰 겹침 문제 해결 + ?> + +
      style="margin-left:px;border-top-color:#e0e0e0"> +
      +

      님의 댓글의 댓글

      + + + 아이피 + () + + 작성일 + + +
      + + +
      +

      + 비밀글 + +

      + + + +
      + + + + " id="secret_comment_"> + + +
      + +

      등록된 댓글이 없습니다.

      + +
      + + + + + + + + + \ No newline at end of file diff --git a/theme/54/skin/board/gallery/write.skin.php b/theme/54/skin/board/gallery/write.skin.php new file mode 100644 index 000000000..690cb92be --- /dev/null +++ b/theme/54/skin/board/gallery/write.skin.php @@ -0,0 +1,261 @@ +', 0); +?> + +
      +

      + + +
      + + + + + + + + + + + + '."\n".''; + } + + if ($is_html) { + if ($is_dhtml_editor) { + $option_hidden .= ''; + } else { + $option .= "\n".''."\n".''; + } + } + + if ($is_secret) { + if ($is_admin || $is_secret==1) { + $option .= "\n".''."\n".''; + } else { + $option_hidden .= ''; + } + } + + if ($is_mail) { + $option .= "\n".''."\n".''; + } + } + + echo $option_hidden; + ?> + + +
      + + +
      + + + +
      + + + + + + + + class="frm_input " placeholder="비밀번호"> + + + + + + +
      + + +
      + + +
      + + + +
      + 옵션 + +
      + + +
      + + +
      + + + + + +
      + 임시 저장된 글 목록 +
        +
        +
        + +
        + +
        + +
        + +
        + + +

        이 게시판은 최소 글자 이상, 최대 글자 이하까지 글을 쓰실 수 있습니다.

        + + + + +
        글자
        + +
        + +
        + + + + + + + +
        +
        + + +
        + + + + + + + + + + +
        + + + + +
        + +
        + + + +
        + 취소 + +
        +
        + + +
        + \ No newline at end of file diff --git a/theme/54/skin/connect/basic/connect.skin.php b/theme/54/skin/connect/basic/connect.skin.php new file mode 100644 index 000000000..55849443c --- /dev/null +++ b/theme/54/skin/connect/basic/connect.skin.php @@ -0,0 +1,9 @@ +', 0); +?> + + diff --git a/theme/54/skin/connect/basic/current_connect.skin.php b/theme/54/skin/connect/basic/current_connect.skin.php new file mode 100644 index 000000000..d199f8f09 --- /dev/null +++ b/theme/54/skin/connect/basic/current_connect.skin.php @@ -0,0 +1,39 @@ +', 0); +?> + + +
        +
          + ".$location.""; + else $display_location = $location; + + $classes = array(); + if( $i && ($i % 4 == 0) ){ + $classes[] = 'box_clear'; + } + ?> +
        • +
          + +
          + +
          +
        • + 현재 접속자가 없습니다."; + ?> +
        +
        + \ No newline at end of file diff --git a/theme/54/skin/connect/basic/style.css b/theme/54/skin/connect/basic/style.css new file mode 100644 index 000000000..a13cd43c5 --- /dev/null +++ b/theme/54/skin/connect/basic/style.css @@ -0,0 +1,14 @@ +@charset "utf-8"; + +#current_connect ul{margin:0 -10px 0;padding:0;list-style:none;zoom:1} +#current_connect ul:after{display:block;visibility:hidden;clear:both;content:""} +#current_connect li{position:relative;min-height:1px;padding-left:10px;*padding-left:0;padding-right:10px;*padding-right:0;float:left;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;margin-left:0} +#current_connect li{width:25%} +#current_connect li.box_clear{clear:both} +#current_connect li .inner{position:relative;border:1px solid #d8d8d8;background:#fff;margin-bottom:10px;text-align:center} +#current_connect .crt_name {margin:20px 20px 15px;display:block;min-height:88px} +#current_connect .crt_name img{ border-radius:50%;margin: 0 0 5px;max-width:100%;height:auto} +#current_connect .crt_lct{display:block;text-align:center;border-top:1px solid #ddd;padding:10px 5px;line-height:1.4em} +#current_connect .crt_lct a{color:#3ca1ff} +#current_connect .crt_num{position:absolute;top:10px;left:10px;color:#777;font-weight:bold} +#current_connect li.empty_li{width:100%;padding:200px 0 ;border:0;color:#666} \ No newline at end of file diff --git a/theme/54/skin/content/basic/content.skin.php b/theme/54/skin/content/basic/content.skin.php new file mode 100644 index 000000000..5fd7fcecd --- /dev/null +++ b/theme/54/skin/content/basic/content.skin.php @@ -0,0 +1,17 @@ +', 0); +?> + +
        +
        +

        +
        + +
        + +
        + +
        \ No newline at end of file diff --git a/theme/54/skin/content/basic/style.css b/theme/54/skin/content/basic/style.css new file mode 100644 index 000000000..806aee24a --- /dev/null +++ b/theme/54/skin/content/basic/style.css @@ -0,0 +1,9 @@ +@charset "utf-8"; + +/* 내용관리 */ +#ctt {margin:10px 0;padding:20px;background:#fff} +.ctt_admin {text-align:right} +#ctt header h1 {position:absolute;font-size:0;line-height:0;overflow:hidden} +#ctt_con {padding:10px 0;line-height:1.6em} +#ctt_con img{max-width:100%;height:auto} +.ctt_img {text-align:center} \ No newline at end of file diff --git a/theme/54/skin/faq/basic/list.skin.php b/theme/54/skin/faq/basic/list.skin.php new file mode 100644 index 000000000..e0c1b4f7f --- /dev/null +++ b/theme/54/skin/faq/basic/list.skin.php @@ -0,0 +1,142 @@ +', 0); + +if ($admin_href) + echo ''; +?> + + +'; + +// 상단 HTML +echo '
        '.conv_content($fm['fm_head_html'], 1).'
        '; +?> + +
        + FAQ 검색 + +
        + FAQ 검색 + + + + +
        +
        + + + + + + +
        + +
        +

        목록

        +
          + $v){ + if(empty($v)) + continue; + ?> +
        1. +

          Q

          +
          + A + +
          +
          +
        2. + +
        +
        + 검색된 게시물이 없습니다.

        '; + } else { + echo '
        등록된 FAQ가 없습니다.'; + if($is_admin) + echo '
        FAQ를 새로 등록하시려면 FAQ관리 메뉴를 이용하십시오.'; + echo '
        '; + } + } + ?> +
        + + + +'.conv_content($fm['fm_tail_html'], 1).''; + +if ($timg_src) + echo '
        '; +?> + + + + +FAQ 수정'; +?> + + + \ No newline at end of file diff --git a/theme/54/skin/faq/basic/style.css b/theme/54/skin/faq/basic/style.css new file mode 100644 index 000000000..3c3ce0bbb --- /dev/null +++ b/theme/54/skin/faq/basic/style.css @@ -0,0 +1,27 @@ +@charset "utf-8"; +#bo_cate {margin:15px 0 10px} +#bo_cate h2 {position:absolute;font-size:0;line-height:0;overflow:hidden} +#bo_cate ul {;zoom:1} +#bo_cate ul:after {display:block;visibility:hidden;clear:both;content:""} +#bo_cate li {display:inline-block;} +#bo_cate a {display:block;border:1px solid #dadada;background:#fff;margin:0 0 5px 0;line-height:30px;padding:0 10px;border-radius:3px} +#bo_cate a:focus, #bo_cate a:hover, #bo_cate a:active {text-decoration:none;background:#f3f3f3} +#bo_cate #bo_cate_on {z-index:2;border:1px solid #253dbe;color:#253dbe;font-weight:bold} + +#faq_wrap {margin:10px 0 30px} +#faq_wrap h2 {position:absolute;font-size:0;line-height:0;overflow:hidden} +.faq_admin {text-align:right} +#faq_wrap ol {margin:0;padding:0;list-style:none} +#faq_wrap li{border:1px solid #ddd;background:#fff;margin:5px 0;} +#faq_wrap li h3{min-height:50px;line-height:30px;padding:10px;padding-left:50px;position:relative} +#faq_wrap li h3 .tit_bg{display:inline-block;position:absolute;top:10px;left:10px;text-align:center;background:#333;color:#fff;border-radius:50%;width:30px;height:30px} +#faq_con .con_inner{display:none;border-top:1px solid #ddd;padding:15px;padding-left:50px;position:relative;background: #f7f7f7;} +#faq_con .con_inner .tit_bg{display:inline-block;position:absolute;top:10px;left:10px;text-align:center;background:#777;color:#fff;border-radius:50%;width:30px;line-height:30px;height:30px} +#faq_con .con_inner .closer_btn{height:25px;font-size:0.92em;display:inline-block;padding:0 5px;border-radius:5px;} +#faq_con .con_closer{text-align:right} + +#faq_sch {text-align:center;border:1px solid #ccc;background:#fff;;padding:30px;margin:10px 0} +#faq_sch form{display:inline-block;position:relative} +#faq_sch .sch_tit{font-size:20px;font-weight:bold;display:inline-block;margin-right:10px;vertical-align:middle} +#faq_sch .frm_input{border-color:#646982;border-radius:0;width:300px} +#faq_sch .btn_submit{padding:0 10px;height:40px;color:#000;font-size:1.083em;font-weight:bold;color:#fff;background:#253dbe;} diff --git a/theme/54/skin/latest/basic/img/icon_file.gif b/theme/54/skin/latest/basic/img/icon_file.gif new file mode 100644 index 0000000000000000000000000000000000000000..244af004d50b31239c1f480bb0fc3df177333285 GIT binary patch literal 197 zcmZ?wbhEHbC>k_efsqC=g;fbt^4xj%d%z5mM&eoe*OCY|Nk=(0Th3-FfuR*Gw6WSg6w2qb$X!U z$Hc&q>@{nJ*0kkTEC-YHz8FZQ@k?m79C_~0!PRq;F{w*Nt%pfLL5hQAm*)W&QCq3S Ux{8k4(}h`B4?g#9XJD`f08N@mPXGV_ literal 0 HcmV?d00001 diff --git a/theme/54/skin/latest/basic/img/icon_hot.gif b/theme/54/skin/latest/basic/img/icon_hot.gif new file mode 100644 index 0000000000000000000000000000000000000000..2936de662a6035fe711e2ca72f8d35c35fcdd832 GIT binary patch literal 319 zcmZ?wbhEHbEtQ*YwDiOn)&_i-FLfo-m9wo z`|J0u%&d1icYVEm_r>BxZ?|rFGGXHDwQFCm-*CUS=J$v9pH827v1swLIkVqv-S&FT znm60GKA$`H`~63^^YZTG=H0KWebV3eV)0@i<6e3B&6LzPTeklF^XuipMep|=`2YVu z17$$*CkrD3gBF7h$QY2H7}#PQLY*8Z>1a(npuSj&!C+2M$D^Au49rIzmu_NUkbT$K z@N|_DYcbb>j2Wy<#m#{VN6yADE^Oe)_z)w+$e|_7pjN@jAe_d}prOvK#K7Mmz^JUi QD9{kY$HvB2;mBYO0LU4C3IG5A literal 0 HcmV?d00001 diff --git a/theme/54/skin/latest/basic/img/icon_img.gif b/theme/54/skin/latest/basic/img/icon_img.gif new file mode 100644 index 0000000000000000000000000000000000000000..3ba495d054fa6588116e03c4fd4f38d58400b153 GIT binary patch literal 317 zcmZ?wbhEHbe)HzdzkmOpK7G1o&6@rD_kZ~C z0Z6`l`EvdG^($7a`10k;@87>SZ{B?6%9V{9H=a0gV&A@fKwYO#pT2+p{)-ncfKov2 zr%#`N;f!KYsiGiW~)lhIr>|74(23<(<=9yw$9#m#@ra2-+bRv!3%fd0dBQ?f)ODm;T_l^Ed4xq>LVCj3 U#2LJNXZi*?xy@tnaAdFs0Qg;*ivR!s literal 0 HcmV?d00001 diff --git a/theme/54/skin/latest/basic/img/icon_link.gif b/theme/54/skin/latest/basic/img/icon_link.gif new file mode 100644 index 0000000000000000000000000000000000000000..e9cb9559c9cd08a6f51993518a17dab128b82916 GIT binary patch literal 319 zcmZ?wbhEHbKCQw{PFXi4*tl-~Zypi#>bx zoH=vm#*G`BH*daj<;uHv@4kQkzG~H~FJHdAeEIUtn>R;~9_{Mtx_0f_nl)?Ity_2O z*s&i!ek@+Rc+|z@W*X12PHZCkD2d15*k#mgtxrdBSj@My2(%!y%Ri725^|MOH?MNed6V zWH4B?bq0De3MeqNK4dLOaQFC-7{bsIBBkKW&mha9!6PH#$(QSt&+Vx$CMmB}=`ZBN Q!0YeKBE>UT(~-d%0A})n?*IS* literal 0 HcmV?d00001 diff --git a/theme/54/skin/latest/basic/img/icon_lock.png b/theme/54/skin/latest/basic/img/icon_lock.png new file mode 100644 index 0000000000000000000000000000000000000000..2a083a51d9aa7f27a9a379bee2c49d2ca9cc96c6 GIT binary patch literal 1225 zcmbVMOKjU@9CwqjReiHb2qr;4xm2{$;%Dr{rs(5WiB{UD9aj5$M`YxQgL!;>dU#a?KyY4qt7h+l6u0fDD)j3## zs=j>g3pjyc(YjHo`qjcIQL{}#4P}VHbPyWDCXNM;sx3et)Zm<9rSUr--N1pNr}0^? zKouMb&KuJ!E-bIiRJ4@^P0;aUlVBnc5rGMP6$EC(^28vGw|GUg4v$G3v_$-cG`?$8 zwNM0-?Lxp2Y+R#g8t^zO4bM?AdlBe3b&@PS7 z`@SQRWV6{Mnk-?vb0jSYLdd}|aU>Dw@VN3VXzs*A5g485yV!NfQ)lnxS7UY0odgf6dre+N&%(kSsyZUUW5-kNQXljAD0p zMWGn6gWv%C^kp)3@s-+ z9Q$EYaze^72|-a(3{5M1O5t-7olWxW6eA0CqJzy_p08RO?C3R+-ZnOMSF9+xQ1xxM zV%v>Q1r+CP-}dHh2S{ZejLjOBZa2O0Fg?58%Fs2Ipg!f=CTPW1H1^TYGLpieLFE*w z<+qfjWQOAs$?TNGq*8brtN)*vk;oV_ERO#aOXmnxV7S~XeYDwY9%!MCaZzh@eLb$B zw)#CUXDh*XwX-*4eCFEl`uXS%34ZL|`lT~wV9|lXA+TnNa zo$a~x<>${SoA*8Q&{Fl#htaJ_=33vl@pEK@y0BK~4)lWS$8+y=y?q7irm&Y^kj{@; R(%cf16Zrr$W z{rdHjCr{3vJ$vQKmCv3%n>1@!i5WK)~q>x{P^O< zi?3e2x^LgUUAuPu`Sa)6wQGO>{=Iqg=C5DBwt~R}F!=xfKLeG3;!hSv1_pHo9guk- zKQXWs9GJXe!Gr(?hAx*t0V{byl?6c)-Q>=>GF;f9(9+?}ED$k=Bf9zd1Wy$s_Wnkn z84PU88y&a=9iSXMhSSOWmH3xI$C literal 0 HcmV?d00001 diff --git a/theme/54/skin/latest/basic/img/icon_more.gif b/theme/54/skin/latest/basic/img/icon_more.gif new file mode 100644 index 0000000000000000000000000000000000000000..7cdf200a7baa62de1a95e3912c9ca1fb34b36644 GIT binary patch literal 169 zcmV;a09OA;Nk%w1VG95W0K@I6zOJt}3$`6RT1g06226*Z@+ongb7@ XU=fBkjtXNz0xpR_!)cQgkRbp&KI&WI literal 0 HcmV?d00001 diff --git a/theme/54/skin/latest/basic/img/icon_movie.gif b/theme/54/skin/latest/basic/img/icon_movie.gif new file mode 100644 index 0000000000000000000000000000000000000000..cb958f83f9c606f290a260714cd9a3cff043f3a2 GIT binary patch literal 110 zcmZ?wbhEHbZ% literal 0 HcmV?d00001 diff --git a/theme/54/skin/latest/basic/img/icon_reply.gif b/theme/54/skin/latest/basic/img/icon_reply.gif new file mode 100644 index 0000000000000000000000000000000000000000..91c135977b4f445a90c849310dc80efde1983830 GIT binary patch literal 77 zcmZ?wbhEHbC++&YW4WV8MX{2Y_l09y~a2-n^qnkN*GvpMgq1@h1x-1A{t)4#+%^ zpBUJp4@};0iP6RF&=XgqlMO2KpR9E8oa7XAR_$b`iXzA51f4?;er$&r12dHQSe%^| zeYK<-8VnLWIhYwLop{)I>Km)nnc11!o1El48(8?6rcGz!XW`>+oY%E1CJY$zMikVi`-#gIi|DbmsXBWf6U5szE@->A`0*`&<;b@XASRrB8=E6~=S>Pbm I%fes{0AXt-SpWb4 literal 0 HcmV?d00001 diff --git a/theme/54/skin/latest/basic/img/icon_view.png b/theme/54/skin/latest/basic/img/icon_view.png new file mode 100644 index 0000000000000000000000000000000000000000..ea76f54424bc4ccedf3334a5c9912725be81c441 GIT binary patch literal 3130 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 literal 0 HcmV?d00001 diff --git a/theme/54/skin/latest/basic/latest.skin.php b/theme/54/skin/latest/basic/latest.skin.php new file mode 100644 index 000000000..a580b753d --- /dev/null +++ b/theme/54/skin/latest/basic/latest.skin.php @@ -0,0 +1,52 @@ +', 0); +?> + +
        +

        +
          + +
        • + 비밀글 "; + + if ($list[$i]['icon_new']) echo "N새글"; + + if ($list[$i]['icon_hot']) echo "H인기글"; + + + echo " "; + if ($list[$i]['is_notice']) + echo "".$list[$i]['subject'].""; + else + echo $list[$i]['subject']; + + + + echo ""; + + // if ($list[$i]['link']['count']) { echo "[{$list[$i]['link']['count']}]"; } + // if ($list[$i]['file']['count']) { echo "<{$list[$i]['file']['count']}>"; } + + //echo $list[$i]['icon_reply']." "; + // if ($list[$i]['icon_file']) echo " " ; + //if ($list[$i]['icon_link']) echo " " ; + + if ($list[$i]['comment_cnt']) echo " + + ".$list[$i]['comment_cnt'].""; + + ?> + + +
        • + + +
        • 게시물이 없습니다.
        • + +
        + 더보기 + +
        diff --git a/theme/54/skin/latest/basic/style.css b/theme/54/skin/latest/basic/style.css new file mode 100644 index 000000000..8fb71ebde --- /dev/null +++ b/theme/54/skin/latest/basic/style.css @@ -0,0 +1,26 @@ +@charset "utf-8"; +/* 새글 스킨 (latest) */ + +.lat {position:relative;margin-bottom:20px;overflow:hidden;border: 1px solid #c6cacc;background:#fff} +.lat .lat_title {display:block;padding:0 20px;line-height:45px;font-size:1.083em;border-bottom:1px solid #e2e2e2;color:#253dbe;background:#fcfcfc} +.lat .lat_title a{color:#253dbe;display:inline-block;position:relative} +.lat .lat_title a:after{position:absolute;bottom:-1px;left:0;width:100%;height:2px;background:#253dbe;content:''} +.lat ul{padding:15px 20px} +.lat li {position:relative;line-height:18px;padding:3px 0;padding-right:50px;padding-left:10px;position:relative} +.lat li:before{position: absolute;top: 12px;left: 0px;width: 4px;height: 4px;background: #aaa;content: '';border-radius: 50%;} +.lat li a:hover{color:#a22121} +.lat li .fa-heart{color:#ff0000;} +.lat li .fa-lock{display: inline-block;line-height: 14px;width: 16px;font-size: 0.833em;color: #4f818c;background: #cbe3e8;text-align: center;border-radius: 2px;font-size: 12px;border:1px solid #a2c6ce} +.lat li .new_icon{display:inline-block;width: 16px;line-height:16px;font-size:0.833em;color:#ffff00;background:#6db142;text-align:center;border-radius: 2px;} +.lat li .hot_icon{display:inline-block;width: 16px;line-height:16px ;font-size:0.833em;color:#fff;background:#e52955;text-align:center;border-radius: 2px;} +.lat li .fa-caret-right{color:#bbb} +.lat .lt_date{position:absolute;top:3px;right:0;color:#888} +.lat .empty_li{line-height:145px ;color:#666;text-align:center;padding:0;} +.lat .empty_li:before{background:none;padding:0} + +.lat .lt_cmt{background:#5c85c1;color:#fff; font-size:11px;height:16px;line-height:16px;padding:0 5px;border-radius:3px; +-webkit-box-shadow: inset 0 2px 5px rgba(255,255,255,0.4); +-moz-box-shadow: inset 0 2px 5px rgba(255,255,255,0.4); +box-shadow: inset 0 2px 5px rgba(255,255,255,0.4);} +.lat .lt_more {position:absolute;top:11px;right:10px;display:block;width:25px;line-height:25px;color:#aaa;border-radius:3px;text-align:center;} +.lat .lt_more:hover{color:#777} \ No newline at end of file diff --git a/theme/54/skin/latest/notice/latest.skin.php b/theme/54/skin/latest/notice/latest.skin.php new file mode 100644 index 000000000..d994b10f3 --- /dev/null +++ b/theme/54/skin/latest/notice/latest.skin.php @@ -0,0 +1,53 @@ +', 0); +add_javascript('', 10); +?> + +
        +

        + + +
        + + + \ No newline at end of file diff --git a/theme/54/skin/latest/notice/style.css b/theme/54/skin/latest/notice/style.css new file mode 100644 index 000000000..3867cde8e --- /dev/null +++ b/theme/54/skin/latest/notice/style.css @@ -0,0 +1,16 @@ +@charset "utf-8"; +/* 새글 스킨 (latest) */ +.notice {position:relative;padding:15px 50px;border-bottom:1px solid #d0d6e4} +.notice li{text-overflow: ellipsis;overflow: hidden;white-space: nowrap;} +.notice li a:hover{color:#a22121} +.notice li .lock_icon{display: inline-block;line-height: 14px;width: 16px;font-size: 0.833em;color: #4f818c;background: #cbe3e8;text-align: center;border-radius: 2px;font-size: 12px;border:1px solid #a2c6ce;vertical-align:top} +.notice li .new_icon{display:inline-block;line-height:16px;width:16px;font-size:0.833em;color:#ffff00;background:#6db142;text-align:center;margin-right:3px;border-radius:2px;vertical-align:top} +.notice .cnt_cmt{background:#5c85c1;color:#fff; font-size:11px;height:16px;line-height:16px;padding:0 5px;border-radius:3px;white-space: nowrap;margin-left:5px; +-webkit-box-shadow: inset 0 2px 5px rgba(255,255,255,0.4); +-moz-box-shadow: inset 0 2px 5px rgba(255,255,255,0.4); +box-shadow: inset 0 2px 5px rgba(255,255,255,0.4)} + +.notice h2{position:absolute;top:50%;left:10px;margin-top:-15px;left:5;line-height:30px} +.notice h2 a{display:inline-block;width:30px;line-height:30px;border-radius:25px;background:#4158d1;color:#fff;text-align:center;color:#fff} +.notice .bx-next{position:absolute;top:50%;right:10px;;width:26px;height:26px;line-height:24px;text-align:center;background:#fff;border:1px solid #d1d1d1;margin-top:-12px} +.notice .bx-prev{position:absolute;top:50%;right:35px;width:26px;height:26px;line-height:24px;text-align:center;background:#fff;border:1px solid #d1d1d1;margin-top:-12px} diff --git a/theme/54/skin/latest/pic_basic/latest.skin.php b/theme/54/skin/latest/pic_basic/latest.skin.php new file mode 100644 index 000000000..3e94c4d8e --- /dev/null +++ b/theme/54/skin/latest/pic_basic/latest.skin.php @@ -0,0 +1,67 @@ +', 0); +$thumb_width = 210; +$thumb_height = 150; +?> + +
        +

        +
          + '; + ?> +
        • + + 비밀글 "; + + if ($list[$i]['icon_new']) echo "N새글"; + + if ($list[$i]['icon_hot']) echo "H인기글"; + + + echo " "; + if ($list[$i]['is_notice']) + echo "".$list[$i]['subject'].""; + else + echo $list[$i]['subject']; + + + + echo ""; + + // if ($list[$i]['link']['count']) { echo "[{$list[$i]['link']['count']}]"; } + // if ($list[$i]['file']['count']) { echo "<{$list[$i]['file']['count']}>"; } + + //echo $list[$i]['icon_reply']." "; + // if ($list[$i]['icon_file']) echo " " ; + //if ($list[$i]['icon_link']) echo " " ; + + if ($list[$i]['comment_cnt']) echo " + + ".$list[$i]['wr_comment'].""; + + ?> + + +
        • + + +
        • 게시물이 없습니다.
        • + +
        + 더보기 + +
        diff --git a/theme/54/skin/latest/pic_basic/style.css b/theme/54/skin/latest/pic_basic/style.css new file mode 100644 index 000000000..9945e8d26 --- /dev/null +++ b/theme/54/skin/latest/pic_basic/style.css @@ -0,0 +1,24 @@ +@charset "utf-8"; +/* 새글 스킨 (latest) */ +.pic_lt{position:relative;margin-bottom:20px;overflow:hidden;border: 1px solid #c6cacc;background:#fff} +.pic_lt .lat_title {display:block;background:#fcfcfc;padding:0 20px;line-height:45px;font-size:1.083em;border-bottom:1px solid #e2e2e2;color:#253dbe;} +.pic_lt .lat_title a{color:#253dbe;display:inline-block;position:relative} +.pic_lt .lat_title a:after{position:absolute;bottom:-1px;left:0;width:100%;height:2px;background:#253dbe;content:''} +.pic_lt .lt_more {position:absolute;top:11px;right:10px;display:block;width:25px;line-height:25px;color:#aaa;border-radius:3px;text-align:center;} +.pic_lt .lt_more:hover{color:#777} +.pic_lt ul:after {display:block;visibility:hidden;clear:both;content:""} +.pic_lt ul{padding:20px 15px } +.pic_lt li{float:left;width:20%;padding:0 10px} +.pic_lt li .lt_img{margin:5px 0;display:block} +.pic_lt li .lt_img img{width:100%;height:auto} +.pic_lt li a:hover{color:#a22121} +.pic_lt li .fa-heart{color:#ff0000;} +.pic_lt li .fa-lock{display: inline-block;line-height: 14px;width: 16px;font-size: 0.833em;color: #4f818c;background: #cbe3e8;text-align: center;border-radius: 2px;font-size: 12px;border:1px solid #a2c6ce} +.pic_lt li .new_icon{display:inline-block;width: 16px;line-height:16px ;font-size:0.833em;color:#ffff00;background:#6db142;text-align:center;border-radius: 2px;} +.pic_lt li .hot_icon{display:inline-block;width: 16px;line-height:16px ;font-size:0.833em;color:#fff;background:#e52955;text-align:center;border-radius: 2px;} +.pic_lt li .fa-caret-right{color:#bbb} +.pic_lt .lt_cmt{background:#5c85c1;color:#fff; font-size:11px;height:16px;line-height:16px;padding:0 5px;border-radius:3px;white-space: nowrap; +-webkit-box-shadow: inset 0 2px 5px rgba(255,255,255,0.4); +-moz-box-shadow: inset 0 2px 5px rgba(255,255,255,0.4); +box-shadow: inset 0 2px 5px rgba(255,255,255,0.4);} +.pic_lt .lt_date{display:block;margin-top:5px;color: #888;} diff --git a/theme/54/skin/member/basic/formmail.skin.php b/theme/54/skin/member/basic/formmail.skin.php new file mode 100644 index 000000000..42b5520de --- /dev/null +++ b/theme/54/skin/member/basic/formmail.skin.php @@ -0,0 +1,99 @@ +', 0); +?> + + +
        +

        님께 메일보내기

        + +
        + + + + + + + +
        +

        메일쓰기

        +
          + +
        • + + +
        • +
        • + + +
        • + +
        • + + +
        • +
        • + 형식 + + + +
        • +
        • + + +
        • +
        • +
          + + +
          +
          첨부 파일은 누락될 수 있으므로 메일을 보낸 후 파일이 첨부 되었는지 반드시 확인해 주시기 바랍니다.
          + +
        • +
        • +
          + + +
          +
        • +
        • + 자동등록방지 + +
        • +
        +
        + + +
        +
        + + +
        +
        + + + \ No newline at end of file diff --git a/theme/54/skin/member/basic/img/zip_ico_up.gif b/theme/54/skin/member/basic/img/zip_ico_up.gif new file mode 100644 index 0000000000000000000000000000000000000000..a1eff70fa850bea122f6924d8c3cd63f1d573c53 GIT binary patch literal 54 zcmZ?wbhEHb', 0); +?> + + +
        +

        + +
        + + +
        + 회원로그인 + + + + + + + +
        + + + + + +
        + + +
        + + + diff --git a/theme/54/skin/member/basic/login_check.skin.php b/theme/54/skin/member/basic/login_check.skin.php new file mode 100644 index 000000000..1b182915e --- /dev/null +++ b/theme/54/skin/member/basic/login_check.skin.php @@ -0,0 +1,5 @@ + diff --git a/theme/54/skin/member/basic/member_confirm.skin.php b/theme/54/skin/member/basic/member_confirm.skin.php new file mode 100644 index 000000000..457a318b4 --- /dev/null +++ b/theme/54/skin/member/basic/member_confirm.skin.php @@ -0,0 +1,45 @@ +', 0); +?> + + +
        +

        + +

        + 비밀번호를 한번 더 입력해주세요. + + 비밀번호를 입력하시면 회원탈퇴가 완료됩니다. + + 회원님의 정보를 안전하게 보호하기 위해 비밀번호를 한번 더 확인합니다. + +

        + +
        + + + +
        + 회원아이디 + + + + +
        + +
        + +
        + + + \ No newline at end of file diff --git a/theme/54/skin/member/basic/memo.skin.php b/theme/54/skin/member/basic/memo.skin.php new file mode 100644 index 000000000..82207d2f1 --- /dev/null +++ b/theme/54/skin/member/basic/memo.skin.php @@ -0,0 +1,47 @@ +', 0); +?> + + +
        +

        +
        + +
        + + 전체 쪽지 통
        +
        +
        +
        + +
          + +
        • + + - 삭제 +
        • + + 자료가 없습니다.'; } ?> +
        +
        + + + + +

        + 쪽지 보관일수는 최장 일 입니다. +

        + +
        + +
        +
        +
        + \ No newline at end of file diff --git a/theme/54/skin/member/basic/memo_form.skin.php b/theme/54/skin/member/basic/memo_form.skin.php new file mode 100644 index 000000000..4870601a9 --- /dev/null +++ b/theme/54/skin/member/basic/memo_form.skin.php @@ -0,0 +1,60 @@ +', 0); +?> + + +
        +

        쪽지 보내기

        +
        + + +
        +
        +

        쪽지쓰기

        +
          +
        • + + + + 여러 회원에게 보낼때는 컴마(,)로 구분하세요. + +
          쪽지 보낼때 회원당 점의 포인트를 차감합니다. + +
        • +
        • + + +
        • +
        • + 자동등록방지 + + + +
        • +
        +
        + +
        + + +
        +
        + +
        + + + \ No newline at end of file diff --git a/theme/54/skin/member/basic/memo_view.skin.php b/theme/54/skin/member/basic/memo_view.skin.php new file mode 100644 index 000000000..fe62d7a6b --- /dev/null +++ b/theme/54/skin/member/basic/memo_view.skin.php @@ -0,0 +1,63 @@ +', 0); +?> + + +
        +

        +
        + + + + +
        +
        +

        쪽지 내용

        +
        +
          +
        • + 사람 + +
        • +
        • + 시간 + +
        • +
        +

        + +

        +
        + + +
        + + 이전쪽지 + + + 다음쪽지 + + + 목록 + + 답장 +
        +
        +
        + \ No newline at end of file diff --git a/theme/54/skin/member/basic/password.skin.php b/theme/54/skin/member/basic/password.skin.php new file mode 100644 index 000000000..eab84757f --- /dev/null +++ b/theme/54/skin/member/basic/password.skin.php @@ -0,0 +1,46 @@ +', 0); +?> + + +
        +

        +

        + + 작성자만 글을 수정할 수 있습니다. + 작성자 본인이라면, 글 작성시 입력한 비밀번호를 입력하여 글을 수정할 수 있습니다. + + 작성자만 글을 삭제할 수 있습니다. + 작성자 본인이라면, 글 작성시 입력한 비밀번호를 입력하여 글을 삭제할 수 있습니다. + + 비밀글 기능으로 보호된 글입니다. + 작성자와 관리자만 열람하실 수 있습니다.
        본인이라면 비밀번호를 입력하세요. + +

        + +
        + + + + + + + + +
        + + + +
        +
        + +
        + \ No newline at end of file diff --git a/theme/54/skin/member/basic/password_lost.skin.php b/theme/54/skin/member/basic/password_lost.skin.php new file mode 100644 index 000000000..755cbd8bc --- /dev/null +++ b/theme/54/skin/member/basic/password_lost.skin.php @@ -0,0 +1,48 @@ +', 0); +?> + + +
        +

        회원정보 찾기

        +
        +
        +
        +

        + 회원가입 시 등록하신 이메일 주소를 입력해 주세요.
        + 해당 이메일로 아이디와 비밀번호 정보를 보내드립니다. +

        + + +
        + + + +
        + + + +
        + + + \ No newline at end of file diff --git a/theme/54/skin/member/basic/point.skin.php b/theme/54/skin/member/basic/point.skin.php new file mode 100644 index 000000000..5c0c80dc1 --- /dev/null +++ b/theme/54/skin/member/basic/point.skin.php @@ -0,0 +1,79 @@ +', 0); +?> + +
        +

        + +
        + +
          +
        • + 보유포인트 + +
        • + 0) { + $point1 = '+' .number_format($row['po_point']); + $sum_point1 += $row['po_point']; + } else { + $point2 = number_format($row['po_point']); + $sum_point2 += $row['po_point']; + } + + $po_content = $row['po_content']; + + $expr = ''; + if($row['po_expired'] == 1) + $expr = ' txt_expired'; + ?> +
        • +
          + + + +
          + + + + 만료 + + +
        • + 자료가 없습니다.'; + else { + if ($sum_point1 > 0) + $sum_point1 = "+" . number_format($sum_point1); + $sum_point2 = number_format($sum_point2); + } + ?> + +
        • + 소계 + + +
        • +
        + +
        + + + + +
        \ No newline at end of file diff --git a/theme/54/skin/member/basic/profile.skin.php b/theme/54/skin/member/basic/profile.skin.php new file mode 100644 index 000000000..31fa9c15c --- /dev/null +++ b/theme/54/skin/member/basic/profile.skin.php @@ -0,0 +1,52 @@ +', 0); +?> + + +
        +

        님의 프로필

        +
        + + + + +
        +
        + + + + + + + + + + + + + + + + + + + + + + +
        회원권한 포인트
        회원가입일= $mb['mb_level']) ? substr($mb['mb_datetime'],0,10) ." (".number_format($mb_reg_after)." 일)" : "알 수 없음"; ?> 최종접속일= $mb['mb_level']) ? $mb['mb_today_login'] : "알 수 없음"; ?>
        홈페이지
        + + +
        +

        인사말

        +

        +
        +
        +
        + +
        +
        + \ No newline at end of file diff --git a/theme/54/skin/member/basic/register.skin.php b/theme/54/skin/member/basic/register.skin.php new file mode 100644 index 000000000..4aff4828e --- /dev/null +++ b/theme/54/skin/member/basic/register.skin.php @@ -0,0 +1,103 @@ +', 0); +?> + + +
        + + + +
        + +

        회원가입약관 및 개인정보처리방침안내의 내용에 동의하셔야 회원가입 하실 수 있습니다.

        +
        + + + +
        +
        +

        회원가입약관

        + +
        + + +
        +
        + +
        +

        개인정보처리방침안내

        +
        + + + + + + + + + + + + + + + + + + + + + +
        개인정보처리방침안내
        목적항목보유기간
        이용자 식별 및 본인여부 확인아이디, 이름, 비밀번호회원 탈퇴 시까지
        고객서비스 이용에 관한 통지,
        CS대응을 위한 이용자 식별
        연락처 (이메일, 휴대전화번호)회원 탈퇴 시까지
        +
        + +
        + + +
        +
        + +
        + +
        + +
        + + +
        + diff --git a/theme/54/skin/member/basic/register_form.skin.php b/theme/54/skin/member/basic/register_form.skin.php new file mode 100644 index 000000000..5ecb1c8e0 --- /dev/null +++ b/theme/54/skin/member/basic/register_form.skin.php @@ -0,0 +1,461 @@ +', 0); +?> + + + + + + + + +
        + + + + + + + + date("Y-m-d", G5_SERVER_TIME - ($config['cf_nick_modify'] * 86400))) { // 닉네임수정일이 지나지 않았다면 ?> + + + +
        +
        +

        사이트 이용정보 입력

        +
          +
        • + + class="frm_input half_input " minlength="3" maxlength="20" placeholder="아이디"> + + 영문자, 숫자, _ 만 입력 가능. 최소 3자이상 입력하세요. +
        • +
        • + + class="frm_input half_input " minlength="3" maxlength="20" placeholder="비밀번호"> + + + class="frm_input half_input right_input " minlength="3" maxlength="20" placeholder="비밀번호 확인"> +
        • +
        +
        + +
        +

        개인정보 입력

        + +
          +
        • + + class="frm_input half_input " size="10" placeholder="이름"> + 아이핀 본인확인'.PHP_EOL; + if($config['cf_cert_hp']) + echo ''.PHP_EOL; + + echo ''.PHP_EOL; + } + ?> + + +
          + 본인확인 및 성인인증 완료 +
          + + + 아이핀 본인확인 후에는 이름이 자동 입력되고 휴대폰 본인확인 후에는 이름과 휴대폰번호가 자동 입력되어 수동으로 입력할수 없게 됩니다. + + + +
        • + +
        • + + + + + + + 공백없이 한글,영문,숫자만 입력 가능 (한글2자, 영문4자 이상)
          + 닉네임을 바꾸시면 앞으로 일 이내에는 변경 할 수 없습니다. +
          + +
        • + + +
        • + + + + + + + + + + + +
        • + + +
        • + + class="frm_input full_input " size="70" maxlength="255" placeholder="홈페이지"> +
        • + + +
        • + + + + class="frm_input half_input " maxlength="20" placeholder="전화번호"> + + + + + + class="frm_input right_input half_input " maxlength="20" placeholder="휴대폰번호"> + + + + +
        • + + + +
        • + 필수 + + class="frm_input " size="5" maxlength="6" placeholder="우편번호"> +
          + class="frm_input frm_address full_input " size="50" placeholder="기본주소"> +
          + + +
          + + + + +
        • + +
        +
        + +
        +

        기타 개인설정

        +
          + +
        • + + +
        • + + + +
        • + + +
        • + + + = $config['cf_icon_level']) { ?> +
        • + + + + + 이미지 크기는 가로 픽셀, 세로 픽셀 이하로 해주세요.
          + gif, jpg, png파일만 가능하며 용량 바이트 이하만 등록됩니다. +
          + + + 회원아이콘 + + + + +
        • + + + = $config['cf_icon_level'] && $config['cf_member_img_size'] && $config['cf_member_img_width'] && $config['cf_member_img_height']) { ?> +
        • + + + + + 이미지 크기는 가로 픽셀, 세로 픽셀 이하로 해주세요.
          + gif, jpg, png파일만 가능하며 용량 바이트 이하만 등록됩니다. +
          + + + 회원이미지 + + + + +
        • + + +
        • + + > + 정보 메일을 받겠습니다. + +
        • + + +
        • + + + > + 휴대폰 문자메세지를 받겠습니다. + +
        • + + + +
        • + + + id="reg_mb_open"> + 다른분들이 나의 정보를 볼 수 있도록 합니다. + + 정보공개를 바꾸시면 앞으로 일 이내에는 변경이 안됩니다. + +
        • + +
        • + 정보공개 + + + 정보공개는 수정후 일 이내, 까지는 변경이 안됩니다.
          + 이렇게 하는 이유는 잦은 정보공개 수정으로 인하여 쪽지를 보낸 후 받지 않는 경우를 막기 위해서 입니다. +
          + +
        • + + + + + +
        • + + +
        • + + +
        • + 자동등록방지 + +
        • +
        +
        + +
        +
        + 취소 + +
        +
        + + + + \ No newline at end of file diff --git a/theme/54/skin/member/basic/register_result.skin.php b/theme/54/skin/member/basic/register_result.skin.php new file mode 100644 index 000000000..2072485a3 --- /dev/null +++ b/theme/54/skin/member/basic/register_result.skin.php @@ -0,0 +1,44 @@ +', 0); +?> + + +
        +

        회원가입이 완료되었습니다.

        +

        + 님의 회원가입을 진심으로 축하합니다.
        +

        + + +

        + 회원 가입 시 입력하신 이메일 주소로 인증메일이 발송되었습니다.
        + 발송된 인증메일을 확인하신 후 인증처리를 하시면 사이트를 원활하게 이용하실 수 있습니다. +

        +
        + 아이디 +
        + 이메일 주소 + +
        +

        + 이메일 주소를 잘못 입력하셨다면, 사이트 관리자에게 문의해주시기 바랍니다. +

        + + +

        + 회원님의 비밀번호는 아무도 알 수 없는 암호화 코드로 저장되므로 안심하셔도 좋습니다.
        + 아이디, 비밀번호 분실시에는 회원가입시 입력하신 이메일 주소를 이용하여 찾을 수 있습니다. +

        + +

        + 회원 탈퇴는 언제든지 가능하며 일정기간이 지난 후, 회원님의 정보는 삭제하고 있습니다.
        + 감사합니다. +

        + + 메인으로 + +
        + \ No newline at end of file diff --git a/theme/54/skin/member/basic/scrap.skin.php b/theme/54/skin/member/basic/scrap.skin.php new file mode 100644 index 000000000..c2a7c52ce --- /dev/null +++ b/theme/54/skin/member/basic/scrap.skin.php @@ -0,0 +1,33 @@ +', 0); +?> + + +
        +

        + +
        +
          + +
        • + + + + 삭제 +
        • + + + 자료가 없습니다."; ?> +
        +
        + + + +
        + +
        +
        + \ No newline at end of file diff --git a/theme/54/skin/member/basic/scrap_popin.skin.php b/theme/54/skin/member/basic/scrap_popin.skin.php new file mode 100644 index 000000000..ad3ed8b28 --- /dev/null +++ b/theme/54/skin/member/basic/scrap_popin.skin.php @@ -0,0 +1,40 @@ +', 0); +?> + + +
        +

        스크랩하기

        +
        + + +
        + +
        +

        제목 확인 및 댓글 쓰기

        +
          +
        • + 제목 + +
        • +
        • + + +
        • +
        +
        + +

        + 스크랩을 하시면서 감사 혹은 격려의 댓글을 남기실 수 있습니다. +

        + +
        + +
        +
        +
        +
        + \ No newline at end of file diff --git a/theme/54/skin/member/basic/style.css b/theme/54/skin/member/basic/style.css new file mode 100644 index 000000000..ab6c5e9f5 --- /dev/null +++ b/theme/54/skin/member/basic/style.css @@ -0,0 +1,263 @@ +@charset "utf-8"; + +/* ### 기본 스타일 커스터마이징 시작 ### */ + +/* 버튼 */ +.mbskin a.btn01 {} +.mbskin a.btn01:focus, .mbskin .btn01:hover {} +.mbskin a.btn02 {} +.mbskin a.btn02:focus, .mbskin .btn02:hover {} +.mbskin .btn_confirm {} /* 서식단계 진행 */ +.mbskin .btn_submit {} +.mbskin button.btn_submit {} +.mbskin fieldset .btn_submit {} +.mbskin .btn_cancel {} +.mbskin button.btn_cancel {} +.mbskin .btn_cancel:focus, .mbskin .btn_cancel:hover {} +.mbskin a.btn_frmline, .mbskin button.btn_frmline {} /* 우편번호검색버튼 등 */ +.mbskin button.btn_frmline {} +.mbskin .win_btn {} /* 새창용 */ +.mbskin .win_btn button {} +.mbskin .win_btn input {} +.mbskin .win_btn a {} +.mbskin .win_btn a:focus, .mbskin .win_btn a:hover {} + +/* 게시판용 버튼 */ +.mbskin a.btn_b01 {} +.mbskin a.btn_b01:focus, .mbskin .btn_b01:hover {} +.mbskin a.btn_b02 {} +.mbskin a.btn_b02:focus, .mbskin .btn_b02:hover {} +.mbskin a.btn_admin {} /* 관리자 전용 버튼 */ +.mbskin a.btn_admin:focus, .mbskin a.btn_admin:hover {} + +/* 기본박스 */ +.mbskin{position: relative;margin:100px auto 0;border:1px solid #ddd;width:400px;background:#fff;text-align:center; +} +.mbskin:before,.mbskin:after{ +content:""; +position:absolute;z-index:-1;top:2%;bottom:0;left:10px;right:10px; +-webkit-box-shadow:0 0 20px rgba(0,0,0,0.8); + -moz-box-shadow:0 0 20px rgba(0,0,0,0.8); + box-shadow:0 0 20px rgba(0,0,0,0.8); +-moz-border-radius:100px / 10px; + border-radius:100px / 10px;} +.mbskin:after{right:10px;left:auto; + -webkit-transform:skew(8deg) rotate(3deg); + -moz-transform:skew(8deg) rotate(3deg); + -ms-transform:skew(8deg) rotate(3deg); + -o-transform:skew(8deg) rotate(3deg); + transform:skew(8deg) rotate(3deg);} +.mbskin .frm_input{width:100%} +.mbskin .btn_submit{width:100%;margin:10px 0 0;height:45px;font-weight:bold;font-size:1.25em} +.mbskin h1{margin: 60px 0 30px;font-size: 2em;} + + +/* 기본테이블 */ + +.mbskin .tbl_head01 {} +.mbskin .tbl_head01 caption {} +.mbskin .tbl_head01 thead th {} +.mbskin .tbl_head01 thead a {} +.mbskin .tbl_head01 thead th input {} /* middle 로 하면 게시판 읽기에서 목록 사용시 체크박스 라인 깨짐 */ +.mbskin .tbl_head01 tfoot th {} +.mbskin .tbl_head01 tfoot td {} +.mbskin .tbl_head01 tbody th {} +.mbskin .tbl_head01 td {} +.mbskin .tbl_head01 a {} +.mbskin td.empty_table {} + +/* 폼 테이블 */ +.mbskin table {} +.mbskin caption {} +.mbskin .frm_info {} +.mbskin .frm_file {} + +.mbskin .tbl_frm01 {} +.mbskin .tbl_frm01 th {width:85px;} +.mbskin .tbl_frm01 td {} +.mbskin .tbl_frm01 textarea, .mb_skin tbl_frm01 .frm_input {} +.mbskin .tbl_frm01 textarea {} +/* +.mbskin .tbl_frm01 #captcha {} +.mbskin .tbl_frm01 #captcha input {} +*/ +.mbskin .tbl_frm01 a {} + +/* 필수입력 */ +.mbskin .required, .mbskin textarea.required {} + +/* 테이블 항목별 정의 */ +.mbskin .td_board {} +.mbskin .td_chk {} +.mbskin .td_date {} +.mbskin .td_datetime {} +.mbskin .td_group {} +.mbskin .td_mb_id {} +.mbskin .td_mng {} +.mbskin .td_name {} +.mbskin .td_nick {} +.mbskin .td_num {} +.mbskin .td_numbig {} + +.mbskin .txt_active {} +.mbskin .txt_expired {} + +/* ### 기본 스타일 커스터마이징 끝 ### */ + +/* 회원가입 약관 */ +#fregister p{text-align:center;color: #c7254e;background: #f9f2f4;padding:10px;border:1px solid #ecc7d2;margin:0 0 5px} +#fregister section {;margin:10px auto 30px;border:1px solid #dbdbdb;position:relative;border-radius:3px 3px 0 0 ; +-webkit-box-shadow: 0 1px 3px #eee; +-moz-box-shadow: 0 1px 3px #eee; +box-shadow: 0 1px 3px #eee; +} +#fregister_chkall{text-align:right} +#fregister h2 {text-align:left;padding:15px 20px;border-bottom:1px solid #dbdbdb;background:#f8f8f8} +#fregister textarea {display:block;padding:20px;width:100%;height:150px;background:#fff;border:0;line-height:1.6em} +#fregister .fregister_agree {position:absolute;top:0;right:0;;padding:15px} +#fregister_private div{padding:20px;background:#fff} +#fregister_private table{width:100%;border-collapse:collapse} +#fregister_private table caption {position:absolute;font-size:0;line-height:0;overflow:hidden} +#fregister_private table th{background:#646982;width:33.33%;color:#fff;padding:10px;border:1px solid #555971} +#fregister_private table td{border:1px solid #ddd;padding:10px;} +#fregister .btn_confirm{text-align:center;} +#fregister .btn_confirm .btn_submit{height:50px;padding:0 40px;font-weight:bold;font-size:1.083em} + +/* 회원가입 입력 */ +#register_form{background:#fff;padding:20px;margin-bottom:20px} +#fregisterform #msg_certify {margin:5px 0 0;padding:5px;border:1px solid #dbecff;background:#eaf4ff;text-align:center} +#fregisterform .frm_address {margin:5px 0 0} +#fregisterform #mb_addr3 {display:inline-block;margin:5px 0 0;vertical-align:middle} +#fregisterform #mb_addr_jibeon {display:block;margin:5px 0 0} +#fregisterform .btn_confirm{text-align:center} +#fregisterform .btn_confirm .btn_submit{height:45px;;padding:0 30px;font-weight:bold;font-size:1.083em} +#fregisterform .btn_confirm .btn_cancel{line-height:45px;height:45px;padding:0 30px;font-weight:bold;font-size:1.083em} +#fregisterform .frm_info{display:block;color:#3497d9;font-size:0.92em} +#fregisterform .form_01 div{margin: 0 0 50px} +#fregisterform .captcha{display:block;margin:5px 0 0} +#fregisterform .reg_mb_img_file img{max-width:100%;height:auto} + + +/* 회원가입 완료 */ +#reg_result {padding:100px 0 40px;text-align:center;background:#fff} +#reg_result h2{font-size:2em;margin:0 0 20px} +#reg_result h2 strong{color:#ed6478} +#reg_result #result_email {margin:20px 0;padding:10px 50px;border-top:1px solid #e9e9e9;border-bottom:1px solid #dde4e9;background:#fff;line-height:2em} +#reg_result #result_email span {display:inline-block;width:150px} +#reg_result #result_email strong {color:#e8180c;font-size:1.2em} +#reg_result p {line-height:1.8em} +#reg_result .btn_confirm {margin:50px 0} +#reg_result .reg_result_p{font-size:1.25em;margin:0 0 10px;} +#reg_result .reg_result_p strong{color:#3497d9} +#reg_result .btn_submit{padding: 0 30px;font-weight:bold;height:40px;line-height:40px;display:inline-block;margin:30px 0 0 ;font-size:1.083em} + +/* 아이디/비밀번호 찾기 */ +#find_info #mb_hp_label {display:inline-block;margin-left:10px} +#find_info p {line-height:1.5em} +#find_info #mb_email{margin:10px 0;} + +/* 로그인 */ +#mb_login {} +#login_fs{padding:0 50px} +#mb_login #login_fs .frm_input{margin:0 0 10px} +#mb_login #login_fs .btn_submit {margin:0 0 20px} +#mb_login #login_info{background:#f6f6f6;padding:25px 10px;border-top:1px solid #e8e8e8;margin:40px 0 0 } +#mb_login #login_info:after {display:block;visibility:hidden;clear:both;content:""} +#mb_login #login_info h2 {position:absolute;font-size:0;line-height:0;overflow:hidden} +#mb_login #login_info a{display:inline-block;width:50%;float:left} +#login_password_lost{border-right:1px solid #ddd} + +#mb_login_notmb{margin:30px auto;padding:20px 30px } +#mb_login_notmb h2{font-size:1.25em;margin:20px 0 10px} +#guest_privacy{border:1px solid #ccc;text-align:left;line-height:1.6em;color:#666;background:#fafafa;padding:10px;height:150px;margin:10px 0;overflow-y:auto} +#mb_login_notmb .btn_submit{display:block;text-align:center;line-height:45px} + +#mb_login_od_wr{margin:30px auto;padding:20px 30px } +#mb_login_od_wr h2{font-size:1.25em;margin:20px 0 10px} +#mb_login_od_wr .frm_input{margin:10px 0 0 } +#mb_login_od_wr p{background:#f3f3f3;margin:20px 0 0 ;padding:15px 20px;line-height:1.5em} + +/* 쪽지 */ +#memo_list .memo_name,#memo_list .memo_name .sv_wrap{font-weight:bold} +#memo_list .memo_datetime{float:right;font-size:0.92em;color:#777;font-style:italic} +#memo_list .memo_del{margin-left: 5px; color: #49857c;font-size: 15px;} + +#memo_view_contents {margin:10px 0;border:1px solid #ddd;} +#memo_view_contents h2 {position:absolute;font-size:0;line-height:0;overflow:hidden} +#memo_view_ul {margin:0;border-bottom:1px solid #eee;list-style:none;background:#f3f3f3;} +#memo_view_ul:after {display:block;visibility:hidden;clear:both;content:""} +.memo_view_li {position:relative;padding:10px;float:left;width:50%;} +.memo_view_name strong,.memo_view_name .sv_wrap{font-weight:bold !important} +.memo_view_subj{display: inline-block;height: 20px;line-height: 18px;border: 1px solid #3497d9;color: #3497d9;padding: 0 5px;border-radius: 15px;font-size: 11px;} +.memo_view_li .profile_img img{border-radius:50%} +.memo_view_date{text-align:right;color:#555;font-style:italic} +.memo_view_date strong{font-weight:normal} +#memo_view .btn_b02{float:right} +#memo_view .btn_b02.reply_btn{margin-left:4px} +#memo_view p {padding:10px;border-top:1px solid #ddd;min-height:150px;height:auto !important;height:150px;background:#fff;line-height:1.8em} + +#memo_write textarea {height:100px} + +/* 스크랩 */ +#scrap .scrap_tit{font-weight:bold;display:block;font-size:1.083em;margin-bottom:5px;line-height:1.3em} +#scrap .scrap_cate{ display:block;color:#3598db ;font-size:0.92em;float:left} +#scrap .scrap_datetime{;color:#777;font-style:italic;float:right} +#scrap .scrap_del{position:absolute;top:5px;right:10px;font-size:18px;color:#49857c} +#scrap .scrap_del:hover{color:#98ca69} +#scrap_do table {margin:0 0 10px;width:100%} +#scrap_do textarea {height:100px} +#scrap_do .scrap_tit{background:#f3f3f3;padding:10px 15px;font-size:1.083em;font-weight:bold} +#scrap_do label{display:block;margin:0 0 5px;font-size:0.92em} +/*포인트*/ +#point .point_top{line-height:15px;margin:0 0 5px} +#point .point_top:after {display:block;visibility:hidden;clear:both;content:""} +#point .point_tit{font-weight:bold;float:left;font-size:1.083em;display:block;} +#point .point_num{font-size:1.25em;color:#00c4ac;font-weight:bold;float:right;} +#point .point_date1{float:left;color:#555;font-style:italic} +#point .point_date{float:right;color:#555;font-style:italic} +#point .txt_expired {color:#aaa;} +#point .point_all{background:#ae99da;border:0;border-bottom:2px solid #9781c5;color:#fff;font-weight:bold;font-size:1.083em} +#point .point_all span,#point .point_status span{float:right;} +#point .point_status{background:#737373;border:0;color:#fff;font-weight:bold;font-size:1.083em} +#point .point_status span{margin-left:10px} + +/* 회원 비밀번호 확인 */ +#mb_confirm {} +#mb_confirm h1 {margin:60px 0 30px;font-size:2em} +#mb_confirm p {padding:0 20px 40px;border-bottom:1px solid #e9e9e9;font-size:1.083em;line-height:1.4em;color:#656565} +#mb_confirm p strong {display:block;color:#3ca1ff;font-size:1.167em;margin:0 0 5px} +#mb_confirm fieldset {;padding:50px;text-align:left} +#mb_confirm fieldset .frm_input {background-color:#fff !important} +#mb_confirm label {letter-spacing:-0.1em} +#mb_confirm_id {display:block;margin:5px 0 10px;font-weight:bold} +#mb_confirm .confirm_id{font-size:0.92em;color:#666} + +/* 비밀글 비밀번호 확인 */ +#pw_confirm h1 {margin:60px 20px 30px;font-size:2em} +#pw_confirm p {padding:0 20px 40px;border-bottom:1px solid #e9e9e9;font-size:1.083em;line-height:1.4em;color:#656565} +#pw_confirm p strong {display:block;color:#3ca1ff;font-size:1.167em;margin:0 0 5px} +#pw_confirm fieldset {;padding:50px;text-align:center} +#pw_confirm fieldset .frm_input {background-color:#fff !important} +#pw_confirm label {letter-spacing:-0.1em} +#pw_confirm_id {display:inline-block;margin-right:20px;font-weight:bold} +#mb_confirm_id{} + +/* 폼메일 */ +#formmail textarea {height:100px} +#formmail .formmail_flie{position:relative} +#formmail .formmail_flie .file_wr {border: 1px solid #ccc;background: #fff;color: #000;vertical-align: middle;border-radius: 3px;padding: 5px;height: 40px;margin: 0;} +#formmail .lb_icon {position: absolute;top: 1px;left: 1px;border-radius: 3px 0 0 3px;height: 38px;line-height: 38px;width: 40px;background: #eee;text-align: center;color: #888;} +#formmail .frm_file {padding-left: 50px;} +#formmail .frm_info{color: #3497d9;font-size: 0.92em;} + +/* 자기소개 */ +#profile h1 a{color:#fff} +#profile table {margin-bottom:0} +#profile table th{text-align:left;padding:10px;width:100px} +#profile section {color: #2d4c7b;background: #eff9f9;padding: 10px;border: 1px solid #bfd4dc;margin: 10px 0;} +#profile h2 {margin:0 0 5px} +#profile .profile_name{text-align:center;font-weight:bold} +#profile .my_profile_img{display:block;margin:20px 0 5px;} +#profile .my_profile_img img{border-radius:50%;border:1px solid #aaa} +#profile .profile_img img{border-radius:50%} +#profile .profile_name .sv_wrap{font-weight:bold;text-align:left} \ No newline at end of file diff --git a/theme/54/skin/new/basic/new.skin.php b/theme/54/skin/new/basic/new.skin.php new file mode 100644 index 000000000..adb023df1 --- /dev/null +++ b/theme/54/skin/new/basic/new.skin.php @@ -0,0 +1,144 @@ +', 0); +?> + + +
        + 상세검색 +
        + + + + + + +

        회원 아이디만 검색 가능

        +
        + +
        + + + +
        + + + + + + + + +
        + + + + + + + + + + + + + + + + + + + + + + + + + + + + '; + ?> + +
        + + + 그룹게시판제목이름일시
        + + + + +
        게시물이 없습니다.
        +
        + + +
        + +
        + +
        + + + + + + + \ No newline at end of file diff --git a/theme/54/skin/new/basic/style.css b/theme/54/skin/new/basic/style.css new file mode 100644 index 000000000..5823010ec --- /dev/null +++ b/theme/54/skin/new/basic/style.css @@ -0,0 +1,12 @@ +@charset "utf-8"; + +/* 최근게시물 스킨 (new) */ +#new_sch {margin-bottom:15px;text-align:center;padding: 20px;border: 1px solid #e8e8e8;background: #fbfbfb;} +#new_sch legend {position:absolute;margin:0;padding:0;font-size:0;line-height:0;text-indent:-9999em;overflow:hidden} +#new_sch p {padding:5px 0 0;font-size:0.95em;text-align:center;letter-spacing:-0.1em} +#new_sch .frm_input{border-color:#646982;border-radius:0} +#new_sch select{border:1px solid #646982;height:40px;padding:0 5px} +#new_sch .btn_submit{padding: 0 10px;height: 40px;font-size: 1.083em;font-weight: bold;color: #fff;background: #253dbe;} +#fnewlist .new_tit{font-weight:bold} +#fnewlist .profile_img img{border-radius:50%} +#fnewlist .td_date{font-style:italic} \ No newline at end of file diff --git a/theme/54/skin/outlogin/basic/img/info_edit.png b/theme/54/skin/outlogin/basic/img/info_edit.png new file mode 100644 index 0000000000000000000000000000000000000000..ce5eae3eb1b5e55419aaa70b61053ed9def8b432 GIT binary patch literal 1341 zcmeAS@N?(olHy`uVBq!ia0vp^d?3uh1SBVD?P>#3k|nMYCBgY=CFO}lsSJ)O`AMk? zp1FzXsX?iUDV2pMQ*9U+nA0*tB1$5BeXNr6bM+EIYV;~{3xK*A7;Nk-3KEmEQ%e+* zQqwc@Y?a>c-mj#PnPRIHZt82`Ti~3Uk?B!Ylp0*+7m{3+ootz+WN)WnQ(*-(AUCxn zQK2F?C$HG5!d3}vt`(3C64qBz04piUwpD^SD#ABF!8yMuRl!uxSU1_g&``n5OwZ87 z)XdCKN5ROz&`93^h|F{iO{`4Ktc=VRpg;*|TTx1yRgjAt)Gi>;Rw<*Tq`*pFzr4I$ zuiRKKzbIYb(9+TpWQLKEE>MMTab;dfVufyAu`kBtHuNWFoz#!AFNG#Ad)HBe}%?0@jth%@)C>7xhtg4GcDhpEegHnt0 zON)|$@sXws(+mtd{1$-}0$pR}Uz7=ql*AmD{N&Qy)VvZ;7h5Huj9yA+ij|9zg`=sl zxuvU-i;Jt7p`oR@rKz)vtAVkTp_!4Pi#f~;YKL?fq0y6ST@{2R_ z3lyA#%@j1kGxJjN%ZoKZ(F5_VOKMSOS!#+~QGTuhIDD-#vDj~9Xk=_^>f-8b;A#o- zx09KXo1>GNqlu-PldFZLkrGsI3OQk>4|I$^C~+Vq7MKt)1%jCHqz~l4Gf!$BFvk=D zv&J8V)!!Ky7;`;c978H@felA3TEtw6(oF`I;3I+c-SU#CMTFjgnwiI zk>8_wanZq~3o2{}O;S#%^XZ5kPjOT~v-y4Pi4UJ!zMrf8zUTKlYjZgkM;)fv>(^hK zdMv(}u{G+Vi1W6WC0Vz(>6~7ExpPj$v{DNhp2H`ef1adrlrf|=&u+f5@1Yy^9gA+{ zZP(oJ_@hVPzE=&m-?o`f(dufddSWuyZ?VJn+fOV1>E@cvemMK_#~;tdIV}1vo9IsT zX!yO)UWV`dbK?r5nIbHWeoKR{zn*$$U5M7vq=^Nymd!uEJag8A{^O5}b_QIW_wIYO zNsE$H(AO&4*=Hvu?7llmobh', 0); +?> + + +
        +

        회원로그인

        +
        +
        +
        + + + + + + +
        +
        +
        + + +
        + +
        + + +
        +
        +
        + + + diff --git a/theme/54/skin/outlogin/basic/outlogin.skin.2.php b/theme/54/skin/outlogin/basic/outlogin.skin.2.php new file mode 100644 index 000000000..d8e745e95 --- /dev/null +++ b/theme/54/skin/outlogin/basic/outlogin.skin.2.php @@ -0,0 +1,51 @@ +', 0); +?> + + +
        +
        +

        나의 회원정보

        + + + 정보수정 + + 님 + 로그아웃 + 관리자 +
        + + +
        + + + diff --git a/theme/54/skin/outlogin/basic/style.css b/theme/54/skin/outlogin/basic/style.css new file mode 100644 index 000000000..f9f01b818 --- /dev/null +++ b/theme/54/skin/outlogin/basic/style.css @@ -0,0 +1,48 @@ +@charset "utf-8"; + +/* 아웃로그인 스킨 */ +.ol {position:relative;margin:20px;} +.ol h2 {margin:0;padding:0;width:1px;height:1px;font-size:0;line-height:0;overflow:hidden} + +.ol a.btn_admin {display:inline-block;padding:0 10px;height:25px;text-decoration:none;line-height:25px;vertical-align:middle} /* 관리자 전용 버튼 */ +.ol a.btn_admin:focus, .ol a.btn_admin:hover {text-decoration:none} + +#ol_before {} +#ol_before:after {display:block;visibility:hidden;clear:both;content:""} +#ol_before .ol_wr{position:relative;border:1px solid #b7bece;margin-bottom:5px} +#ol_id {display:block;width:185px;border:1px solid #fff;padding:0 10px;height:32px} +#ol_pw {display:block;width:185px;border:1px solid #fff;padding:0 10px;border-top:1px solid #ededed;height:32px} +#ol_submit {position:absolute;top:0;right:0;width:76px;height:64px;background:#fff;border-left:1px solid #ccc;color:#000;font-weight:bold;font-size:1.167em} +#ol_svc {float:right;line-height:20px} +#ol_svc a{display:inline-block;color:#555;margin:0 5px} +#ol_auto {float:left;line-height:20px} +#ol_auto label {color:#555} +#ol_auto input {width:13px;height:13px} +.ol_auto_wr:after {display:block;visibility:hidden;clear:both;content:""} + +#ol_after {background:#fff;border: 1px solid #d2d9e6; border-bottom: 1px solid #c1ccda; +-webkit-box-shadow: 0 1px 2px rgba(0,0,0,0.1); +-moz-box-shadow: 0 1px 2px rgba(0,0,0,0.1); +box-shadow:0 1px 2px rgba(0,0,0,0.1)} +#ol_after_hd {position:relative;margin:0 0 10px;padding:10px;padding-left:80px;height:72px;} +#ol_after_hd strong{display:block;margin:5px 0} +#ol_after_hd .profile_img{position:absolute;top:15px;left:15px;display:inline-block;} +#ol_after_hd .profile_img img{border:1px solid #bbb;border-radius:50%;width:50px;height:50px} +#ol_after_hd .profile_img a{display:block;position:absolute;bottom:-5px;right:-5px;background: #fff;text-align:center;font-size:17px;width:30px;line-height:30px;border-radius:50%;color:#777; +-webkit-box-shadow: -2px -2px 5px rgba(0,0,0,0.1); +-moz-box-shadow: -2px -2px 5px rgba(0,0,0,0.1); +box-shadow: -2px -2px 5px rgba(0,0,0,0.1);} +#ol_after_hd .btn_admin {} +#ol_after_hd .btn_b04{line-height:23px;padding:0 5px} +#ol_after_private {background:#f7f7f7;border-top: 1px solid #e8e8e8;zoom:1} +#ol_after_private:after {display:block;visibility:hidden;clear:both;content:""} +#ol_after_private li {margin-bottom:1px;position:relative;float:left;width:33.333%;text-align:center} +#ol_after_private a {display:block;color:#444;line-height:20px;height:60px;border-left:1px solid #e8e8e8;padding:10px 0;} +#ol_after_private li:first-child a{border-left:0} +#ol_after_private a strong {display:inline-block;max-width:87px;overflow:hidden;white-space:nowrap;text-overflow:clip;background:#7587a2;color:#fff;padding:0 8px;border-radius:15px;font-size:0.92em;box-shadow:inset 2px 1px 3px rgba(0,0,0,0.2)} +#ol_after_private a strong.scrap{padding:0 14px} +#ol_after_private a:hover strong{background:#4b8bff} +#ol_after_private li a:hover{color:#4b8bff;background:#f1f1f1} +#ol_after_memo {;margin-right:1px} +#ol_after_pt {margin-right:1px} + diff --git a/theme/54/skin/poll/basic/poll.skin.php b/theme/54/skin/poll/basic/poll.skin.php new file mode 100644 index 000000000..b83cbe43e --- /dev/null +++ b/theme/54/skin/poll/basic/poll.skin.php @@ -0,0 +1,69 @@ +', 0); +?> + + +
        + + +
        +
        +

        설문조사

        + 설문관리 +
        + +
        +
        + + + \ No newline at end of file diff --git a/theme/54/skin/poll/basic/poll_result.skin.php b/theme/54/skin/poll/basic/poll_result.skin.php new file mode 100644 index 000000000..632658ffc --- /dev/null +++ b/theme/54/skin/poll/basic/poll_result.skin.php @@ -0,0 +1,120 @@ +', 0); +?> + + +
        +

        +
        + + 전체 표 +
        +

        결과

        + +
          + +
        1. + + % +
          + 표 +
          +
        2. + +
        +
        + + + + +
        +

        이 설문에 대한 기타의견

        + + +
        +
        +

        님의 의견

        + + 삭제"; } ?> +
        +

        + +

        + +
        + + + = $po['po_level']) { ?> +
        + + + + +

        + +
        +
          + +
        • + + +
        • +
        • + +
        • + +
        • + + +
        • +
        • + +
        • + +
        +
        + + +
        + + +
        + + + + + + + +
        + +
        +
        +
        + + + \ No newline at end of file diff --git a/theme/54/skin/poll/basic/style.css b/theme/54/skin/poll/basic/style.css new file mode 100644 index 000000000..5b3d04851 --- /dev/null +++ b/theme/54/skin/poll/basic/style.css @@ -0,0 +1,101 @@ +@charset "utf-8"; + +/* ### 기본 스타일 커스터마이징 시작 ### */ + +#poll a.btn_admin {} /* 관리자 전용 버튼 */ +#poll a.btn_admin:focus, #poll a.btn_admin:hover {} + +#poll_result .tbl_frm table {} +#poll_result .tbl_frm .frm_info {} +#poll_result .tbl_frm .frm_address {} +#poll_result .tbl_frm .frm_file {} +#poll_result .tbl_frm caption {} + +#poll_result .tbl_frm01 {} +#poll_result .tbl_frm01 th {} +#poll_result .tbl_frm01 td {} +#poll_result .tbl_frm01 textarea, #poll_result tbl_frm01 .frm_input {} +#poll_result .tbl_frm01 textarea {} +/* +#poll_result .tbl_frm01 #captcha {} +#poll_result .tbl_frm01 #captcha input {} +*/ +#poll_result .tbl_frm01 a {} + +/* 필수입력 */ +#poll_result .required, #poll_result textarea.required {} + +#poll_result .btn_confirm {} /* 서식단계 진행 */ +#poll_result .btn_submit {} +#poll_result button.btn_submit {} +#poll_result .win_btn {} /* 새창용 */ +#poll_result .win_btn button {} +#poll_result .win_btn input {} +#poll_result .win_btn a {} +#poll_result .win_btn a:focus, #poll_result .win_btn a:hover {} + +/* ### 기본 스타일 커스터마이징 끝 ### */ + +/* 설문조사 스킨 */ +#poll {border: 1px solid #d2d9e6; border-bottom: 1px solid #c1ccda;background:#fff;margin:50px 20px 20px;position:relative; +-webkit-box-shadow: 0 1px 2px rgba(0,0,0,0.1); +-moz-box-shadow: 0 1px 2px rgba(0,0,0,0.1); +box-shadow:0 1px 2px rgba(0,0,0,0.1)} +#poll h2 {font-size:1.167em;text-align:center;padding-top:25px;color:#1d9d74;position:relative} +#poll h2 i{position:absolute;top:-22px;left:50%;width:44px;line-height:44px;margin-left:-22px;border-radius:25px;background:#1d9d74;color:#fff} +#poll header .btn_admin {text-align:center;position:absolute;top:10px;right:10px;height:25px;line-height:25px;padding:0 5px;border-radius:3px} +#poll ul {padding: 10px 15px;list-style:none} +#poll li {padding:5px 0} +#poll .poll_con{} +#poll .poll_con p{font-weight:bold;padding: 10px 15px;background: #f1f9f7;border:1px solid #e0f1e9;color: #457163;margin:10px 10px 0} +#poll_btn{background:#f7f7f7;padding:10px;text-align:center} +#poll_btn:after {display:block;visibility:hidden;clear:both;content:""} +#poll_btn .btn_poll{display:inline-block;height:30px;line-height:28px;padding: 0 10px} +#poll_btn .btn_result{;display:inline-block;height:30px;line-height:30px;padding: 0 10px;font-weight:bold} + + +/* 설문조사 결과 (새창) */ +#poll_result {} +#poll_result section {margin:0 0 20px;padding:25px;border:1px solid #dbdbdb;background:#fff; +-webkit-box-shadow: 0 0 5px rgba(55,55,5,0.1)); + -moz-box-shadow: 0 0 5px rgba(55,55,5,0.1)); + box-shadow: 0 0 5px rgba(55,55,5,0.1); } +#poll_result .tbl_wrap {margin:0} +#poll_result h2 {} +#poll_result a {} +#poll_result .sv_member, +#poll_result .sv_guest {font-weight:bold} +#poll_result .poll_all{float:right;display:inline-block;margin:0 0 10px;line-height: 30px;font-size: 0.92em;color: #4e546f;background: #d4d4d4;padding: 0 10px;border-radius: 5px;} +#poll_result_list {margin:0 auto 20px;clear:both} +#poll_result_list h2 {margin:0;font-size:1.25em;padding: 0 0 15px;margin:0 0 15px;border-bottom:1px solid #ddd;text-align:center;} +#poll_result_list dt {margin-right:5%;color:#e8180d;text-align:right} +#poll_result_list ol {margin:0;padding:0} +#poll_result_list li {margin:20px 0;position:relative;list-style-position:inside} +#poll_result_list .poll_percent{position:absolute;top:0;right:0;color:#415b72;font-weight:bold} +.poll_result_graph {position:relative;margin-right:5%;margin:5px 0 ;height:15px;background:#f4f4f4;border-radius:10px 10px} +.poll_result_graph span {position:absolute;top:0;left:0;height:15px;background:#ae99da;border-radius:10px 10px;white-space: nowrap;} +.poll_result_graph span .poll_cnt {display:none;position:absolute;top:18px;right:0;font-size:0.92em;text-align:right;background:#333;color:#fff;padding:0 7px;line-height:22px;border-radius:3px} +.poll_result_graph span:hover .poll_cnt {display:block} +.poll_result_graph span .poll_cnt:before{content: "";position: absolute;top: -6px;left: 50%;margin-left:-4px;width: 0;height: 0;border-style: solid;border-width: 0 4px 6px 4px;border-color: transparent transparent #333 transparent;} +#poll_result_cmt {} +#poll_result_cmt h2 {position:absolute;font-size:0;line-height:0;overflow:hidden} +#poll_result_cmt h3 {margin:0;font-size:1.25em;padding: 0 0 15px;margin:0 0 15px;border-bottom:1px solid #ddd;text-align:center;} +#poll_result_cmt article {margin:15px 0 ;position:relative;} +#poll_result_cmt h1 {position:absolute;margin:0;padding:0;border:0;font-size:0;text-indent:-9999em;line-height:0;overflow:hidden} +#poll_result_cmt header{margin:0 0 5px} +#poll_result_cmt .poll_datetime{display:inline-block;position:absolute;top:0;right:0;font-size:0.92em;color:#777;font-style:italic} +#poll_result_cmt .profile_img img{border-radius:50%} +#poll_result_cmt p {padding:10px;background:#f6f6f6;border-radius:5px;line-height:1.5em} +#poll_result_cmt fieldset {margin-bottom:0;text-align:left} +#poll_result_cmt fieldset p {margin:0 0 15px;padding:3px 0 0px;text-align:left} +#poll_result_cmt footer {text-align:right} +#poll_result_cmt .btn_submit {padding:0 20px;float:right} + +.poll_cmt_del a {display:inline-block;margin-left:5px;color:#49857c;font-size:15px;} +.poll_cmt_del a:hover{color:#98ca69} +#poll_result_oth {padding:0 0 30px} +#poll_result_oth h2 {padding:0 0 10px} +#poll_result_oth ul {margin:0;padding:0;list-style:none;border:1px solid #ddd;background:#fff;border-top:0} +#poll_result_oth ul li{border-top:1px solid #ddd; position:relative;line-height:20px} +#poll_result_oth a {display:block;padding: 10px} +#poll_result_oth li span{position:absolute;bottom:10px;right:15px;color:#777;font-size:0.92em;font-style:italic} diff --git a/theme/54/skin/popular/basic/popular.skin.php b/theme/54/skin/popular/basic/popular.skin.php new file mode 100644 index 000000000..fbaae65bf --- /dev/null +++ b/theme/54/skin/popular/basic/popular.skin.php @@ -0,0 +1,27 @@ +', 0); +?> + + + + \ No newline at end of file diff --git a/theme/54/skin/popular/basic/style.css b/theme/54/skin/popular/basic/style.css new file mode 100644 index 000000000..30c7e1f5a --- /dev/null +++ b/theme/54/skin/popular/basic/style.css @@ -0,0 +1,10 @@ +@charset "utf-8"; +/* 인기검색어 */ +#popular {margin:8px 0 0;position:relative} +#popular h2{display:inline-block;font-size:0.92em;color:#4b8bff;background:#fff;line-height:20px;padding:0 5px;border:1px solid #dcdcde;vertical-align:top} +#popular .popular_inner{position:absolute;left:70px;top:2px;height:18px;overflow:hidden} +#popular ul{display:inline-block} +#popular ul:after {display:block;visibility:hidden;clear:both;content:""} +#popular li{height:18px;line-height:18px;border-left:1px solid #c3c3c3;padding:0 10px;float:left} +#popular li:first-child{border-left:0} +#popular li a:hover{color:#a22121;text-decoration:underline} diff --git a/theme/54/skin/qa/basic/img/btn_close.gif b/theme/54/skin/qa/basic/img/btn_close.gif new file mode 100644 index 0000000000000000000000000000000000000000..040b180ac6584ae612ef2886487110f0ad079963 GIT binary patch literal 211 zcmZ?wbhEHbC>lw|Nj2|^XJd+Ki|K7yLIc<@85r}UAy+@_wT|Ns9P2m!^PEMO%%AQEIJ18abSL2rs@7wgh> zI-xzeYYr882T$7a>~-(!J@=MOy}Z$ltNl`73Cq0Bi3wIGB-b=ECVhGFY*&ANIg94( d^Unm859R4|2rw-)wA%9i`(c-qSMQw}tN}eeW+eas literal 0 HcmV?d00001 diff --git a/theme/54/skin/qa/basic/img/icon_answer.gif b/theme/54/skin/qa/basic/img/icon_answer.gif new file mode 100644 index 0000000000000000000000000000000000000000..91c135977b4f445a90c849310dc80efde1983830 GIT binary patch literal 77 zcmZ?wbhEHb-Wqsc#^P~2x#@rVooH@5wHB9i@BozKb;P9uI^*c|UyXO5@>VyLmgEat< Cr6(f* literal 0 HcmV?d00001 diff --git a/theme/54/skin/qa/basic/img/icon_hot.gif b/theme/54/skin/qa/basic/img/icon_hot.gif new file mode 100644 index 0000000000000000000000000000000000000000..c95b839aeef0c1e26a4bab4ea50cd6d3f1969d7f GIT binary patch literal 97 zcmZ?wbhEHbzHen|7VvwFnzUPlarEA ZqW~YXyUO~T+#YkUoJ%V_>ib05Q5F AasU7T literal 0 HcmV?d00001 diff --git a/theme/54/skin/qa/basic/img/icon_mobile.gif b/theme/54/skin/qa/basic/img/icon_mobile.gif new file mode 100644 index 0000000000000000000000000000000000000000..ad934d23c440c83db0c4589596465cb087353e01 GIT binary patch literal 62 zcmZ?wbhEHbZ% literal 0 HcmV?d00001 diff --git a/theme/54/skin/qa/basic/img/icon_secret.gif b/theme/54/skin/qa/basic/img/icon_secret.gif new file mode 100644 index 0000000000000000000000000000000000000000..c04899f14fa727b64223f6c5457877c6c939639d GIT binary patch literal 97 zcmZ?wbhEHb&!1E4^4&ClEzh)PmWxV3{9A~!gB2-%RL5bHcgg3Zp^!+W)H2^A_AxQuL literal 0 HcmV?d00001 diff --git a/theme/54/skin/qa/basic/img/icon_sound.gif b/theme/54/skin/qa/basic/img/icon_sound.gif new file mode 100644 index 0000000000000000000000000000000000000000..c5188318a5cdc394b984125c0ddd376c5f57bbe4 GIT binary patch literal 113 zcmZ?wbhEHbE1CJY$zMikVi`-#gIi|DbmsXBWf6U5szE@->A`0*`&<;b@XASRrB8=E6~=S>Pbm I%fes{0AXt-SpWb4 literal 0 HcmV?d00001 diff --git a/theme/54/skin/qa/basic/list.skin.php b/theme/54/skin/qa/basic/list.skin.php new file mode 100644 index 000000000..d176a044d --- /dev/null +++ b/theme/54/skin/qa/basic/list.skin.php @@ -0,0 +1,167 @@ +', 0); +?> + +
        + + + +
        +
        + Total 건 + 페이지 +
        + + + + +
        + + + + + + + + +
        + + + + +
        + + + + + + + + + + + + + + + + + + + + + + + + + + + + + '; } ?> + +
        목록
        + + + 번호제목글쓴이등록일상태
        + + + + + + + " ; ?> + + 답변완료' : ' 답변대기'); ?>
        게시물이 없습니다.
        +
        + +
        + +
        +
        + + + +
        + 게시물 검색 + +
        + + + + +
        +
        + +
        + + + + + + + + + + + + + \ No newline at end of file diff --git a/theme/54/skin/qa/basic/style.css b/theme/54/skin/qa/basic/style.css new file mode 100644 index 000000000..30929a38a --- /dev/null +++ b/theme/54/skin/qa/basic/style.css @@ -0,0 +1,339 @@ +@charset "utf-8"; +/* ### 기본 스타일 커스터마이징 시작 ### */ + +/* 게시판 버튼 */ +/* 목록 버튼 */ +#bo_list a.btn_b01 {} +#bo_list a.btn_b01:focus, #bo_list a.btn_b01:hover {} +#bo_list a.btn_b02 {} +#bo_list a.btn_b02:focus, #bo_list a.btn_b02:hover {} +#bo_list a.btn_admin {} /* 관리자 전용 버튼 */ +#bo_list a.btn_admin:focus, #bo_list .btn_admin:hover {} + +/* 읽기 버튼 */ +#bo_v a.btn_b01 {} +#bo_v a.btn_b01:focus, #bo_v a.btn_b01:hover {} +#bo_v a.btn_b02 {} +#bo_v a.btn_b02:focus, #bo_v a.btn_b02:hover {} +#bo_v a.btn_admin {} /* 관리자 전용 버튼 */ +#bo_v a.btn_admin:focus, #bo_v a.btn_admin:hover {} + +/* 쓰기 버튼 */ +#bo_w .btn_confirm {} /* 서식단계 진행 */ +#bo_w .btn_submit {} +#bo_w button.btn_submit {} +#bo_w fieldset .btn_submit {} +#bo_w .btn_cancel {} +#bo_w button.btn_cancel {} +#bo_w .btn_cancel:focus, #bo_w .btn_cancel:hover {} +#bo_w a.btn_frmline, #bo_w button.btn_frmline {} /* 우편번호검색버튼 등 */ +#bo_w button.btn_frmline {} + +/* 기본 테이블 */ +/* 목록 테이블 */ +#bo_list {position:relative} +#bo_list:after {display:block;visibility:hidden;clear:both;content:""} +#bo_list .tbl_head01 {} +#bo_list .tbl_head01 caption {} +#bo_list .tbl_head01 thead th {} +#bo_list .tbl_head01 thead a {} +#bo_list .tbl_head01 thead th input {} /* middle 로 하면 게시판 읽기에서 목록 사용시 체크박스 라인 깨짐 */ +#bo_list .tbl_head01 tfoot th {} +#bo_list .tbl_head01 tfoot td {} +#bo_list .tbl_head01 tbody th {} +#bo_list .tbl_head01 td {} +#bo_list .tbl_head01 a {} +#bo_list td.empty_table {} + +/* 읽기 내 테이블 */ +#bo_v .tbl_head01 {} +#bo_v .tbl_head01 caption {} +#bo_v .tbl_head01 thead th {} +#bo_v .tbl_head01 thead a {} +#bo_v .tbl_head01 thead th input {} /* middle 로 하면 게시판 읽기에서 목록 사용시 체크박스 라인 깨짐 */ +#bo_v .tbl_head01 tfoot th {} +#bo_v .tbl_head01 tfoot td {} +#bo_v .tbl_head01 tbody th {} +#bo_v .tbl_head01 td {} +#bo_v .tbl_head01 a {} +#bo_v td.empty_table {} + +/* 쓰기 테이블 */ +#bo_w h2{position:absolute;font-size:0;line-height:0;overflow:hidden} +#bo_w table {} +#bo_w caption {} +#bo_w .frm_info {} +#bo_w .frm_address {} +#bo_w .frm_file {} + +#bo_w .tbl_frm01 {} +#bo_w .tbl_frm01 th {} +#bo_w .tbl_frm01 td {} +#bo_w .tbl_frm01 textarea, #bo_w tbl_frm01 .frm_input {} +#bo_w .tbl_frm01 textarea {} +/* +#bo_w .tbl_frm01 #captcha {} +#bo_w .tbl_frm01 #captcha input {} +*/ +#bo_w .tbl_frm01 a {} + +/* 필수입력 */ +#bo_w .required, #bo_w textarea.required {} + +#bo_w .cke_sc {} +#bo_w button.btn_cke_sc{} +#bo_w .cke_sc_def {} +#bo_w .cke_sc_def dl {} +#bo_w .cke_sc_def dl:after {} +#bo_w .cke_sc_def dt, #bo_w .cke_sc_def dd {} +#bo_w .cke_sc_def dt {} +#bo_w .cke_sc_def dd {} + +/* ### 기본 스타일 커스터마이징 끝 ### */ + +/* 게시판 목록 */ +#bo_list .td_board {width:120px;text-align:center} +#bo_list .td_chk {width:30px;text-align:center} +#bo_list .td_date {width:80px;text-align:center;font-style: italic;} +#bo_list .td_datetime {width:60px;text-align:center;font-style: italic} +#bo_list .td_group {width:100px;text-align:center} +#bo_list .td_mb_id {width:100px;text-align:center} +#bo_list .td_mng {width:80px;text-align:center} +#bo_list .td_name {width:90px;text-align:left;padding:10px 0} +#bo_list .td_nick {width:100px;text-align:center} +#bo_list .td_num {width:40px;;text-align:center} +#bo_list .td_num2 {width:50px;;text-align:center} +#bo_list .td_numbig {width:80px;text-align:center} +#bo_list .txt_active {color:#5d910b} +#bo_list .txt_expired {color:#ccc} +#bo_list .td_stat,#bo_v_rel .td_stat{width:100px;text-align:center} + +#bo_list .txt_active {color:#5d910b} +#bo_list .txt_expired {color:#ccc} +#bo_list .txt_done,#bo_v_rel .txt_done{display:inline-block;height:30px;line-height:30px;padding:0 10px;border-radius:15px;color:#fff;font-size:0.92em;background:#ff63ab} +#bo_list .txt_done i,#bo_v_rel .txt_done i{font-size:13px} +#bo_list .txt_rdy,#bo_v_rel .txt_rdy{display:inline-block;height:30px;line-height:28px;padding:0 10px;border-radius:15px;color:#ff63ab;font-size:0.92em;border:1px solid #ff63ab} +#bo_list .txt_rdy i,#bo_v_rel .txt_rdy i{font-size:13px}#bo_cate h2 {position:absolute;font-size:0;line-height:0;overflow:hidden} + +/* 게시판 목록 */ +#bo_cate {background:#ecf2f3;padding:7px;margin:10px 0;border:1px solid #bed1d4} +#bo_cate h2 {position:absolute;font-size:0;line-height:0;overflow:hidden} +#bo_cate ul {zoom:1} +#bo_cate ul:after {display:block;visibility:hidden;clear:both;content:""} +#bo_cate li {display:inline-block;padding:2px;} +#bo_cate a {display:block;line-height:26px;padding:0 10px;border-radius:3px;border:1px solid transparent} +#bo_cate a:focus, #bo_cate a:hover, #bo_cate a:active {text-decoration:none;background:#d2d6dc;} +#bo_cate #bo_cate_on {z-index:2;background:#3497d9;color:#fff;font-weight:bold;border-bottom-color:#1977b5; +-webkit-box-shadow: inset 0 2px 5px rgb(33, 135, 202); +-moz-box-shadow: inset 0 2px 5px rgb(33, 135, 202); +box-shadow:inset 0 2px 5px rgb(33, 135, 202);} + + +.td_subject img {margin-left:5px} + + +/* 게시판 목록 공통 */ +#bo_btn_top{margin: 10px 0 5px} +#bo_btn_top:after {display:block;visibility:hidden;clear:both;content:""} +.bo_fx {margin-bottom:5px;float:right;zoom:1} +.bo_fx:after {display:block;visibility:hidden;clear:both;content:""} +.bo_fx ul {margin:0;padding:0;list-style:none} +.bo_fx:after {display:block;visibility:hidden;clear:both;content:""} +.bo_fx ul {margin:0;padding:0;list-style:none} +#bo_list_total {float:left;line-height:30px;font-size:0.92em;color:#4e546f;background:#d4d4d4;padding:0 10px;border-radius:5px;} +.btn_bo_user {float:right;margin:0;padding:0;list-style:none} +.btn_bo_user li {float:left;margin-left:5px} +.btn_bo_adm {float:left} +.btn_bo_adm li {float:left;margin-right:5px} +.btn_bo_adm input {padding:0 8px;border:0;background:#d4d4d4;color:#666;text-decoration:none;vertical-align:middle} +.bo_notice td {background:#f5f6fa} +.bo_notice td a {font-weight:bold} +.td_num strong {color:#000} +.bo_cate_link {display: inline-block;color: #3497d9;height: 20px;font-size:0.92em} /* 글제목줄 분류스타일 */ +.bo_tit{display:block;font-weight:bold;color:#000} +.td_subject .fa-download{width:16px;height:16px;line-height:16px;background:#ecaa30;color:#fff;text-align:center;font-size:10px;border-radius:2px} + +.bo_current {color:#e8180c} +#bo_list .profile_img img{border-radius:50%} +#bo_list .cnt_cmt {display:inline-block;margin:0 0 0 3px;font-weight:bold;color:#ed6478;} +#bo_list .bo_tit .fa-heart{color:#fe4560} +#bo_list .bo_tit .fa-lock{color:#000} +#bo_sch {float:left;border:1px solid #ccc;background:#fff;border-radius:3px} +#bo_sch:after {display:block;visibility:hidden;clear:both;content:""} +#bo_sch legend {position:absolute;margin:0;padding:0;font-size:0;line-height:0;text-indent:-9999em;overflow:hidden} +#bo_sch .sch_input{height:38px;border:0;padding:0;background-color:transparent;float:left} +#bo_sch .sch_btn{height:38px;float:left;background:none;border:0;width:40px;font-size:15px} + +/* 게시판 쓰기 */ +#char_count_desc {display:block;margin:0 0 5px;padding:0} +#char_count_wrp {margin:5px 0 0;text-align:right} +#char_count {font-weight:bold} + +#autosave_wrapper {position:relative} +#autosave_pop {display:none;z-index:10;position:absolute;top:24px;right:117px;padding:8px;width:350px;height:auto !important;height:180px;max-height:180px;border:1px solid #565656;background:#fff;overflow-y:scroll} +html.no-overflowscrolling #autosave_pop {height:auto;max-height:10000px !important} /* overflow 미지원 기기 대응 */ +#autosave_pop strong {position:absolute;font-size:0;line-height:0;overflow:hidden} +#autosave_pop div {text-align:right} +#autosave_pop button {margin:0;padding:0;border:0;background:transparent} +#autosave_pop ul {margin:10px 0;padding:0;border-top:1px solid #e9e9e9;list-style:none} +#autosave_pop li {padding:8px 5px;border-bottom:1px solid #e9e9e9;zoom:1} +#autosave_pop li:after {display:block;visibility:hidden;clear:both;content:""} +#autosave_pop a {display:block;float:left} +#autosave_pop span {display:block;float:right} +.autosave_close {cursor:pointer} +.autosave_content {display:none} + +/* 게시판 읽기 */ +#bo_v {margin-bottom:20px;padding-bottom:20px} +#bo_v_table {position:absolute;top:0;right:15px;margin:0;padding:0 5px;height:25px;background:#565e60;color:#fff;font-weight:bold;line-height:2.2em} + +#bo_v header{background:#eee;border:1px solid #d4d4d4;border-bottom:0;} +#bo_v_title {font-size:1.083em;padding:10px 10px 5px} +#bo_v_title .bo_v_cate{display: inline-block;height: 20px;line-height: 18px;border: 1px solid #3497d9;color: #3497d9;padding: 0 5px;border-radius: 15px;font-size:11px} +#bo_v_info {padding:5px 10px 10px ;background:#eee;border:1px solid #d4d4d4;color:#555;border-top:0;position:relative;font-size:0.92em} +#bo_v_info h2 {position:absolute;font-size:0;line-height:0;overflow:hidden} +#bo_v_info strong {display:inline-block;margin:0 7px 0 0;font-weight:normal} +#bo_v_info .sv_member, +#bo_v_info .sv_guest, +#bo_v_info .member, +#bo_v_info .guest {font-weight:bold} +#bo_v_info .bo_date{position:absolute;top:10px;right:10px;font-style:italic} +#bo_v_info .profile_img img{border-radius:50%;} + + +#bo_v_file {margin:10px 0 0;background:#f3f3f3} +#bo_v_file h2 {margin:0;padding:0;height:0;overflow:hidden} +#bo_v_file ul {margin:0;padding:5px 0;list-style:none} +#bo_v_file li {padding:5px 10px;position:relative;} +#bo_v_file a {display:inline-block;color:#3497d9;text-decoration:underline;word-wrap:break-word} +#bo_v_file a:focus, #bo_v_file a:hover, #bo_v_file a:active {text-decoration:none} +#bo_v_file img {float:left;margin:0 10px 0 0} +.bo_v_file_cnt {position:absolute;top:5px;right:10px;color:#888;font-size:0.92em} + +#bo_v_link {} +#bo_v_link h2 {position:absolute;font-size:0;line-height:0;overflow:hidden} +#bo_v_link ul {margin:0;padding:0;list-style:none} +#bo_v_link li {padding:0 10px;border-bottom:1px solid #eee;background:#f5f6fa} +#bo_v_link a {display:inline-block;padding:8px 0 7px;width:100%;color:#000;word-wrap:break-word} +#bo_v_link a:focus, #bo_v_link a:hover, #bo_v_link a:active {text-decoration:none} +.bo_v_link_cnt {display:inline-block;margin:0 0 3px 16px} + +#bo_v_contact {border-bottom:1px solid #ddd} +#bo_v_contact h2 {position:absolute;font-size:0;line-height:0;overflow:hidden} +#bo_v_contact dl {margin:0;padding:0;list-style:none;zoom:1} +#bo_v_contact dl:after {display:block;visibility:hidden;clear:both;content:""} +#bo_v_contact dt, #bo_v_contact dd {float:left;margin:0;border-bottom:1px solid #eee;background:#f5f6fa;} +#bo_v_contact dt {clear:both;padding:8px 0 8px 30px;width:100px;font-weight:bold} +#bo_v_contact dd {padding:8px 0;width:598px} + +#bo_v_top {padding:10px 0;zoom:1} +#bo_v_top:after {display:block;visibility:hidden;clear:both;content:""} +#bo_v_top h2 {margin:0;padding:0;height:0;overflow:hidden} +#bo_v_top ul {margin:0;padding:0;list-style:none} + +#bo_v_bot {zoom:1} +#bo_v_bot:after {display:block;visibility:hidden;clear:both;content:""} +#bo_v_bot h2 {position:absolute;font-size:0;line-height:0;overflow:hidden} +#bo_v_bot ul {margin:0;padding:0;list-style:none} + +.bo_v_nb {float:left} +.bo_v_nb li {float:left;margin-right:5px} +.bo_v_com {float:right} +.bo_v_com li {float:left;margin-left:5px} + +#bo_v_atc {min-height:100px;background:#fff;height:auto !important;height:100px;padding:15px ;border:1px solid #d4d4d4;border-top:0;;} +#bo_v_atc_title {position:absolute;font-size:0;line-height:0;overflow:hidden} + +#bo_v_img {margin:0 0 10px;width:100%;overflow:hidden;zoom:1} +#bo_v_img:after {display:block;visibility:hidden;clear:both;content:""} +#bo_v_img img {margin-bottom:20px;max-width:100%;height:auto} + +#bo_v_con {margin-bottom:30px;width:100%;line-height:1.7em;word-break:break-all;overflow:hidden} +#bo_v_con a {color:#000;text-decoration:underline} +#bo_v_con img {max-width:100%;height:auto} + +#bo_v_act {margin-bottom:30px;text-align:center} +#bo_v_act a {margin-right:5px;vertical-align:top} +#bo_v_act span {display:inline-block;margin-right:5px;padding:0 10px;height:23px;border:1px solid #ccc !important;background:#fafafa !important;color:#000 !important;text-decoration:none !important;line-height:2.15em;vertical-align:top} +#bo_v_act strong {color:#ff3061} +#bo_v_act_good, +#bo_v_act_nogood {position:absolute;font-size:0;line-height:0;overflow:hidden} + +#bo_v_sns {margin:0 0 20px;padding:0;list-style:none;zoom:1} +#bo_v_sns:after {display:block;visibility:hidden;clear:both;content:""} +#bo_v_sns li {float:left;margin:0 5px 0 0} + +#bo_v_addq {margin:0 0 30px;text-align:right} + +#bo_v_ans {margin:0 0 30px;border:1px solid #d4d4d4;background:#fff;position:relative;} +#bo_v_ans h2 {font-size:1.083em;padding:10px 90px 5px 10px;background:#eee} +#bo_v_ans h2 span{display:inline-block;font-size:11px;background:#555;border-radius:5px;height:22px;line-height:22px;;padding:0 5px;color:#fff;font-weight:normal} +#bo_v_ans #ans_datetime {padding:0 10px 10px;font-size:0.92em;;background:#eee;;color:#666;font-style:italic} +#bo_v_ans #ans_con {margin:0 0 10px;padding:15px;line-height:1.8em} +#bo_v_ans #ans_con img{max-width:100%;height:auto} +#bo_v_ans #ans_add {text-align:right;padding:15px;} +#ans_msg {padding:40px 0;background:#f2f5f9;text-align:center} +#bo_v_ans .add_qa{position:absolute;top:10px;right:10px;background:#f57b8a;color:#fff} +#bo_v_ans .add_qa:hover{background:#ed6478} + +#bo_v_rel {margin:0 0 30px;padding:30px 0 0;} +#bo_v_rel h2 {margin:0 0 10px;font-size:1.2em} + +#bo_v_ans_form h2{margin:10px 0 0;font-size:1.167em } +#bo_v_ans_form .btn_submit{height: 50px;padding: 0 20px;border-radius: 3px;font-weight: bold;font-size: 1.083em;} + +/* 게시판 댓글 */ +#bo_vc {padding:20px 20px 10px;border-top:1px solid #cfded8;border-bottom:1px solid #cfded8;background:#f5f6fa} +#bo_vc h2 {margin-bottom:10px} +#bo_vc article {padding:0 0 10px;border-top:1px dotted #ccc} +#bo_vc header {position:relative;padding:15px 0 5px} +#bo_vc header .icon_reply {position:absolute;top:15px;left:-20px} +#bo_vc .sv_wrap {margin-right:15px} +#bo_vc .member, #bo_vc .guest, #bo_vc .sv_member, #bo_vc .sv_guest {font-weight:bold} +.bo_vc_hdinfo {display:inline-block;margin:0 15px 0 5px} +#bo_vc h1 {position:absolute;font-size:0;line-height:0;overflow:hidden} +#bo_vc a {color:#000;text-decoration:none} +#bo_vc p {padding:0 0 5px;line-height:1.8em} +#bo_vc p a {text-decoration:underline} +#bo_vc_empty {margin:0;padding:20px !important;text-align:center} +#bo_vc fieldset {margin:0 0 10px;padding:0} +#bo_vc #bo_vc_winfo {float:left} +#bo_vc footer {zoom:1} +#bo_vc footer:after {display:block;visibility:hidden;clear:both;content:""} + +.bo_vc_act {float:right;margin:0;list-style:none;zoom:1} +.bo_vc_act:after {display:block;visibility:hidden;clear:both;content:""} +.bo_vc_act li {float:left;margin-left:5px} + +#bo_vc_w {position:relative;margin:0 0 10px;padding:0 0 20px;border-bottom:1px solid #cfded8} +#bo_vc_w h2 {position:absolute;font-size:0;line-height:0;overflow:hidden} +#bo_vc_w #char_cnt {display:block;margin:0 0 5px} + +#bo_vc_sns {margin:0;padding:0;list-style:none;zoom:1} +#bo_vc_sns:after {display:block;visibility:hidden;clear:both;content:""} +#bo_vc_sns li {float:left;margin:0 20px 0 0} +#bo_vc_sns input {margin:0 0 0 5px} + +#bo_vc form {padding:0} + +/*글쓰기*/ +#bo_w li{;position:relative;} +#bo_w .bo_w_info:after {display:block;visibility:hidden;clear:both;content:""} +#bo_w .bo_w_info .frm_input{float:left;width:33%} +#bo_w #wr_password{margin:0 0.5%} +.qa_content_wrap.smarteditor2 iframe{background:#fff} +#bo_w .bo_w_tit{position:relative} +#bo_w .bo_w_tit .frm_input{padding-right:120px;} +#bo_w .bo_w_tit #btn_autosave{position:absolute;top:5px;right:5px;line-height:30px;height:30px;} +#bo_w .bo_w_link label{position:absolute;top:1px;left:1px;border-radius:3px 0 0 3px;height:38px;line-height:38px;width:40px;;background: #eee;text-align:center;color:#888} +#bo_w .bo_w_link .frm_input{padding-left:50px} +#bo_w .bo_w_flie .lb_icon{position:absolute;top:1px;left:1px;border-radius:3px 0 0 3px;height:38px;line-height:38px;width:40px;background:#eee;text-align:center;color:#888} +#bo_w .bo_w_flie .frm_file{padding-left:50px;} +#bo_w .bo_w_flie .file_wr{border:1px solid #ccc;background:#fff;color:#000;vertical-align:middle;border-radius:3px;padding:5px;height:40px;margin:0} +#bo_w .bo_w_flie .frm_input{margin:10px 0 0 } +#bo_w .bo_w_flie .file_del{position:absolute;top:10px;right:10px;font-size:0.92em;color:#7d7d7d} +#bo_w #qa_category{border:1px solid #3497d9;height:40px;border-radius:3px} +#bo_w .bo_w_mail{float:left;width:49%} +#bo_w .bo_w_hp{float:right;width:49%} +#bo_w .bo_w_sbj{clear:both} +#bo_w .frm_info{color: #3497d9;margin:0 0 5px;display:inline-block;font-size: 0.92em;} \ No newline at end of file diff --git a/theme/54/skin/qa/basic/view.answer.skin.php b/theme/54/skin/qa/basic/view.answer.skin.php new file mode 100644 index 000000000..fdb2c5ecd --- /dev/null +++ b/theme/54/skin/qa/basic/view.answer.skin.php @@ -0,0 +1,25 @@ + + +
        +

        답변

        + 추가질문 + +
        + +
        + +
        + +
        + +
        + + 답변수정 + + + 답변삭제 + +
        +
        \ No newline at end of file diff --git a/theme/54/skin/qa/basic/view.answerform.skin.php b/theme/54/skin/qa/basic/view.answerform.skin.php new file mode 100644 index 000000000..8e3590ae3 --- /dev/null +++ b/theme/54/skin/qa/basic/view.answerform.skin.php @@ -0,0 +1,123 @@ + + +
        + +

        답변등록

        + +
        + + + + + + '; + } else { + $option .= "\n".''."\n".''; + } + + echo $option_hidden; + ?> + +
        +
          + +
        • + 옵션 + +
        • + +
        • + + +
        • +
        • + + + + +
        • +
        +
        + +
        + +
        +
        + + + +

        고객님의 문의에 대한 답변을 준비 중입니다.

        + +
        \ No newline at end of file diff --git a/theme/54/skin/qa/basic/view.skin.php b/theme/54/skin/qa/basic/view.skin.php new file mode 100644 index 000000000..35a143ec8 --- /dev/null +++ b/theme/54/skin/qa/basic/view.skin.php @@ -0,0 +1,183 @@ +', 0); +?> + + + + + +
        +
        +

        + '.$view['category'].' '; // 분류 출력 끝 + ?> + +

        +
        + +
        +

        페이지 정보

        + 작성자 + 작성일 + + + 이메일 + + + + 휴대폰 + + + +
        + + + +
        +

        본문

        + + \n"; + + for ($i=0; $i<$view['img_count']; $i++) { + //echo $view['img_file'][$i]; + echo get_view_thumbnail($view['img_file'][$i], $qaconfig['qa_image_width']); + } + + echo "\n"; + } + ?> + + +
        + + + + + + + + + +
        +

        첨부파일

        + +
        + + + +
        + + + + + + + + + + +
        +

        연관질문

        + +
        + + + + + + + + + + + + + + + + + +
        제목등록일상태
        + + + + + + 답변완료' : ' 답변대기'); ?>
        +
        +
        + + + + +
        + + + \ No newline at end of file diff --git a/theme/54/skin/qa/basic/write.skin.php b/theme/54/skin/qa/basic/write.skin.php new file mode 100644 index 000000000..fe1d1a6bc --- /dev/null +++ b/theme/54/skin/qa/basic/write.skin.php @@ -0,0 +1,179 @@ +', 0); +?> + +
        +

        1:1문의 작성

        + +
        + + + + + + '; + } else { + $option .= "\n".''."\n".''; + } + + echo $option_hidden; + ?> + +
        +
          + +
        • + + + +
        • + + + + +
        • + + class="frm_input full_input email" size="50" maxlength="100" placeholder="이메일"> + > + + +
        • + + + +
        • + + class="frm_input full_input" size="30" placeholder="휴대폰"> + + > + +
        • + + +
        • + + + + +
        • + +
        • + + + +
        • + + +
        • + 옵션 + +
        • + + +
        • +
          + + + + + +
          +
        • + +
        • +
          + + + + + +
          +
        • +
        +
        + +
        + 목록 + + +
        +
        + + +
        + \ No newline at end of file diff --git a/theme/54/skin/search/basic/search.skin.php b/theme/54/skin/search/basic/search.skin.php new file mode 100644 index 000000000..c6386f500 --- /dev/null +++ b/theme/54/skin/search/basic/search.skin.php @@ -0,0 +1,148 @@ +', 0); +?> + + +
        + +
        + 상세검색 + + + + + + + + + + + + + + + id="sop_or" name="sop"> + + id="sop_and" name="sop"> + + +
        +
        + +
        + + +
        +

        전체검색 결과

        +
        +
        게시판
        +
        개
        +
        게시물
        +
        개
        +
        +

        / 페이지 열람 중

        +
        + + + + + +
        검색된 자료가 하나도 없습니다.
        + + +
        + +
        + +

        게시판 내 결과

        +
          + 댓글 '; + $comment_href = '#c_'.$list[$idx][$i]['wr_id']; + } + else + { + $comment_def = ''; + $comment_href = ''; + } + ?> + +
        • +
          + + 새창 +
          +

          +
          + + +
          +
        • + +
        + + +
        + +
        + + + +
        + \ No newline at end of file diff --git a/theme/54/skin/search/basic/style.css b/theme/54/skin/search/basic/style.css new file mode 100644 index 000000000..94d01dc26 --- /dev/null +++ b/theme/54/skin/search/basic/style.css @@ -0,0 +1,53 @@ +@charset "utf-8"; +/* 전체검색결과 스킨 */ +#sch_res_detail {background:#fff;padding:30px;border:1px solid #ccc;text-align:center;margin:0 0 10px} +#sch_res_detail legend {position:absolute;margin:0;padding:0;font-size:0;line-height:0;text-indent:-9999em;overflow:hidden} +#sch_res_detail select{border:1px solid #646982;height:40px;padding:0 5px} +#sch_res_detail .frm_input{border:1px solid #646982;border-radius:0;} +#sch_res_detail .sch_wr{position:relative;display:inline-block} +#sch_res_detail .btn_submit{padding:0 10px;height:40px;color:#000;font-size:1.083em;font-weight:bold;color:#fff;background:#253dbe} +#sch_res_detail .sch_rd{display:block;margin:5px 0 0;font-size:0.92em;color:#666} + +#sch_res_ov {text-align:center;zoom:1} +#sch_res_ov:after {display:block;visibility:hidden;clear:both;content:""} +#sch_res_ov h2 {text-align:center;margin:30px 0 10px;font-size:1.5em;} +#sch_res_ov h2 strong{color:#00c4ac;} +#sch_res_ov dl {display:inline-block;line-height: 30px;font-size: 0.92em;color: #4e546f;background: #d4d4d4;padding: 0 10px;border-radius: 5px;} +#sch_res_ov dl:after {display:block;visibility:hidden;clear:both;content:""} +#sch_res_ov dt {float:left} +#sch_res_ov dd {float:left;margin:0 10px 0 5px} +#sch_res_ov dd .sch_word{color:#000} +#sch_res_ov p {margin:0;padding:0;line-height:1em;color:#777;font-size:0.92em} + + +#sch_res_board {background:#ecf2f3;padding:7px;margin:10px 0;border:1px solid #bed1d4} +#sch_res_board h2 {position:absolute;font-size:0;line-height:0;overflow:hidden} +#sch_res_board ul {zoom:1} +#sch_res_board ul:after {display:block;visibility:hidden;clear:both;content:""} +#sch_res_board li {display:inline-block;padding:2px;} +#sch_res_board a {display:block;line-height:26px;padding:0 10px;border-radius:3px;border:1px solid transparent} +#sch_res_board a:focus, #sch_res_board a:hover {text-decoration:none;background:#d2d6dc;} +#sch_res_board .cnt_cmt {font-weight:normal !important;display:inline-block;background:#c4dce0;margin-left:3px;color:#3497d9;border-radius:15px;height:18px;padding:0 5px;line-height:18px;font-size:0.92em} +#sch_res_board .sch_on {z-index:2;background:#3497d9;color:#fff;font-weight:bold;border-bottom-color:#1977b5; +-webkit-box-shadow: inset 0 2px 5px rgb(33, 135, 202); +-moz-box-shadow: inset 0 2px 5px rgb(33, 135, 202); +box-shadow:inset 0 2px 5px rgb(33, 135, 202);} +#sch_res_board .sch_on:hover{;background:#3497d9;color:#fff;} + + + + +.sch_res_list {margin:0 0 10px;padding:10px 0 15px} +.sch_res_list h2 {margin:0 0 10px;font-size:1.2em} +.sch_res_list ul {margin:0;padding:0;list-style:none;border-top:1px solid #000} +.sch_res_list li {;border-bottom:1px solid #e0e0e0;background:#fff;position:relative} +.sch_res_list .sch_tit{display:block;background:#f4f4f4;padding:10px 70px 10px 10px} +.sch_res_list .pop_a{position:absolute;top:10px;right:10px;color:#666;} +.sch_res_title {display:inline-block;margin:0 0 5px} +.sch_res_list p {padding:10px;color:#666;line-height:1.5em} +.sch_res_list .sch_info{padding:10px;color:#777} +.sch_res_list .sch_info:after {display:block;visibility:hidden;clear:both;content:""} +.sch_res_list .profile_img img{border-radius:50%} +.sch_res_list .sch_datetime{float:right;} +.sch_more {text-align:right;margin:10px 0 30px} +.sch_more a{display:inline-block;color:#f2664f} diff --git a/theme/54/skin/visit/basic/style.css b/theme/54/skin/visit/basic/style.css new file mode 100644 index 000000000..039875a6a --- /dev/null +++ b/theme/54/skin/visit/basic/style.css @@ -0,0 +1,15 @@ +@charset "utf-8"; +/* 방문자 집계 */ +#visit {border: 1px solid #d2d9e6; border-bottom: 1px solid #c1ccda;margin:40px 20px 20px;background:#fff;position:relative; +-webkit-box-shadow: 0 1px 2px rgba(0,0,0,0.1); +-moz-box-shadow: 0 1px 2px rgba(0,0,0,0.1); +box-shadow:0 1px 2px rgba(0,0,0,0.1)} +#visit .btn_admin{position:absolute;top:10px;right:10px;height:25px;line-height:25px;padding:0 5px;border-radius:3px} +#visit h2 {font-size:1.167em;text-align:center;padding-bottom:15px;padding-top:25px;color:#16b3d6;position:relative} +#visit h2 i{position:absolute;top:-22px;left:50%;width:44px;line-height:44px;margin-left:-22px;border-radius:25px;background:#16b3d6;color:#fff} +#visit dl {border-top:1px solid #e9e9e9;padding:10px 15px;border-radius:5px} +#visit dl:after {display:block;visibility:hidden;clear:both;content:""} +#visit dt {float:left;width:20%;padding:0 5px;line-height:23px;height:23px;color:#555} +#visit dt span{display:inline-block;width:5px;height:5px;border-radius:50%;vertical-align: middle;} +#visit dd {float:left;;width:30%;padding:0 5px;;text-align:right;text-align:right;font-weight:bold;line-height:23px;height:23px;font-size:0.92em} +#visit dd strong{display:inline-block;padding:0 5px;border-radius:20px;line-height:15px;color:#fff;} diff --git a/theme/54/skin/visit/basic/visit.skin.php b/theme/54/skin/visit/basic/visit.skin.php new file mode 100644 index 000000000..768a58829 --- /dev/null +++ b/theme/54/skin/visit/basic/visit.skin.php @@ -0,0 +1,25 @@ +', 0); +?> + + +
        +

        접속자집계

        +
        +
        오늘
        +
        +
        어제
        +
        +
        최대
        +
        +
        전체
        +
        +
        + 상세보기 +
        + \ No newline at end of file diff --git a/theme/54/tail.php b/theme/54/tail.php new file mode 100644 index 000000000..23b828ecf --- /dev/null +++ b/theme/54/tail.php @@ -0,0 +1,77 @@ + + + +
        + + + + +
        + + + + + +
        + + +
        + +
        + +
        <?php echo G5_VERSION ?>
        +
        Copyright © 소유하신 도메인. All rights reserved.
        +
        + + + +
        + + + + + + + + + \ No newline at end of file diff --git a/theme/54/tail.sub.php b/theme/54/tail.sub.php new file mode 100644 index 000000000..6772a3772 --- /dev/null +++ b/theme/54/tail.sub.php @@ -0,0 +1,27 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/theme/54/theme.config.php b/theme/54/theme.config.php new file mode 100644 index 000000000..562616b57 --- /dev/null +++ b/theme/54/theme.config.php @@ -0,0 +1,38 @@ + false, // 기본환경설정의 최근게시물 등의 기본스킨 변경여부 true, false + 'preview_board_skin' => 'basic', // 테마 미리보기 때 적용될 기본 게시판 스킨 + 'preview_mobile_board_skin' => 'basic', // 테마 미리보기 때 적용될 기본 모바일 게시판 스킨 + 'cf_member_skin' => 'basic', // 회원 스킨 + 'cf_mobile_member_skin' => 'basic', // 모바일 회원 스킨 + 'cf_new_skin' => 'basic', // 최근게시물 스킨 + 'cf_mobile_new_skin' => 'basic', // 모바일 최근게시물 스킨 + 'cf_search_skin' => 'basic', // 검색 스킨 + 'cf_mobile_search_skin' => 'basic', // 모바일 검색 스킨 + 'cf_connect_skin' => 'basic', // 접속자 스킨 + 'cf_mobile_connect_skin' => 'basic', // 모바일 접속자 스킨 + 'cf_faq_skin' => 'basic', // FAQ 스킨 + 'cf_mobile_faq_skin' => 'basic', // 모바일 FAQ 스킨 + 'bo_gallery_cols' => 4, // 갤러리 이미지 수 + 'bo_gallery_width' => 210, // 갤러리 이미지 폭 + 'bo_gallery_height' => 150, // 갤러리 이미지 높이 + 'bo_mobile_gallery_width' => 125, // 모바일 갤러리 이미지 폭 + 'bo_mobile_gallery_height' => 100, // 모바일 갤러리 이미지 높이 + 'bo_image_width' => 600, // 게시판 뷰 이미지 폭 + 'qa_skin' => 'basic', // 1:1문의 스킨 + 'qa_mobile_skin' => 'basic' // 1:1문의 모바일 스킨 +); +?> \ No newline at end of file From 3faf265c46735c05217d05f8019b4bfff85c26e3 Mon Sep 17 00:00:00 2001 From: leebokyung Date: Fri, 9 Nov 2018 12:28:09 +0900 Subject: [PATCH 35/90] =?UTF-8?q?=EB=A9=94=EC=9D=B8=ED=99=94=EB=A9=B4=20?= =?UTF-8?q?=EC=A0=95=EB=A6=AC=EC=A4=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- theme/54/css/default.css | 344 +++++++++--------- theme/54/head.php | 15 +- theme/54/readme.txt | 2 +- .../skin/outlogin/basic/outlogin.skin.1.php | 7 +- .../skin/outlogin/basic/outlogin.skin.2.php | 15 +- theme/54/skin/outlogin/basic/style.css | 60 +-- theme/54/skin/poll/basic/poll.skin.php | 2 +- theme/54/skin/poll/basic/poll_result.skin.php | 2 +- theme/54/skin/poll/basic/style.css | 55 ++- theme/54/skin/visit/basic/style.css | 8 +- theme/54/skin/visit/basic/visit.skin.php | 2 +- theme/54/tail.php | 2 +- 12 files changed, 258 insertions(+), 256 deletions(-) diff --git a/theme/54/css/default.css b/theme/54/css/default.css index 90cd3680f..9fb5d4264 100644 --- a/theme/54/css/default.css +++ b/theme/54/css/default.css @@ -2,7 +2,7 @@ /* 초기화 */ html {overflow-y:scroll} -body {margin:0;padding:0;font-size:0.75em;font-family:'Malgun Gothic', dotum, sans-serif;background:#e7e7e7} +body {margin:0;padding:0;font-size:0.75em;font-family:'Malgun Gothic', dotum, sans-serif;background:#fff} html, h1, h2, h3, h4, h5, h6, form, fieldset, img {margin:0;padding:0;border:0} h1, h2, h3, h4, h5, h6 {font-size:1em;font-family:'Malgun Gothic', dotum, sans-serif} article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section {display:block} @@ -11,7 +11,7 @@ ul, dl,dt,dd {margin:0;padding:0;list-style:none} legend {position:absolute;margin:0;padding:0;font-size:0;line-height:0;text-indent:-9999em;overflow:hidden} label, input, button, select, img {vertical-align:middle;font-size:1em} input, button {margin:0;padding:0;font-family:'Malgun Gothic', dotum, sans-serif;font-size:1em} -input[type="submit"]{cursor:pointer} +input[type="submit"] {cursor:pointer} button {cursor:pointer} textarea, select {font-family:'Malgun Gothic', dotum, sans-serif;font-size:1em} @@ -22,51 +22,51 @@ pre {overflow-x:scroll;font-size:1.1em} a {color:#000;text-decoration:none} *, :after, :before { - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; + -webkit-box-sizing:border-box; + -moz-box-sizing:border-box; + box-sizing:border-box; } input[type=text],input[type=password], textarea { --webkit-transition: all 0.30s ease-in-out; --moz-transition: all 0.30s ease-in-out; --ms-transition: all 0.30s ease-in-out; --o-transition: all 0.30s ease-in-out; -outline: none; +-webkit-transition:all 0.30s ease-in-out; +-moz-transition:all 0.30s ease-in-out; +-ms-transition:all 0.30s ease-in-out; +-o-transition:all 0.30s ease-in-out; +outline:none; } -input[type=text]:focus,input[type=password]:focus, textarea:focus,select:focus { --webkit-box-shadow: 0 0 5px #9ed4ff; --moz-box-shadow: 0 0 5px #9ed4ff; -box-shadow: 0 0 5px #9ed4ff; -border: 1px solid #558ab7 !important; +input[type=text]:focus,input[type=password]:focus, textarea:focus,select:focus { +-webkit-box-shadow:0 0 5px #9ed4ff; +-moz-box-shadow:0 0 5px #9ed4ff; +box-shadow:0 0 5px #9ed4ff; +border:1px solid #558ab7 !important; } -.placeholdersjs { color: #aaa !important; } +.placeholdersjs {color:#aaa !important} /* 레이아웃 크기 지정 */ -#hd, #wrapper, #ft{min-width:1200px} +#hd, #wrapper, #ft {min-width:1200px} #hd_pop, #hd_wrapper, #tnb ul, #gnb .gnb_wrap, #container_wr, -#ft_wr{width:1200px} +#ft_wr {width:1200px} /* 팝업레이어 */ #hd_pop {z-index:1000;position:relative;margin:0 auto;height:0} #hd_pop h2 {position:absolute;font-size:0;line-height:0;overflow:hidden} -.hd_pops {position:absolute;border:1px solid #e9e9e9;background:#fff;} -.hd_pops img{max-width:100%} +.hd_pops {position:absolute;border:1px solid #e9e9e9;background:#fff} +.hd_pops img {max-width:100%} .hd_pops_con {} -.hd_pops_footer {padding: 0;background:#000;color:#fff;text-align:left;position:relative;} +.hd_pops_footer {padding:0;background:#000;color:#fff;text-align:left;position:relative} .hd_pops_footer:after {display:block;visibility:hidden;clear:both;content:""} -.hd_pops_footer button {padding: 10px;border:0;color:#fff} -.hd_pops_footer .hd_pops_reject{background:#000;text-align:left} -.hd_pops_footer .hd_pops_close{background:#393939;position:absolute;top:0;right:0} +.hd_pops_footer button {padding:10px;border:0;color:#fff} +.hd_pops_footer .hd_pops_reject {background:#000;text-align:left} +.hd_pops_footer .hd_pops_close {background:#393939;position:absolute;top:0;right:0} /* 상단 레이아웃 */ -#hd {border-top:2px solid #253dbe} +#hd {background:#212020} #hd_h1 {position:absolute;font-size:0;line-height:0;overflow:hidden} #hd_wrapper {position:relative;margin:0 auto;padding:10px 0;height:115px;zoom:1} @@ -74,76 +74,76 @@ border: 1px solid #558ab7 !important; #logo {float:left;padding:30px 0 0} -.hd_sch_wr{position:absolute;top:25px;left:50%;width:430px;margin-left:-215px;} +.hd_sch_wr {position:absolute;top:25px;left:50%;width:430px;margin-left:-215px} #hd_sch h3 {position:absolute;font-size:0;line-height:0;overflow:hidden} -#hd_sch{border:2px solid #556ada;background:#fff;border-radius:5px;overflow:hidden} +#hd_sch {border:2px solid #556ada;background:#fff;border-radius:5px;overflow:hidden} #hd_sch #sch_stx {padding-left:10px;height:40px;width:376px;border:0;border-right:0;float:left;font-size:1.25em} #hd_sch #sch_submit {height:40px;border:0;background:#fff;color:#253dbe;width:50px;float:left;cursor:pointer;font-size:18px} -#sbn_side{position:absolute;top:20px;right:0} +#sbn_side {position:absolute;top:20px;right:0} -#tnb {border-bottom:1px solid #ddd;background:#fff} +#tnb {} #tnb h3 {position:absolute;font-size:0;line-height:0;overflow:hidden} #tnb ul {margin:0 auto;zoom:1} #tnb ul:after {display:block;visibility:hidden;clear:both;content:""} #tnb li {float:right;border-left:1px solid #ddd;margin-bottom:-1px;font-size:0.92em} #tnb a {display:inline-block;padding:0 10px;color:#646464;line-height:35px} #tnb a:focus, #tnb a:hover {color:#253dbe;background:#fafafa} -#tnb .tnb_admin a{color:#ff0000;} -#tnb .tnb_left{float:left} -#tnb .tnb_left a{padding:0 14px} -#tnb .tnb_cart{border-right:1px solid #ddd;} -#tnb .tnb_community{border-right:1px solid #ddd} -#tnb .tnb_community i{font-size:15px} -#tnb .tnb_community{background:#e7e7e7;font-weight:bold;} +#tnb .tnb_admin a {color:#ff0000} +#tnb .tnb_left {float:left} +#tnb .tnb_left a {padding:0 14px} +#tnb .tnb_cart {border-right:1px solid #ddd} +#tnb .tnb_community {border-right:1px solid #ddd} +#tnb .tnb_community i {font-size:15px} +#tnb .tnb_community {background:#e7e7e7;font-weight:bold} #tnb .tnb_community:focus, #tnb .tnb_community:hover {color:#333;border-bottom:0} -#tnb .tnb_community a{color:#253dbe;border-bottom:1px solid #e7e7e7} +#tnb .tnb_community a {color:#253dbe;border-bottom:1px solid #e7e7e7} -#hd_qnb{float:right;margin-top:20px} +#hd_qnb {float:right;margin-top:20px} #hd_qnb:after {display:block;visibility:hidden;clear:both;content:""} -#hd_qnb li{float:left;font-size:1.083em;line-height:15px;position:relative;text-align:center;margin:0 10px} +#hd_qnb li {float:left;font-size:1.083em;line-height:15px;position:relative;text-align:center;margin:0 10px} #hd_qnb li span {display:block;margin-top:5px;font-size:0.92em} -#hd_qnb li a{display:block} -#hd_qnb li i{display:inline-block;width:40px;line-height:40px;border-radius:25px;background:#fff;text-align:center;margin:0;color:#fff} -#hd_qnb .visit .visit-num{display:inline-block;line-height:18px;padding:0 5px;border-radius:10px;background:#f04e00;color:#fff;font-size:10px;position:absolute;top:0;right:0} -#hd_qnb li .fa-question{background:#e83a5f;font-size:20px} -#hd_qnb li .fa-question:hover{background:#e41b45} -#hd_qnb li .fa-comments{background:#82c13f;font-size:16px} -#hd_qnb li .fa-comments:hover{background:#5aa708} -#hd_qnb li .fa-users{background:#f0ba00;font-size:15px} -#hd_qnb li .fa-users:hover{background:#f06f00} -#hd_qnb li .fa-history{background:#8522c4;font-size:15px} -#hd_qnb li .fa-history:hover{background:#6700a9} +#hd_qnb li a {display:block} +#hd_qnb li i {display:inline-block;width:40px;line-height:40px;border-radius:25px;background:#fff;text-align:center;margin:0;color:#fff} +#hd_qnb .visit .visit-num {display:inline-block;line-height:18px;padding:0 5px;border-radius:10px;background:#f04e00;color:#fff;font-size:10px;position:absolute;top:0;right:0} +#hd_qnb li .fa-question {background:#e83a5f;font-size:20px} +#hd_qnb li .fa-question:hover {background:#e41b45} +#hd_qnb li .fa-comments {background:#82c13f;font-size:16px} +#hd_qnb li .fa-comments:hover {background:#5aa708} +#hd_qnb li .fa-users {background:#f0ba00;font-size:15px} +#hd_qnb li .fa-users:hover {background:#f06f00} +#hd_qnb li .fa-history {background:#8522c4;font-size:15px} +#hd_qnb li .fa-history:hover {background:#6700a9} /* 메인메뉴 */ -#gnb{position:relative} -#gnb h2{position:absolute;font-size:0;line-height:0;overflow:hidden} -#gnb .gnb_wrap{margin:0 auto;position:relative} -#gnb #gnb_1dul {font-size:1.083em;padding: 0;background:#253dbe;zoom:1; --webkit-box-shadow: 0 1px 3px rgba(0,0,0,0.3); --moz-box-shadow: 0 1px 3px rgba(0,0,0,0.3); -box-shadow: 0 1px 3px rgba(0,0,0,0.3)} +#gnb {position:relative} +#gnb h2 {position:absolute;font-size:0;line-height:0;overflow:hidden} +#gnb .gnb_wrap {margin:0 auto;position:relative} +#gnb #gnb_1dul {font-size:1.083em;padding:0;background:#253dbe;zoom:1; +-webkit-box-shadow:0 1px 3px rgba(0,0,0,0.3); +-moz-box-shadow:0 1px 3px rgba(0,0,0,0.3); +box-shadow:0 1px 3px rgba(0,0,0,0.3)} #gnb ul:after {display:block;visibility:hidden;clear:both;content:""} -#gnb .gnb_1dli{float:left;line-height:50px;padding:0 15px;position:relative;} -#gnb .gnb_1dli:hover{background:#1a30a7; --webkit-transition: background-color 2s ease-out; --moz-transition: background-color 0.3s ease-out; --o-transition: background-color 0.3s ease-out; -transition: background-color 0.3s ease-out;} +#gnb .gnb_1dli {float:left;line-height:50px;padding:0 15px;position:relative} +#gnb .gnb_1dli:hover {background:#1a30a7; +-webkit-transition:background-color 2s ease-out; +-moz-transition:background-color 0.3s ease-out; +-o-transition:background-color 0.3s ease-out; +transition:background-color 0.3s ease-out} -.gnb_1dli .bg{display:inline-block;width:10px;height:10px;overflow:hidden;background:url(../img/gnb_bg2.gif) no-repeat 50% 50%;text-indent:-999px} -.gnb_1da {display:inline-block;font-weight:bold;color:#fff;text-decoration:none;} -.gnb_2dli{border-top:1px solid #253dbe} -.gnb_2dli:first-child{border:0} -.gnb_2dul {display:none;position:absolute;top:50px;min-width:140px;background:#1a30a7;padding: 0; --webkit-box-shadow: 0 1px 5px rgba(0,0,0,0.1); --moz-box-shadow: 0 1px 5px rgba(0,0,0,0.1); -box-shadow: 0 1px 5px rgba(0,0,0,0.1);} +.gnb_1dli .bg {display:inline-block;width:10px;height:10px;overflow:hidden;background:url(../img/gnb_bg2.gif) no-repeat 50% 50%;text-indent:-999px} +.gnb_1da {display:inline-block;font-weight:bold;color:#fff;text-decoration:none} +.gnb_2dli {border-top:1px solid #253dbe} +.gnb_2dli:first-child {border:0} +.gnb_2dul {display:none;position:absolute;top:50px;min-width:140px;background:#1a30a7;padding:0; +-webkit-box-shadow:0 1px 5px rgba(0,0,0,0.1); +-moz-box-shadow:0 1px 5px rgba(0,0,0,0.1); +box-shadow:0 1px 5px rgba(0,0,0,0.1)} .gnb_2da {display:block;padding:0 10px;line-height:40px;color:#c3cbf7;text-align:left;text-decoration:none} -a.gnb_2da:hover{background:#0e2080; --moz-transition: all 0.3s ease-out; --o-transition: all 0.3s ease-out; -transition: all 0.3s ease-out;} +a.gnb_2da:hover {background:#0e2080; +-moz-transition:all 0.3s ease-out; +-o-transition:all 0.3s ease-out; +transition:all 0.3s ease-out} .gnb_1dli_air .gnb_2da {} .gnb_1dli_on .gnb_2da {} @@ -151,55 +151,55 @@ transition: all 0.3s ease-out;} .gnb_1dli_over .gnb_2dul {display:block;left:0} .gnb_1dli_over2 .gnb_2dul {display:block;right:0} .gnb_wrap .gnb_empty {padding:10px 0;width:100%;text-align:center;line-height:2em;color:#fff} -.gnb_wrap .gnb_empty a{color:#fff;text-decoration:underline} -.gnb_wrap .gnb_al_ul .gnb_empty, .gnb_wrap .gnb_al_ul .gnb_empty a{color:#555} +.gnb_wrap .gnb_empty a {color:#fff;text-decoration:underline} +.gnb_wrap .gnb_al_ul .gnb_empty, .gnb_wrap .gnb_al_ul .gnb_empty a {color:#555} -#gnb .gnb_menu_btn{background:#4158d1;color:#fff;width:50px;height:50px;border:0;vertical-align:top;font-size:18px} -#gnb .gnb_close_btn{background:#4158d1;color:#fff;width:50px;height:50px;border:0;vertical-align:top;font-size:18px;position:absolute;top:-50px;left:0} -#gnb .gnb_mnal{padding:0} +#gnb .gnb_menu_btn {background:#4158d1;color:#fff;width:50px;height:50px;border:0;vertical-align:top;font-size:18px} +#gnb .gnb_close_btn {background:#4158d1;color:#fff;width:50px;height:50px;border:0;vertical-align:top;font-size:18px;position:absolute;top:-50px;left:0} +#gnb .gnb_mnal {padding:0} -#gnb_all{display:none;position:absolute;width:100%;z-index:99;} +#gnb_all {display:none;position:absolute;width:100%;z-index:99} #gnb_all .gnb_al_ul:after {display:block;visibility:hidden;clear:both;content:""} -#gnb_all .gnb_al_ul{background:#fff;border:1px solid #4158d1;padding:20px; --webkit-box-shadow: 0 2px 5px rgba(0,0,0,0.2); --moz-box-shadow: 0 2px 5px rgba(0,0,0,0.2); -box-shadow: 0 2px 5px rgba(0,0,0,0.2);} -#gnb_all .gnb_al_li{background:#fff;float:left;min-width:20%;padding:5px } -#gnb_all .gnb_al_li .gnb_al_a{font-size:1.083em;padding:10px;display:block;position:relative;margin-bottom:10px;background: #eff1f9;border-bottom: 1px solid #dee2f1;font-weight: bold;color:#243071} +#gnb_all .gnb_al_ul {background:#fff;border:1px solid #4158d1;padding:20px; +-webkit-box-shadow:0 2px 5px rgba(0,0,0,0.2); +-moz-box-shadow:0 2px 5px rgba(0,0,0,0.2); +box-shadow:0 2px 5px rgba(0,0,0,0.2)} +#gnb_all .gnb_al_li {background:#fff;float:left;min-width:20%;padding:5px } +#gnb_all .gnb_al_li .gnb_al_a {font-size:1.083em;padding:10px;display:block;position:relative;margin-bottom:10px;background:#eff1f9;border-bottom:1px solid #dee2f1;font-weight:bold;color:#243071} #gnb_all .gnb_al_li li {padding-left:10px;line-height:2em} -#gnb_all .gnb_al_li li i{color:#9ca6cc} -#gnb_all .gnb_al_li li a{color:#555} +#gnb_all .gnb_al_li li i {color:#9ca6cc} +#gnb_all .gnb_al_li li a {color:#555} /* 중간 레이아웃 */ -#wrapper{} +#wrapper {} #container_wr:after {display:block;visibility:hidden;clear:both;content:""} #container_wr {z-index:5;margin:0 auto;height:100%;zoom:1} -#aside {float:right;width:305px;padding:0;background: #e7ebf3;height: 100%;border: 1px solid #adbfd2;margin:20px 0 20px 20px} +#aside {float:right;width:235px;padding:0;height:100%;margin:20px 0 20px 20px} -#container {z-index:4;position:relative;float:left;min-height:500px;height:auto !important;margin:20px 0;height:500px;font-size:1em;width:875px;zoom:1} +#container {z-index:4;position:relative;float:left;min-height:500px;height:auto !important;margin:20px 0;height:500px;font-size:1em;width:875px;zoom:1} #container:after {display:block;visibility:hidden;clear:both;content:""} -#container_title {font-size:1.333em;margin:0 auto;font-weight:bold;} -#container_title span{margin:0 auto 10px;display:block;line-height:30px;} +#container_title {font-size:1.333em;margin:0 auto;font-weight:bold} +#container_title span {margin:0 auto 10px;display:block;line-height:30px} /*.latest_wr:after {display:block;visibility:hidden;clear:both;content:""}*/ -.lt_wr{width:49%} -.lt_wr:nth-child(2n+1){clear:both} +.lt_wr {width:49%} +.lt_wr:nth-child(2n+1) {clear:both} .latest_wr:after {display:block;visibility:hidden;clear:both;content:""} /* 하단 레이아웃 */ -#ft {border-top:1px solid #d5d5d5;background:#fff;padding-bottom:30px;margin:0 auto;text-align:center} +#ft {border-top:1px solid #d5d5d5;background:#212020;padding-bottom:30px;margin:0 auto;text-align:center} #ft h1 {position:absolute;font-size:0;line-height:0;overflow:hidden} -#ft_wr {margin:0 auto;position:relative;} -#ft_link{padding:15px 0;border-bottom:1px solid #eee} -#ft_link a{display:inline-block;padding:0 8px;line-height:1.083em;font-weight:bold} -#ft_catch{margin:20px 0 10px} -#ft_copy{color:#555;font-size:0.92em} +#ft_wr {margin:0 auto;position:relative} +#ft_link {padding:15px 0;border-bottom:1px solid #eee} +#ft_link a {display:inline-block;padding:0 8px;line-height:1.083em;font-weight:bold} +#ft_catch {margin:20px 0 10px} +#ft_copy {color:#555;font-size:0.92em} #top_btn {position:fixed;bottom:20px;right:20px;width:50px;height:50px;line-height:46px;border:2px solid #333;color:#333;text-align:center;font-size:15px;z-index:90;background:rgba(255,255,255,0.5)} -#top_btn:hover{border-color:#3059c7;background:#3059c7;color:#fff} +#top_btn:hover {border-color:#3059c7;background:#3059c7;color:#fff} /* 게시물 선택복사 선택이동 */ #copymove {} -#copymove .win_desc {text-align:center;display:block} -#copymove .tbl_wrap{margin:20px } -#copymove .win_btn{padding:0 20px 20px} +#copymove .win_desc {text-align:center;display:block} +#copymove .tbl_wrap {margin:20px } +#copymove .win_btn {padding:0 20px 20px} .copymove_current {float:right;background:#ff3061;padding:5px;color:#fff;border-radius:3px} .copymove_currentbg {background:#f4f4f4} @@ -215,48 +215,48 @@ box-shadow: 0 2px 5px rgba(0,0,0,0.2);} /* 캡챠 자동등록(입력)방지 기본 -pc */ #captcha {display:inline-block;position:relative} -#captcha legend {position:absolute;margin:0;padding:0;font-size:0;line-height:0;text-indent:-9999em;overflow:hidden;} +#captcha legend {position:absolute;margin:0;padding:0;font-size:0;line-height:0;text-indent:-9999em;overflow:hidden} #captcha #captcha_img {height:40px;border:1px solid #898989;vertical-align:top;padding:0;margin:0} #captcha #captcha_mp3 {margin:0;padding:0;width:40px;height:40px;border:0;background:transparent;vertical-align:middle;overflow:hidden;cursor:pointer;background:url('../../../img/captcha2.png') no-repeat;text-indent:-999px;border-radius:3px} -#captcha #captcha_reload {margin:0;padding:0;width:40px;height:40px;border:0;background:transparent;vertical-align:middle;overflow:hidden;cursor:pointer;background:url('../../../img/captcha2.png') no-repeat 0 -40px;text-indent:-999px;border-radius:3px} +#captcha #captcha_reload {margin:0;padding:0;width:40px;height:40px;border:0;background:transparent;vertical-align:middle;overflow:hidden;cursor:pointer;background:url('../../../img/captcha2.png') no-repeat 0 -40px;text-indent:-999px;border-radius:3px} #captcha #captcha_key {margin:0 0 0 3px;padding:0 5px;width:90px;height:40px;border:1px solid #ccc;background:#fff;font-size:1.333em;font-weight:bold;text-align:center;border-radius:3px;vertical-align:top} #captcha #captcha_info {display:block;margin:5px 0 0;font-size:0.95em;letter-spacing:-0.1em} /* 캡챠 자동등록(입력)방지 기본 - mobile */ #captcha.m_captcha audio {display:block;margin:0 0 5px;width:187px} -#captcha.m_captcha #captcha_img {width:160px;height:60px;border:1px solid #e9e9e9;margin-bottom:3px;margin-top:5px;display:block;} -#captcha.m_captcha #captcha_reload {position:static;margin:0;padding:0;width:40px;height:40px;border:0;background:transparent;vertical-align:middle;overflow:hidden;cursor:pointer;background:url('../../../img/captcha2.png') no-repeat 0 -40px;text-indent:-999px} -#captcha.m_captcha #captcha_reload span{display:none;} +#captcha.m_captcha #captcha_img {width:160px;height:60px;border:1px solid #e9e9e9;margin-bottom:3px;margin-top:5px;display:block} +#captcha.m_captcha #captcha_reload {position:static;margin:0;padding:0;width:40px;height:40px;border:0;background:transparent;vertical-align:middle;overflow:hidden;cursor:pointer;background:url('../../../img/captcha2.png') no-repeat 0 -40px;text-indent:-999px} +#captcha.m_captcha #captcha_reload span {display:none} #captcha.m_captcha #captcha_key {margin:0;padding:0 5px;width:115px;height:29px;border:1px solid #b8c9c2;background:#f7f7f7;font-size:1.333em;font-weight:bold;text-align:center;line-height:29px;margin-left:3px} #captcha.m_captcha #captcha_info {display:block;margin:5px 0 0;font-size:0.95em;letter-spacing:-0.1em} -#captcha.m_captcha #captcha_mp3 {width:31px;height:31px;background:url('../../../img/captcha2.png') no-repeat 0 0 ; vertical-align:top;overflow:hidden;cursor:pointer;text-indent:-9999px;border:none} +#captcha.m_captcha #captcha_mp3 {width:31px;height:31px;background:url('../../../img/captcha2.png') no-repeat 0 0 ; vertical-align:top;overflow:hidden;cursor:pointer;text-indent:-9999px;border:none} /* ckeditor 단축키 */ .cke_sc {margin:0 0 5px;text-align:right} -.btn_cke_sc{display:inline-block;padding:0 10px;height:23px;border:1px solid #ccc;background:#fafafa;color:#000;text-decoration:none;line-height:1.9em;vertical-align:middle;cursor:pointer} +.btn_cke_sc {display:inline-block;padding:0 10px;height:23px;border:1px solid #ccc;background:#fafafa;color:#000;text-decoration:none;line-height:1.9em;vertical-align:middle;cursor:pointer} .cke_sc_def {margin:0 0 5px;padding:10px;border:1px solid #ccc;background:#f7f7f7;text-align:center} -.cke_sc_def dl{margin:0 0 5px;text-align:left;zoom:1} +.cke_sc_def dl {margin:0 0 5px;text-align:left;zoom:1} .cke_sc_def dl:after {display:block;visibility:hidden;clear:both;content:""} .cke_sc_def dt, .cke_sc_def dd {float:left;margin:0;padding:5px 0;border-bottom:1px solid #e9e9e9} .cke_sc_def dt {width:20%;font-weight:bold} .cke_sc_def dd {width:30%} /* ckeditor 태그 기본값 */ -#bo_v_con ul{display: block;list-style-type: disc;margin-top: 1em;margin-bottom: 1em;margin-left: 0;margin-right: 0;padding-left: 40px;} -#bo_v_con ol{display: block;list-style-type: decimal;margin-top: 1em;margin-bottom: 1em;margin-left: 0;margin-right: 0;padding-left: 40px;} -#bo_v_con li{display: list-item;} +#bo_v_con ul {display:block;list-style-type:disc;margin-top:1em;margin-bottom:1em;margin-left:0;margin-right:0;padding-left:40px} +#bo_v_con ol {display:block;list-style-type:decimal;margin-top:1em;margin-bottom:1em;margin-left:0;margin-right:0;padding-left:40px} +#bo_v_con li {display:list-item} /* 버튼 */ -a.btn,.btn{line-height:35px;height:35px;padding:0 10px;text-align:center;font-weight:bold;border:0; --webkit-transition: background-color 0.3s ease-out; --moz-transition: background-color 0.3s ease-out; --o-transition: background-color 0.3s ease-out; -transition: background-color 0.3s ease-out;} +a.btn,.btn {line-height:35px;height:35px;padding:0 10px;text-align:center;font-weight:bold;border:0; +-webkit-transition:background-color 0.3s ease-out; +-moz-transition:background-color 0.3s ease-out; +-o-transition:background-color 0.3s ease-out; +transition:background-color 0.3s ease-out} a.btn01 {display:inline-block;padding:7px;border:1px solid #ccc;background:#fafafa;color:#000;text-decoration:none;vertical-align:middle} a.btn01:focus, a.btn01:hover {text-decoration:none} button.btn01 {display:inline-block;margin:0;padding:7px;border:1px solid #ccc;background:#fafafa;color:#000;text-decoration:none} -a.btn02 {display:inline-block;padding:7px;border:1px solid #3b3c3f;background:#4b545e;color:#fff;text-decoration:none;vertical-align:middle;} +a.btn02 {display:inline-block;padding:7px;border:1px solid #3b3c3f;background:#4b545e;color:#fff;text-decoration:none;vertical-align:middle} a.btn02:focus, .btn02:hover {text-decoration:none} button.btn02 {display:inline-block;margin:0;padding:7px;border:1px solid #3b3c3f;background:#4b545e;color:#fff;text-decoration:none} @@ -265,7 +265,7 @@ button.btn02 {display:inline-block;margin:0;padding:7px;border:1px solid #3b3c3f .btn_submit {border:0;background:#253dbe;color:#fff;cursor:pointer;border:0} .btn_submit:hover {background:#0025eb} -a.btn_cancel {display:inline-block;background:#969696;color:#fff;text-decoration:none;vertical-align:middle;} +a.btn_cancel {display:inline-block;background:#969696;color:#fff;text-decoration:none;vertical-align:middle} button.btn_cancel {display:inline-block;background:#969696;color:#fff;text-decoration:none;vertical-align:middle} .btn_cancel:hover {background:#aaa; } @@ -276,7 +276,7 @@ button.btn_frmline {font-size:1em} /* 게시판용 버튼 */ a.btn_b01,.btn_b01 {display:inline-block;background:#4c4f6f;color:#fff;text-decoration:none;vertical-align:middle} .btn_b01:hover, .btn_b01:hover {background:#54598c} -a.btn_b02,.btn_b02 {display:inline-block;background:#253dbe;padding:0 10px;color:#fff;text-decoration:none;border:0;vertical-align:middle;} +a.btn_b02,.btn_b02 {display:inline-block;background:#253dbe;padding:0 10px;color:#fff;text-decoration:none;border:0;vertical-align:middle} a.btn_b02:hover, .btn_b02:hover {background:#0025eb} a.btn_b03, .btn_b03 {display:inline-block;background:#fff;border:1px solid #b9bdd3;color:#646982;text-decoration:none;vertical-align:middle} a.btn_b03:hover, .btn_b03:hover {background:#ebedf6} @@ -293,7 +293,7 @@ a.btn_admin,.btn_admin {display:inline-block;background:#d13f4a;color:#fff;text- .color_4 {background:#7520c5} /* 기본테이블 */ -.tbl_wrap table {width:100%;border-collapse:collapse;border-spacing: 0 5px;border:1px solid #ccc;} +.tbl_wrap table {width:100%;border-collapse:collapse;border-spacing:0 5px;border:1px solid #ccc} .tbl_wrap caption {padding:10px 0;font-weight:bold;text-align:left} .tbl_head01 {margin:0 0 10px} .tbl_head01 caption {padding:0;font-size:0;line-height:0;overflow:hidden} @@ -302,7 +302,7 @@ a.btn_admin,.btn_admin {display:inline-block;background:#d13f4a;color:#fff;text- .tbl_head01 tfoot th, .tbl_head01 tfoot td {padding:10px 0;border-top:1px solid #c1d1d5;border-bottom:1px solid #c1d1d5;background:#d7e0e2;text-align:center} .tbl_head01 tbody th {padding:8px 0;border-bottom:1px solid #e8e8e8} .tbl_head01 td {color:#666;background:#fff;padding:10px 5px;border-top:1px solid #ecf0f1;line-height:1.4em;height:60px;word-break:break-all} -.tbl_head01 tbody tr:hover td{background:#fafafa;} +.tbl_head01 tbody tr:hover td {background:#fafafa} .tbl_head01 a:hover {text-decoration:underline} .tbl_head02 {margin:0 0 10px} @@ -321,39 +321,39 @@ a.btn_admin,.btn_admin {display:inline-block;background:#d13f4a;color:#fff;text- .tbl_frm01 th {width:70px;padding:7px 13px;border:1px solid #e9e9e9;border-left:0;background:#f5f8f9;text-align:left} .tbl_frm01 td {padding:7px 10px;border-top:1px solid #e9e9e9;border-bottom:1px solid #e9e9e9;background:transparent} .wr_content textarea,.tbl_frm01 textarea,.form_01 textarea, .frm_input {border:1px solid #ccc;background:#fff;color:#000;vertical-align:middle;border-radius:3px;padding:5px; --webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075); --moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075); -box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075); +-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, .075); +-moz-box-shadow:inset 0 1px 1px rgba(0, 0, 0, .075); +box-shadow:inset 0 1px 1px rgba(0, 0, 0, .075); } .tbl_frm01 textarea {padding:2px 2px 3px} -.frm_input {height:40px;} +.frm_input {height:40px} -.full_input{width:100%} -.half_input{width:49.5%} +.full_input {width:100%} +.half_input {width:49.5%} .tbl_frm01 textarea, .write_div textarea {width:100%;height:100px} .tbl_frm01 a {text-decoration:none} .tbl_frm01 .frm_file {display:block;margin-bottom:5px} .tbl_frm01 .frm_info {display:block;padding:0 0 5px;line-height:1.4em} /*기본 리스트*/ -.list_01 li{border:1px solid #dbdbdb;background:#fff;border-radius:3px;margin:3px 0;padding:10px 15px;list-style:none;position:relative;} +.list_01 li {border:1px solid #dbdbdb;background:#fff;border-radius:3px;margin:3px 0;padding:10px 15px;list-style:none;position:relative} .list_01 li:after {display:block;visibility:hidden;clear:both;content:""} -.list_01 li:hover{background:#f9f9f9} -.list_01 li.empty_li{text-align:center;padding:20px 0;color:#666} +.list_01 li:hover {background:#f9f9f9} +.list_01 li.empty_li {text-align:center;padding:20px 0;color:#666} /*폼 리스트*/ -.form_01 h2{margin:0 0 10px;font-size:1.167em} -.form_01 li{margin:10px 0} +.form_01 h2 {margin:0 0 10px;font-size:1.167em} +.form_01 li {margin:10px 0} .form_01 li:after {display:block;visibility:hidden;clear:both;content:""} -.form_01 li .right_input{float:right} -.form_01 textarea{height:100px;width:100%} -.form_01 .frm_label{display:inline-block;width:130px} +.form_01 li .right_input {float:right} +.form_01 textarea {height:100px;width:100%} +.form_01 .frm_label {display:inline-block;width:130px} /* 자료 없는 목록 */ .empty_table {padding:50px 0 !important;text-align:center} .empty_list {padding:20px 0 !important;color:#666;text-align:center} /* 필수입력 */ -.required, textarea.required {background-image:url('../img/require.png') !important;background-repeat:no-repeat !important;background-position:right top !important;} +.required, textarea.required {background-image:url('../img/require.png') !important;background-repeat:no-repeat !important;background-position:right top !important} /* 테이블 항목별 정의 */ .td_board {width:80px;text-align:center} @@ -376,24 +376,24 @@ box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075); .txt_rdy {color:#8abc2a} /* 새창 기본 스타일 */ -.new_win {position:relative;} +.new_win {position:relative} .new_win .tbl_wrap {margin:0 20px} -.new_win #win_title {font-size:1.25em;height:50px;line-height:30px;padding:10px 20px;background:#333;color:#fff;} +.new_win #win_title {font-size:1.25em;height:50px;line-height:30px;padding:10px 20px;background:#333;color:#fff} .new_win #win_title .sv {font-size:0.75em;line-height:1.2em} -.new_win .win_ul {border-right:1px solid #dfe6e7;} +.new_win .win_ul {border-right:1px solid #dfe6e7} .new_win .win_ul:after {display:block;visibility:hidden;clear:both;content:""} -.new_win .win_ul li{float:left;background:#fff;width:33.333%;text-align:center;border:1px solid #ccc;margin-left:-1px} -.new_win .win_ul li a{display:block;padding:10px 0} -.new_win .win_ul .selected{background:#fff;border-color:#253dbe;position:relative;z-index:5} -.new_win .win_ul .selected a{color:#253dbe;font-weight:bold} -.new_win .win_desc {margin:5px 0;font-size:0.92em;color:#3598db;} -.new_win .frm_info{font-size:0.92em;color:#3598db} -.new_win .win_total{text-align:right;margin:10px 0} -.new_win .win_total span{display:inline-block;line-height:30px;font-size:0.92em;color:#4e546f;background:#d4d4d4;padding:0 10px;border-radius:5px;} -.new_win .new_win_con{margin:20px;} +.new_win .win_ul li {float:left;background:#fff;width:33.333%;text-align:center;border:1px solid #ccc;margin-left:-1px} +.new_win .win_ul li a {display:block;padding:10px 0} +.new_win .win_ul .selected {background:#fff;border-color:#253dbe;position:relative;z-index:5} +.new_win .win_ul .selected a {color:#253dbe;font-weight:bold} +.new_win .win_desc {margin:5px 0;font-size:0.92em;color:#3598db} +.new_win .frm_info {font-size:0.92em;color:#3598db} +.new_win .win_total {text-align:right;margin:10px 0} +.new_win .win_total span {display:inline-block;line-height:30px;font-size:0.92em;color:#4e546f;background:#d4d4d4;padding:0 10px;border-radius:5px} +.new_win .new_win_con {margin:20px} .new_win .new_win_con:after {display:block;visibility:hidden;clear:both;content:""} .new_win .btn_confirm:after {display:block;visibility:hidden;clear:both;content:""} -.new_win .win_btn{text-align:right} +.new_win .win_btn {text-align:right} .new_win .btn_close {position:absolute;top:0;right:0;height:50px;width:50px;background:url(../img/close_btn.gif) no-repeat 50% 50%;border:0;text-indent:-999px;overflow:hidden;cursor:pointer} .new_win .btn_submit {padding:0 20px;height:40px;font-weight:bold;font-size:1.083em;float:right} @@ -408,13 +408,13 @@ box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075); /* 사이드뷰 */ .sv_wrap {position:relative;font-weight:normal} .sv_wrap .sv {z-index:1000;display:none;margin:5px 0 0;font-size:0.92em;background:#333; --webkit-box-shadow: 2px 2px 3px 0px rgba(0,0,0,0.2); --moz-box-shadow: 2px 2px 3px 0px rgba(0,0,0,0.2); -box-shadow: 2px 2px 3px 0px rgba(0,0,0,0.2);} -.sv_wrap .sv:before{content: "";position: absolute;top: -6px;left: 15px;width: 0;height: 0;border-style: solid;border-width: 0 6px 6px 6px;border-color: transparent transparent #333 transparent;} -.sv_wrap .sv a {display:inline-block;margin:0;padding:0 10px;line-height:30px;width:100px;font-weight:normal;color:#bbb } -.sv_wrap .sv a:hover{background:#000;color:#fff} -.sv_member{color:#333} +-webkit-box-shadow:2px 2px 3px 0px rgba(0,0,0,0.2); +-moz-box-shadow:2px 2px 3px 0px rgba(0,0,0,0.2); +box-shadow:2px 2px 3px 0px rgba(0,0,0,0.2)} +.sv_wrap .sv:before {content:"";position:absolute;top:-6px;left:15px;width:0;height:0;border-style:solid;border-width:0 6px 6px 6px;border-color:transparent transparent #333 transparent} +.sv_wrap .sv a {display:inline-block;margin:0;padding:0 10px;line-height:30px;width:100px;font-weight:normal;color:#bbb } +.sv_wrap .sv a:hover {background:#000;color:#fff} +.sv_member {color:#333} .sv_on {display:block !important;position:absolute;top:23px;left:0px;width:auto;height:auto} .sv_nojs .sv {display:block} @@ -424,25 +424,25 @@ box-shadow: 2px 2px 3px 0px rgba(0,0,0,0.2);} .pg {} .pg_page, .pg_current {display:inline-block;vertical-align:middle;background:#f3f3f3;border:1px solid #bbbcc3} .pg a:focus, .pg a:hover {text-decoration:none} -.pg_page {color:#555;font-size:1.083em;height:30px;line-height:28px;padding:0 5px;min-width:30px;text-decoration:none;border-radius:3px;} -.pg_page:hover{background-color:#ddd} -.pg_start {text-indent:-999px;overflow:hidden;background:url('../img/btn_first.gif') no-repeat 50% 50% #fff;padding:0;border:1px solid #bbb;} +.pg_page {color:#555;font-size:1.083em;height:30px;line-height:28px;padding:0 5px;min-width:30px;text-decoration:none;border-radius:3px} +.pg_page:hover {background-color:#ddd} +.pg_start {text-indent:-999px;overflow:hidden;background:url('../img/btn_first.gif') no-repeat 50% 50% #fff;padding:0;border:1px solid #bbb} .pg_prev {text-indent:-999px;overflow:hidden;background:url('../img/btn_prev.gif') no-repeat 50% 50% #fff;padding:0;border:1px solid #bbb} .pg_end {text-indent:-999px;overflow:hidden;background:url('../img/btn_end.gif') no-repeat 50% 50% #fff;padding:0;border:1px solid #bbb} .pg_next {text-indent:-999px;overflow:hidden;background:url('../img/btn_next.gif') no-repeat 50% 50% #fff;padding:0;border:1px solid #bbb} -.pg_start:hover,.pg_prev:hover,.pg_end:hover,.pg_next:hover{background-color:#fafafa} +.pg_start:hover,.pg_prev:hover,.pg_end:hover,.pg_next:hover {background-color:#fafafa} .pg_current {display:inline-block;background:#4c4f6f;color:#fff;font-weight:bold;height:30px;line-height:30px;padding:0 10px;min-width:30px;border-radius:3px; --webkit-box-shadow: inset 1px 1px 2px #222542; --moz-box-shadow: inset 1px 1px 2px #222542; -box-shadow: inset 1px 1px 2px #222542; +-webkit-box-shadow:inset 1px 1px 2px #222542; +-moz-box-shadow:inset 1px 1px 2px #222542; +box-shadow:inset 1px 1px 2px #222542; } /* cheditor 이슈 */ .cheditor-popup-window *, .cheditor-popup-window :after, .cheditor-popup-window :before { --webkit-box-sizing: content-box; --moz-box-sizing: content-box; -box-sizing: content-box; +-webkit-box-sizing:content-box; +-moz-box-sizing:content-box; +box-sizing:content-box; } /* Mobile화면으로 */ diff --git a/theme/54/head.php b/theme/54/head.php index 774c39de5..1c2b07535 100644 --- a/theme/54/head.php +++ b/theme/54/head.php @@ -27,7 +27,7 @@ include_once(G5_LIB_PATH.'/popular.lib.php'); } ?>
        -
        @@ -92,12 +97,6 @@ include_once(G5_LIB_PATH.'/popular.lib.php');
        - -
        - 전체 건 - 페이지 -
        -
        @@ -46,77 +60,65 @@ add_stylesheet('', 0 - - -
        -
          - -
        • 목록
        • - - -
        • -
        • -
        • - -
        -
        - -
        + - +