From 65c3c8f501c5402041d683c5d05daa6deb573e0b Mon Sep 17 00:00:00 2001 From: gnuboard Date: Tue, 26 Feb 2013 18:57:30 +0900 Subject: [PATCH 1/5] =?UTF-8?q?=EB=84=A4=EC=9D=B4=EB=B2=84=20=EC=8B=A0?= =?UTF-8?q?=EB=94=94=EC=BC=80=EC=9D=B4=EC=85=98=20=EC=A0=81=EC=9A=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- adm/board_delete.inc.php | 3 + adm/board_form_update.php | 3 + adm/board_list_update.php | 2 +- adm/boardgroup_form_update.php | 3 + bbs/delete.php | 3 + bbs/delete_all.php | 3 + bbs/move_update.php | 3 + bbs/syndi/_common.php | 3 + bbs/syndi/config/site.config.php | 19 + bbs/syndi/func/site.func.php | 440 ++++++++++++++++++ .../include/include.adm.board_delete.inc.php | 29 ++ .../include/include.adm.board_form_update.php | 23 + .../include.adm.boardgroup_form_update.php | 27 ++ bbs/syndi/include/include.bbs.delete.php | 37 ++ bbs/syndi/include/include.bbs.delete_all.php | 36 ++ bbs/syndi/include/include.bbs.move_update.php | 39 ++ .../include/include.bbs.write_update.php | 42 ++ bbs/syndi/install.php | 12 + bbs/syndi/libs/SyndicationArticle.class.php | 137 ++++++ bbs/syndi/libs/SyndicationChannel.class.php | 98 ++++ bbs/syndi/libs/SyndicationDeleted.class.php | 65 +++ bbs/syndi/libs/SyndicationHandler.class.php | 346 ++++++++++++++ bbs/syndi/libs/SyndicationObject.class.php | 104 +++++ bbs/syndi/libs/SyndicationPing.class.php | 105 +++++ bbs/syndi/libs/SyndicationSite.class.php | 74 +++ bbs/syndi/libs/SyndicationStatus.class.php | 77 +++ bbs/syndi/syndi_echo.php | 37 ++ bbs/write_update.php | 4 +- install/gnuboard4s.sql | 16 + install/install_db.php | 1 + lib/common.lib.php | 5 +- 31 files changed, 1792 insertions(+), 4 deletions(-) create mode 100644 bbs/syndi/_common.php create mode 100644 bbs/syndi/config/site.config.php create mode 100644 bbs/syndi/func/site.func.php create mode 100644 bbs/syndi/include/include.adm.board_delete.inc.php create mode 100644 bbs/syndi/include/include.adm.board_form_update.php create mode 100644 bbs/syndi/include/include.adm.boardgroup_form_update.php create mode 100644 bbs/syndi/include/include.bbs.delete.php create mode 100644 bbs/syndi/include/include.bbs.delete_all.php create mode 100644 bbs/syndi/include/include.bbs.move_update.php create mode 100644 bbs/syndi/include/include.bbs.write_update.php create mode 100644 bbs/syndi/install.php create mode 100644 bbs/syndi/libs/SyndicationArticle.class.php create mode 100644 bbs/syndi/libs/SyndicationChannel.class.php create mode 100644 bbs/syndi/libs/SyndicationDeleted.class.php create mode 100644 bbs/syndi/libs/SyndicationHandler.class.php create mode 100644 bbs/syndi/libs/SyndicationObject.class.php create mode 100644 bbs/syndi/libs/SyndicationPing.class.php create mode 100644 bbs/syndi/libs/SyndicationSite.class.php create mode 100644 bbs/syndi/libs/SyndicationStatus.class.php create mode 100644 bbs/syndi/syndi_echo.php diff --git a/adm/board_delete.inc.php b/adm/board_delete.inc.php index 7887859a1..d1803212b 100644 --- a/adm/board_delete.inc.php +++ b/adm/board_delete.inc.php @@ -30,4 +30,7 @@ delete_cache_latest($tmp_bo_table); // 게시판 폴더 전체 삭제 rm_rf(G4_DATA_PATH.'/file/'.$tmp_bo_table); + +// syndication ping +include G4_BBS_PATH.'/syndi/include/include.adm.board_delete.inc.php'; ?> \ No newline at end of file diff --git a/adm/board_form_update.php b/adm/board_form_update.php index 7df9c8d2c..58a610b6b 100644 --- a/adm/board_form_update.php +++ b/adm/board_form_update.php @@ -280,5 +280,8 @@ if ($fields) { delete_cache_latest($bo_table); +// syndication ping +include G4_BBS_PATH.'/syndi/include/include.adm.board_form_update.php'; + goto_url("./board_form.php?w=u&bo_table={$bo_table}&{$qstr}"); ?> diff --git a/adm/board_list_update.php b/adm/board_list_update.php index 734dd6f04..75013bdd7 100644 --- a/adm/board_list_update.php +++ b/adm/board_list_update.php @@ -53,7 +53,7 @@ if ($_POST['act_button'] == "선택수정") { check_token(); // _BOARD_DELETE_ 상수를 선언해야 board_delete.inc.php 가 정상 작동함 - define("_BOARD_DELETE_", TRUE); + define('_BOARD_DELETE_', true); for ($i=0; $i diff --git a/bbs/delete.php b/bbs/delete.php index 5844dee2e..5256025c0 100644 --- a/bbs/delete.php +++ b/bbs/delete.php @@ -93,6 +93,9 @@ while ($row = sql_fetch_array($result)) // 파일테이블 행 삭제 sql_query(" delete from {$g4['board_file_table']} where bo_table = '$bo_table' and wr_id = '{$row['wr_id']}' "); + // syndication ping + include G4_BBS_PATH.'/syndi/include/include.bbs.delete.php'; + $count_write++; } else diff --git a/bbs/delete_all.php b/bbs/delete_all.php index 2885d73d5..6e4467a70 100644 --- a/bbs/delete_all.php +++ b/bbs/delete_all.php @@ -106,6 +106,9 @@ for ($i=count($tmp_array)-1; $i>=0; $i--) // 파일테이블 행 삭제 sql_query(" delete from {$g4['board_file_table']} where bo_table = '$bo_table' and wr_id = '{$row['wr_id']}' "); + // syndication ping + include G4_BBS_PATH.'/syndi/include/include.bbs.delete_all.php'; + $count_write++; } else diff --git a/bbs/move_update.php b/bbs/move_update.php index 50cc7d142..59c13fe4c 100644 --- a/bbs/move_update.php +++ b/bbs/move_update.php @@ -175,6 +175,9 @@ if ($sw == "move") sql_query(" update {$g4['board_table']} set bo_count_write = bo_count_write - '$save_count_write', bo_count_comment = bo_count_comment - '$save_count_comment' where bo_table = '$bo_table' "); } +// syndication ping +include G4_BBS_PATH.'/syndi/include/include.bbs.move_update.php'; + $msg = '해당 게시물을 선택한 게시판으로 '.$act.' 하였습니다.'; $opener_href = './board.php?bo_table='.$bo_table.'&page='.$page.'&'.$qstr; diff --git a/bbs/syndi/_common.php b/bbs/syndi/_common.php new file mode 100644 index 000000000..14553420b --- /dev/null +++ b/bbs/syndi/_common.php @@ -0,0 +1,3 @@ + \ No newline at end of file diff --git a/bbs/syndi/config/site.config.php b/bbs/syndi/config/site.config.php new file mode 100644 index 000000000..f0af1ab7c --- /dev/null +++ b/bbs/syndi/config/site.config.php @@ -0,0 +1,19 @@ + diff --git a/bbs/syndi/func/site.func.php b/bbs/syndi/func/site.func.php new file mode 100644 index 000000000..b6a9cc632 --- /dev/null +++ b/bbs/syndi/func/site.func.php @@ -0,0 +1,440 @@ +setId($tag); + $oSite->setTitle($title); + $oSite->setUpdated(date('YmdHis')); + + // 홈페이지 주소 + $link_alternative = sprintf('http://%s', $GLOBALS['syndi_tag_domain']); + $oSite->setLinkAlternative($link_alternative); + + $link_self = sprintf('%s?id=%s&type=%s',$GLOBALS['syndi_echo_url'],$tag,$args->type); + $oSite->setLinkSelf($link_self); + + return $oSite; +} + +/** + * @brief Channel(게시판) 목록 + **/ +function Syndi_getChannelList($args) +{ + global $g4; + + $where = ''; + if($args->target_channel_id) $where .= " and b.bo_table='". mysql_real_escape_string($args->target_channel_id) . "'"; + + $sql = "select b.bo_table,b.bo_subject from " . $g4['board_table'] . " b, ". $g4['group_table'] . " g where b.bo_read_level=1 and b.bo_list_level=1 and g.gr_use_access=0 and g.gr_id = b.gr_id ". $where; + $sql .= " order by b.gr_id,b.bo_table"; + + if($args->type=='channel') + { + $sql .= sprintf(" limit %s,%s", ($args->page-1)*$args->max_entry, $args->max_entry); + } + + $result = sql_query($sql); + + $channel_list = array(); + while($row = sql_fetch_array($result)) + { + $row['bo_subject'] = $row['bo_subject']?$row['bo_subject']:$row['bo_table']; + + $tag = SyndicationHandler::getTag('channel',$row['bo_table']); + $oChannel = new SyndicationChannel; + $oChannel->setId($tag); + $oChannel->setTitle($row['bo_subject']); + $oChannel->setType('web'); + $oChannel->setUpdated(date('YmdHis')); + + $link_self = sprintf('%s?id=%s&type=%s',$GLOBALS['syndi_echo_url'],$tag,$args->type); + $oChannel->setLinkSelf($link_self); + + // 게시판 웹주소 + $link_alternative = sprintf('http://%s/bbs/board.php?bo_table=%s', $GLOBALS['syndi_tag_domain'], $row['bo_table']); + $oChannel->setLinkAlternative($link_alternative); + + $channel_list[] = $oChannel; + } + + sql_free_result($result); + + return $channel_list; +} + + +/** + * @brief 모든 게시판의 게시물을 가져올때, 다음 게시판을 가져옴 + **/ +function _Syndi_getNextChannelId($channel_id=null) +{ + global $g4; + + if(!$channel_id) + { + $sql = "select b.bo_table from " . $g4['board_table'] . " b, ". $g4['group_table'] . " g where b.bo_read_level=1 and b.bo_list_level=1 and g.gr_use_access=0 and g.gr_id = b.gr_id"; + $sql .= " order by b.gr_id,b.bo_table limit 1"; + + $row = sql_fetch($sql); + sql_free_result($result); + + return $row['bo_table']; + } + + $channel_id = mysql_real_escape_string($channel_id); + + $sql = "select b.bo_table from " . $g4['board_table'] . " b, ". $g4['group_table'] . " g where b.bo_table>'$channel_id' and b.bo_read_level=1 and b.bo_list_level=1 and g.gr_use_access=0 and g.gr_id = b.gr_id"; + $sql .= " order by b.gr_id,b.bo_table limit 1"; + + $result = sql_query($sql); + if(mysql_num_rows($result)==0) return false; + + $row = sql_fetch_array($result); + sql_free_result($result); + + return $row['bo_table']; +} + + +/** + * @brief 게시물 목록 + **/ +function Syndi_getArticleList($args) +{ + global $g4; + + /* + $args->target_content_id //게시물 번호 + $args->target_channel_id //게시판 번호 + $args->start_time //기간 + $args->end_time + $args->max_entry //출력 목록당 개수 + $args->page //페이지 번호 + $args->channel_id //모든 글 출력시 해당 게시판 + */ + + // all channel articles mysql 3.X, 4.0.X 에서는 sub query가 되지 않는다. + if(!$args->target_channel_id) + { + // $args->channel_id 가 없을 경우 첫번째 게시판을 가져온다. + if(!$args->channel_id) $args->channel_id = _Syndi_getNextChannelId(); + $args->target_channel_id = $args->channel_id; + $article_list = Syndi_getArticleList($args); + unset($args->target_channel_id); + + if(count($article_list)>0) return $article_list; + + return array(); + } + + return _Syndi_getArticleList($args); +} + + +/** + * @brief 게시물 목록 + **/ +function _Syndi_getArticleList($args) +{ + global $g4; + + /* + $args->target_content_id //게시물 번호 + $args->target_channel_id //게시판 번호 + $args->start_time //기간 + $args->end_time + $args->max_entry //출력 목록당 개수 + $args->page //페이지 번호 + */ + + $sql = "select count(*) as cnt from " . $g4['board_table'] . " b, ". $g4['group_table'] . " g where b.bo_table='" . mysql_real_escape_string($args->target_channel_id). "' and b.bo_read_level=1 and b.bo_list_level=1 and g.gr_use_access=0 and g.gr_id = b.gr_id"; + $row = sql_fetch_array(sql_query($sql)); + if($row['cnt']<1) return array(); + + $content_table = $t_board.'_'. $args->target_channel_id; + $category_table = $t_category.'_'. $args->target_channel_id; + + // get article list + $where = " and wr_is_comment=0 "; + if($args->target_content_id) $where .= ' and wr_id='. mysql_real_escape_string($args->target_content_id); + if($args->start_time) $where .= ' and wr_datetime >= '. _getTime($args->start_time); + if($args->end_time) $where .= ' and wr_datetime <= '. _getTime($args->end_time); + + $sql = "select wr_id, ca_name, wr_subject, wr_content, mb_id, wr_name, wr_homepage, wr_email, wr_datetime, wr_last + from " . $g4['write_prefix'] . $args->target_channel_id . " where 1=1" . $where; + $sql .= " order by wr_id desc "; + $sql .= sprintf(" limit %s,%s", ($args->page-1)*$args->max_entry, $args->max_entry); + + $result = sql_query($sql); + $article_list = array(); + while($row = sql_fetch_array($result)) + { + $oArticle = new SyndicationArticle; + $tag = SyndicationHandler::getTag('article', $args->target_channel_id, $row['wr_id']); + $oArticle->setId($tag); + $oArticle->setTitle($row['wr_subject']); + $oArticle->setContent($row['wr_content']); + $oArticle->setType('web'); + $oArticle->setCategory($row['ca_name']); + $oArticle->setName($row['wr_name']); + $oArticle->setEmail($row['wr_email']); + $oArticle->setUrl($row['wr_homepage']); + $oArticle->setPublished(date('YmdHis',_getTime($row['wr_datetime']))); + if($row['wr_last']) $oArticle->setUpdated(date('YmdHis',_getTime($row['wr_last']))); + + // 게시판 웹주소 + $link_channel_alternative = sprintf('http://%s/bbs/board.php?bo_table=%s',$GLOBALS['syndi_tag_domain'],$args->target_channel_id); + + // 게시물 웹주소 + $link_alternative = $link_channel_alternative . '&wr_id=' . $row['wr_id']; + + $oArticle->setLinkChannel($tag); + $oArticle->setLinkAlternative($link_alternative); + $oArticle->setLinkChannelAlternative($link_channel_alternative); + + // add list + $article_list[] = $oArticle; + } + + sql_free_result($result); + + return $article_list; +} + + + +/** + * @brief 삭제 게시물 목록 + * 삭제된 게시물에 대해 logging이 필요 + **/ +function Syndi_getDeletedList($args) +{ + global $g4; + $table = $g4['syndi_log_table']; + + // get delete article list + $where = ''; + if($args->target_content_id) $where .= " and content_id='" . mysql_real_escape_string($args->target_content_id) . "'"; + if($args->target_channel_id) $where .= " and bbs_id='" . mysql_real_escape_string($args->target_channel_id) . "'"; + if($args->start_time) $where .= ' and delete_date >= '. $args->start_time; + if($args->end_time) $where .= ' and delete_date <= '. $args->end_time; + + $sql = "select content_id, bbs_id, title, link_alternative, delete_date from $table where 1=1" . $where; + $sql .= " order by delete_date desc "; + $sql .= sprintf(" limit %s,%s", ($args->page-1)*$args->max_entry, $args->max_entry); + $result = sql_query($sql); + + $deleted_list = array(); + while($row = sql_fetch_array($result)) + { + $oDeleted = new SyndicationDeleted; + $tag = SyndicationHandler::getTag('article', $row['bbs_id'], $row['content_id']); + $oDeleted->setId($tag); + $oDeleted->setTitle($row['title']); + $oDeleted->setUpdated($row['delete_date']); + $oDeleted->setDeleted($row['delete_date']); + + if(substr($row['link_alternative'],0,2)=='./') + { + $row['link_alternative'] = 'http://' . $GLOBALS['syndi_tag_domain'] . substr($row['link_alternative'],1); + } + $oDeleted->setLinkAlternative($row['link_alternative']); + + $deleted_list[] = $oDeleted; + } + + sql_free_result($result); + + return $deleted_list; + +} + + +/** + * @brief Channel 목록 출력시 다음 페이지 번호 + * return array('page'=>다음 페이지); + **/ +function Syndi_getChannelNextPage($args) +{ + global $g4; + + $where = ''; + if($args->target_channel_id) $where .= " and bo_table='". mysql_real_escape_string($args->target_channel_id) . "'"; + + $count_sql = "select count(*) as cnt from " . $g4['board_table'] . " where bo_read_level=1 and bo_list_level=1 " .$where; + $result = sql_query($count_sql); + $row = sql_fetch_array($result); + sql_free_result($result); + + $total_count = $row['cnt']; + $total_page = ceil($total_count / $args->max_entry); + + if($args->page >= $total_page) + { + return false; + } + else + { + return array('page'=>$args->page+1); + } +} + + + +/** + * @brief 게시물 목록 출력시 다음 페이지 + * return array('page'=>다음 페이지, 'channel_id'=>다음 게시판) + **/ +function Syndi_getArticleNextPage($args) +{ + global $g4; + + // 사이트 모든 글 + if(!$args->target_channel_id) + { + // channel_id 라는 변수로 게시판id를 받는다 (mysql 3.x,4.0.x을 위해) + if(!$args->channel_id) + { + $args->channel_id = _Syndi_getNextChannelId(); + $args->all_channel = true; + } + + $args->target_channel_id = $args->channel_id; + $obj = _Syndi_getArticleNextPage($args); + + unset($args->target_channel_id, $args->all_channel); + + return $obj; + } + else + { + return _Syndi_getArticleNextPage($args); + } +} + +function _Syndi_getArticleNextPage($args) +{ + global $g4; + + $sql = "select count(*) as cnt from " . $g4['board_table'] . " b, ". $g4['group_table'] . " g where b.bo_table='" . mysql_real_escape_string($args->target_channel_id). "' and b.bo_read_level=1 and b.bo_list_level=1 and g.gr_use_access=0 and g.gr_id = b.gr_id"; + + if($row['cnt']==0) return false; + + // get article list + $where = " and wr_is_comment=0 "; + if($args->target_content_id) $where .= ' and wr_id='. mysql_real_escape_string($args->target_content_id); + if($args->start_time) $where .= ' and wr_datetime >= '. _getTime($args->start_time); + if($args->end_time) $where .= ' and wr_datetime <= '. _getTime($args->end_time); + + $count_sql = "select count(*) as cnt from " . $g4['write_prefix'] . $args->target_channel_id . " where 1=1 " .$where; + $result = sql_query($count_sql); + + $row = sql_fetch_array($result); + sql_free_result($result); + + $total_count = $row['cnt']; + $total_page = ceil($total_count / $args->max_entry); + + if($args->page >= $total_page) + { + if($args->all_channel) + { + $next_channel_id = _Syndi_getNextChannelId($args->target_channel_id); + if(!$next_channel_id) return false; + return array('page'=>1, 'channel_id'=>$next_channel_id); + } + else + { + return false; + } + } + else + { + return array('page'=>$args->page+1); + } +} + + +/** + * @brief 게시물 삭제 목록 출력시 다음 페이지 번호 + **/ +function Syndi_getDeletedNextPage($args) +{ + global $g4; + $table = $g4['syndi_log_table']; + + // get delete article list + $where = ''; + if($args->target_content_id) $where .= " and no='" . mysql_real_escape_string($args->target_content_id) . "'"; + if($args->target_channel_id) $where .= " and bbs_id='" . mysql_real_escape_string($args->target_channel_id) . "'"; + if($args->start_time) $where .= ' and delete_date >= '. $args->start_time; + if($args->end_time) $where .= ' and delete_date <= '. $args->end_time; + + $count_sql = "select count(*) as cnt from $table where 1=1" .$where; + $result = sql_query($count_sql); + $row = sql_fetch_array($result); + sql_free_result($result); + + $total_count = $row['cnt']; + $total_page = ceil($total_count / $args->max_entry); + + if($args->page >= $total_page) + { + return array('page'=>0); + } + else + { + return array('page'=>$args->page+1); + } +} + + +function _getTime($date) +{ + return strtotime($date); +} + +$oSyndicationHandler = &SyndicationHandler::getInstance(); +$oSyndicationHandler->registerFunction('site_info','Syndi_getSiteInfo'); +$oSyndicationHandler->registerFunction('channel_list','Syndi_getChannelList'); +$oSyndicationHandler->registerFunction('channel_next_page','Syndi_getChannelNextPage'); +$oSyndicationHandler->registerFunction('article_list','Syndi_getArticleList'); +$oSyndicationHandler->registerFunction('article_next_page','Syndi_getArticleNextPage'); +$oSyndicationHandler->registerFunction('deleted_list','Syndi_getDeletedList'); +$oSyndicationHandler->registerFunction('deleted_next_page','Syndi_getDeletedNextPage'); + +?> diff --git a/bbs/syndi/include/include.adm.board_delete.inc.php b/bbs/syndi/include/include.adm.board_delete.inc.php new file mode 100644 index 000000000..a419f712d --- /dev/null +++ b/bbs/syndi/include/include.adm.board_delete.inc.php @@ -0,0 +1,29 @@ +setId(SyndicationHandler::getTag('site')); +$oPing->setType('channel'); + +// delete log +$_sql = "delete from {$g4['syndi_log_table']} where bbs_id='%s'"; +sql_query(sprintf($_sql, $tmp_bo_table)); + +$oPing->request(); +?> \ No newline at end of file diff --git a/bbs/syndi/include/include.adm.board_form_update.php b/bbs/syndi/include/include.adm.board_form_update.php new file mode 100644 index 000000000..f643168be --- /dev/null +++ b/bbs/syndi/include/include.adm.board_form_update.php @@ -0,0 +1,23 @@ +setId(SyndicationHandler::getTag('site')); +$oPing->setType('channel'); + +$oPing->request(); +?> \ No newline at end of file diff --git a/bbs/syndi/include/include.adm.boardgroup_form_update.php b/bbs/syndi/include/include.adm.boardgroup_form_update.php new file mode 100644 index 000000000..fb82e76e3 --- /dev/null +++ b/bbs/syndi/include/include.adm.boardgroup_form_update.php @@ -0,0 +1,27 @@ +setId(SyndicationHandler::getTag('site')); +$oPing->setType('channel'); + +$oPing->request(); +?> \ No newline at end of file diff --git a/bbs/syndi/include/include.bbs.delete.php b/bbs/syndi/include/include.bbs.delete.php new file mode 100644 index 000000000..0ddfcc1c8 --- /dev/null +++ b/bbs/syndi/include/include.bbs.delete.php @@ -0,0 +1,37 @@ +setId(SyndicationHandler::getTag('channel', $bo_table)); +$oPing->setType('deleted'); +$oPing->request(); +?> \ No newline at end of file diff --git a/bbs/syndi/include/include.bbs.delete_all.php b/bbs/syndi/include/include.bbs.delete_all.php new file mode 100644 index 000000000..cb9bc40e2 --- /dev/null +++ b/bbs/syndi/include/include.bbs.delete_all.php @@ -0,0 +1,36 @@ +setId(SyndicationHandler::getTag('channel', $bo_table)); +$oPing->setType('deleted'); +$oPing->request(); +?> \ No newline at end of file diff --git a/bbs/syndi/include/include.bbs.move_update.php b/bbs/syndi/include/include.bbs.move_update.php new file mode 100644 index 000000000..d29a19b34 --- /dev/null +++ b/bbs/syndi/include/include.bbs.move_update.php @@ -0,0 +1,39 @@ +setId(SyndicationHandler::getTag('channel', $bo_table)); + $oPing->setType('article'); + $oPing->request(); + + unset($oPing); +} + +for($i=0, $c=count($_POST['chk_bo_table']); $i<$c; $i++) +{ + $oPing = new SyndicationPing; + $oPing->setId(SyndicationHandler::getTag('channel', $_POST['chk_bo_table'][$i])); + $oPing->setType('article'); + $oPing->request(); + + unset($oPing); +} +?> \ No newline at end of file diff --git a/bbs/syndi/include/include.bbs.write_update.php b/bbs/syndi/include/include.bbs.write_update.php new file mode 100644 index 000000000..81655e807 --- /dev/null +++ b/bbs/syndi/include/include.bbs.write_update.php @@ -0,0 +1,42 @@ +1 || $board['bo_view_level']>1) return; + +if($w == 'u' && $wr && !$wr['wr_id']) return; + + +// 수정 대상 또는 신규 입력한 id가 있다면 ping을 보냄 +if($wr['wr_id'] || $wr_id) +{ + $syndi_dir = realpath(dirname(__FILE__) .'/../'); + + // include config & Syndication Ping class + include $syndi_dir . '/config/site.config.php'; + include $syndi_dir . '/libs/SyndicationHandler.class.php'; + include $syndi_dir . '/libs/SyndicationPing.class.php'; + + $oPing = new SyndicationPing; + $oPing->setId(SyndicationHandler::getTag('channel', $board['bo_table'])); + $oPing->setType('article'); + + // if deleted + $_sql = "delete from {$g4['syndi_log_table']} where content_id='%s' and bbs_id='%s'"; + sql_query(sprintf($_sql, $wr_id ? $wr_id : $wr[wr_id], $board['bo_table'])); + + $oPing->request(); +} +?> \ No newline at end of file diff --git a/bbs/syndi/install.php b/bbs/syndi/install.php new file mode 100644 index 000000000..269c172b2 --- /dev/null +++ b/bbs/syndi/install.php @@ -0,0 +1,12 @@ + \ No newline at end of file diff --git a/bbs/syndi/libs/SyndicationArticle.class.php b/bbs/syndi/libs/SyndicationArticle.class.php new file mode 100644 index 000000000..23f55fbf0 --- /dev/null +++ b/bbs/syndi/libs/SyndicationArticle.class.php @@ -0,0 +1,137 @@ +id = $id; + } + + /** + * @brief Author name + **/ + function setName($name) + { + $this->name = $name; + } + + /** + * @brief Author email + **/ + function setEmail($email) + { + $this->email = $email; + } + + /** + * @brief Author homepage or blog + **/ + function setUrl($url) + { + $this->url = $url; + } + + /** + * @brief category or tag of content + **/ + function setCategory($category) + { + $this->category = $category; + } + + /** + * @brief Title of content + **/ + function setTitle($title) + { + $this->title = $title; + } + + /** + * @brief content + **/ + function setContent($content) + { + $this->content = $content; + } + + /** + * @brief Syndication Content Type으로 blog 경우'blog', 일반사이트 경우 'web' + **/ + function setType($type='web') + { + $this->type = $type; + } + + /** + * @brief Syndication Ping Url + **/ + function setLinkSelf($link_self) + { + $this->link_self = $link_self; + } + + /** + * @brief Channel Syndication Ping Url + **/ + function setLinkChannel($link_channel) + { + $this->link_channel = $link_channel; + } + + /** + * @brief Article(게시물) 접근 Url + **/ + function setLinkAlternative($link_alternative) + { + $this->link_alternative = $link_alternative; + } + + /** + * @brief Channel(게시판) 접근 Url + **/ + function setLinkChannelAlternative($link_channel_alternative) + { + $this->link_channel_alternative = $link_channel_alternative; + } + + /** + * @brief published time + * 'YYYYMMDDHHIISS' type + **/ + function setPublished($published) + { + $this->published = $published; + } + + /** + * @brief update time + * 'YYYYMMDDHHIISS' type + **/ + function setUpdated($updated) + { + $this->updated = $updated; + } + + function __toString() + { + $str = ''; + foreach($this->node as $node){ + $str .= $this->get($node); + } + + return $str; + } +} + +?> diff --git a/bbs/syndi/libs/SyndicationChannel.class.php b/bbs/syndi/libs/SyndicationChannel.class.php new file mode 100644 index 000000000..0a94b5c9f --- /dev/null +++ b/bbs/syndi/libs/SyndicationChannel.class.php @@ -0,0 +1,98 @@ +id = $id; + } + + /** + * @brief Title of Channel + **/ + function setTitle($title) + { + $this->title = $title; + } + + /** + * @brief Type of Channel, web or blog + * blog 일경우 setLinkRss()를 등록해야 함 + **/ + function setType($type='web') + { + $this->type = $type; + } + + /** + * @brief Summary of Channel + **/ + function setSummary($summary) + { + $this->summary = $summary; + } + + /** + * @brief Syndication Ping Url + **/ + function setLinkSelf($link_self) + { + $this->link_self = $link_self; + } + + /** + * @brief Channel(게시판) 접근 Url + **/ + function setLinkAlternative($link_alternative) + { + $this->link_alternative = $link_alternative; + } + + /** + * @brief Channel RSS Url (type이 blog면 필수) + **/ + function setLinkRss($link_rss) + { + $this->link_rss = $link_rss; + } + + /** + * @brief 다음 페이지 Url + **/ + function setNextPage($obj) + { + if(!$obj) return; + + if($obj['page']>0) $this->link_next_in_thread = $this->link_self . '&page='. $obj['page']; + } + + /** + * @brief update time + * 'YYYYMMDDHHIISS' type + **/ + function setUpdated($updated) + { + $this->updated = $updated; + } + + function __toString() + { + $str = ''; + foreach($this->node as $node){ + $str .= $this->get($node); + } + + return $str; + } +} +?> \ No newline at end of file diff --git a/bbs/syndi/libs/SyndicationDeleted.class.php b/bbs/syndi/libs/SyndicationDeleted.class.php new file mode 100644 index 000000000..396840c07 --- /dev/null +++ b/bbs/syndi/libs/SyndicationDeleted.class.php @@ -0,0 +1,65 @@ +id = $id; + } + + /** + * @brief Title of content + **/ + function setTitle($title) + { + $this->title = $title; + } + + /** + * @brief update time + * 'YYYYMMDDHHIISS' type + **/ + function setUpdated($updated) + { + $this->updated = $updated; + } + + /** + * @brief deleted time + * 'YYYYMMDDHHIISS' type + **/ + function setDeleted($deleted) + { + $this->deleted = $deleted; + } + + /** + * @brief Article(게시물) 접근 Url + **/ + function setLinkAlternative($link_alternative) + { + $this->link_alternative = $link_alternative; + } + + function __toString() + { + $str = ''; + + foreach($this->node as $node){ + $str .= $this->get($node); + } + + return $str; + } +} +?> diff --git a/bbs/syndi/libs/SyndicationHandler.class.php b/bbs/syndi/libs/SyndicationHandler.class.php new file mode 100644 index 000000000..7a4774e9a --- /dev/null +++ b/bbs/syndi/libs/SyndicationHandler.class.php @@ -0,0 +1,346 @@ +register_function) != count($ids)) return false; + + foreach($this->register_function as $id => $func) + { + if(!in_array($id, $ids) || !is_callable($func)) + { + return false; + } + } + + return true; + } + + function registerFunction($id, $func) + { + $this->register_function[$id] = $func; + } + + function callFunction($id) + { + if(!isset($this->register_function[$id]) || !is_callable($this->register_function[$id])) return false; + + return call_user_func($this->register_function[$id], $this->param); + } + + + /** + * @brief set GET Value. + **/ + function setArgument($args=null) + { + if(!$args) $args = $_GET; + + $obj = new stdClass; + $obj->id = $args['id']; + + if($args['start-time']) $obj->start_time = SyndicationHandler::getDate($args['start-time']); + if($args['end-time']) $obj->end_time = SyndicationHandler::getDate($args['end-time']); + + $obj->max_entry = $args['max_entry']; + if(!$obj->max_entry) $obj->max_entry = 100; + + $obj->page = $args['page']; + if(!$obj->page) $obj->page = 1; + + $obj->type = $args['type']; + + // for getting all article on mysql 3.X, 4.0.X + if($args['channel_id']) $obj->channel_id = $args['channel_id']; + + $this->param = $obj; + $this->parseTag(); + } + + /** + * @brief parsing id value(Tag URI) + **/ + function parseTag() + { + // tag:domain,{YYYY}:site: + // tag:domain,{YYYY}:channel:{channel_id} + // tag:domain,{YYYY}:article:{channel_id}-{$article_id} + if(!preg_match('/^tag:([^,]+),([0-9]+):(site|channel|article)(.*)$/i',$this->param->id,$matches)) return; + + $this->target = $matches[3]; + $id = $matches[4]; + if($id && $id{0}==':') $id = substr($id, 1); + + switch($this->target) + { + case 'site': + break; + case 'channel': + if(!$id) + { + $this->target = $this->target_channel_id = $this->target_content_id = null; + return; + } + + $this->target_channel_id = $id; + break; + case 'article': + if($id && strpos($id,'-')!==false) + { + list($this->target_channel_id, $this->target_content_id) = explode('-',$id); + if(!$this->target_content_id) + { + $this->target = $this->target_channel_id = $this->target_content_id = null; + return; + } + } + else + { + $this->target = $this->target_channel_id = $this->target_content_id = null; + return; + } + break; + } + + if($this->target_channel_id) $this->param->target_channel_id = $this->target_channel_id; + if($this->target_content_id) $this->param->target_content_id = $this->target_content_id; + } + + /** + * @brief xml for Syndication Server + **/ + function getXML() + { + if(!$this->checkRegisteredFunctions()) return ''; + + switch($this->target) + { + // in site + case 'site': + // get Site info + $oSite = $this->callFunction('site_info'); + if(!$oSite) return ''; + + $list_xml = ''; + + if(in_array($this->param->type,array('article','deleted','channel'))) + { + $list = $this->callFunction($this->param->type . '_list'); + if(!$list) $list = array(); + + $obj = $this->callFunction($this->param->type . '_next_page'); + if($obj) $oSite->setNextPage($obj); + + foreach($list as $oObject) + { + $list_xml .= $oObject->wrapEntry($oObject->__toString()); + } + + $xml = $oSite->__toString(); + $xml = $oSite->wrapFeed($xml . $list_xml); + } + else + { + $xml = $oSite->__toString(); + $xml = $oSite->wrapEntry($xml . $list_xml, true); + } + + break; + + // in channel + case 'channel': + // get Channel info + $oChannelList = $this->callFunction('channel_list'); + if(!is_array($oChannelList) || count($oChannelList)==0) return ''; + $oChannel = $oChannelList[0]; + + $list_xml = ''; + + if($this->target_channel_id && in_array($this->param->type,array('article','deleted'))) + { + $list = $this->callFunction($this->param->type . '_list'); + + if(is_array($list) && count($list)) + { + $obj = $this->callFunction($this->param->type . '_next_page'); + if($obj) $oChannel->setNextPage($obj); + + foreach($list as $oObject) + { + $list_xml .= $oObject->wrapEntry($oObject->__toString()); + } + } + + $xml = $oChannel->__toString(); + $xml = $oChannel->wrapFeed($xml . $list_xml); + } + else + { + $xml = $oChannel->__toString(); + $xml = $oChannel->wrapEntry($xml . $list_xml, true); + } + + break; + + // article info + case 'article': + + if(in_array($this->param->type,array('article','deleted'))) + { + $list = $this->callFunction($this->param->type . '_list'); + } + + if(!is_array($list) || count($list)==0) return ''; + + $oObject = $list[0]; + $xml = $oObject->__toString(); + + $xml = $oObject->wrapEntry($xml, true); + + break; + } + + if(!$GLOBALS['syndi_from_encoding']) $GLOBALS['syndi_from_encoding'] = 'utf-8'; + if($xml && strtolower($GLOBALS['syndi_from_encoding']) != 'utf-8' && function_exists('iconv')) + { + $xml = iconv($GLOBALS['syndi_from_encoding'], 'utf-8//IGNORE', $xml); + } + + return $xml; + } + + /** + * @brief Tag URI + **/ + function getTag($type, $channel_id=null, $article_id=null) + { + $tag = sprintf('tag:%s,%s:%s' + ,$GLOBALS['syndi_tag_domain'] + ,$GLOBALS['syndi_tag_year'] + ,$type); + + if($type=='channel' && $channel_id) + { + $tag .= ':' . $channel_id; + } + else if($type=='article' && $channel_id && $article_id) + { + $tag .= ':' .$channel_id .'-' . $article_id; + } + + return $tag; + } + + /** + * @brief Timestamp 로 YYYYMMDDHHIISS 변환 + **/ + function getDate($timestamp) + { + $time = strtotime($timestamp); + if($time == -1) $time = SyndicationHandler::ztime(str_replace(array('-','T',':'),'',$timestamp)); + + return date('YmdHis', $time); + } + + /** + * @brief YYYYMMDDHHIISS에서 Timestamp로 변환 + **/ + function getTimestamp($date) + { + $time = mktime(substr($date,8,2),substr($date,10,2),substr($date,12,2),substr($date,4,2),substr($date,6,2),substr($date,0,4)); + $timestamp = date("Y-m-d\\TH:i:s", $time). $GLOBALS['syndi_time_zone']; + return $timestamp; + } + + function ztime($str) + { + if(!$str) return; + $hour = (int)substr($str,8,2); + $min = (int)substr($str,10,2); + $sec = (int)substr($str,12,2); + $year = (int)substr($str,0,4); + $month = (int)substr($str,4,2); + $day = (int)substr($str,6,2); + if(strlen($str) <= 8) + { + $gap = 0; + } + else + { + $gap = SyndicationHandler::zgap(); + } + + return mktime($hour, $min, $sec, $month?$month:1, $day?$day:1, $year)+$gap; + } + + function zgap() + { + $time_zone = $GLOBALS['syndi_time_zone']; + if($time_zone < 0) $to = -1; else $to = 1; + $t_hour = substr($time_zone, 1, 2) * $to; + $t_min = substr($time_zone, 3, 2) * $to; + + $server_time_zone = date("O"); + if($server_time_zone < 0) $so = -1; else $so = 1; + $c_hour = substr($server_time_zone, 1, 2) * $so; + $c_min = substr($server_time_zone, 3, 2) * $so; + + $g_min = $t_min - $c_min; + $g_hour = $t_hour - $c_hour; + + $gap = $g_min*60 + $g_hour*60*60; + + return $gap; + } + + function error($msg) + { + echo $msg; + exit; + } +} + +?> diff --git a/bbs/syndi/libs/SyndicationObject.class.php b/bbs/syndi/libs/SyndicationObject.class.php new file mode 100644 index 000000000..5c43aad98 --- /dev/null +++ b/bbs/syndi/libs/SyndicationObject.class.php @@ -0,0 +1,104 @@ +\n"; + $str .= $this->get('name'); + $str .= $this->get('email'); + $str .= $this->get('url'); + $str .= "\n"; + + return $str; + } + + $value = $this->{$node_name}; + if(!$value) return ''; + + if(strpos($node_name,'link_')!==false) + { + $type = str_replace('_','-',substr($node_name, strlen('link_'))); + return "\n"; + } + + if(in_array($node_name,array('published','deleted','updated'))) + { + $value = $this->_getTime($value); + } + + return sprintf("<%s>%s\n", $node_name, htmlspecialchars($value) ,$node_name); + } + + function _getTime($time) + { + return SyndicationHandler::getTimestamp($time); + } + + function wrapFeed($str) + { + $return = ''; + $return .= "\n"; + $return .= ''; + $return .= "\n"; + $return .= $str; + $return .= ""; + + return $return; + } + + function wrapEntry($str, $xml_info=false) + { + if($xml_info) + { + $return = ''; + $return .= "\n"; + $return .= ''; + $return .= "\n"; + } + else + { + $return .= "\n"; + } + + $return .= $str; + $return .= "\n"; + + return $return; + } +} + +?> diff --git a/bbs/syndi/libs/SyndicationPing.class.php b/bbs/syndi/libs/SyndicationPing.class.php new file mode 100644 index 000000000..484ccdcf9 --- /dev/null +++ b/bbs/syndi/libs/SyndicationPing.class.php @@ -0,0 +1,105 @@ +id = $id; + } + + function setType($type) + { + $this->type = $type; + } + + function setStartTime($start_time) + { + if($start_time) + { + $this->start_time = $this->_convertTime($start_time); + } + } + + function setEndTime($end_time) + { + if($end_time) + { + $this->end_time = $this->_convertTime($end_time); + } + } + + function _convertTime($time) + { + return str_replace('+','%2b',$time); + } + + function setMaxEntry($max_entry) + { + if($max_entry > 0 && $max_entry <= 10000) + { + $this->max_entry = $max_entry; + } + } + + function setPage($page) + { + if($page > 0 && $page <= 10000) + { + $this->page = $page; + } + } + + function getBody() + { + $str = $GLOBALS['syndi_echo_url']; + $str .= '?id=' . $this->id; + $str .= '&type=' . $this->type; + if($this->start_time && $this->end_time) + { + $str .= '&start_time=' . $this->start_time; + $str .= '&end_time=' . $this->end_time; + } + if($this->max_entry) $str .= '&max_entry=' . $this->max_entry; + if($this->page) $str .= '&page=' . $this->page; + + return 'link='.urlencode($str); + } + + function request() + { + $body = $this->getBody(); + if(!$body) return false; + + $header = "POST /ping/ HTTP/1.0\r\n". + "User-Agent: request\r\n". + "Host: " . $this->ping_host . "\r\n". + "Content-Type: application/x-www-form-urlencoded\r\n". + "Content-Length: ". strlen($body) ."\r\n". + "\r\n". + $body; + + $fp = @fsockopen($this->ping_host, '80', $errno, $errstr, 5); + if(!$fp) return false; + + fputs($fp, $header); + fclose($fp); + + return true; + } +} +?> diff --git a/bbs/syndi/libs/SyndicationSite.class.php b/bbs/syndi/libs/SyndicationSite.class.php new file mode 100644 index 000000000..26ee64dbe --- /dev/null +++ b/bbs/syndi/libs/SyndicationSite.class.php @@ -0,0 +1,74 @@ +id = $id; + } + + /** + * @brief Title of Site + **/ + function setTitle($title) + { + $this->title = $title; + } + + /** + * @brief Syndication Ping Url + **/ + function setLinkSelf($link_self) + { + $this->link_self = $link_self; + } + + /** + * @brief 접근 Url + **/ + function setLinkAlternative($link_alternative) + { + $this->link_alternative = $link_alternative; + } + + /** + * @brief 다음 페이지 Url + **/ + function setNextPage($obj) + { + if(!$obj) return; + + if($obj['page']>0) $this->link_next_in_thread = $this->link_self . '&page='. $obj['page']; + if($obj['channel_id']) $this->link_next_in_thread .= '&channel_id='. $obj['channel_id']; + } + + /** + * @brief update time + * 'YYYYMMDDHHIISS' type + **/ + function setUpdated($updated) + { + $this->updated = $updated; + } + + function __toString() + { + $str = ''; + foreach($this->node as $node){ + $str .= $this->get($node); + } + + return $str; + } +} +?> \ No newline at end of file diff --git a/bbs/syndi/libs/SyndicationStatus.class.php b/bbs/syndi/libs/SyndicationStatus.class.php new file mode 100644 index 000000000..977e194a0 --- /dev/null +++ b/bbs/syndi/libs/SyndicationStatus.class.php @@ -0,0 +1,77 @@ +site = $site; + } + + function request() + { + if(!$this->site) return false; + + $header = "GET /status/?site=".$this->site." HTTP/1.0\r\n". + "Host: " . $this->status_host . "\r\n\r\n"; + + $fp = @fsockopen($this->status_host, '80', $errno, $errstr); + if(!$fp) return false; + + $output = ''; + + fputs($fp, $header); + while(!feof($fp)){ + $output .= fgets($fp, 1024); + } + fclose($fp); + + $output = substr($output, strpos($output, "\r\n\r\n")+4); + return $this->_parse($output); + } + + function _parse($data) + { + preg_match_all('@\<([a-z_0-9=\" ]+)\>([^\<]+)\array()); + + for($i=0,$c=count($matches[0]);$i<$c;$i++){ + if(strpos($matches[1][$i], 'date="')!==false){ + $date = substr($matches[1][$i],14,8); + $output['article'][$date] = $matches[2][$i]; + }else{ + $output[$matches[1][$i]] = $matches[2][$i]; + } + } + + return $output; + } +} + +/* +$oStatus = new SyndicationStatus; +$oStatus->setSite('domain.com'); +$output = $oStatus->request(); + +$output data fields +error : 0이 아닌 경우 에러 +message : 에러 메세지 +site_url : site url +site_name : site name +first_update : Syndication 서버에 처음 등록된 시간 +last_update : Syndication 서버에 최근 갱신 시간 +status : site 상태 +visit_ok_count : ping 연속 성공 횟수 +visit_fail_count : ping 실패 횟수 +*/ +?> diff --git a/bbs/syndi/syndi_echo.php b/bbs/syndi/syndi_echo.php new file mode 100644 index 000000000..5c103f128 --- /dev/null +++ b/bbs/syndi/syndi_echo.php @@ -0,0 +1,37 @@ += 0) +{ + date_default_timezone_set(@date_default_timezone_get()); +} + +error_reporting(E_ALL & ~E_NOTICE & ~E_STRICT); + + +$syndi_path = dirname(__FILE__); + +// include class +include $syndi_path . '/libs/SyndicationHandler.class.php'; +include $syndi_path . '/libs/SyndicationObject.class.php'; +include $syndi_path . '/libs/SyndicationSite.class.php'; +include $syndi_path . '/libs/SyndicationChannel.class.php'; +include $syndi_path . '/libs/SyndicationArticle.class.php'; +include $syndi_path . '/libs/SyndicationDeleted.class.php'; + +// config & custom func for site +include $syndi_path . '/config/site.config.php'; +include $syndi_path . '/func/site.func.php'; + +$oSyndicationHandler = &SyndicationHandler::getInstance(); +$oSyndicationHandler->setArgument(); + +echo $oSyndicationHandler->getXML(); +?> diff --git a/bbs/write_update.php b/bbs/write_update.php index 330bde8d1..8e7d12270 100644 --- a/bbs/write_update.php +++ b/bbs/write_update.php @@ -459,6 +459,8 @@ if ($w == '' || $w == 'r') { } } +// syndication ping +include G4_BBS_PATH.'/syndi/include/include.bbs.write_update.php'; //------------------------------------------------------------------------------ // 가변 파일 업로드 @@ -610,5 +612,5 @@ delete_cache_latest($bo_table); if ($file_upload_msg) alert($file_upload_msg, G4_HTTPS_BBS_URL.'/board.php?bo_table='.$bo_table.'&wr_id='.$wr_id.'&page='.$page.$qstr); else - goto_url(G4_HTTPS_BBS_URL.'/board.php?bo_table='.$bo_table.'&wr_id='.$wr_id.'&page='.$page.$qstr); + goto_url(G4_HTTPS_BBS_URL.'/board.php?bo_table='.$bo_table.'&wr_id='.$wr_id.$qstr); ?> diff --git a/install/gnuboard4s.sql b/install/gnuboard4s.sql index e517dd1ee..74dac5354 100644 --- a/install/gnuboard4s.sql +++ b/install/gnuboard4s.sql @@ -734,4 +734,20 @@ CREATE TABLE IF NOT EXISTS `g4s_uniqid` ( PRIMARY KEY (`uq_id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8; +-- -------------------------------------------------------- + +-- +-- Table structure for table `g4s_syndi_log` +-- + +DROP TABLE IF EXISTS `g4s_syndi_log`; +CREATE TABLE IF NOT EXISTS `g4s_syndi_log` ( + `content_id` int(11) NOT NULL, + `bbs_id` varchar(50) NOT NULL, + `title` text NOT NULL, + `link_alternative` varchar(250) NOT NULL, + `delete_date` varchar(14) NOT NULL, + PRIMARY KEY (`content_id`,`bbs_id`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; + -- -------------------------------------------------------- \ No newline at end of file diff --git a/install/install_db.php b/install/install_db.php index f9a6ad89d..269822395 100644 --- a/install/install_db.php +++ b/install/install_db.php @@ -197,6 +197,7 @@ fwrite($f, "\$g4['scrap_table'] = G4_TABLE_PREFIX.'scrap'; // 게시글 스크 fwrite($f, "\$g4['visit_table'] = G4_TABLE_PREFIX.'visit'; // 방문자 테이블\n"); fwrite($f, "\$g4['visit_sum_table'] = G4_TABLE_PREFIX.'visit_sum'; // 방문자 합계 테이블\n"); fwrite($f, "\$g4['uniqid_table'] = G4_TABLE_PREFIX.'uniqid'; // 유니크한 값을 만드는 테이블\n"); +fwrite($f, "\$g4['syndi_log_table'] = G4_TABLE_PREFIX.'syndi_log'; // 네이버 신디케이션 컨텐츠 삭제 로그 테이블\n"); fwrite($f, "?>"); fclose($f); diff --git a/lib/common.lib.php b/lib/common.lib.php index 3d92ea8c4..d7e16f719 100644 --- a/lib/common.lib.php +++ b/lib/common.lib.php @@ -1613,8 +1613,9 @@ function convert_charset($from_charset, $to_charset, $str) // mysql_real_escape_string 의 alias 기능을 한다. function escape_trim($field) { - if ($field) - return mysql_real_escape_string(trim($field)); + if ($field) { + return mysql_real_escape_string(@trim($field)); + } } From 0bce0b4e519a3fb77a74b8536430ab92420393e9 Mon Sep 17 00:00:00 2001 From: chicpro Date: Wed, 27 Feb 2013 09:04:18 +0900 Subject: [PATCH 2/5] =?UTF-8?q?=ED=9A=8C=EC=9B=90=EC=A0=95=EB=B3=B4=20?= =?UTF-8?q?=EC=88=98=EC=A0=95=EC=8B=9C=20mb=5Fnick=20=EA=B4=80=EB=A0=A8=20?= =?UTF-8?q?=EC=97=90=EB=9F=AC=20=EC=88=98=EC=A0=95=20=EC=BD=94=EB=93=9C=20?= =?UTF-8?q?=EB=B0=98=EC=98=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- skin/member/kcpcert/register_form.skin.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/skin/member/kcpcert/register_form.skin.php b/skin/member/kcpcert/register_form.skin.php index 0c2971717..10b7fbde4 100644 --- a/skin/member/kcpcert/register_form.skin.php +++ b/skin/member/kcpcert/register_form.skin.php @@ -10,7 +10,7 @@ if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가 - + date("Y-m-d", G4_SERVER_TIME - ($config['cf_nick_modify'] * 86400))) { // 별명수정일이 지나지 않았다면 ?> From 38fa2c0b4317f910ccd460c576fa29655620bde9 Mon Sep 17 00:00:00 2001 From: chicpro Date: Wed, 27 Feb 2013 10:22:02 +0900 Subject: [PATCH 3/5] =?UTF-8?q?=ED=9C=B4=EB=8C=80=ED=8F=B0=EC=82=AC?= =?UTF-8?q?=EC=9A=A9=EC=97=AC=EB=B6=80=EC=97=90=20=EA=B4=80=EA=B3=84?= =?UTF-8?q?=EC=97=86=EC=9D=B4=20=ED=9C=B4=EB=8C=80=ED=8F=B0=EC=9D=B8?= =?UTF-8?q?=EC=A6=9D=20=EC=B2=B4=ED=81=AC=ED=95=98=EB=8F=84=EB=A1=9D=20?= =?UTF-8?q?=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- skin/member/kcpcert/register_form.skin.php | 14 ++----- .../register_form_update.head.skin.php | 40 +++++++++---------- .../register_form_update.tail.skin.php | 2 +- 3 files changed, 24 insertions(+), 32 deletions(-) diff --git a/skin/member/kcpcert/register_form.skin.php b/skin/member/kcpcert/register_form.skin.php index 10b7fbde4..7bc5da5e1 100644 --- a/skin/member/kcpcert/register_form.skin.php +++ b/skin/member/kcpcert/register_form.skin.php @@ -87,21 +87,17 @@ if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가 - - + - " maxlength="20" value=""> - + - - // 휴대폰인증 검사 if(f.kcpcert_time.value == "") { - alert("휴대폰인증을 해주세요."); + alert("휴대폰 본인인증을 해주세요."); return false; } @@ -322,12 +317,11 @@ function fregisterform_submit(f) if(old_hp != mb_hp) { if(f.kcpcert_no.value == "") { f.kcpcert_time.value = ""; - alert("휴대폰번호가 변경됐습니다. 휴대폰인증을 해주세요."); + alert("휴대폰번호가 변경됐습니다. 휴대폰 본인인증을 해주세요."); return false; } } } - if (typeof f.mb_icon != 'undefined') { if (f.mb_icon.value) { diff --git a/skin/member/kcpcert/register_form_update.head.skin.php b/skin/member/kcpcert/register_form_update.head.skin.php index a01467aad..dc4ebc05a 100644 --- a/skin/member/kcpcert/register_form_update.head.skin.php +++ b/skin/member/kcpcert/register_form_update.head.skin.php @@ -6,35 +6,33 @@ if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가 /* ======================================================================================================= */ /* = 휴대폰인증 = */ /* ======================================================================================================= */ -if($config['cf_use_hp'] && $config['cf_req_hp']) { - if($w == '') { +if($w == '') { + // 본인인증체크 + $kcpcert_no = trim($_POST['kcpcert_no']); + if(!$kcpcert_no) + alert('휴대폰인증이 되지 않았습니다. 휴대폰인증을 해주세요.', "", true, true); + + // 본인인증 hash 체크 + $reg_hp = preg_replace("/[^0-9]/", "", $mb_hp); + $reg_hash = md5($reg_hp.$mb_name.$kcpcert_no); + if(get_session('ss_kcpcert_hash') != $reg_hash) + alert('휴대폰인증 정보가 올바르지 않습니다. 정상적인 방법으로 이용해 주세요.', "", true, true); +} else if($w == 'u') { + // 휴대폰번호 변경체크 + $patt = "/[^0-9]/"; + $old_hp = preg_replace($patt, "", $_POST['old_mb_hp']); + $reg_hp = preg_replace($patt, "", $mb_hp); + + if($old_hp != $reg_hp) { // 본인인증체크 $kcpcert_no = trim($_POST['kcpcert_no']); if(!$kcpcert_no) - alert('휴대폰인증이 되지 않았습니다. 휴대폰인증을 해주세요.', "", true, true); + alert('휴대폰번호가 변경됐습니다. 휴대폰인증을 해주세요.', "", true, true); // 본인인증 hash 체크 - $reg_hp = preg_replace("/[^0-9]/", "", $mb_hp); $reg_hash = md5($reg_hp.$mb_name.$kcpcert_no); if(get_session('ss_kcpcert_hash') != $reg_hash) alert('휴대폰인증 정보가 올바르지 않습니다. 정상적인 방법으로 이용해 주세요.', "", true, true); - } else if($w == 'u') { - // 휴대폰번호 변경체크 - $patt = "/[^0-9]/"; - $old_hp = preg_replace($patt, "", $_POST['old_mb_hp']); - $reg_hp = preg_replace($patt, "", $mb_hp); - - if($old_hp != $reg_hp) { - // 본인인증체크 - $kcpcert_no = trim($_POST['kcpcert_no']); - if(!$kcpcert_no) - alert('휴대폰번호가 변경됐습니다. 휴대폰인증을 해주세요.', "", true, true); - - // 본인인증 hash 체크 - $reg_hash = md5($reg_hp.$mb_name.$kcpcert_no); - if(get_session('ss_kcpcert_hash') != $reg_hash) - alert('휴대폰인증 정보가 올바르지 않습니다. 정상적인 방법으로 이용해 주세요.', "", true, true); - } } } /* ======================================================================================================= */ diff --git a/skin/member/kcpcert/register_form_update.tail.skin.php b/skin/member/kcpcert/register_form_update.tail.skin.php index 692fc94e8..bc6834c24 100644 --- a/skin/member/kcpcert/register_form_update.tail.skin.php +++ b/skin/member/kcpcert/register_form_update.tail.skin.php @@ -6,7 +6,7 @@ if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가 /* =========================================================================== */ /* = 휴대폰인증 = */ /* =========================================================================== */ -if($config['cf_use_hp'] && $config['cf_req_hp'] && $_POST['kcpcert_no']) { +if($_POST['kcpcert_no']) { // 휴대폰인증 시간기록 $sql = " update {$g4['member_table']} set mb_hp_certify = '{$_POST['kcpcert_time']}' From 408e2e9e4a40af826c715f71e6c9283b78928a9f Mon Sep 17 00:00:00 2001 From: gnuboard Date: Wed, 27 Feb 2013 10:25:00 +0900 Subject: [PATCH 4/5] =?UTF-8?q?=EB=AA=A8=EB=B0=94=EC=9D=BC=20=EA=B5=AC?= =?UTF-8?q?=EC=A1=B0=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- common.php | 33 +++++++++++++++++++++++---------- config.php | 3 +++ index.php | 5 +++++ 3 files changed, 31 insertions(+), 10 deletions(-) diff --git a/common.php b/common.php index 403341ba1..0d4ae3f62 100644 --- a/common.php +++ b/common.php @@ -408,16 +408,29 @@ if ($is_admin != 'super') { //============================================================================== // 스킨경로 //------------------------------------------------------------------------------ -$board_skin_path = G4_SKIN_PATH.'/board/'.$board['bo_skin']; -$board_skin_url = G4_SKIN_URL.'/board/'.$board['bo_skin']; -$member_skin_path = G4_SKIN_PATH.'/member/'.$config['cf_member_skin']; -$member_skin_url = G4_SKIN_URL.'/member/'.$config['cf_member_skin']; -$new_skin_path = G4_SKIN_PATH.'/new/'.$config['cf_new_skin']; -$search_skin_path = G4_SKIN_PATH.'/search/'.$config['cf_search_skin']; -$connect_skin_path = G4_SKIN_PATH.'/connect/'.$config['cf_connect_skin']; -$poll_skin_path = G4_SKIN_PATH.'/poll/basic'; -if (isset($_GET['skin_dir'])) - $poll_skin_path = G4_SKIN_PATH.'/poll/'.$_GET['skin_dir']; +if (G4_IS_MOBILE) { + $board_skin_path = G4_MOBILE_PATH.'/'.G4_SKIN_DIR.'/board/'.$board['bo_skin']; + $board_skin_url = G4_SKIN_URL.'/board/'.$board['bo_skin']; + $member_skin_path = G4_MOBILE_PATH.'/'.G4_SKIN_DIR.'/member/'.$config['cf_member_skin']; + $member_skin_url = G4_SKIN_URL.'/member/'.$config['cf_member_skin']; + $new_skin_path = G4_MOBILE_PATH.'/'.G4_SKIN_DIR.'/new/'.$config['cf_new_skin']; + $search_skin_path = G4_MOBILE_PATH.'/'.G4_SKIN_DIR.'/search/'.$config['cf_search_skin']; + $connect_skin_path = G4_MOBILE_PATH.'/'.G4_SKIN_DIR.'/connect/'.$config['cf_connect_skin']; + $poll_skin_path = G4_MOBILE_PATH.'/'.G4_SKIN_DIR.'/poll/basic'; + if (isset($_GET['skin_dir'])) + $poll_skin_path = G4_SKIN_PATH.'/poll/'.$_GET['skin_dir']; +} else { + $board_skin_path = G4_SKIN_PATH.'/board/'.$board['bo_skin']; + $board_skin_url = G4_SKIN_URL.'/board/'.$board['bo_skin']; + $member_skin_path = G4_SKIN_PATH.'/member/'.$config['cf_member_skin']; + $member_skin_url = G4_SKIN_URL.'/member/'.$config['cf_member_skin']; + $new_skin_path = G4_SKIN_PATH.'/new/'.$config['cf_new_skin']; + $search_skin_path = G4_SKIN_PATH.'/search/'.$config['cf_search_skin']; + $connect_skin_path = G4_SKIN_PATH.'/connect/'.$config['cf_connect_skin']; + $poll_skin_path = G4_SKIN_PATH.'/poll/basic'; + if (isset($_GET['skin_dir'])) + $poll_skin_path = G4_SKIN_PATH.'/poll/'.$_GET['skin_dir']; +} //============================================================================== diff --git a/config.php b/config.php index 7fa2be371..6373a15e1 100644 --- a/config.php +++ b/config.php @@ -44,6 +44,7 @@ define('G4_LIB_DIR', 'lib'); define('G4_SKIN_DIR', 'skin'); define('G4_GCAPTCHA_DIR', 'gcaptcha'); define('G4_CKEDITOR_DIR', 'ckeditor'); +define('G4_MOBILE_DIR', 'mobile'); // URL 은 브라우저상에서의 경로 (도메인으로 부터의) if (G4_DOMAIN) { @@ -70,6 +71,7 @@ define('G4_JS_URL', G4_URL.'/'.G4_JS_DIR); define('G4_SKIN_URL', G4_URL.'/'.G4_SKIN_DIR); define('G4_GCAPTCHA_URL', G4_BBS_URL.'/'.G4_GCAPTCHA_DIR); define('G4_CKEDITOR_URL', G4_BBS_URL.'/'.G4_CKEDITOR_DIR); // CKEDITOR 의 라이브러리 경로 +define('G4_MOBILE_URL', G4_URL.'/'.G4_MOBILE_DIR); // PATH 는 서버상에서의 절대경로 define('G4_ADMIN_PATH', G4_PATH.'/'.G4_ADMIN_DIR); @@ -80,6 +82,7 @@ define('G4_LIB_PATH', G4_PATH.'/'.G4_LIB_DIR); define('G4_SKIN_PATH', G4_PATH.'/'.G4_SKIN_DIR); define('G4_GCAPTCHA_PATH', G4_BBS_PATH.'/'.G4_GCAPTCHA_DIR); define('G4_CKEDITOR_PATH', G4_BBS_PATH.'/'.G4_CKEDITOR_DIR); +define('G4_MOBILE_PATH', G4_PATH.'/'.G4_MOBILE_DIR); //============================================================================== diff --git a/index.php b/index.php index 4f62ade61..68d12dd6f 100644 --- a/index.php +++ b/index.php @@ -2,6 +2,11 @@ define('_INDEX_', true); include_once('./_common.php'); +if (G4_IS_MOBILE) { + include_once(G4_MOBILE_PATH.'/index.php'); + return; +} + // 초기화면 파일 경로 지정 : 이 코드는 가능한 삭제하지 마십시오. if ($config['cf_include_index']) { if (!@include_once($config['cf_include_index'])) { From 0ebdcb206f74909dbc78a4b3b959d4379188274c Mon Sep 17 00:00:00 2001 From: gnuboard Date: Wed, 27 Feb 2013 10:25:20 +0900 Subject: [PATCH 5/5] =?UTF-8?q?=EB=AA=A8=EB=B0=94=EC=9D=BC=20=EC=83=9D?= =?UTF-8?q?=EC=84=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mobile/_head.php | 5 + mobile/_tail.php | 5 + mobile/head.php | 151 ++++++++ mobile/index.php | 9 + mobile/skin/board/basic/img/icon_file.gif | Bin 0 -> 107 bytes mobile/skin/board/basic/img/icon_hot.gif | Bin 0 -> 97 bytes mobile/skin/board/basic/img/icon_img.gif | Bin 0 -> 145 bytes mobile/skin/board/basic/img/icon_link.gif | Bin 0 -> 104 bytes mobile/skin/board/basic/img/icon_mobile.gif | Bin 0 -> 62 bytes mobile/skin/board/basic/img/icon_movie.gif | Bin 0 -> 110 bytes mobile/skin/board/basic/img/icon_new.gif | Bin 0 -> 71 bytes mobile/skin/board/basic/img/icon_reply.gif | Bin 0 -> 77 bytes mobile/skin/board/basic/img/icon_secret.gif | Bin 0 -> 97 bytes mobile/skin/board/basic/img/icon_sound.gif | Bin 0 -> 113 bytes mobile/skin/board/basic/list.skin.php | 227 +++++++++++ mobile/skin/board/basic/view.skin.php | 221 +++++++++++ mobile/skin/board/basic/view_comment.skin.php | 292 +++++++++++++++ mobile/skin/board/basic/write.skin.php | 234 ++++++++++++ mobile/skin/connect/basic/connect.skin.php | 6 + .../connect/basic/current_connect.skin.php | 41 ++ mobile/skin/connect/basic/img/dot_bg.gif | Bin 0 -> 43 bytes mobile/skin/connect/basic/img/icon.gif | Bin 0 -> 139 bytes mobile/skin/connect/basic/img/list_top_01.gif | Bin 0 -> 58 bytes mobile/skin/connect/basic/img/list_top_02.gif | Bin 0 -> 70 bytes mobile/skin/connect/basic/img/list_top_03.gif | Bin 0 -> 853 bytes mobile/skin/connect/basic/img/list_top_04.gif | Bin 0 -> 58 bytes mobile/skin/connect/basic/img/visit_bg.gif | Bin 0 -> 890 bytes mobile/skin/latest/basic/img/icon_file.gif | Bin 0 -> 107 bytes mobile/skin/latest/basic/img/icon_hot.gif | Bin 0 -> 97 bytes mobile/skin/latest/basic/img/icon_img.gif | Bin 0 -> 145 bytes mobile/skin/latest/basic/img/icon_link.gif | Bin 0 -> 104 bytes mobile/skin/latest/basic/img/icon_mobile.gif | Bin 0 -> 62 bytes mobile/skin/latest/basic/img/icon_more.gif | Bin 0 -> 169 bytes mobile/skin/latest/basic/img/icon_movie.gif | Bin 0 -> 110 bytes mobile/skin/latest/basic/img/icon_new.gif | Bin 0 -> 71 bytes mobile/skin/latest/basic/img/icon_reply.gif | Bin 0 -> 77 bytes mobile/skin/latest/basic/img/icon_secret.gif | Bin 0 -> 97 bytes mobile/skin/latest/basic/img/icon_sound.gif | Bin 0 -> 113 bytes mobile/skin/latest/basic/latest.skin.php | 39 ++ mobile/skin/member/basic/formmail.skin.php | 90 +++++ .../skin/member/basic/img/reg_result_logo.jpg | Bin 0 -> 2108 bytes mobile/skin/member/basic/login.skin.php | 54 +++ mobile/skin/member/basic/login_check.skin.php | 5 + .../skin/member/basic/member_confirm.skin.php | 44 +++ mobile/skin/member/basic/memo.skin.php | 44 +++ mobile/skin/member/basic/memo_form.skin.php | 54 +++ mobile/skin/member/basic/memo_view.skin.php | 48 +++ mobile/skin/member/basic/password.skin.php | 49 +++ .../skin/member/basic/password_lost.skin.php | 45 +++ mobile/skin/member/basic/profile.skin.php | 43 +++ mobile/skin/member/basic/register.skin.php | 50 +++ .../skin/member/basic/register_form.skin.php | 311 +++++++++++++++ .../basic/register_form_update.tail.skin.php | 5 + .../member/basic/register_result.skin.php | 43 +++ mobile/skin/member/basic/scrap.skin.php | 37 ++ mobile/skin/member/basic/scrap_popin.skin.php | 34 ++ mobile/skin/member/basic/zip.skin.php | 62 +++ mobile/skin/member/kcpcert/formmail.skin.php | 90 +++++ .../member/kcpcert/img/reg_result_logo.jpg | Bin 0 -> 2108 bytes mobile/skin/member/kcpcert/login.skin.php | 54 +++ .../skin/member/kcpcert/login_check.skin.php | 5 + .../member/kcpcert/member_confirm.skin.php | 44 +++ mobile/skin/member/kcpcert/memo.skin.php | 44 +++ mobile/skin/member/kcpcert/memo_form.skin.php | 54 +++ mobile/skin/member/kcpcert/memo_view.skin.php | 48 +++ mobile/skin/member/kcpcert/password.skin.php | 49 +++ .../member/kcpcert/password_lost.skin.php | 45 +++ mobile/skin/member/kcpcert/profile.skin.php | 43 +++ mobile/skin/member/kcpcert/register.skin.php | 49 +++ .../member/kcpcert/register_form.skin.php | 354 ++++++++++++++++++ .../register_form_update.head.skin.php | 41 ++ .../register_form_update.tail.skin.php | 17 + .../member/kcpcert/register_result.skin.php | 43 +++ mobile/skin/member/kcpcert/scrap.skin.php | 37 ++ .../skin/member/kcpcert/scrap_popin.skin.php | 34 ++ mobile/skin/member/kcpcert/zip.skin.php | 62 +++ mobile/skin/new/basic/img/dot_bg.gif | Bin 0 -> 43 bytes mobile/skin/new/basic/img/list_top_01.gif | Bin 0 -> 58 bytes mobile/skin/new/basic/img/list_top_02.gif | Bin 0 -> 70 bytes mobile/skin/new/basic/img/list_top_03.gif | Bin 0 -> 853 bytes mobile/skin/new/basic/img/list_top_04.gif | Bin 0 -> 58 bytes mobile/skin/new/basic/new.skin.php | 71 ++++ mobile/skin/outlogin/basic/img/admin.gif | Bin 0 -> 111 bytes .../skin/outlogin/basic/img/leave_button.gif | Bin 0 -> 203 bytes mobile/skin/outlogin/basic/img/login_auto.gif | Bin 0 -> 99 bytes .../skin/outlogin/basic/img/login_button.gif | Bin 0 -> 1473 bytes mobile/skin/outlogin/basic/img/login_down.gif | Bin 0 -> 132 bytes mobile/skin/outlogin/basic/img/login_id.gif | Bin 0 -> 489 bytes .../outlogin/basic/img/login_ing_icon.gif | Bin 0 -> 154 bytes .../skin/outlogin/basic/img/login_ing_top.gif | Bin 0 -> 750 bytes .../outlogin/basic/img/login_join_button.gif | Bin 0 -> 197 bytes .../skin/outlogin/basic/img/login_left_bg.gif | Bin 0 -> 48 bytes mobile/skin/outlogin/basic/img/login_memo.gif | Bin 0 -> 164 bytes .../skin/outlogin/basic/img/login_modify.gif | Bin 0 -> 194 bytes mobile/skin/outlogin/basic/img/login_pw.gif | Bin 0 -> 492 bytes .../basic/img/login_pw_find_button.gif | Bin 0 -> 216 bytes .../outlogin/basic/img/login_right_bg.gif | Bin 0 -> 48 bytes mobile/skin/outlogin/basic/img/login_top.gif | Bin 0 -> 783 bytes .../skin/outlogin/basic/img/logout_button.gif | Bin 0 -> 199 bytes .../skin/outlogin/basic/img/scrap_button.gif | Bin 0 -> 174 bytes .../skin/outlogin/basic/outlogin.skin.1.php | 60 +++ .../skin/outlogin/basic/outlogin.skin.2.php | 43 +++ mobile/skin/poll/basic/img/a.gif | Bin 0 -> 61 bytes mobile/skin/poll/basic/img/admin.gif | Bin 0 -> 111 bytes mobile/skin/poll/basic/img/bg_b.gif | Bin 0 -> 50 bytes mobile/skin/poll/basic/img/bg_bl.gif | Bin 0 -> 62 bytes mobile/skin/poll/basic/img/bg_br.gif | Bin 0 -> 73 bytes mobile/skin/poll/basic/img/bg_mc.gif | Bin 0 -> 82 bytes mobile/skin/poll/basic/img/bg_mcl.gif | Bin 0 -> 99 bytes mobile/skin/poll/basic/img/bg_mcr.gif | Bin 0 -> 94 bytes mobile/skin/poll/basic/img/bg_ml.gif | Bin 0 -> 50 bytes mobile/skin/poll/basic/img/bg_mr.gif | Bin 0 -> 52 bytes mobile/skin/poll/basic/img/bg_t.gif | Bin 0 -> 50 bytes mobile/skin/poll/basic/img/bg_tl.gif | Bin 0 -> 60 bytes mobile/skin/poll/basic/img/bg_tr.gif | Bin 0 -> 60 bytes mobile/skin/poll/basic/img/poll_button.gif | Bin 0 -> 534 bytes mobile/skin/poll/basic/img/poll_view.gif | Bin 0 -> 542 bytes mobile/skin/poll/basic/img/q.gif | Bin 0 -> 71 bytes mobile/skin/poll/basic/img/title.gif | Bin 0 -> 534 bytes mobile/skin/poll/basic/poll.skin.php | 71 ++++ mobile/skin/poll/basic/poll_result.skin.php | 110 ++++++ mobile/skin/popular/basic/img/dot_bg.gif | Bin 0 -> 43 bytes mobile/skin/popular/basic/img/icon.gif | Bin 0 -> 139 bytes mobile/skin/popular/basic/img/visit_bg.gif | Bin 0 -> 890 bytes mobile/skin/popular/basic/popular.skin.php | 14 + mobile/skin/search/basic/search.skin.php | 130 +++++++ mobile/skin/visit/basic/img/admin.gif | Bin 0 -> 111 bytes mobile/skin/visit/basic/img/visit_1.gif | Bin 0 -> 169 bytes mobile/skin/visit/basic/img/visit_2.gif | Bin 0 -> 182 bytes mobile/skin/visit/basic/img/visit_3.gif | Bin 0 -> 178 bytes mobile/skin/visit/basic/img/visit_4.gif | Bin 0 -> 179 bytes mobile/skin/visit/basic/img/visit_down.gif | Bin 0 -> 99 bytes mobile/skin/visit/basic/img/visit_top.gif | Bin 0 -> 99 bytes mobile/skin/visit/basic/visit.skin.php | 22 ++ mobile/tail.php | 31 ++ 135 files changed, 3913 insertions(+) create mode 100644 mobile/_head.php create mode 100644 mobile/_tail.php create mode 100644 mobile/head.php create mode 100644 mobile/index.php create mode 100644 mobile/skin/board/basic/img/icon_file.gif create mode 100644 mobile/skin/board/basic/img/icon_hot.gif create mode 100644 mobile/skin/board/basic/img/icon_img.gif create mode 100644 mobile/skin/board/basic/img/icon_link.gif create mode 100644 mobile/skin/board/basic/img/icon_mobile.gif create mode 100644 mobile/skin/board/basic/img/icon_movie.gif create mode 100644 mobile/skin/board/basic/img/icon_new.gif create mode 100644 mobile/skin/board/basic/img/icon_reply.gif create mode 100644 mobile/skin/board/basic/img/icon_secret.gif create mode 100644 mobile/skin/board/basic/img/icon_sound.gif create mode 100644 mobile/skin/board/basic/list.skin.php create mode 100644 mobile/skin/board/basic/view.skin.php create mode 100644 mobile/skin/board/basic/view_comment.skin.php create mode 100644 mobile/skin/board/basic/write.skin.php create mode 100644 mobile/skin/connect/basic/connect.skin.php create mode 100644 mobile/skin/connect/basic/current_connect.skin.php create mode 100644 mobile/skin/connect/basic/img/dot_bg.gif create mode 100644 mobile/skin/connect/basic/img/icon.gif create mode 100644 mobile/skin/connect/basic/img/list_top_01.gif create mode 100644 mobile/skin/connect/basic/img/list_top_02.gif create mode 100644 mobile/skin/connect/basic/img/list_top_03.gif create mode 100644 mobile/skin/connect/basic/img/list_top_04.gif create mode 100644 mobile/skin/connect/basic/img/visit_bg.gif create mode 100644 mobile/skin/latest/basic/img/icon_file.gif create mode 100644 mobile/skin/latest/basic/img/icon_hot.gif create mode 100644 mobile/skin/latest/basic/img/icon_img.gif create mode 100644 mobile/skin/latest/basic/img/icon_link.gif create mode 100644 mobile/skin/latest/basic/img/icon_mobile.gif create mode 100644 mobile/skin/latest/basic/img/icon_more.gif create mode 100644 mobile/skin/latest/basic/img/icon_movie.gif create mode 100644 mobile/skin/latest/basic/img/icon_new.gif create mode 100644 mobile/skin/latest/basic/img/icon_reply.gif create mode 100644 mobile/skin/latest/basic/img/icon_secret.gif create mode 100644 mobile/skin/latest/basic/img/icon_sound.gif create mode 100644 mobile/skin/latest/basic/latest.skin.php create mode 100644 mobile/skin/member/basic/formmail.skin.php create mode 100644 mobile/skin/member/basic/img/reg_result_logo.jpg create mode 100644 mobile/skin/member/basic/login.skin.php create mode 100644 mobile/skin/member/basic/login_check.skin.php create mode 100644 mobile/skin/member/basic/member_confirm.skin.php create mode 100644 mobile/skin/member/basic/memo.skin.php create mode 100644 mobile/skin/member/basic/memo_form.skin.php create mode 100644 mobile/skin/member/basic/memo_view.skin.php create mode 100644 mobile/skin/member/basic/password.skin.php create mode 100644 mobile/skin/member/basic/password_lost.skin.php create mode 100644 mobile/skin/member/basic/profile.skin.php create mode 100644 mobile/skin/member/basic/register.skin.php create mode 100644 mobile/skin/member/basic/register_form.skin.php create mode 100644 mobile/skin/member/basic/register_form_update.tail.skin.php create mode 100644 mobile/skin/member/basic/register_result.skin.php create mode 100644 mobile/skin/member/basic/scrap.skin.php create mode 100644 mobile/skin/member/basic/scrap_popin.skin.php create mode 100644 mobile/skin/member/basic/zip.skin.php create mode 100644 mobile/skin/member/kcpcert/formmail.skin.php create mode 100644 mobile/skin/member/kcpcert/img/reg_result_logo.jpg create mode 100644 mobile/skin/member/kcpcert/login.skin.php create mode 100644 mobile/skin/member/kcpcert/login_check.skin.php create mode 100644 mobile/skin/member/kcpcert/member_confirm.skin.php create mode 100644 mobile/skin/member/kcpcert/memo.skin.php create mode 100644 mobile/skin/member/kcpcert/memo_form.skin.php create mode 100644 mobile/skin/member/kcpcert/memo_view.skin.php create mode 100644 mobile/skin/member/kcpcert/password.skin.php create mode 100644 mobile/skin/member/kcpcert/password_lost.skin.php create mode 100644 mobile/skin/member/kcpcert/profile.skin.php create mode 100644 mobile/skin/member/kcpcert/register.skin.php create mode 100644 mobile/skin/member/kcpcert/register_form.skin.php create mode 100644 mobile/skin/member/kcpcert/register_form_update.head.skin.php create mode 100644 mobile/skin/member/kcpcert/register_form_update.tail.skin.php create mode 100644 mobile/skin/member/kcpcert/register_result.skin.php create mode 100644 mobile/skin/member/kcpcert/scrap.skin.php create mode 100644 mobile/skin/member/kcpcert/scrap_popin.skin.php create mode 100644 mobile/skin/member/kcpcert/zip.skin.php create mode 100644 mobile/skin/new/basic/img/dot_bg.gif create mode 100644 mobile/skin/new/basic/img/list_top_01.gif create mode 100644 mobile/skin/new/basic/img/list_top_02.gif create mode 100644 mobile/skin/new/basic/img/list_top_03.gif create mode 100644 mobile/skin/new/basic/img/list_top_04.gif create mode 100644 mobile/skin/new/basic/new.skin.php create mode 100644 mobile/skin/outlogin/basic/img/admin.gif create mode 100644 mobile/skin/outlogin/basic/img/leave_button.gif create mode 100644 mobile/skin/outlogin/basic/img/login_auto.gif create mode 100644 mobile/skin/outlogin/basic/img/login_button.gif create mode 100644 mobile/skin/outlogin/basic/img/login_down.gif create mode 100644 mobile/skin/outlogin/basic/img/login_id.gif create mode 100644 mobile/skin/outlogin/basic/img/login_ing_icon.gif create mode 100644 mobile/skin/outlogin/basic/img/login_ing_top.gif create mode 100644 mobile/skin/outlogin/basic/img/login_join_button.gif create mode 100644 mobile/skin/outlogin/basic/img/login_left_bg.gif create mode 100644 mobile/skin/outlogin/basic/img/login_memo.gif create mode 100644 mobile/skin/outlogin/basic/img/login_modify.gif create mode 100644 mobile/skin/outlogin/basic/img/login_pw.gif create mode 100644 mobile/skin/outlogin/basic/img/login_pw_find_button.gif create mode 100644 mobile/skin/outlogin/basic/img/login_right_bg.gif create mode 100644 mobile/skin/outlogin/basic/img/login_top.gif create mode 100644 mobile/skin/outlogin/basic/img/logout_button.gif create mode 100644 mobile/skin/outlogin/basic/img/scrap_button.gif create mode 100644 mobile/skin/outlogin/basic/outlogin.skin.1.php create mode 100644 mobile/skin/outlogin/basic/outlogin.skin.2.php create mode 100644 mobile/skin/poll/basic/img/a.gif create mode 100644 mobile/skin/poll/basic/img/admin.gif create mode 100644 mobile/skin/poll/basic/img/bg_b.gif create mode 100644 mobile/skin/poll/basic/img/bg_bl.gif create mode 100644 mobile/skin/poll/basic/img/bg_br.gif create mode 100644 mobile/skin/poll/basic/img/bg_mc.gif create mode 100644 mobile/skin/poll/basic/img/bg_mcl.gif create mode 100644 mobile/skin/poll/basic/img/bg_mcr.gif create mode 100644 mobile/skin/poll/basic/img/bg_ml.gif create mode 100644 mobile/skin/poll/basic/img/bg_mr.gif create mode 100644 mobile/skin/poll/basic/img/bg_t.gif create mode 100644 mobile/skin/poll/basic/img/bg_tl.gif create mode 100644 mobile/skin/poll/basic/img/bg_tr.gif create mode 100644 mobile/skin/poll/basic/img/poll_button.gif create mode 100644 mobile/skin/poll/basic/img/poll_view.gif create mode 100644 mobile/skin/poll/basic/img/q.gif create mode 100644 mobile/skin/poll/basic/img/title.gif create mode 100644 mobile/skin/poll/basic/poll.skin.php create mode 100644 mobile/skin/poll/basic/poll_result.skin.php create mode 100644 mobile/skin/popular/basic/img/dot_bg.gif create mode 100644 mobile/skin/popular/basic/img/icon.gif create mode 100644 mobile/skin/popular/basic/img/visit_bg.gif create mode 100644 mobile/skin/popular/basic/popular.skin.php create mode 100644 mobile/skin/search/basic/search.skin.php create mode 100644 mobile/skin/visit/basic/img/admin.gif create mode 100644 mobile/skin/visit/basic/img/visit_1.gif create mode 100644 mobile/skin/visit/basic/img/visit_2.gif create mode 100644 mobile/skin/visit/basic/img/visit_3.gif create mode 100644 mobile/skin/visit/basic/img/visit_4.gif create mode 100644 mobile/skin/visit/basic/img/visit_down.gif create mode 100644 mobile/skin/visit/basic/img/visit_top.gif create mode 100644 mobile/skin/visit/basic/visit.skin.php create mode 100644 mobile/tail.php diff --git a/mobile/_head.php b/mobile/_head.php new file mode 100644 index 000000000..82bbf5bac --- /dev/null +++ b/mobile/_head.php @@ -0,0 +1,5 @@ + \ No newline at end of file diff --git a/mobile/_tail.php b/mobile/_tail.php new file mode 100644 index 000000000..71eb557d7 --- /dev/null +++ b/mobile/_tail.php @@ -0,0 +1,5 @@ + \ No newline at end of file diff --git a/mobile/head.php b/mobile/head.php new file mode 100644 index 000000000..4aa776812 --- /dev/null +++ b/mobile/head.php @@ -0,0 +1,151 @@ + + +모바일 헤드 + +
+ + +

+ +
+ + + +
+ 사이트 내 전체검색 +
+ + + +
+ + +
+ + + +
+
+ +
+ + + +
+ +
+
+ + +
+
+

diff --git a/mobile/index.php b/mobile/index.php new file mode 100644 index 000000000..a31e3324a --- /dev/null +++ b/mobile/index.php @@ -0,0 +1,9 @@ + + +모바일 메인 + + \ No newline at end of file diff --git a/mobile/skin/board/basic/img/icon_file.gif b/mobile/skin/board/basic/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/mobile/skin/board/basic/img/icon_hot.gif b/mobile/skin/board/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/mobile/skin/board/basic/img/icon_mobile.gif b/mobile/skin/board/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/mobile/skin/board/basic/img/icon_reply.gif b/mobile/skin/board/basic/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/mobile/skin/board/basic/img/icon_sound.gif b/mobile/skin/board/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/mobile/skin/board/basic/list.skin.php b/mobile/skin/board/basic/list.skin.php new file mode 100644 index 000000000..7f0e0a120 --- /dev/null +++ b/mobile/skin/board/basic/list.skin.php @@ -0,0 +1,227 @@ + + +

+ + +
+ + +
+ +
+ + +
+
+ Total + 페이지 +
+ + + + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + "> + + + + + + + + + + + '; } ?> + +
번호제목글쓴이날짜조회추천비추천
+ 공지'; + else if ($wr_id == $list[$i]['wr_id']) + echo "열람중"; + else + echo $list[$i]['num']; + ?> + + + + + + + + 댓글 + + + '; } + + 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/mobile/skin/board/basic/view.skin.php b/mobile/skin/board/basic/view.skin.php new file mode 100644 index 000000000..bbc215eb8 --- /dev/null +++ b/mobile/skin/board/basic/view.skin.php @@ -0,0 +1,221 @@ + + +
+ +

+ + +

+ +

+ +
+

게시물 정보

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

첨부파일

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

본문

+
+ + \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/mobile/skin/board/basic/view_comment.skin.php b/mobile/skin/board/basic/view_comment.skin.php new file mode 100644 index 000000000..d0f1874d3 --- /dev/null +++ b/mobile/skin/board/basic/view_comment.skin.php @@ -0,0 +1,292 @@ + + + + + +
+

댓글목록

+ \]/i", "", $str); + // FLASH XSS 공격에 의해 주석 처리 - 110406 + //$str = preg_replace("/\[\\]/i", "", $str); + $str = preg_replace("/\[\]*\>[^\s]*\<\/a\>\]/i", "", $str); + ?> +
style="margin-left:px;border-top-color:#e0e0e0"> +
+

님의 댓글

+ + 댓글의 댓글 + + 아이피 + + + 작성일 + +
+ + +

+ ";?> + +

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

등록된 댓글이 없습니다.

+ +
+ + + + + + diff --git a/mobile/skin/board/basic/write.skin.php b/mobile/skin/board/basic/write.skin.php new file mode 100644 index 000000000..c61d351a5 --- /dev/null +++ b/mobile/skin/board/basic/write.skin.php @@ -0,0 +1,234 @@ + + +

+ +
+ + + + + + + + + + +'.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; +?> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
>
옵션
+ +
">
파일 # + + + + + + + +
자동등록방지 + +
+ +
+ + 취소 +
+
+ + diff --git a/mobile/skin/connect/basic/connect.skin.php b/mobile/skin/connect/basic/connect.skin.php new file mode 100644 index 000000000..57d64a063 --- /dev/null +++ b/mobile/skin/connect/basic/connect.skin.php @@ -0,0 +1,6 @@ + + + diff --git a/mobile/skin/connect/basic/current_connect.skin.php b/mobile/skin/connect/basic/current_connect.skin.php new file mode 100644 index 000000000..7e301c22a --- /dev/null +++ b/mobile/skin/connect/basic/current_connect.skin.php @@ -0,0 +1,41 @@ + + +

모바일 버전

+

모바일 버전

+

모바일 버전

+

모바일 버전

+

모바일 버전

+

모바일 버전

+ + + + + + + + + + + +".$location.""; + else $display_location = $location; +?> + + + + + +"; +?> + +
현재접속자 목록
번호이름위치
현재 접속자가 없습니다.
diff --git a/mobile/skin/connect/basic/img/dot_bg.gif b/mobile/skin/connect/basic/img/dot_bg.gif new file mode 100644 index 0000000000000000000000000000000000000000..bd5f0a0d7765776b044235ceab32205da7735490 GIT binary patch literal 43 scmZ?wbhEHbWM*JwXkcJCfByXc|Nj+#vM_*v4u}BBFfcK>1Tk0x00&tKx&QzG literal 0 HcmV?d00001 diff --git a/mobile/skin/connect/basic/img/icon.gif b/mobile/skin/connect/basic/img/icon.gif new file mode 100644 index 0000000000000000000000000000000000000000..49abe3199eddbcc4ec8b38c22c7f00ebdd69888e GIT binary patch literal 139 zcmZ?wbhEHbC-PA3y&4_wV=b-#>o*c>DJ4t5>fW7#N;Cd-nhTe;@-5 zDE?$&WMJTA&;f~q%wS-#Fz|G2GHm2H>F$^i!6Pd$kHdjWzDi7_YR6QY`O|8fr}riq cg&%WG7IdB6*tz1>mN*r^rlf-z7J>}c08T730RR91 literal 0 HcmV?d00001 diff --git a/mobile/skin/connect/basic/img/list_top_01.gif b/mobile/skin/connect/basic/img/list_top_01.gif new file mode 100644 index 0000000000000000000000000000000000000000..200b1e10633a6bb8887e94285d1f5eab5d853739 GIT binary patch literal 58 zcmZ?wbhEHbWMNQbXkcXc4+e@qSr{1@7#VaJfB+=Jz$Dlr&$#jp|Kd4YZgodT&6W>f HV6X-N1HBPv literal 0 HcmV?d00001 diff --git a/mobile/skin/connect/basic/img/list_top_02.gif b/mobile/skin/connect/basic/img/list_top_02.gif new file mode 100644 index 0000000000000000000000000000000000000000..60cbe21c65f9f6e1b6157911a673091579a3f724 GIT binary patch literal 70 zcmZ?wbhEHbWMxofXkcXc4+e@qSr{1@7#VaJfB+=Jz$DuuTe$MTj~SEnZiN`$E&ui= TQ(k@AL(XOXY_fU*3=Gx)BFPs! literal 0 HcmV?d00001 diff --git a/mobile/skin/connect/basic/img/list_top_03.gif b/mobile/skin/connect/basic/img/list_top_03.gif new file mode 100644 index 0000000000000000000000000000000000000000..05b85066c03a00f3241168af9850f55213381e6b GIT binary patch literal 853 zcmZ?wbhEHbWMxof_|C}i|Nno6Q7{?;BQ*pRf3h$#FfcOcfC2!NCm1-47#KNZGz=UX yn%D&8OlC}Y=+wp_2A$Z2r$*L%o&J_w0aR*uLwrYV2GN@$s5&?h5qwhG!zF50s69}??puHR{ zHOy$Pypg`t&c@LJ)6IXyy=rRMmf~@9mA`n(m_6s#>0Il`Vm)Nian)v0H{BL?kppxH z;J$(P{-Fp6Oddf$qt zoJq6hGJ7S$*xbppr_Y~2gSuqZNvP4INRuj^Y0k>hr%YXaZfQb_r_6i=1v>iSYgcB>K3IK7b z#gHSzd^Uly9; zH`%IyOZpzp)klVD#FJw+3rxB5r*9`Ae@SD|!8nDC z%y@`kiQ!l{MT$30uwouUW=Lc)4O+E9AOR|wBa*u1=pBMc3dDhq(it=*juU|C7nezT znNu{Bbki6@Ms|QDGt+eSp@Rr$I3`4{L^)?5Z=87{ntOgpXq60>Ii!`0CTeJgU3RFb zlZ<9*;)@-)@X#NEK1je>bj~wHlud$IX{emunINcu0vczWs**aXsg@S$XOer?y5^{} z=J{lwB4Amiu3)D0O`WnD!fKtoh;ZvCn9GWKBCpDF;A*qH9tr2O!=f7KovKFa(6n;m Q>aCqHgqvoj%R~SGI|`|qVE_OC literal 0 HcmV?d00001 diff --git a/mobile/skin/latest/basic/img/icon_file.gif b/mobile/skin/latest/basic/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/mobile/skin/latest/basic/img/icon_hot.gif b/mobile/skin/latest/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/mobile/skin/latest/basic/img/icon_mobile.gif b/mobile/skin/latest/basic/img/icon_mobile.gif new file mode 100644 index 0000000000000000000000000000000000000000..ad934d23c440c83db0c4589596465cb087353e01 GIT binary patch literal 62 zcmZ?wbhEHbI6zOJt}3$`6RT1g06226*Z@+ongb7@ XU=fBkjtXNz0xpR_!)cQgkRbp&KI&WI literal 0 HcmV?d00001 diff --git a/mobile/skin/latest/basic/img/icon_movie.gif b/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/mobile/skin/latest/basic/img/icon_reply.gif b/mobile/skin/latest/basic/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/mobile/skin/latest/basic/img/icon_sound.gif b/mobile/skin/latest/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/mobile/skin/latest/basic/latest.skin.php b/mobile/skin/latest/basic/latest.skin.php new file mode 100644 index 000000000..1c8fcdbe6 --- /dev/null +++ b/mobile/skin/latest/basic/latest.skin.php @@ -0,0 +1,39 @@ + + +
+ +
    + +
  • + "; + if ($list[$i]['is_notice']) + echo "".$list[$i]['subject'].""; + else + echo $list[$i]['subject']; + + if ($list[$i]['comment_cnt']) + echo " ".$list[$i]['comment_cnt'].""; + + echo ""; + + // if ($list[$i]['link']['count']) { echo "[{$list[$i]['link']['count']}]"; } + // if ($list[$i]['file']['count']) { echo "<{$list[$i]['file']['count']}>"; } + + 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/mobile/skin/member/basic/formmail.skin.php b/mobile/skin/member/basic/formmail.skin.php new file mode 100644 index 000000000..c04369eec --- /dev/null +++ b/mobile/skin/member/basic/formmail.skin.php @@ -0,0 +1,90 @@ + + +
+

님께 메일보내기

+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
메일쓰기
형식 + + + +
자동등록방지
+ +
+ + 창닫기 +
+ +
+
+ + diff --git a/mobile/skin/member/basic/img/reg_result_logo.jpg b/mobile/skin/member/basic/img/reg_result_logo.jpg new file mode 100644 index 0000000000000000000000000000000000000000..9bdf4f72df0a38fc4b3b112a1930818bce46f6e8 GIT binary patch literal 2108 zcma)5c{~*Q7XQs+m_ZC<7^A{4BeIM&M3#$ZWU?h$Q=`#tA;KIilOe$F}nd=LLU|058mSle0y2owO? zb^!i7K>recA}|U-037^90{$Y{VNN@9+z-&2wiyV27$gJ8-v{)+fc?aO#-R|%wz^$E zg}>YIn*dq}C;>ef1P!2Q2n-G3w}B7$YxL;i>RwD3|E@h!(S;cL- zkCuxe=3{m7>Gn;P+WUTRKZKQV$~ckUX}23z_bKn?bRyk*0Tb6VUYYJjyy?_Abr=P= zewbd96ZyskIOGfDFeI@TMrCUm^nl#{>O6v7&$+?ZHYO=q?S64Znn!GGUUy}`OmL`u zv#R4?SrI)~`And&+Bm!6Rmte1*0MJ!SDqf#ew?A4K=o5dudAil`R`*}-?!+`zeUkc z)cqzWi2^8x#z|*nW*2Uua3OE(g>7y%RAp&G%V%f=`$B5hG?N=uZa=MMV4US_*7e2F z(pg+9tUoC~ut~l#!uUqi$gZvOLUOsgidT+=uoc38|0!^(hs8k}9ea{u)oqX6PnCKm zLzqR0wB;XkOV+yO6}e;PftbfHXPhRho_R@!SeH4%Ys!L83I84u;MI*ePf@z@?pl$S zOQz>d#Hpdt!I4J znzj4kYh`L^$W(OILypOflpZ}jTSAi;hZ;d|7ensG6c0{a8=7jYOYMlT3|SzQ1}2`F ztJvA);gS3!G^nrjhN`Ug^jUo805O*0$GY8j!_gr#3I8swy_qbK?w>(2bWfj?oWDMa z{~j`;{)$Gm$dezz>$j)feCyj6rSaa_%721j+RltV#GiN0O8ozh64b|VW53w2V+ zWJE@1X}F9VW_Ty}?w!#?zu_+NL3vt2_;4QX6)`tSSn*)V#Y;jZ1oi6E0c8Ax7<^4) zX44?kyKZ{fN+qN$Bt;Y!$ufjcrRnse~gA}i=AO_=EybJ6Ly&h2UQLDtzgzI zYYxNqZe%$IIVCz>f)lYhP5n%%f^b2I6<&Qft~d2VjNdF5KT=T@G`sNdFgD3e=G@wB zYLz%fnX6DLv~@?`g>7kPUW9X=%Ya4{Q7SGkpoSY{noJi}&y^}{lwrSb^L^*33 zPUC6IS$P7ByOdOqdR2Z~w(H^fcy46S2<0^T7*wYB6e%KEOaZ(5rNpOtB;dF&cbgZh zuDBL_lu=TYGntDajqa^^_aST;Vc5?w%2o_LsvYi^{V>$jqkA(s>d6|a+sO0)$>j5E za$pjoPZerwB?5$+;KC8(s~L~$zYhj#%6;g4vBJ_hDq3rck-#nTsGYZsK!HLjs_<*|Eog_3q%MI_!Cwd00rrvAa39m9vj+rNF=w7dv!dA72e(tF|3APef_-8t#0F6oJs6P13eaUzA2tR_)iv1dIkUh literal 0 HcmV?d00001 diff --git a/mobile/skin/member/basic/login.skin.php b/mobile/skin/member/basic/login.skin.php new file mode 100644 index 000000000..68fd902df --- /dev/null +++ b/mobile/skin/member/basic/login.skin.php @@ -0,0 +1,54 @@ + + +
+

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

회원로그인 안내

+

+ 회원아이디 및 패스워드가 기억 안나실 때는 아이디/패스워드 찾기를 이용하십시오.
+ 아직 회원이 아니시라면 회원으로 가입 후 이용해 주십시오. +

+ +
+ + + +
+ +
+ + diff --git a/mobile/skin/member/basic/login_check.skin.php b/mobile/skin/member/basic/login_check.skin.php new file mode 100644 index 000000000..ef6ec51d6 --- /dev/null +++ b/mobile/skin/member/basic/login_check.skin.php @@ -0,0 +1,5 @@ + diff --git a/mobile/skin/member/basic/member_confirm.skin.php b/mobile/skin/member/basic/member_confirm.skin.php new file mode 100644 index 000000000..00973554b --- /dev/null +++ b/mobile/skin/member/basic/member_confirm.skin.php @@ -0,0 +1,44 @@ + + +
+

+ +

+ 패스워드를 한번 더 입력해주세요. + 회원님의 정보를 안전하게 보호하기 위해 패스워드를 한번 더 확인합니다. +

+ +
+ + + +
+ 회원아이디 + + + + + +
+ +
+ + + +
+ + diff --git a/mobile/skin/member/basic/memo.skin.php b/mobile/skin/member/basic/memo.skin.php new file mode 100644 index 000000000..3ead603db --- /dev/null +++ b/mobile/skin/member/basic/memo.skin.php @@ -0,0 +1,44 @@ + + +
+

+ + + + + + + + + + + + + + + + + + + + + + + "; } ?> + +
+ 전체 쪽지
+
보낸시간읽은시간관리
삭제
자료가 없습니다.
+ +

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

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

쪽지보내기

+ + + +
+
+ + + + + + + + + + + + + + + + +
쪽지쓰기
+ + 여러 회원에게 보낼때는 컴마(,)로 구분하세요. +
자동등록방지 + +
+
+ +
+ + 창닫기 +
+ +
+ + diff --git a/mobile/skin/member/basic/memo_view.skin.php b/mobile/skin/member/basic/memo_view.skin.php new file mode 100644 index 000000000..41ea15ead --- /dev/null +++ b/mobile/skin/member/basic/memo_view.skin.php @@ -0,0 +1,48 @@ + + +
+

+ +
+

쪽지 내용

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

+ +

+
+ +
\ No newline at end of file diff --git a/mobile/skin/member/basic/password.skin.php b/mobile/skin/member/basic/password.skin.php new file mode 100644 index 000000000..6f597f001 --- /dev/null +++ b/mobile/skin/member/basic/password.skin.php @@ -0,0 +1,49 @@ + + +
+

+

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

+ +
+ + + + + + + + +
+ + + +
+
+ + + +
+ + diff --git a/mobile/skin/member/basic/password_lost.skin.php b/mobile/skin/member/basic/password_lost.skin.php new file mode 100644 index 000000000..c05fe4f48 --- /dev/null +++ b/mobile/skin/member/basic/password_lost.skin.php @@ -0,0 +1,45 @@ + + +
+

아이디/패스워드 찾기

+ +
+
+

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

+ + +
+ +
+ + 창닫기 +
+
+
+ + diff --git a/mobile/skin/member/basic/profile.skin.php b/mobile/skin/member/basic/profile.skin.php new file mode 100644 index 000000000..f26489dbf --- /dev/null +++ b/mobile/skin/member/basic/profile.skin.php @@ -0,0 +1,43 @@ + + +
+

님의 프로필

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

인사말

+

+
+ +
+ 창닫기 +
+
diff --git a/mobile/skin/member/basic/register.skin.php b/mobile/skin/member/basic/register.skin.php new file mode 100644 index 000000000..e4378fb91 --- /dev/null +++ b/mobile/skin/member/basic/register.skin.php @@ -0,0 +1,50 @@ + + +
+ +

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

+ +
+

회원가입약관

+ +
+ + +
+
+ +
+

개인정보수집이용안내

+ +
+ + +
+
+ +
+ +
+ +
+ + diff --git a/mobile/skin/member/basic/register_form.skin.php b/mobile/skin/member/basic/register_form.skin.php new file mode 100644 index 000000000..639682340 --- /dev/null +++ b/mobile/skin/member/basic/register_form.skin.php @@ -0,0 +1,311 @@ + + + + +
+ + + + + + date("Y-m-d", G4_SERVER_TIME - ($config['cf_nick_modify'] * 86400))) { // 별명수정일이 지나지 않았다면 ?> + + + + + + + + + + + + + + + + + + +
사이트 이용정보 입력
+ > + + 영문자, 숫자, _ 만 입력 가능. 최소 3자이상 입력하세요. +
>
>
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
개인정보 입력
+ > + 공백없이 한글만 입력하세요."; } ?> +
+ + + + + 공백없이 한글,영문,숫자만 입력 가능 (한글2자, 영문4자 이상)
+ 별명을 바꾸시면 앞으로 일 이내에는 변경 할 수 없습니다. +
+
+ + " maxlength="100" size="50" value='' > + + + + + + +
" maxlength="255" size="50" value="">
" maxlength="20" value="">
" maxlength="20" value="">
+ 주소 + 필수 + + " size="2" maxlength="3" value="" title="우편번호 앞자리"> + - + " size="2" maxlength="3" value="" title="우편번호 뒷자리"> + 주소찾기 + " size="50" value="" title="행정구역주소"> + " size="50" value="" title="상세주소"> +
+ + + + + + + + + + + + + + + + + += $config['cf_icon_level']) { ?> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
기타 개인설정
+ + + + + + + 이미지 크기는 가로 픽셀, 세로 픽셀 이하로 해주세요.
+ gif만 가능하며 용량 바이트 이하만 등록됩니다. +
+
+ > + 정보 메일을 받겠습니다. +
+ > + 핸드폰 문자메세지를 받겠습니다. +
+ + > + 다른분들이 나의 정보를 볼 수 있도록 합니다. + + 정보공개를 바꾸시면 앞으로 일 이내에는 변경이 안됩니다. + +
정보공개 + + + 정보공개는 수정후 일 이내, 까지는 변경이 안됩니다.
+ 이렇게 하는 이유는 잦은 정보공개 수정으로 인하여 쪽지를 보낸 후 받지 않는 경우를 막기 위해서 입니다. +
+
자동등록방지
+ +
+ + 취소 +
+
+ + diff --git a/mobile/skin/member/basic/register_form_update.tail.skin.php b/mobile/skin/member/basic/register_form_update.tail.skin.php new file mode 100644 index 000000000..414359db4 --- /dev/null +++ b/mobile/skin/member/basic/register_form_update.tail.skin.php @@ -0,0 +1,5 @@ + diff --git a/mobile/skin/member/basic/register_result.skin.php b/mobile/skin/member/basic/register_result.skin.php new file mode 100644 index 000000000..383393a40 --- /dev/null +++ b/mobile/skin/member/basic/register_result.skin.php @@ -0,0 +1,43 @@ + + +
+ + + +

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

+ + +

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

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

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

+ + +

+ 회원님의 패스워드는 아무도 알 수 없는 암호화 코드로 저장되므로 안심하셔도 좋습니다.
+ 아이디, 패스워드 분실시에는 회원가입시 입력하신 패스워드 분실시 질문, 답변을 이용하여 찾을 수 있습니다. +

+ +

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

+ + + +
diff --git a/mobile/skin/member/basic/scrap.skin.php b/mobile/skin/member/basic/scrap.skin.php new file mode 100644 index 000000000..711a0b875 --- /dev/null +++ b/mobile/skin/member/basic/scrap.skin.php @@ -0,0 +1,37 @@ + + +
+

+ + + + + + + + + + + + + + + + + + + + + + + + "; ?> + +
스크랩 목록
번호게시판제목보관일시삭제
삭제
자료가 없습니다.
+ + + + +
diff --git a/mobile/skin/member/basic/scrap_popin.skin.php b/mobile/skin/member/basic/scrap_popin.skin.php new file mode 100644 index 000000000..117d473c1 --- /dev/null +++ b/mobile/skin/member/basic/scrap_popin.skin.php @@ -0,0 +1,34 @@ + + +
+

스크랩하기

+ +
+ + + + + + + + + + + + + + + +
제목 확인 및 댓글 쓰기
제목
+ +

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

+ +
+ +
+
+
\ No newline at end of file diff --git a/mobile/skin/member/basic/zip.skin.php b/mobile/skin/member/basic/zip.skin.php new file mode 100644 index 000000000..e00e1ff0a --- /dev/null +++ b/mobile/skin/member/basic/zip.skin.php @@ -0,0 +1,62 @@ + + +
+

+ +
+ + + + + + +
+ + + +
+ + + + + + + 0) { ?> +
+
건 가나다순 정렬
+
+
    + +
  • -
  • + +
+
+
+ +

검색결과가 끝났습니다.

+ +
+ 창닫기 +
+ + + +
diff --git a/mobile/skin/member/kcpcert/formmail.skin.php b/mobile/skin/member/kcpcert/formmail.skin.php new file mode 100644 index 000000000..c04369eec --- /dev/null +++ b/mobile/skin/member/kcpcert/formmail.skin.php @@ -0,0 +1,90 @@ + + +
+

님께 메일보내기

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
메일쓰기
형식 + + + +
자동등록방지
+ +
+ + 창닫기 +
+ + +
+ + diff --git a/mobile/skin/member/kcpcert/img/reg_result_logo.jpg b/mobile/skin/member/kcpcert/img/reg_result_logo.jpg new file mode 100644 index 0000000000000000000000000000000000000000..9bdf4f72df0a38fc4b3b112a1930818bce46f6e8 GIT binary patch literal 2108 zcma)5c{~*Q7XQs+m_ZC<7^A{4BeIM&M3#$ZWU?h$Q=`#tA;KIilOe$F}nd=LLU|058mSle0y2owO? zb^!i7K>recA}|U-037^90{$Y{VNN@9+z-&2wiyV27$gJ8-v{)+fc?aO#-R|%wz^$E zg}>YIn*dq}C;>ef1P!2Q2n-G3w}B7$YxL;i>RwD3|E@h!(S;cL- zkCuxe=3{m7>Gn;P+WUTRKZKQV$~ckUX}23z_bKn?bRyk*0Tb6VUYYJjyy?_Abr=P= zewbd96ZyskIOGfDFeI@TMrCUm^nl#{>O6v7&$+?ZHYO=q?S64Znn!GGUUy}`OmL`u zv#R4?SrI)~`And&+Bm!6Rmte1*0MJ!SDqf#ew?A4K=o5dudAil`R`*}-?!+`zeUkc z)cqzWi2^8x#z|*nW*2Uua3OE(g>7y%RAp&G%V%f=`$B5hG?N=uZa=MMV4US_*7e2F z(pg+9tUoC~ut~l#!uUqi$gZvOLUOsgidT+=uoc38|0!^(hs8k}9ea{u)oqX6PnCKm zLzqR0wB;XkOV+yO6}e;PftbfHXPhRho_R@!SeH4%Ys!L83I84u;MI*ePf@z@?pl$S zOQz>d#Hpdt!I4J znzj4kYh`L^$W(OILypOflpZ}jTSAi;hZ;d|7ensG6c0{a8=7jYOYMlT3|SzQ1}2`F ztJvA);gS3!G^nrjhN`Ug^jUo805O*0$GY8j!_gr#3I8swy_qbK?w>(2bWfj?oWDMa z{~j`;{)$Gm$dezz>$j)feCyj6rSaa_%721j+RltV#GiN0O8ozh64b|VW53w2V+ zWJE@1X}F9VW_Ty}?w!#?zu_+NL3vt2_;4QX6)`tSSn*)V#Y;jZ1oi6E0c8Ax7<^4) zX44?kyKZ{fN+qN$Bt;Y!$ufjcrRnse~gA}i=AO_=EybJ6Ly&h2UQLDtzgzI zYYxNqZe%$IIVCz>f)lYhP5n%%f^b2I6<&Qft~d2VjNdF5KT=T@G`sNdFgD3e=G@wB zYLz%fnX6DLv~@?`g>7kPUW9X=%Ya4{Q7SGkpoSY{noJi}&y^}{lwrSb^L^*33 zPUC6IS$P7ByOdOqdR2Z~w(H^fcy46S2<0^T7*wYB6e%KEOaZ(5rNpOtB;dF&cbgZh zuDBL_lu=TYGntDajqa^^_aST;Vc5?w%2o_LsvYi^{V>$jqkA(s>d6|a+sO0)$>j5E za$pjoPZerwB?5$+;KC8(s~L~$zYhj#%6;g4vBJ_hDq3rck-#nTsGYZsK!HLjs_<*|Eog_3q%MI_!Cwd00rrvAa39m9vj+rNF=w7dv!dA72e(tF|3APef_-8t#0F6oJs6P13eaUzA2tR_)iv1dIkUh literal 0 HcmV?d00001 diff --git a/mobile/skin/member/kcpcert/login.skin.php b/mobile/skin/member/kcpcert/login.skin.php new file mode 100644 index 000000000..68fd902df --- /dev/null +++ b/mobile/skin/member/kcpcert/login.skin.php @@ -0,0 +1,54 @@ + + +
+

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

회원로그인 안내

+

+ 회원아이디 및 패스워드가 기억 안나실 때는 아이디/패스워드 찾기를 이용하십시오.
+ 아직 회원이 아니시라면 회원으로 가입 후 이용해 주십시오. +

+ +
+ + + +
+ +
+ + diff --git a/mobile/skin/member/kcpcert/login_check.skin.php b/mobile/skin/member/kcpcert/login_check.skin.php new file mode 100644 index 000000000..ef6ec51d6 --- /dev/null +++ b/mobile/skin/member/kcpcert/login_check.skin.php @@ -0,0 +1,5 @@ + diff --git a/mobile/skin/member/kcpcert/member_confirm.skin.php b/mobile/skin/member/kcpcert/member_confirm.skin.php new file mode 100644 index 000000000..00973554b --- /dev/null +++ b/mobile/skin/member/kcpcert/member_confirm.skin.php @@ -0,0 +1,44 @@ + + +
+

+ +

+ 패스워드를 한번 더 입력해주세요. + 회원님의 정보를 안전하게 보호하기 위해 패스워드를 한번 더 확인합니다. +

+ +
+ + + +
+ 회원아이디 + + + + + +
+ +
+ + + +
+ + diff --git a/mobile/skin/member/kcpcert/memo.skin.php b/mobile/skin/member/kcpcert/memo.skin.php new file mode 100644 index 000000000..3ead603db --- /dev/null +++ b/mobile/skin/member/kcpcert/memo.skin.php @@ -0,0 +1,44 @@ + + +
+

+ + + + + + + + + + + + + + + + + + + + + + + "; } ?> + +
+ 전체 쪽지
+
보낸시간읽은시간관리
삭제
자료가 없습니다.
+ +

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

+ + +
\ No newline at end of file diff --git a/mobile/skin/member/kcpcert/memo_form.skin.php b/mobile/skin/member/kcpcert/memo_form.skin.php new file mode 100644 index 000000000..328a341b9 --- /dev/null +++ b/mobile/skin/member/kcpcert/memo_form.skin.php @@ -0,0 +1,54 @@ + + +
+

쪽지보내기

+ + + +
+
+ + + + + + + + + + + + + + + + +
쪽지쓰기
+ + 여러 회원에게 보낼때는 컴마(,)로 구분하세요. +
자동등록방지 + +
+
+ +
+ + 창닫기 +
+ +
+ + diff --git a/mobile/skin/member/kcpcert/memo_view.skin.php b/mobile/skin/member/kcpcert/memo_view.skin.php new file mode 100644 index 000000000..41ea15ead --- /dev/null +++ b/mobile/skin/member/kcpcert/memo_view.skin.php @@ -0,0 +1,48 @@ + + +
+

+ +
+

쪽지 내용

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

+ +

+
+ +
\ No newline at end of file diff --git a/mobile/skin/member/kcpcert/password.skin.php b/mobile/skin/member/kcpcert/password.skin.php new file mode 100644 index 000000000..6f597f001 --- /dev/null +++ b/mobile/skin/member/kcpcert/password.skin.php @@ -0,0 +1,49 @@ + + +
+

+

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

+ +
+ + + + + + + + +
+ + + +
+
+ + + +
+ + diff --git a/mobile/skin/member/kcpcert/password_lost.skin.php b/mobile/skin/member/kcpcert/password_lost.skin.php new file mode 100644 index 000000000..c05fe4f48 --- /dev/null +++ b/mobile/skin/member/kcpcert/password_lost.skin.php @@ -0,0 +1,45 @@ + + +
+

아이디/패스워드 찾기

+ +
+
+

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

+ + +
+ +
+ + 창닫기 +
+
+
+ + diff --git a/mobile/skin/member/kcpcert/profile.skin.php b/mobile/skin/member/kcpcert/profile.skin.php new file mode 100644 index 000000000..f26489dbf --- /dev/null +++ b/mobile/skin/member/kcpcert/profile.skin.php @@ -0,0 +1,43 @@ + + +
+

님의 프로필

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

인사말

+

+
+ +
+ 창닫기 +
+
diff --git a/mobile/skin/member/kcpcert/register.skin.php b/mobile/skin/member/kcpcert/register.skin.php new file mode 100644 index 000000000..f6302728e --- /dev/null +++ b/mobile/skin/member/kcpcert/register.skin.php @@ -0,0 +1,49 @@ + + +
+ +
+

회원가입약관

+ +
+ + +
+
+ +
+

개인정보수집이용안내

+ +
+ + +
+
+ +
+

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

+ +
+ +
+ + diff --git a/mobile/skin/member/kcpcert/register_form.skin.php b/mobile/skin/member/kcpcert/register_form.skin.php new file mode 100644 index 000000000..10b7fbde4 --- /dev/null +++ b/mobile/skin/member/kcpcert/register_form.skin.php @@ -0,0 +1,354 @@ + + + + +
+ + + + + + date("Y-m-d", G4_SERVER_TIME - ($config['cf_nick_modify'] * 86400))) { // 별명수정일이 지나지 않았다면 ?> + + + + + + + + + + + + + + + + + + +
사이트 이용정보 입력
+ > + + 영문자, 숫자, _ 만 입력 가능. 최소 3자이상 입력하세요. +
>
>
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
개인정보 입력
+ > + 공백없이 한글만 입력하세요."; } ?> +
+ + + + + 공백없이 한글,영문,숫자만 입력 가능 (한글2자, 영문4자 이상)
+ 별명을 바꾸시면 앞으로 일 이내에는 변경 할 수 없습니다. +
+
+ + " maxlength="100" size="50" value='' > + + + + + + +
" maxlength="255" size="50" value="">
" maxlength="20" value="">
+ + + + " maxlength="20" value=""> + + + + +
+ 주소 + 필수 + + " size="2" maxlength="3" value="" title="우편번호 앞자리"> + - + " size="2" maxlength="3" value="" title="우편번호 뒷자리"> + 주소찾기 + " size="50" value="" title="행정구역주소"> + " size="50" value="" title="상세주소"> +
+ + + + + + + + + + + + + + + + + += $config['cf_icon_level']) { ?> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
기타 개인설정
+ + + + + + + 이미지 크기는 가로 픽셀, 세로 픽셀 이하로 해주세요.
+ gif만 가능하며 용량 바이트 이하만 등록됩니다. +
+
+ > + 정보 메일을 받겠습니다. +
+ > + 핸드폰 문자메세지를 받겠습니다. +
+ + > + 다른분들이 나의 정보를 볼 수 있도록 합니다. + + 정보공개를 바꾸시면 앞으로 일 이내에는 변경이 안됩니다. + +
정보공개 + + + 정보공개는 수정후 일 이내, 까지는 변경이 안됩니다.
+ 이렇게 하는 이유는 잦은 정보공개 수정으로 인하여 쪽지를 보낸 후 받지 않는 경우를 막기 위해서 입니다. +
+
자동등록방지
+ +
+ + 취소 +
+
+ + + + diff --git a/mobile/skin/member/kcpcert/register_form_update.head.skin.php b/mobile/skin/member/kcpcert/register_form_update.head.skin.php new file mode 100644 index 000000000..a01467aad --- /dev/null +++ b/mobile/skin/member/kcpcert/register_form_update.head.skin.php @@ -0,0 +1,41 @@ + \ No newline at end of file diff --git a/mobile/skin/member/kcpcert/register_form_update.tail.skin.php b/mobile/skin/member/kcpcert/register_form_update.tail.skin.php new file mode 100644 index 000000000..692fc94e8 --- /dev/null +++ b/mobile/skin/member/kcpcert/register_form_update.tail.skin.php @@ -0,0 +1,17 @@ + diff --git a/mobile/skin/member/kcpcert/register_result.skin.php b/mobile/skin/member/kcpcert/register_result.skin.php new file mode 100644 index 000000000..383393a40 --- /dev/null +++ b/mobile/skin/member/kcpcert/register_result.skin.php @@ -0,0 +1,43 @@ + + +
+ + + +

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

+ + +

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

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

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

+ + +

+ 회원님의 패스워드는 아무도 알 수 없는 암호화 코드로 저장되므로 안심하셔도 좋습니다.
+ 아이디, 패스워드 분실시에는 회원가입시 입력하신 패스워드 분실시 질문, 답변을 이용하여 찾을 수 있습니다. +

+ +

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

+ + + +
diff --git a/mobile/skin/member/kcpcert/scrap.skin.php b/mobile/skin/member/kcpcert/scrap.skin.php new file mode 100644 index 000000000..711a0b875 --- /dev/null +++ b/mobile/skin/member/kcpcert/scrap.skin.php @@ -0,0 +1,37 @@ + + +
+

+ + + + + + + + + + + + + + + + + + + + + + + + "; ?> + +
스크랩 목록
번호게시판제목보관일시삭제
삭제
자료가 없습니다.
+ + + + +
diff --git a/mobile/skin/member/kcpcert/scrap_popin.skin.php b/mobile/skin/member/kcpcert/scrap_popin.skin.php new file mode 100644 index 000000000..117d473c1 --- /dev/null +++ b/mobile/skin/member/kcpcert/scrap_popin.skin.php @@ -0,0 +1,34 @@ + + +
+

스크랩하기

+ +
+ + + + + + + + + + + + + + + +
제목 확인 및 댓글 쓰기
제목
+ +

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

+ +
+ +
+
+
\ No newline at end of file diff --git a/mobile/skin/member/kcpcert/zip.skin.php b/mobile/skin/member/kcpcert/zip.skin.php new file mode 100644 index 000000000..e00e1ff0a --- /dev/null +++ b/mobile/skin/member/kcpcert/zip.skin.php @@ -0,0 +1,62 @@ + + +
+

+ +
+ + + + + + +
+ + + +
+ + + + + + + 0) { ?> +
+
건 가나다순 정렬
+
+
    + +
  • -
  • + +
+
+
+ +

검색결과가 끝났습니다.

+ +
+ 창닫기 +
+ + + +
diff --git a/mobile/skin/new/basic/img/dot_bg.gif b/mobile/skin/new/basic/img/dot_bg.gif new file mode 100644 index 0000000000000000000000000000000000000000..bd5f0a0d7765776b044235ceab32205da7735490 GIT binary patch literal 43 scmZ?wbhEHbWM*JwXkcJCfByXc|Nj+#vM_*v4u}BBFfcK>1Tk0x00&tKx&QzG literal 0 HcmV?d00001 diff --git a/mobile/skin/new/basic/img/list_top_01.gif b/mobile/skin/new/basic/img/list_top_01.gif new file mode 100644 index 0000000000000000000000000000000000000000..200b1e10633a6bb8887e94285d1f5eab5d853739 GIT binary patch literal 58 zcmZ?wbhEHbWMNQbXkcXc4+e@qSr{1@7#VaJfB+=Jz$Dlr&$#jp|Kd4YZgodT&6W>f HV6X-N1HBPv literal 0 HcmV?d00001 diff --git a/mobile/skin/new/basic/img/list_top_02.gif b/mobile/skin/new/basic/img/list_top_02.gif new file mode 100644 index 0000000000000000000000000000000000000000..60cbe21c65f9f6e1b6157911a673091579a3f724 GIT binary patch literal 70 zcmZ?wbhEHbWMxofXkcXc4+e@qSr{1@7#VaJfB+=Jz$DuuTe$MTj~SEnZiN`$E&ui= TQ(k@AL(XOXY_fU*3=Gx)BFPs! literal 0 HcmV?d00001 diff --git a/mobile/skin/new/basic/img/list_top_03.gif b/mobile/skin/new/basic/img/list_top_03.gif new file mode 100644 index 0000000000000000000000000000000000000000..05b85066c03a00f3241168af9850f55213381e6b GIT binary patch literal 853 zcmZ?wbhEHbWMxof_|C}i|Nno6Q7{?;BQ*pRf3h$#FfcOcfC2!NCm1-47#KNZGz=UX yn%D&8OlC}Y=+wp_ + +

모바일 버전

+

모바일 버전

+

모바일 버전

+

모바일 버전

+

모바일 버전

+

모바일 버전

+ + + +
+ 상세검색 + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +"; +?> + +
그룹게시판제목이름일시
게시물이 없습니다.
+ + diff --git a/mobile/skin/outlogin/basic/img/admin.gif b/mobile/skin/outlogin/basic/img/admin.gif new file mode 100644 index 0000000000000000000000000000000000000000..adf17872e76b9b490a810b3b45efe575c880a917 GIT binary patch literal 111 zcmZ?wbhEHbRAk_1n8?I%!Nd36iwFPz|7T!eQ2fcl$iTqFpaWzxfaDpN9Hum_JS|%` zXO8Bj?#*EejrUpSU!R(IV!^5v({!4Ol-`_umus%z`}p6U2+qnK;Tzbj1dEULe&+1; P)49a9Bui9;fx#L8lFcdn literal 0 HcmV?d00001 diff --git a/mobile/skin/outlogin/basic/img/leave_button.gif b/mobile/skin/outlogin/basic/img/leave_button.gif new file mode 100644 index 0000000000000000000000000000000000000000..b7ea257838eb9379187a7e809b2f0b4057a179ab GIT binary patch literal 203 zcmV;+05tzcNk%w1VNL)P0FeLy!NI{xOH1S9k=7}0*%C^m#2J#Uga&6$ledmt;^0;iY;?9`R@o+!} z%(R>-jml+Cs%S2rr`nV@^NEw--toa5eYM1E^xJl%0d)Ff?dF|7)_t&L=I00W)1}3YX{*|ZS@-LpVc-T(RnD^`UvMk8QJDZXR>qhVRJ6wj+x^cKB#bKeOyJXRntjD}yxv%@8N9 literal 0 HcmV?d00001 diff --git a/mobile/skin/outlogin/basic/img/login_button.gif b/mobile/skin/outlogin/basic/img/login_button.gif new file mode 100644 index 0000000000000000000000000000000000000000..4402ac228b5ef585d51c52db321285751258df3d GIT binary patch literal 1473 zcmd6k{Xf$Q0LQ<3v@!G0^3)Wv&=B%4R32XBJeBJ~dUWDa*HunLI+e%b=GiimCd~7! zsJ0H7%|o4s4Z~)$jm<;mPS;$nt9EsN#l3%c|N8#CUY~%#{RH_3g+8r# zEKqbwR;c_h6$N8vi78%gn^p|UR_TI83QyWNEvE_O<)dPnKtUQ6-5-;d42i}T7Y656 z^M+>BYBlh`#QbmQf4gkI`s*ivhWd7BdPZhe_MN*qxk1Fd{DQ)w;*y|DVlKJ7qAZjY z@{m&fs2YK=gaqz3)i=2?~XL&{NY}vyBST#o(F^^#B0gZtMvL zGqHp{-AJtmRcuLJKgKq|U}(gG=V`-d5;`?zoW!9LX}>Pcc7aBR+Z*knv+M901<6|B z7)tCxqja5mvxc*qYXt4bU8vgTz+3!ds&Y&mdD&5mNR7uJYj;4sUtH#03n!s{}LcWP_S+TW)U9uQox? zeFHe_fw|$Hr`Oc-S4KHt<>3;Y0!1{hmXFs96`~UilUS!-Ypm$YZ9-pVY z3clv=4&}v}RiUyXH(PgKyrOi}Y_@c+KE<3os*8>9IVoLdK`@W3Y`4~31z;1g_iGac zG2+&iX@-+&qpv>k^>e9m#1e_FI22q5QCvF$QNEF0!Q?2eJUAD8roZS5)xrx+(3z=$|F&ZA92BO z@=q!@vJ1;)N2%70!9;Y(2dbM+(Yg`YuJaK8;{G2ekAt1b#+J2y)TTF0>+%?3vjInV z$hkvka*$SCzH_+^M~V+}`s}#LXZJEAEW<8>RaaSMQasSy*5qVq2mSPbbjds8`pNN2 zqqq$V=F3ATkU{lFZ?L?KCv?3-urS>o9}NVy2LiIz?SZ>NDbn_J;f!DLVCn5>wH7=k zEEo{N=)nLIN(a(BEN$Z;pvs^t9F=o6>IZ`keOB-@XrUGYq|*1+0kxRXHMKOjalm$l z@!MLvf2cY+!xO#v!&CB8YhVx&;|&9a=z2rUq4Ym_cH7%S@;{$frm;+s*n@-MvX-?} z8%RnA=SJ&Tu9tIU9|*B6tpk%ithff5@*mAp;TqDeCken^>-q8Lo)D7TvbUXim4~l> zr}OIo^Ec~Gu8+qRg?_X>)hj&_Em=&=`n_I68gEAhk21KsJe^j3=}`%9-8a~g?LQ;Q zQ@u|bFA7s%mnUsEWZ>`72W}#B1{O{a&!+xT!Oh)?IKbf5LJsF_^%r=oCPx(wc)D|B Z$9xNRtPOY}tkT2Isy}V$=pz8ne*q52iUa@v literal 0 HcmV?d00001 diff --git a/mobile/skin/outlogin/basic/img/login_down.gif b/mobile/skin/outlogin/basic/img/login_down.gif new file mode 100644 index 0000000000000000000000000000000000000000..8c684e938af17ec552a16f19a20c3c2d8f6397d5 GIT binary patch literal 132 zcmZ?wbhEHbyu-l9(7?d(|Ns9VKYl3wWMKdS9S{MMVPJ}O>05dFE&t*tKEfreTNTU|EXn{*%IuQUkTpQb#~IC jptaw3Ka4y0q{ykqZ}s&z+kW%*pML&j*WWyS1_o;YNxDHb literal 0 HcmV?d00001 diff --git a/mobile/skin/outlogin/basic/img/login_id.gif b/mobile/skin/outlogin/basic/img/login_id.gif new file mode 100644 index 0000000000000000000000000000000000000000..e84382fea5825d59e3277cb5cc89e7e3ceb96155 GIT binary patch literal 489 zcmZ?wbhEHbRAvxoc*elcbL@6;aq*8IKmPy!&oBz;9s-I#S-^JcfJjiBFtEEdFgG=~ zw6?W(bar+3^!D{nm^f+jl&RCE_cL@bwlL0{G^>41^Ww$53@cW&En{9fapCH@O>36V Yo;!cW&Rx6r?A^Ejz`;X@n;IFc0c)x>#Q*>R literal 0 HcmV?d00001 diff --git a/mobile/skin/outlogin/basic/img/login_ing_icon.gif b/mobile/skin/outlogin/basic/img/login_ing_icon.gif new file mode 100644 index 0000000000000000000000000000000000000000..4ecc023d2110d10a3566cf1e3030f97605113f6a GIT binary patch literal 154 zcmZ?wbhEHblw^=**v!E2|KrX79fkiFcK@H(@c+QX|A(gkzrFDPmA?P?SN;G0p8*3X z{$v4*>3~R(84N7$1}8mN@3nY+cK81TjXo7t1&#ov{D26D#Bdi{a{0dkKXL_Q#lx{0clA&LjV8( literal 0 HcmV?d00001 diff --git a/mobile/skin/outlogin/basic/img/login_ing_top.gif b/mobile/skin/outlogin/basic/img/login_ing_top.gif new file mode 100644 index 0000000000000000000000000000000000000000..a5a918b6112c839f2c4dfdb8868f13e6da1603b5 GIT binary patch literal 750 zcmV`|NQ>`|NH*_{QLj>{Qv*S$;tcs z`}+F&%F4?5`T76<|M>X$A^8LV00000EC2ui0Nem7000F4&`J5Ky*TU5yZ>M)j$~<` z)ij}O>%MR-pX+Sjc&^LT?*G6b&LJ!sk4O$N$!t1@pN4`VrB18ZtJccRcDLRzc>FDk z&E&H>%|^S|Z+2(dStJ&A{5{X#`}Kf*fq#O9golHPhKh)bj*XCvl8=*+a~%y0RGOKa zo}HkaqMxIoq^G8-rK_l{s;#iEvaYnTwX>cZbQ*1NzP-S4!oS18#K*?TZ@L|kl+Vu5 zmDAAF($(14+LO#2xZk(ow&URB;^pY)>gK228_LLBD)aR9_V@Vt`uqI-`NaUkxYMvL z8z6rO6DnNDke{`Og$8Cw$1YUEix@L%oVSi*Cy5yU;E7~lZ@>fr0vx0?pmL+jmka}r zYyk2?!J7;02{?cffyx372$)QX5C8xbMjaSks`TiDrB0hBl`4TL)Tl7$LBzSBrUj23 z8{88Rpsd-lDS;NnnsjQ_s8icIl{;51#y z#|#JOttYcGO%1y;aNTCFfMl}-4k$d__^IM~i5){_-0*W*ds}07#f)ihI>D|Rt}e|x zweO>L-7a(;z@F`Oejfk^sFSQ@2_{D~eQS04Zpe&-Ur+e?o@IE+H$S|`Qh40007( zoR6u??T>_Fym1^`i43(x=n literal 0 HcmV?d00001 diff --git a/mobile/skin/outlogin/basic/img/login_memo.gif b/mobile/skin/outlogin/basic/img/login_memo.gif new file mode 100644 index 0000000000000000000000000000000000000000..c5902e65a27f23e42e57bb4673f63361ae68d423 GIT binary patch literal 164 zcmV;V09*e@Nk%w1VNL)P0FeLy!NI{xOH1S9|!zlVm5lkoS zq-q|jRtMAo2!|EH;8yADdSmKjTFv-^%CqxZ3pdDl?=wEXC*$x37kD(7w_upa7=zUa Sd0@gpS!sD`5vi$A0029two2## literal 0 HcmV?d00001 diff --git a/mobile/skin/outlogin/basic/img/login_modify.gif b/mobile/skin/outlogin/basic/img/login_modify.gif new file mode 100644 index 0000000000000000000000000000000000000000..d1ffc16ce3806524defa661d62304ff9069dc2b3 GIT binary patch literal 194 zcmV;z06qUlNk%w1VNL)P0FeLy!NI{xOH1S9k=7}0*8no>ZoH63Q#@wvwfZwpvg9UxGhmLh~{Sw1j zGil3tcCj9=R-;+3yrSc1;u5<|keDn*de6&8&}p0^0Cf6}hmGd5D6kC6FjNKv7gl%TNFSJHMe=ssI20 literal 0 HcmV?d00001 diff --git a/mobile/skin/outlogin/basic/img/login_pw.gif b/mobile/skin/outlogin/basic/img/login_pw.gif new file mode 100644 index 0000000000000000000000000000000000000000..6f82fc2b256d785731f902192dae679ca233e5ad GIT binary patch literal 492 zcmZ?wbhEHbRAvxoc*elcbL@6;aq*8IKmPy!&oBz;9s-I#S-^JcfJjiBFtB?zFgG=~ zw6?W(bar+3^!D{nm^f+jl&RCE_cP4sn$^ZQzlpJVQ6IyyWvxpVt!7>_vwi-mwVNl* cUAcYT^qre`&)&EHz`;X@j~qQVt&zbR02+@sF8}}l literal 0 HcmV?d00001 diff --git a/mobile/skin/outlogin/basic/img/login_pw_find_button.gif b/mobile/skin/outlogin/basic/img/login_pw_find_button.gif new file mode 100644 index 0000000000000000000000000000000000000000..d74df4d04979c2696ba7fbb8a551acd9998d8945 GIT binary patch literal 216 zcmV;}04M)PNk%w1VOjtb0FeLy!NI{xOH1S97Y$7$Y*s7I<|?xalayNVep-mZ{10Re4idg~<8|0e3S?J7!sn>mr-W Sy8`0@94tKC(Q7Fym1^`i43(x=n literal 0 HcmV?d00001 diff --git a/mobile/skin/outlogin/basic/img/login_top.gif b/mobile/skin/outlogin/basic/img/login_top.gif new file mode 100644 index 0000000000000000000000000000000000000000..d9b2ac8c36439138bf9925070127a4e591468504 GIT binary patch literal 783 zcmV+q1MvJuNk%w1VcY;J0J8u9|J08D{{H>{{r>*^|NQ>`|NHy@{QUp_R&=?^$;tcs z`}+F&%F4?5`T76<|M>X$A^8LV00000EC2ui0Nem7000F4&`J5Ky*TU5yZ>M)j$~<` z)ij}O>%MR-pX+Sjc&^LT?*G6b&LJ!sk4O$N$!t1@pN4`VrB18ZtJccRcDLRzc>FDk z&E&H>%|^S|Z+2(dStJ&A{5{X#`}Kf*fq#O9golHPhKh)bj*XCvl8=*+a~%y0RGOKa zo}HkaqMxIoq^G8-rK_l{s;#iEvaYnTwX>cZbQ*1NzP-S4!oS18#K*?TZ@L|kl+Vu5 zmDAAF($(14+LO#2xZk(ow&URB;^pY)>gK228_LLBD)aR9_V@Vt`uqI-`NaUkxYMvL z8z6rO6DnNDke{`Og$8Cw$1YUEix@L%oVSi*Cy5yU;E7~lPr!r#0UV?ppmL+jmka}r zYyk2?!J7;01u%f}fXV_62$)Pc4}nn$MiDqjdNe80rc9qYWvW!g(FswdR)wncDnp1k z7u2-iv15aK0RX67t2QOjqF1L@l}a~m*SSl#;`M4b?^C~W>9J*d&um3aV=K&5rgQLM zqHw9+wJSNVQ_Fh)Vx8O9>)*;M922f5vouW&yE25`X0L$gwFC^%lMK}=ZNGr`X5Gv? zx8>ZsCA?N^53F&qs4*E%*Lb+S+O>H@&+NHxZ`{$R{|@cE-tu*cA1nr_Gp%R|CgJ*~ zx_&a{?7H7?4$M{Xd3&beg{i7;DPuYS5SCm9fsh85MJ~hJK>E- zOoSL_$WML&?WbUW8ipvM3Lj#_;Dq3esA7mHic=wn@x*B1j4;wDBa9vzq$7VjmdN9e zK9+dmVMI1)WQ#>2d1R8gB*%e`P}V5rjZ{WiB^BXS(Bqasav7wTV0P)pB_1%j`%aKk=7}0*%C^nw21`KK^kEOO&cf{u0pfT>l#eBJ0CTz2 z5hY79mWZ8H^fXbcw%YJ}4Lt#5^5e!;;=I + +
+

회원로그인

+ +
+
+ + + + + + +
+ 회원가입 + 정보찾기 + + +
+
+
+
+ + + diff --git a/mobile/skin/outlogin/basic/outlogin.skin.2.php b/mobile/skin/outlogin/basic/outlogin.skin.2.php new file mode 100644 index 000000000..6f1f75b20 --- /dev/null +++ b/mobile/skin/outlogin/basic/outlogin.skin.2.php @@ -0,0 +1,43 @@ + + + +
+
+

나의 회원정보

+ + 관리자 모드 +
+ + +
+ + + diff --git a/mobile/skin/poll/basic/img/a.gif b/mobile/skin/poll/basic/img/a.gif new file mode 100644 index 0000000000000000000000000000000000000000..c8dc185ac31657d75ac86fbcfb72d14856164f53 GIT binary patch literal 61 zcmZ?wbhEHbmaQtzf5?-G!5RSRA{Na6 literal 0 HcmV?d00001 diff --git a/mobile/skin/poll/basic/img/bg_mc.gif b/mobile/skin/poll/basic/img/bg_mc.gif new file mode 100644 index 0000000000000000000000000000000000000000..dd68268856310b53f701f2658c563bf07d12da0f GIT binary patch literal 82 zcmZ?wbhEHbWM+_NSj50^^5n@27cQJRbLRK&-#>r;{PpV>0~jd&WC7DUAQGgOfmz%` dm{oa+#N u#8As&icwm!vXf_SZj?!=gjmrNR<7GGX0Ew0HQRc1WY4~{!kSB17_0$)WF(mY literal 0 HcmV?d00001 diff --git a/mobile/skin/poll/basic/img/bg_mcr.gif b/mobile/skin/poll/basic/img/bg_mcr.gif new file mode 100644 index 0000000000000000000000000000000000000000..8a164468b8fc472ed770b29fb08ed662368b0ec7 GIT binary patch literal 94 zcmZ?wbhEHbWMPnISj50^>eQ+8=g*%!dGhz~-~a#rKXc~HuV24@{`{%rolnw>7PHTbl|1(9j@5;ODh$>DS1>EJ literal 0 HcmV?d00001 diff --git a/mobile/skin/poll/basic/img/bg_ml.gif b/mobile/skin/poll/basic/img/bg_ml.gif new file mode 100644 index 0000000000000000000000000000000000000000..2f9aac8e79f5aecdba80a304093a759799942ab9 GIT binary patch literal 50 zcmZ?wbhEHbWM^Pxn8?8J;K75hU%&qU|DS<@LGdRGkYr%c0TCd11}5en#YhHg0HBi% ARsaA1 literal 0 HcmV?d00001 diff --git a/mobile/skin/poll/basic/img/bg_mr.gif b/mobile/skin/poll/basic/img/bg_mr.gif new file mode 100644 index 0000000000000000000000000000000000000000..8e9a474b798aa88bf128fd0ae37c13f4f79cb0b0 GIT binary patch literal 52 zcmZ?wbhEHbWMg1rn8?8J;K75hU%&qU|DS<@LGdRGkYr%c0TCd11}4@if{9Im4Aua> C&<-mA literal 0 HcmV?d00001 diff --git a/mobile/skin/poll/basic/img/bg_t.gif b/mobile/skin/poll/basic/img/bg_t.gif new file mode 100644 index 0000000000000000000000000000000000000000..a505103e6d884327cbbe6865140eab2891d03458 GIT binary patch literal 50 zcmZ?wbhEHbWMp7xn8?8J;K75hU%&qU|DS<@LGdRGkYr%c0TCd11}5en#YhHg0HAvf ARsaA1 literal 0 HcmV?d00001 diff --git a/mobile/skin/poll/basic/img/bg_tl.gif b/mobile/skin/poll/basic/img/bg_tl.gif new file mode 100644 index 0000000000000000000000000000000000000000..785c791a57cbf2a4a07b7c58a51d85835c245154 GIT binary patch literal 60 zcmZ?wbhEHbWM^P!n8?iV;K76c|Nnpe`V~kj{$ycfU|?p@VE_Vx MPH0PTW@NAi0K(4|X8-^I literal 0 HcmV?d00001 diff --git a/mobile/skin/poll/basic/img/bg_tr.gif b/mobile/skin/poll/basic/img/bg_tr.gif new file mode 100644 index 0000000000000000000000000000000000000000..046a0684b8adb962bb1d800e5242da6496d78c8b GIT binary patch literal 60 zcmZ?wbhEHbWMg1wn8?iV;K76c|Nnpe`V~kj{$ycfU|?p@VE_VXH5jY`x_A_; literal 0 HcmV?d00001 diff --git a/mobile/skin/poll/basic/img/poll_button.gif b/mobile/skin/poll/basic/img/poll_button.gif new file mode 100644 index 0000000000000000000000000000000000000000..3a2a0c8a5fbd06e88d46dbf77e3486a426a65a07 GIT binary patch literal 534 zcmZ?wbhEHbbYqZYxXQrr_wV0dzkY4nwCTi&6Pq`0{`2S0j~_p_Zr!?T*RE~bww*tJ ze#@3EckkYP`0(MiYu6q;cyRjk=_gN~+`4t^3}7O-JD zAQI#!2DbkWlM6g_r20=RDe8Puq1Ssn-D_>s`WtJ^PH(UfId-DWQ*ZV}NtTI4dAm<` zE_~v6bDGaPCO=l-`>#AjI7Ba10>a}&3+v*u}j<~MftG2;=+pdF~FYGvW z=)|6VW#^9Go<8mN{OhOBo?CWl?wv!=b~BzjlXCp|$B#QV-+S=p#`~8~j$XQZ-(wQz z!34H@lFgsWS_7^foZzh5DaN((!-ho@nHYI`1Qs1*>F8H*?vnA`wB+PuW#g_J8A^-{ z0V+wS=6G&ic6PQ!@g)<5q^A>%nN^%PWWBbmxVYG3vX<$s$xA1&vQ&A^_1e1X>gtHi cak39fIIgcxINT-cy=_h8Cb7$tIGGr%0hlBKlK=n! literal 0 HcmV?d00001 diff --git a/mobile/skin/poll/basic/img/poll_view.gif b/mobile/skin/poll/basic/img/poll_view.gif new file mode 100644 index 0000000000000000000000000000000000000000..8155e7b6545ea3323f4ef6e689480c371abe9879 GIT binary patch literal 542 zcmZ?wbhEHbbYqZYxXQrr_wV0dzkY4nwCTi&6Pq`0{`2S0j~_p_Zr!?T*RE~bww*tJ ze#@3EckkYP`0(MiYu6q;cyRjk=_gN~+`4t^3}7O-JD zAQI#!2DbkWlM6g_r20=RDe8Puq1Ssn-D_>s`WtJ^PH(UfId-DWQ*ZV}NtTI4dAm<` zE_~v6bDGaPCO=*Q4~3l=#sr_WxqcH)dVZtJ$YZe-e=ws+N$?ML^`SnYA(kk8IjE9b5_ zeQD3-GYb!@ZRwk{@7Sf?v(~J4K6|I+#NO*3+io)6zI*=ulWRMcA3yp0*10e5?w?|v z!*_y+_cnt zs)B2W$wUSQ4Izu-S9eZsUVh$szC*c`fMW3pMj^#XTCu0Lth~HDV6mC1RqzQWCYQ}w lcTa6yeSLkx-o6!9DQj+S&bYiP_Vl*5xB3cBvM@4O0|46f1h)VH literal 0 HcmV?d00001 diff --git a/mobile/skin/poll/basic/img/q.gif b/mobile/skin/poll/basic/img/q.gif new file mode 100644 index 0000000000000000000000000000000000000000..39155f08bebe715df5b58605caa5b55b9ad53f8e GIT binary patch literal 71 zcmZ?wbhEHb8-mDE?#tk_-$wAOa-Mz$DSqmwEE7%p>j& WGwp&!cOrR9&wETe^ofC$!5RSf!WJO_ literal 0 HcmV?d00001 diff --git a/mobile/skin/poll/basic/img/title.gif b/mobile/skin/poll/basic/img/title.gif new file mode 100644 index 0000000000000000000000000000000000000000..7b4cba5ba85c1bb54428e271a5b71422202fa3e5 GIT binary patch literal 534 zcmZ?wbhEHbEMkymIKsg2@87@w|Ns8~_y6y||G)qL`3piou|Ggjpv=ENfB*dj%7a+{ z{{Wf4{{R0CRQu=u|NmF|e*gY`^5jXe=-^+!ew{jX>gUg&Kw$<{p!kyoET97-L3T2* z{!egARI;4*V&$xyTkG<8&gbji-clWU{odz&3I#v3xq6Q*Hah8IHU0dviBlFv8Hc_x zJ$<)o>w~->+Io}EKQ{S(?A*@64`qLJr#rvDR8!Lb{PpkJjI^w#)|U3>&bCfTslNUR z6DLicGIiSY88c^1mJpvkf5E~a&j3{nh?>|0jv+%;?N6eboX zCZR0?99*nBCW)OE>pLTL`oh_BXU|_ebFu%%t@D@e>{>R3kwN(Bv!_gq8z$bo{_ftD zOIJTne*gB%$EnYsPhC5i`}eoAL1t&~Zp*p1L2}Nwx3Nxb9IC8Oj-R}|gkAWorGkUO zJf|9dexsHxyz`tZCL2wjwpb)@62nwsjl0~Pm+pB^QchRuk>FHQt)IlkbK=DbhrM}h zPcM3}5>U5Za&4FAoQRdzRiZgqOgbhoFf=nUUwbR%{VnkHri{y3Oslr7jrIt;e=4`S zY+dZ8h!-#B9^QT~Zhvhi!!PF>{SObeb2~>KkqAt7?NfHvW8U%U{^>^J=(NTin;)I; UbgtI>v|~%k<;j7QIT;zO0aK11xc~qF literal 0 HcmV?d00001 diff --git a/mobile/skin/poll/basic/poll.skin.php b/mobile/skin/poll/basic/poll.skin.php new file mode 100644 index 000000000..8ca9199c5 --- /dev/null +++ b/mobile/skin/poll/basic/poll.skin.php @@ -0,0 +1,71 @@ + + +
+ + +
+
+

설문조사

+ 설문조사 관리 +

+
+
    + +
  • + +
+ +
+
+ + \ No newline at end of file diff --git a/mobile/skin/poll/basic/poll_result.skin.php b/mobile/skin/poll/basic/poll_result.skin.php new file mode 100644 index 000000000..78db05302 --- /dev/null +++ b/mobile/skin/poll/basic/poll_result.skin.php @@ -0,0 +1,110 @@ + + +
+

+ +
+

결과

+ +
+
전체
+
+
    + +
  1. +

    + + + 퍼센트 +

    +
    + +
    +
  2. + +
+
+
+
+ + +
+

이 설문에 대한 기타의견

+ + +
+
+

님의 의견

+ + +
+

+ +

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

+ + + + + + + + + + + + + + + + + + + +
자동등록방지
+ +
+ +
+
+ + +
+ + +
+

다른 투표 결과 보기

+ +
+ +
+ 창닫기 +
+
+ + \ No newline at end of file diff --git a/mobile/skin/popular/basic/img/dot_bg.gif b/mobile/skin/popular/basic/img/dot_bg.gif new file mode 100644 index 0000000000000000000000000000000000000000..bd5f0a0d7765776b044235ceab32205da7735490 GIT binary patch literal 43 scmZ?wbhEHbWM*JwXkcJCfByXc|Nj+#vM_*v4u}BBFfcK>1Tk0x00&tKx&QzG literal 0 HcmV?d00001 diff --git a/mobile/skin/popular/basic/img/icon.gif b/mobile/skin/popular/basic/img/icon.gif new file mode 100644 index 0000000000000000000000000000000000000000..49abe3199eddbcc4ec8b38c22c7f00ebdd69888e GIT binary patch literal 139 zcmZ?wbhEHbC-PA3y&4_wV=b-#>o*c>DJ4t5>fW7#N;Cd-nhTe;@-5 zDE?$&WMJTA&;f~q%wS-#Fz|G2GHm2H>F$^i!6Pd$kHdjWzDi7_YR6QY`O|8fr}riq cg&%WG7IdB6*tz1>mN*r^rlf-z7J>}c08T730RR91 literal 0 HcmV?d00001 diff --git a/mobile/skin/popular/basic/img/visit_bg.gif b/mobile/skin/popular/basic/img/visit_bg.gif new file mode 100644 index 0000000000000000000000000000000000000000..bc8b172315080f8168c3146372a4802eba71f3d2 GIT binary patch literal 890 zcmV-=1BLuYNk%w1VcY;H0J8u9)z#J6+1dU5{nXUd*4Eb8*x3I5{@2&n|Ns9000000 z00000000000000000000A^8LV00000EC2ui0Nem5000F45J^dh6y+d;j^^IvaR{Mp z0U#Oa)_pHIQWk>2A$Z2r$*L%o&J_w0aR*uLwrYV2GN@$s5&?h5qwhG!zF50s69}??puHR{ zHOy$Pypg`t&c@LJ)6IXyy=rRMmf~@9mA`n(m_6s#>0Il`Vm)Nian)v0H{BL?kppxH z;J$(P{-Fp6Oddf$qt zoJq6hGJ7S$*xbppr_Y~2gSuqZNvP4INRuj^Y0k>hr%YXaZfQb_r_6i=1v>iSYgcB>K3IK7b z#gHSzd^Uly9; zH`%IyOZpzp)klVD#FJw+3rxB5r*9`Ae@SD|!8nDC z%y@`kiQ!l{MT$30uwouUW=Lc)4O+E9AOR|wBa*u1=pBMc3dDhq(it=*juU|C7nezT znNu{Bbki6@Ms|QDGt+eSp@Rr$I3`4{L^)?5Z=87{ntOgpXq60>Ii!`0CTeJgU3RFb zlZ<9*;)@-)@X#NEK1je>bj~wHlud$IX{emunINcu0vczWs**aXsg@S$XOer?y5^{} z=J{lwB4Amiu3)D0O`WnD!fKtoh;ZvCn9GWKBCpDF;A*qH9tr2O!=f7KovKFa(6n;m Q>aCqHgqvoj%R~SGI|`|qVE_OC literal 0 HcmV?d00001 diff --git a/mobile/skin/popular/basic/popular.skin.php b/mobile/skin/popular/basic/popular.skin.php new file mode 100644 index 000000000..ebc9afd6f --- /dev/null +++ b/mobile/skin/popular/basic/popular.skin.php @@ -0,0 +1,14 @@ + + + \ No newline at end of file diff --git a/mobile/skin/search/basic/search.skin.php b/mobile/skin/search/basic/search.skin.php new file mode 100644 index 000000000..cfdfeeb57 --- /dev/null +++ b/mobile/skin/search/basic/search.skin.php @@ -0,0 +1,130 @@ + + +
+ +
+ 상세검색 + + + + + + + + + + > + + > + +
+
+ +
+ + + +
+
에 대한 검색 결과입니다.
+
+
    +
  • 개의 게시판
  • +
  • 개의 게시물
  • +
  • 현재 / 페이지 열람 중
  • +
+
+
+ + + + +
+
검색결과가 있는 게시판 목록
+
+ +
+
+ +

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

+ + +
+ +
+ +
에서
+
+
    + 댓글"; + $comment_href = "#c_".$list[$idx][$i][wr_id]; + } + ?> +
  • + + 새창 +

    +
    + +
  • + +
+ +
+ +
+ + + +
diff --git a/mobile/skin/visit/basic/img/admin.gif b/mobile/skin/visit/basic/img/admin.gif new file mode 100644 index 0000000000000000000000000000000000000000..adf17872e76b9b490a810b3b45efe575c880a917 GIT binary patch literal 111 zcmZ?wbhEHbRAk_1n8?I%!Nd36iwFPz|7T!eQ2fcl$iTqFpaWzxfaDpN9Hum_JS|%` zXO8Bj?#*EejrUpSU!R(IV!^5v({!4Ol-`_umus%z`}p6U2+qnK;Tzbj1dEULe&+1; P)49a9Bui9;fx#L8lFcdn literal 0 HcmV?d00001 diff --git a/mobile/skin/visit/basic/img/visit_1.gif b/mobile/skin/visit/basic/img/visit_1.gif new file mode 100644 index 0000000000000000000000000000000000000000..433f964a6bdae16163e0e05a8a176e48184c5607 GIT binary patch literal 169 zcmZ?wbhEHb^kfiYn8?78wr*`-U*G@#|G#|sqWF`A0R(hF1W2BNscKID%F}Q87th(^ z)VTTHp6ckzM;=KDAm2P;@TBQq;20~i>r0n_?Q!Tfa$^x^o?!@55Obz34c6b zi8wGGImsrkXI+Y*(y6A(%mlR`qO?=piL=+Cx#Qh{mrAwmy_#Rg16+3EQSickOmI}I07!2kdN literal 0 HcmV?d00001 diff --git a/mobile/skin/visit/basic/img/visit_4.gif b/mobile/skin/visit/basic/img/visit_4.gif new file mode 100644 index 0000000000000000000000000000000000000000..425b7fa5102dbaa0eefd5824ee817a9b97366f15 GIT binary patch literal 179 zcmV;k08IZ!Nk%w1VMzcM0FeLyX0EM{j*kET|Mc|qA^8LV00000EC2ui07(EA0007n zoR6u??GK}zv_gTi-n@HTdE!W7U{t1Rb~Fn^fzGAJk9AL8=Db>t1E00f#JE&t*IEY0o;By*jn+9ry81KG(nXKL5q{=3hPYmxd#cyfjR-rYkO)%-I_>hn2w^06zCE Ar2qf` literal 0 HcmV?d00001 diff --git a/mobile/skin/visit/basic/img/visit_top.gif b/mobile/skin/visit/basic/img/visit_top.gif new file mode 100644 index 0000000000000000000000000000000000000000..7859a8e5b1d27abd659eabc352fd207ef4058d8e GIT binary patch literal 99 zcmZ?wbhEHbyu-lF(7?d(|Ns9lU%n{*WMKdS9S{MMVPLXqkzINEE&t* + +
+
+

방문자집계

+
+
오늘
+
+
어제
+
+
최대
+
+
전체
+
+
+ 상세보기 +
+
diff --git a/mobile/tail.php b/mobile/tail.php new file mode 100644 index 000000000..8971a352c --- /dev/null +++ b/mobile/tail.php @@ -0,0 +1,31 @@ + +
+ + +모바일 테일 + +
+ +
+

정보

+ + +
Sharing All Possibilities
+
+

Copyright © 소유하신 도메인. All rights reserved.

+
+
+ + \ No newline at end of file