git-svn-id: http://xe-core.googlecode.com/svn/trunk@1589 201d5d3c-b55e-5fd7-737f-ddc643e51545

This commit is contained in:
zero 2007-06-11 06:48:44 +00:00
parent 3b9f07a90d
commit 7461841819
99 changed files with 1260 additions and 58 deletions

View file

@ -1,8 +1,4 @@
@charset "utf-8";
/*
NHN UIT Lab. WebStandardization Team (http://html.nhndesign.com/)
Jeong, Chan Myeong 070601~070630
*/
/* default.css - Type Selector Definition */
* { margin:0; padding:0; font-family:"돋움", Dotum, "굴림", Gulim, AppleGothic, Sans-serif;}
@ -12,8 +8,6 @@ body { font-size:.75em; margin:2em;}
img { border:none;}
label { cursor:pointer;}
select { height:1.6em;}
select:hover,
select:focus { background:#eeeeee;}
option { padding-right:.5em;}
li { list-style:none;}
a { text-decoration:none;}
@ -21,9 +15,10 @@ a:hover { text-decoration:underline;}
address { font-style:normal;}
/* Input Style Definition */
.inputTypeText { border:1px solid; border-color:#a6a6a6 #d8d8d8 #d8d8d8 #a6a6a6; padding:3px; height:1em; line-height:1em; background:#fbfbfb;}
.inputTypeText { border:1px solid; border-color:#a6a6a6 #d8d8d8 #d8d8d8 #a6a6a6; padding:3px; height:1em; line-height:1em; background:#ffffff;}
.inputTypeText:hover,
.inputTypeText:focus { background:#eeeeee;}
.inputTypeText:focus { background:#f4f4f4;}
.inputTypeTextArea { border:1px solid !important; border-color:#a6a6a6 #d8d8d8 #d8d8d8 #a6a6a6 !important; padding:3px; background:#ffffff;}
a.bold {
font-weight:bold;
@ -45,54 +40,6 @@ a.bold {
display:block;
}
h1 {
font-size:25px;
font-weight:bold;
background-color:#efefef;
color:#0f217c;
padding:0px 5px 0px 5px;
border-bottom:1px solid #445bcd;
}
h2 {
font-size:20px;
font-weight:bold;
background-color:#efefef;
color:#0f217c;
padding:0px 5px 0px 5px;
border-bottom:1px solid #445bcd;
}
h3 {
color:#0f217c;
font-size:20px;
font-weight:bold;
background-color:#efefef;
border-bottom:1px solid #445bcd;
padding:0px 5px 0px 5px;
}
h4 {
color:#0f217c;
font-size:15px;
font-weight:normal;
background-color:#efefef;
border-bottom:1px solid #445bcd;
padding:0px 5px 0px 5px;
}
h5 {
font-size:12px;
font-weight:normal;
line-height:0px;
}
h6 {
font-size:11px;
font-weight:normal;
line-height:0px;
}
.member_signature {
margin-top:10px;
border:1px solid #DDDDDD;

View file

@ -79,7 +79,7 @@
$lang->allow_comment = '댓글허용';
$lang->lock_comment = '댓글잠금';
$lang->allow_trackback = '엮인글허용';
$lang->uploaded_file = '첨부파일';
$lang->uploaded_file = '첨부';
$lang->grant = '권한';
$lang->target = '대상';
$lang->total = '전체';

View file

@ -45,6 +45,10 @@
<input type="checkbox" value="{$val->document_srl}" onclick="doAddCart('{$mid}',this)" <!--@if($check_list[$val->document_srl])-->checked="true"<!--@end--> />
<!--@end-->
<!--@if($module_info->subject_cut_size>0)-->
{@ $val->title = cut_str($val->title,$module_info->subject_cut_size)}
<!--@end-->
<!--@if($grant->view)-->
<!-- 검색중일 경우는 새창으로 -->
<!--@if($search_target && $search_keyword)-->

View file

@ -20,7 +20,11 @@
</var>
<var name="memo" type="textarea">
<title xml:lang="ko">게시판 설명</title>
<default lang="ko">내용의 기본값</default>
<description lang="ko">내용의 기본값</description>
</var>
<var name="subject_cut_size" type="text">
<title xml:lang="ko">제목 글자수</title>
<description lang="ko">제목 글자수를 지정할 수 있습니다. (0또는 비워주시면 자르지 않습니다)</description>
</var>
</extra_vars>
</skin>

View file

@ -0,0 +1,52 @@
<!--@if($document->comment_list)-->
<ul id="reply">
<!--@foreach($document->comment_list as $key => $val)-->
<a name="comment_{$key}"></a>
<!--@if($val->depth)-->
<li style="margin-left:{($val->depth-1)*1.3 + 1.7}em" class="replyIndent">
<!--@else-->
<li>
<!--@end-->
{$val->content}
<div class="replyOption">
<!--@if($val->is_granted || !$val->member_srl)-->
<a href="{getUrl('act','dispBoardDeleteComment','comment_srl',$val->comment_srl)}"><img src="./images/{$module_info->colorset}/buttonDeleteX.gif" alt="{$lang->cmd_reply}" width="12" height="13" /></a>
<a href="{getUrl('act','dispBoardModifyComment','comment_srl',$val->comment_srl)}"><img src="./images/{$module_info->colorset}/buttonModifyE.gif" alt="{$lang->cmd_modify}" width="20" height="18" /></a>
<!--@end-->
<a href="{getUrl('act','dispBoardReplyComment','comment_srl',$val->comment_srl)}"><img src="./images/{$module_info->colorset}/buttonReply.gif" alt="{$lang->cmd_reply}" width="20" height="18" /></a>
</div>
<address>
<span class="member_{$val->member_srl}">{htmlspecialchars($val->nick_name)}</span>
<span class="date">
{zdate($val->regdate, "Y.m.d H:i")}
<!--@if($grant->is_admin)-->
({$val->ipaddress})
<!--@end-->
</span>
</address>
<!--@if($val->uploaded_count && $val->uploaded_list)-->
<div class="fileAttached">
<h5>{$lang->uploaded_file} : </h5>
<ul>
<!--@foreach($document->uploaded_list as $key => $file)-->
<li><a href="{getUrl('')}{$file->download_url}">{$file->source_filename} ({FileHandler::filesize($file->file_size)})({number_format($file->download_count)})</a></li>
<!--@end-->
</ul>
</div>
<!--@end-->
</li>
<!--@end-->
</ul>
<!--@end-->
<!-- 댓글 입력 폼 -->
<!--@if($grant->write_comment && $document->lock_comment == 'N')-->
<!--#include("./comment_form.html")-->
<!--@end-->

View file

@ -0,0 +1,78 @@
<!--%import("filter/insert_comment.xml")-->
<!--%import("js/board.js")-->
<!--@if($source_comment)-->
<!--#include("header.html")-->
<!--@end-->
<!-- 만약 댓글의 답을 다는 것이라면 원문 보여줌 -->
<!--@if($source_comment)-->
<div>
<table border="1" width="100%">
<col width="120" />
<col width="*" />
<tr>
<th>{$lang->date}</th>
<td>{$source_comment->regdate}</td>
</tr>
<tr>
<th>{$lang->writer}</th>
<td><div class="member_{$source_comment->member_srl}">{htmlspecialchars($source_comment->nick_name)}</div></td>
</tr>
<tr>
<th>{$lang->content}</th>
<td height="100" valign="top">{$source_comment->content}</td>
</tr>
</table>
</div>
<!--@end-->
<!-- 글쓰기 폼 -->
<form action="./" method="post" onsubmit="return procFilter(this, insert_comment)" <!--@if($grant->fileupload)-->enctype="multipart/form-data"<!--@end-->>
<input type="hidden" name="mid" value="{$mid}" />
<input type="hidden" name="document_srl" value="{$document_srl?$document_srl:$comment->document_srl}" />
<input type="hidden" name="comment_srl" value="{$comment_srl}" />
<input type="hidden" name="content" value="{htmlspecialchars($comment->content)}" />
<input type="hidden" name="parent_srl" value="{$parent_srl}" />
<table width="100%" border="1">
<col width="120" />
<col width="*" />
<!--@if(!$is_logged)-->
<tr>
<th>{$lang->writer}</th>
<td><input type="text" name="nick_name" value="{htmlspecialchars($comment->nick_name)}" /></td>
</tr>
<tr>
<th>{$lang->password}</th>
<td><input type="password" name="password" value="" /></td>
</tr>
<tr>
<th>{$lang->email_address}</th>
<td><input type="text" name="email_address" value="{htmlspecialchars($comment->email_address)}"/></td>
</tr>
<tr>
<th>{$lang->homepage}</th>
<td><input type="text" name="homepage" value="{htmlspecialchars($comment->homepage)}" /></td>
</tr>
<!--@end-->
<tr>
<td colspan="2">{$comment_editor}</td>
</tr>
<tr>
<td colspan="2">
<!--@if($act&&$act!='dispBoardContent')-->
<input type="button" value="{$lang->cmd_cancel}" onclick="location.href='{getUrl('act','')}'" />
<!--@end-->
<input type="submit" value="{$lang->cmd_registration}" accesskey="s" />
</td>
</tr>
</table>
</form>
<!--@if($source_comment)-->
<!--#include("footer.html")-->
<!--@end-->

View file

@ -0,0 +1,272 @@
@charset "utf-8";
/*
NHN UIT Lab. WebStandardization Team (http://html.nhndesign.com/)
Jeong, Chan Myeong 070601~070630
*/
/* pathNavigation */
.pathNavigation { background:url(../images/white/bullet_3x3_d8d8d8.gif) no-repeat left .4em; padding:0 0 0 .5em; color:#999999; margin:0 0 1.5em 0;}
.pathNavigation * { font-size:.9em;}
.pathNavigation a { color:#999999;}
.pathNavigation strong { color:#666666;}
/* boardHeader */
.boardHeader { position:relative; _width:100%; border:1px solid #e1e1dd; border-bottom:none; background:#ffffff url(../images/white/bgH3.gif) repeat-x left bottom; overflow:hidden;}
.boardHeader h3 { float:left; clear:both; font-size:1.2em; padding:1em 2em .7em 1.2em; border-bottom:3px solid #fe3614; background:#ffffff url(../images/white/lineH3.gif) no-repeat right bottom;}
/* boardInformation */
.boardInformation { width:100%; clear:both; margin:1em 0 .5em 0; overflow:hidden; color:#666666;}
.articleNum { float:left; background:url(../images/white/iconArticle.gif) no-repeat .5em center; padding:.4em 0 0 2em;}
.articleNum strong { font:bold 11px Tahoma; color:#ff6600;}
.accountNavigation { float:right; overflow:hidden;}
.accountNavigation li { float:left; padding:0 .5em 0 .6em; background:url(../images/white/line_1x10_e0e0e0.gif) no-repeat left .4em;}
.accountNavigation li a { font-size:11px; white-space:nowrap; color:#666666;}
.accountNavigation li.rss { background:none; padding-top:.4em;}
.accountNavigation li.join { background:none; padding-top:.4em;}
.accountNavigation li.join a { display:block; background:url(../images/white/iconMyInfo.gif) no-repeat left .1em; padding:0 0 0 1.2em;}
.accountNavigation li.myInfo { background:none; padding-top:.4em;}
.accountNavigation li.myInfo a { display:block; background:url(../images/white/iconMyInfo.gif) no-repeat left .1em; padding:0 0 0 1.2em;}
.accountNavigation li.admin { padding-top:.4em;}
.accountNavigation li.admin a { display:block; background:url(../images/white/iconAdmin.gif) no-repeat left .1em; padding:0 0 0 1.2em;}
.accountNavigation li.loginAndLogout { background:none; padding-left:0;}
/* buttonType */
.buttonTypeA { display:block; cursor:pointer; background:url(../images/white/buttonTypeACenter.gif) repeat-x left center; line-height:100%; overflow:visible; color:#3f4040; margin:0 1px; white-space:nowrap;}
.buttonTypeA:hover { text-decoration:none;}
.buttonTypeA img { vertical-align:middle;}
.buttonTypeA .leftCap { width:2px; height:24px; background:url(../images/white/buttonTypeALeft.gif) no-repeat; margin:0 .3em 0 0; position:relative; left:-1px;}
.buttonTypeA .rightCap { width:2px; height:24px; background:url(../images/white/buttonTypeARight.gif) no-repeat; margin:0 -1px 0 .4em;}
.buttonTypeA .icon { margin:0 .2em;}
.buttonTypeB { display:block; cursor:pointer; background:url(../images/white/buttonTypeBCenter.gif) repeat-x left center; line-height:100%; overflow:visible; color:#3f4040; margin:0 1px; font-size:.9em; white-space:nowrap;}
.buttonTypeB:hover { text-decoration:none;}
.buttonTypeB img { vertical-align:middle;}
.buttonTypeB .leftCap { width:2px; height:21px; background:url(../images/white/buttonTypeBLeft.gif) no-repeat; margin:0 .3em 0 0; position:relative; left:-1px;}
.buttonTypeB .rightCap { width:2px; height:21px; background:url(../images/white/buttonTypeBRight.gif) no-repeat; margin:0 -1px 0 .4em;}
.buttonTypeB .icon { margin:0 .2em;}
/* button of list page */
.buttonRight { position:relative; float:right; top:-3em; margin:0 0 -3em 0; _top:-3.5em; padding-right:.5em; overflow:visible;}
.buttonLeft { position:relative; float:left; top:-3em; margin:0 0 -3em 0; _top:-3.5em; padding-left:.5em; overflow:visible;}
/* boardSearch */
.boardSearch { text-align:center; clear:both; width:100%;}
.boardSearch fieldset { border:none; display:inline; overflow:visible; position:relative;}
.boardSearch fieldset legend { position:absolute; overflow:hidden; width:1px; height:1px; font-size:.001em;}
.boardSearch * { vertical-align:middle;}
.boardSearch select { float:left;}
.boardSearch input { float:left; margin:0 .3em; background:#fbfbfb;}
.searchButton ul { overflow:hidden;}
.searchButton li { float:left; margin-right:.3em;}
/* pageNavigation */
.pageNavigation { position:relative; display:block; padding:1.5em 0 2em 0; text-align:center; font:bold .8em Tahoma; }
.pageNavigation a { position:relative; margin-left:-4px; font:bold 1em Tahoma; color:#666666; display:inline-block; padding:1px 7px 2px 6px; border-left:1px solid #dedfde; border-right:1px solid #CCCCCC; text-decoration:none; line-height:1em; }
.pageNavigation a:hover { background:#F7F7F7; text-decoration:none; }
.pageNavigation a:visited { color:#999999;}
.pageNavigation a.goToFirst,
.pageNavigation a.goToLast { border:none; border-right:1px solid #ffffff; border-left:1px solid #ffffff; z-index:99; vertical-align:top; padding:0px 7px 4px 6px;}
.pageNavigation a.goToFirst img,
.pageNavigation a.goToLast img { display:inline-block; padding:2px 0; position:relative; top:2px; _top:1px;}
.pageNavigation .current { position:relative; margin-left:-4px; font:bold 1em Tahoma; color:#ff6600; display:inline-block; padding:1px 7px 1px 6px; border-left:1px solid #dedfde; border-right:1px solid #CCCCCC; text-decoration:none; line-height:1em; }
/* boardList */
.boardList { width:100%; position:relative; border:1px solid #e0e1db;}
.boardList tr.notice { background:#f8f8f8;}
.boardList tr.notice .num { font:.9em "돋움", Dotum, "굴림", Gulim, AppleGothic, Sans-serif; font-weight:bold;}
.boardList tr.bg1 { background:#ffffff}
.boardList tr.bg2 { background:#fbfbfb;}
.boardList th { color:#3e3f3e; font-weight:normal; border-bottom:1px solid #ffffff; padding:.8em .5em .5em .5em; background:#ffffff url(../images/white/lineBoardListTh.gif) no-repeat left bottom;}
.boardList th a { color:#3e3f3e;}
.boardList th.num { background-position:-3px bottom; border-left:1px solid #ffffff; padding:0;}
.boardList th.category { padding:0 .2em 0 .5em;}
.boardList th.category.thumbStyle { background-position:-3px bottom !important; border-left:1px solid #ffffff; text-align:left;}
.boardList th.title {}
.boardList th.author {}
.boardList th.reading { white-space:nowrap;}
.boardList th.recommend { white-space:nowrap;}
.boardList th.date { border-right:1px solid #ffffff;}
.boardList th .sort { padding:0 .2em; vertical-align:middle;}
.boardList td { border-top:1px solid #eff0ed; padding:.5em;}
.boardList td.num { font:.8em Tahoma; color:#999999; padding:.5em 1em;}
.boardList td.category {}
.boardList tr.notice td.num { padding:.5em; white-space:nowrap;}
.boardList td.thumb { padding:.5em 0 .5em .5em; width:145px; table-layout:fixed; white-space:nowrap;}
.boardList td.thumb * { vertical-align:middle;}
.boardList td.title {}
.boardList td.title.bold { font-size:1.2em; font-weight:bold;}
.boardList td.title.bold a { position:relative; top:.3em;}
.boardList td.title * { vertical-align:middle;}
.boardList td.title,
.boardList td.title a { color:#444444;}
.boardList td.title a:visited { color:#777777;}
.boardList td.author { color:#333333; font:.95em "돋움", Dotum, "굴림", Gulim, AppleGothic, Sans-serif;}
.boardList td.author a { font-size:1em; color:#333333;}
.boardList td.reading { font:.8em Tahoma; color:#999999; text-align:center;}
.boardList td.recommend { font:bold .8em Tahoma; color:#ff6600; text-align:center;}
.boardList td.date { font:.8em Tahoma; color:#999999; text-align:center;}
.boardList td.summary { border-top:none; vertical-align:top; color:#666666; line-height:1.25em;}
.boardList td.summary a { color:#666666; text-decoration:none; line-height:inherit;}
.boardList td.summary a:visited { color:#999999;}
.boardList td input { _margin:-3px;}
.boardList td .replyAndTrackback { font:.8em Tahoma; color:#ff6600; cursor:default; position:relative; top:-.2em;}
.boardList td.title.bold .replyAndTrackback { font:.6em Tahoma; color:#ff6600; cursor:default; position:relative; top:.3em;}
.boardList td .replyAndTrackback strong { font:bold 1em Tahoma;}
.boardList td .thumbnailSmall { margin:0 .3em 0 .3em;}
.boardList td .thumbnailSmall img { border:1px solid #bcbdb6;}
.boardList td .thumbnailMedium { margin:0 .3em 0 .3em;}
.boardList td .thumbnailMedium img { border:1px solid #e0e1db; padding:3px;}
.boardList.thumbnail { margin-top:-1px; border-bottom:none;}
.boardList.thumbnail td { border-top:none; border-bottom:1px solid #eff0ed; padding:1.5em 0 0 1.5em; overflow:hidden;}
.boardList.thumbnail div.cell { float:left; width:130px; margin:0 1.5em 0 0; padding-bottom:1.5em;}
.boardList.thumbnail div.cell img.thumb { padding:2px; border:1px solid #e0e1db; display:block; margin-bottom:1em;}
.boardList.thumbnail div.title { color:#444444; margin-bottom:.2em; padding-left:3px;}
.boardList.thumbnail div.title a { color:#444444;}
.boardList.thumbnail div.nameAndDate { font-size:.9em; color:#999999; margin-bottom:.2em; padding-left:3px;}
.boardList.thumbnail div.nameAndDate a { color:#999999;}
.boardList.thumbnail div.nameAndDate .date { font:.8em Tahoma; color:#999999;}
.boardList.thumbnail div.readAndRecommend { font-size:.9em; color:#666666; padding-left:3px;}
.boardList.thumbnail div.readAndRecommend .num { font:.8em Tahoma;}
.boardList.thumbnail div.readAndRecommend .vr { color:#dddddd;}
.boardList.thumbnail div.readAndRecommend strong.num { font:bold .8em Tahoma; color:#ff6600;}
/* boardRead */
.boardRead { position:relative; _width:100%; margin:1em 0 0 0; border:1px solid #e0e1db;}
.boardRead .originalContent { padding:2em 1.2em 2em 1.2em;}
.boardRead .readHeader { width:100%; padding-bottom:.5em; margin-bottom:1em; border-bottom:1px solid #eff0ed; overflow:hidden;}
.boardRead .titleAndCategory { float:left;}
.boardRead .titleAndCategory h4 { font-size:1.4em; display:inline; padding-left:.2em;}
.boardRead .titleAndCategory .vr { font-size:.9em; margin:0 .3em; color:#c5c7c0;}
.boardRead .titleAndCategory .cotegory { font-size:.9em; color:#999999; white-space:nowrap;}
.boardRead .dateAndModify { float:right; white-space:nowrap;}
.boardRead .dateAndModify .date { font-size:.8em; font-family:Tahoma; color:#999999; margin-right:.5em; float:left; position:relative; top:.3em;}
.boardRead .dateAndModify .date strong { font-size:1em; font-family:Tahoma;}
.boardRead .dateAndModify ul { display:inline;}
.boardRead .dateAndModify ul li { float:left; margin-left:.3em;}
.boardRead dl.uri { overflow:hidden; margin:0 0 2em .3em;}
.boardRead dl.uri dt { float:left; clear:left; font-size:.9em; margin-right:.3em; color:#999999;}
.boardRead dl.uri dd { clear:right; font:.8em Tahoma; color:#c5c7c0;}
.boardRead .readBody { padding:0 .3em; color:#555555; overflow:hidden; margin-bottom:2em;}
.boardRead .readBody p { margin:1em 0; line-height:1.5em;}
.boardRead .readBody .alignLeft { float:left; margin:0 1em 1em 0; }
.boardRead .readBody .alignRight { float:right; margin:0 0 1em 1em; }
.boardRead .readBody .valignCenter { vertical-align:middle;}
.boardRead .readBody .clearBoth { display:block; margin:0 0 1em 0;}
.boardRead .readFooter { padding:0 .3em;}
.boardRead .readFooter .tag { margin-bottom:1em;}
.boardRead .readFooter .tag h5 { display:inline; font-size:1em; margin-right:.5em;}
.boardRead .readFooter .tag ul,
.boardRead .readFooter .tag li { display:inline;}
.boardRead .readFooter .tag a { color:#444444;}
.boardRead .readFooter .tag .tagIcon { vertical-align:middle;}
.boardRead .readFooter .fileAttached { position:relative; _width:100%; border:1px solid #eaeae7; overflow:hidden; background:#fbfbfb;}
.boardRead .readFooter .fileAttached h5 { position:absolute; top:1em; left:1.5em; font-weight:normal; color:#999999; float:left; font-size:1em; margin-right:.5em; line-height:1.5em;}
.boardRead .readFooter .fileAttached ul { float:left; padding:1em 1em .8em 0; margin-left:5em; _margin-left:2.5em;}
.boardRead .readFooter .fileAttached li { display:inline; margin-right:.75em; line-height:1.5em;}
.boardRead .readFooter .fileAttached li a { font-size:.9em; padding:.1em 0 .1em 1.5em; white-space:nowrap; position:relative; color:#444444; background:url(../images/white/iconFile.gif) no-repeat left top;}
.boardRead .readFooter .fileAttached li a:visited { color:#777777;}
.boardRead .replyAndTrackback { position:relative; overflow:hidden; _width:100%; padding:.8em 0em; height:1em; background:url(../images/white/bgBoardListTh.gif) repeat-x left bottom; border-top:1px solid #e0e1db; border-bottom:2px solid #666760;}
.boardRead .replyAndTrackback li { position:relative; left:1.5em; padding-left:1.4em; float:left; margin-right:1em;}
.boardRead .replyAndTrackback li.reply { background:url(../images/white/iconReply.gif) no-repeat left top;}
.boardRead .replyAndTrackback li.reply a { _position:relative; _top:-.5em;}
.boardRead .replyAndTrackback li.trackback { background:url(../images/white/iconTrackback.gif) no-repeat left top;}
.boardRead .replyAndTrackback a { display:block; float:left; color:#333333; height:1em; padding:.1em 1.5em .1em 0; white-space:nowrap;}
.boardRead .replyAndTrackback a strong { color:#ff6600;}
.boardRead .replyAndTrackback a#toggleReply { background:url(../images/white/buttonToggleReply.gif) no-repeat right top;}
.boardRead .replyAndTrackback a#toggleTrackback { background:url(../images/white/buttonToggleReply.gif) no-repeat right -13px;}
.boardRead #reply,
.boardRead #trackback { padding:.6em .6em; color:#666666;}
.boardRead #reply li,
.boardRead #trackback li { padding:.6em .8em .6em 1.6em; line-height:1.25em;}
.boardRead #reply p,
.boardRead #trackback p { display:inline; margin-bottom:1em;}
.boardRead #trackback a { color:#666666;}
.boardRead .replyOption { display:inline; white-space:nowrap; margin-left:.2em;}
.boardRead .replyOption img { vertical-align:middle;}
.boardRead #reply address,
.boardRead #trackback address { display:block; padding:0 .3em 0 0;}
.boardRead #reply address a,
.boardRead #trackback address a { font-size:.9em; color:#3074a5; margin-right:.3em;}
.boardRead #reply address .date,
.boardRead #trackback address .date { font:.8em Tahoma; color:#cccccc;}
.boardRead #reply .replyIndent { background:url(../images/white/iconReplyArrow.gif) no-repeat .2em .9em;}
.boardRead #reply li .fileAttached { position:relative; _width:100%; border:1px solid #eaeae7; overflow:hidden; background:#fbfbfb; margin-top:.3em;}
.boardRead #reply li .fileAttached h5 { position:absolute; top:1em; left:1.5em; font-weight:normal; color:#999999; float:left; font-size:1em; margin-right:.5em; line-height:1.5em;}
.boardRead #reply li .fileAttached ul { float:left; padding:1em 1em .8em 0; margin-left:5em; _margin-left:2.5em;}
.boardRead #reply li .fileAttached li { border:0px; display:inline; margin-right:.75em; line-height:1.5em;}
.boardRead #reply li .fileAttached li a { font-size:.9em; padding:.1em 0 .1em 1.5em; white-space:nowrap; position:relative; color:#444444; background:url(../images/white/iconFile.gif) no-repeat left top;}
.boardRead #reply li .fileAttached li a:visited { color:#777777;}
/* boardEditor */
.boardEditor { padding:.5em 0 1em 0; width:100%; overflow:hidden;}
.boardEditor.reply { padding:.5em 1em 1em 1em; width:auto; overflow:hidden;}
.boardEditor legend { position:absolute; overflow:hidden; width:1px; height:1px; font-size:.001em;}
.boardEditor fieldset { _width:100%; border:1px solid #eaeae7; border-top:none;}
.boardEditor .userNameAndPw { position:relative; background:#fbfbfb; border-top:1px solid #eaeae7; border-bottom:1px solid #e1e1e1; padding:.5em 1em; white-space:nowrap;}
.boardEditor .userNameAndPw * { vertical-align:middle;}
.boardEditor .userNameAndPw label { margin-right:.2em; color:#666760;}
.boardEditor .userNameAndPw input { color:#aaaaaa;}
.boardEditor .userNameAndPw .userName { width:6em; margin-right:.8em;}
.boardEditor .userNameAndPw .userPw { width:5em;}
.boardEditor .userNameAndPw .emailAddress { width:6em;}
.boardEditor .userNameAndPw .homePage { width:6em;}
.boardEditor .userNameAndPw .checkSecret { position:absolute; right:2em; top:.7em;}
.boardEditor .optionABC { clear:both; width:100%; border-bottom:1px solid #c2c2c2; overflow:hidden; background:#ffffff url(../images/white/bgBoardEditorOption.gif) no-repeat -3px bottom;}
.boardEditor .optionABC .selectGroup { white-space:nowrap; display:block; height:21px; margin:0 .5em 0 0; padding-left:1em; float:left;}
.boardEditor .optionABC .buttonGroup { white-space:nowrap; position:relative; display:block; margin:0 .5em 0 0; float:left; height:21px; overflow:hidden; padding-left:2px;}
.boardEditor .optionABC .buttonGroup img { float:left; display:block; margin-left:-1px; cursor:pointer;}
.boardEditor .optionA,
.boardEditor .optionB,
.boardEditor .optionC { float:left; background:#ffffff url(../images/white/bgBoardEditorOption.gif) no-repeat left bottom; padding:.5em 0 .5em .7em; overflow:hidden;}
.boardEditor .optionA *,
.boardEditor .optionB *,
.boardEditor .optionC * { vertical-align:middle;}
.boardEditor .optionA { background-position:-3px bottom; padding-left:0;}
.boardEditor .optionDE { width:100%; clear:both; overflow:hidden; background:#f8f8f8; border-bottom:1px solid #e1e1e1;}
.boardEditor .optionDE .buttonGroup { white-space:nowrap; position:relative; display:block; float:left; height:21px; overflow:hidden; padding-left:2px;}
.boardEditor .optionDE img { float:left; display:block; margin-right:.5em; cursor:pointer;}
.boardEditor .optionD { padding:.5em 0 .5em .8em; overflow:hidden; float:left; border-right:1px solid #e0e0e0;}
.boardEditor .optionE { padding:.5em; overflow:hidden; border-left:1px solid #ffffff; float:left;}
.boardEditor .textAreaWrap { position:relative; padding:1em;}
.boardEditor .textArea { overflow:auto; clear:both; width:100%; _width:96%; height:20em; border:none; font-size:1em;}
.boardEditor .buttonReply { position:relative; float:left; left:50%; margin:.5em 0 0 -2em; _padding-bottom:1em;}
/* boardWrite */
.boardWrite { width:100%; position:relative;}
.boardWrite .userNameAndPw { margin-bottom:-1px;}
.boardWrite .boardEditor fieldset { width:auto; position:relative; border:1px solid #eaeae7; border-top:none;}
.boardWrite div.title { border-bottom:1px solid #eff0ed; border-top:1px solid #eff0ed; padding:.5em 0; white-space:nowrap;}
.boardWrite div.title label.title { display:block; float:left; font-weight:bold; padding:.4em 0 0 1.5em; width:6em; white-space:nowrap;}
.boardWrite div.title input#title { width:60%;}
.boardWrite .option { border-bottom:1px solid #e1e1e1; padding:.5em 0; overflow:hidden; width:100%;}
.boardWrite .option dt { display:block; float:left; font-weight:bold; padding:.3em 0 0 1.5em; width:8em; white-space:nowrap;}
.boardWrite .option dd { float:left; margin-right:1em; padding-top:.2em; _padding-top:.1em;}
.boardWrite .option dd * { vertical-align:middle;}
.boardWrite .inputTypeText { background:#fbfbfb;}
.boardWrite .inputTypeTextArea { background:#fbfbfb; padding:1em; width:94%;}
.boardWrite #editorInfo { background:#fbfbfb; padding:1em; width:94%; border:1px solid #e1e1dd; color:#999999; position:relative; margin-bottom:.8em;}
.boardWrite .close { cursor:pointer; position:absolute; top:0; right:0;}
.boardWrite #textAreaDragIndicator { text-align:center; background:url(../images/white/lineTextAreaDrag.gif) repeat-x left center; cursor:pointer; margin-bottom:1em;}
.boardWrite #textAreaDrag {}
.boardWrite .fileAttach { padding:0 1em .5em 1em;}
.boardWrite .fileAttach .preview { padding:5px; width:110px; height:110px; border:1px solid #e1e1dd; background:#fbfbfb; float:left; margin-right:.5em;}
.boardWrite .fileAttach .preview img { width:110px; height:110px; float:left; display:block;}
.boardWrite .fileAttach .fileListArea { float:left; width:50%; margin-right:.7em; padding-bottom:.5em;}
.boardWrite .fileAttach .fileListArea .fileList { overflow:auto; width:100%; height:auto; border:1px solid; border-color:#a6a6a6 #d8d8d8 #d8d8d8 #a6a6a6; margin-bottom:.3em;}
.boardWrite .fileAttach .fileListArea .fileList option { line-height:100%; padding-left:.5em;}
.boardWrite .fileAttach .fileListArea .info { color:#3f4040; font:.75em Tahoma; text-align:right;}
.boardWrite .fileAttach .fileListArea .info strong { color:#ff6600; font:bold 1em Tahoma;}
.boardWrite .fileAttach .fileUploadControl { float:left;}
.boardWrite .fileAttach .fileUploadControl li { float:left; clear:both; margin-bottom:.3em;}
.boardWrite .trackbackURI { clear:both; border-top:1px solid #eff0ed; padding:4px 0 .8em 0;}
.boardWrite .trackbackURI label { display:block; float:left; color:#333333; font-weight:bold; padding:.4em 0 0 1.5em; width:6em;}
.boardWrite .trackbackURI .inputTypeText { width:70%;}
.boardWrite .tag { clear:both; border-top:1px solid #eff0ed; padding:.8em 0;}
.boardWrite .tag label { display:block; float:left; color:#333333; font-weight:bold; padding:.4em 0 0 1.5em; width:6em;}
.boardWrite .tag .inputTypeText { width:70%;}
.boardWrite .tag .help { vertical-align:middle;}
.boardWrite .tag .info { padding:.5em 0 0 .6em; margin-left:8.5em; font-size:.9em; color:#999999; background:url(../images/white/iconArrowD8.gif) no-repeat left center;}
.boardWrite .buttonWrite { position:relative; float:left; left:50%; margin:1em 0 0 -2em; _padding-bottom:1em;}

View file

@ -0,0 +1,23 @@
<!--%import("filter/delete_comment.xml")-->
<!--#include("header.html")-->
<form action="./" method="get" onsubmit="return procFilter(this, delete_comment)">
<input type="hidden" name="mid" value="{$mid}" />
<input type="hidden" name="page" value="{$page}" />
<input type="hidden" name="document_srl" value="{$document_srl}" />
<input type="hidden" name="comment_srl" value="{$comment_srl}" />
<table>
<tr>
<th colspan="2">{$lang->confirm_delete}</th>
</tr>
<tr>
<td colspan="2">
<input type="submit" value="{$lang->cmd_delete}" />
<input type="button" value="{$lang->cmd_back}" onclick="location.href='{getUrl('act','')}'" />
</td>
</tr>
</table>
</form>
<!--#include("footer.html")-->

View file

@ -0,0 +1,27 @@
<!--%import("filter/delete_document.xml")-->
<!--#include("header.html")-->
<form action="./" method="get" onsubmit="return procFilter(this, delete_document)">
<input type="hidden" name="mid" value="{$mid}" />
<input type="hidden" name="page" value="{$page}" />
<input type="hidden" name="document_srl" value="{$document_srl}" />
<table>
<tr>
<th colspan="2">{$lang->confirm_delete}</th>
</tr>
<tr>
<th>{$lang->title}</th>
<td>{$document->title}</td>
</tr>
<tr>
<td colspan="2">
<input type="submit" value="{$lang->cmd_delete}" />
<input type="button" value="{$lang->cmd_back}" onclick="location.href='{getUrl('act','')}'" />
</td>
</tr>
</table>
</form>
<!--#include("footer.html")-->

View file

@ -0,0 +1,23 @@
<!--%import("filter/delete_trackback.xml")-->
<!--#include("header.html")-->
<form action="./" method="get" onsubmit="return procFilter(this, delete_trackback)">
<input type="hidden" name="mid" value="{$mid}" />
<input type="hidden" name="page" value="{$page}" />
<input type="hidden" name="document_srl" value="{$document_srl}" />
<input type="hidden" name="trackback_srl" value="{$trackback_srl}" />
<table>
<tr>
<th colspan="2">{$lang->confirm_delete}</th>
</tr>
<tr>
<td colspan="2">
<input type="submit" value="{$lang->cmd_delete}" />
<input type="button" value="{$lang->cmd_back}" onclick="location.href='{getUrl('act','')}'" />
</td>
</tr>
</table>
</form>
<!--#include("footer.html")-->

View file

@ -0,0 +1,18 @@
<filter name="delete_comment" module="board" act="procBoardDeleteComment">
<form>
<node target="comment_srl" required="true" />
</form>
<parameter>
<param name="mid" target="mid" />
<param name="page" target="page" />
<param name="document_srl" target="document_srl" />
<param name="comment_srl" target="comment_srl" />
</parameter>
<response callback_func="completeDeleteComment">
<tag name="error" />
<tag name="message" />
<tag name="mid" />
<tag name="document_srl" />
<tag name="page" />
</response>
</filter>

View file

@ -0,0 +1,16 @@
<filter name="delete_document" module="board" act="procBoardDeleteDocument">
<form>
<node target="document_srl" required="true" />
</form>
<parameter>
<param name="mid" target="mid" />
<param name="page" target="page" />
<param name="document_srl" target="document_srl" />
</parameter>
<response callback_func="completeDeleteDocument">
<tag name="error" />
<tag name="message" />
<tag name="mid" />
<tag name="page" />
</response>
</filter>

View file

@ -0,0 +1,18 @@
<filter name="delete_trackback" module="board" act="procBoardDeleteTrackback">
<form>
<node target="trackback_srl" required="true" />
</form>
<parameter>
<param name="mid" target="mid" />
<param name="page" target="page" />
<param name="document_srl" target="document_srl" />
<param name="trackback_srl" target="trackback_srl" />
</parameter>
<response callback_func="completeDeleteTrackback">
<tag name="error" />
<tag name="message" />
<tag name="mid" />
<tag name="document_srl" />
<tag name="page" />
</response>
</filter>

View file

@ -0,0 +1,16 @@
<filter name="input_password" module="board" act="procBoardVerificationPassword" >
<form>
<node target="document_srl" required="true" />
<node target="password" required="true" />
</form>
<parameter>
<param name="mid" target="mid" />
<param name="document_srl" target="document_srl" />
<param name="comment_srl" target="comment_srl" />
<param name="password" target="password" />
</parameter>
<response>
<tag name="error" />
<tag name="message" />
</response>
</filter>

View file

@ -0,0 +1,18 @@
<filter name="insert" module="board" act="procBoardInsertDocument" confirm_msg_code="confirm_submit">
<form>
<node target="document_srl" required="true" />
<node target="nick_name" required="true" />
<node target="password" required="true" />
<node target="email_address" maxlength="250" />
<node target="homepage" maxlength="250"/>
<node target="title" required="true" minlength="1" maxlength="250" />
<node target="content" required="true" />
</form>
<response callback_func="completeDocumentInserted">
<tag name="error" />
<tag name="message" />
<tag name="mid" />
<tag name="document_srl" />
<tag name="category_srl" />
</response>
</filter>

View file

@ -0,0 +1,28 @@
<filter name="insert_comment" module="board" act="procBoardInsertComment" confirm_msg_code="confirm_submit">
<form>
<node target="document_srl" required="true" />
<node target="nick_name" required="true" />
<node target="password" required="true" />
<node target="email_address" maxlength="250" />
<node target="homepage" maxlength="250"/>
<node target="content" required="true" minlength="1" />
</form>
<parameter>
<param name="mid" target="mid" />
<param name="document_srl" target="document_srl" />
<param name="comment_srl" target="comment_srl" />
<param name="parent_srl" target="parent_srl" />
<param name="nick_name" target="nick_name" />
<param name="password" target="password" />
<param name="email_address" target="email_address" />
<param name="homepage" target="homepage" />
<param name="content" target="content" />
</parameter>
<response callback_func="completeInsertComment">
<tag name="error" />
<tag name="message" />
<tag name="mid" />
<tag name="document_srl" />
<tag name="comment_srl" />
</response>
</filter>

View file

@ -0,0 +1,15 @@
<filter name="search" module="board">
<form>
<node target="search_target" required="true" />
<node target="search_keyword" minlegnth="2" maxlength="40" required="true" />
</form>
<parameter>
<param name="mid" target="mid" />
<param name="search_target" target="search_target" />
<param name="search_keyword" target="search_keyword" />
</parameter>
<response callback_func="completeSearch">
<tag name="error" />
<tag name="message" />
</response>
</filter>

View file

@ -0,0 +1,13 @@
<filter name="vote" module="board" act="procBoardVoteDocument" confirm_msg_code="confirm_vote">
<form>
<node target="document_srl" required="true" />
</form>
<parameter>
<param name="mid" target="mid" />
<param name="document_srl" target="document_srl" />
</parameter>
<response callback_func="completeVote">
<tag name="error" />
<tag name="message" />
</response>
</filter>

View file

@ -0,0 +1 @@
{$module_info->footer_text}

View file

@ -0,0 +1,53 @@
<!-- JS 파일 로드 -->
<!--%import("js/board.js")-->
<!--@if($module_info->colorset != "white")-->
{@$module_info->colorset = "white"}
<!--@end-->
<!-- CSS 파일 로드 (컬러셋에 따라서) -->
<!--@if($module_info->colorset == "white")-->
<!--%import("css/white.css")-->
<!--@end-->
{$module_info->header_text}
<!-- 스킨의 제목/간단한 설명 출력 -->
<!--@if($module_info->title)-->
<div class="boardHeader">
<h3>{$module_info->title} - {$module_info->sub_title}</h3>
</div>
<!--@end-->
<!-- 게시판 정보 -->
<div class="boardInformation">
<!--@if($total_count)-->
<span class="articleNum">{$lang->document_count} <strong>{number_format($total_count)}</strong></span>
<!--@end-->
<ul class="accountNavigation">
<!--@if($rss_url)-->
<li class="rss"><a href="{$rss_url}"><img src="./images/{$module_info->colorset}/iconRss.gif" alt="RSS" width="12" height="12" /></a></li>
<!--@end-->
<!--@if($is_logged)-->
<li class="myInfo"><a href="{getUrl('act','dispMemberInfo')}">{$lang->cmd_view_member_info}</a></li>
<!--@if($grant->is_admin)-->
<li class="admin"><a href="{getUrl('act','dispBoardAdminBoardInfo')}">{$lang->cmd_management}</a></li>
<!--@end-->
<li class="loginAndLogout"><a href="{getUrl('act','dispMemberLogout')}" class="buttonTypeB"><img src="./images/blank.gif" alt="" class="leftCap" />{$lang->cmd_logout}<img src="./images/blank.gif" alt="" class="rightCap" /></a></li>
<!--@else-->
<li class="join"><a href="{getUrl('act','dispMemberSignUpForm')}">{$lang->cmd_signup}</a></li>
<li class="loginAndLogout"><a href="{getUrl('act','dispMemberLoginForm')}" class="buttonTypeB"><img src="./images/blank.gif" alt="" class="leftCap" />{$lang->cmd_login}<img src="./images/blank.gif" alt="" class="rightCap" /></a></li>
<!--@end-->
</ul>
</div>

Binary file not shown.

After

Width:  |  Height:  |  Size: 43 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 197 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 60 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 131 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 51 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 51 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 44 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 46 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 523 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 58 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 458 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 61 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 46 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 105 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 599 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 452 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 416 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 400 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 517 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 68 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 70 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 188 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 169 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 170 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 183 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 166 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 166 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 990 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 604 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 657 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 627 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 607 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 662 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 669 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 621 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1,015 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 580 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 625 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 828 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 698 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 654 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 640 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 696 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 677 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 622 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 658 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 88 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 46 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 219 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 306 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 146 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 125 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 452 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 106 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 54 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 567 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 205 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 101 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 525 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 45 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 46 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 44 B

View file

@ -0,0 +1,27 @@
<!--%import("filter/input_password.xml")-->
<!--#include("header.html")-->
<form action="./" method="get" onsubmit="return procFilter(this, input_password)">
<input type="hidden" name="mid" value="{$mid}" />
<input type="hidden" name="page" value="{$page}" />
<input type="hidden" name="document_srl" value="{$document_srl}" />
<input type="hidden" name="comment_srl" value="{$comment_srl}" />
<table>
<tr>
<th colspan="2">{$lang->msg_input_password}</th>
</tr>
<tr>
<th>{$lang->password}</th>
<td><input type="password" name="password" value="" /></td>
</tr>
<tr>
<td colspan="2">
<input type="submit" value="{$lang->cmd_input}" />
<input type="button" value="{$lang->cmd_back}" onclick="location.href='{getUrl('act','','document_srl','','comment_srl','')}'" />
</td>
</tr>
</table>
</form>
<!--#include("footer.html")-->

View file

@ -0,0 +1,131 @@
/**
* @file modules/board/js/board.js
* @author zero (zero@nzeo.com)
* @brief board 모듈의 javascript
**/
/* 관리자가 카트 선택시 세션에 넣음 */
function doAddCart(mid, obj) {
var srl = obj.value;
var check_flag = obj.checked?'add':'remove';
var params = new Array();
params["mid"] = mid;
params["srl"] = srl;
params["check_flag"] = check_flag;
exec_xml("board","procBoardAdminAddCart", params, null);
}
/* 글쓰기 작성후 */
function completeDocumentInserted(ret_obj) {
var error = ret_obj['error'];
var message = ret_obj['message'];
var mid = ret_obj['mid'];
var document_srl = ret_obj['document_srl'];
var category_srl = ret_obj['category_srl'];
alert(message);
var url = current_url.setQuery('mid',mid).setQuery('document_srl',document_srl).setQuery('act','');
if(category_srl) url = url.setQuery('category',category_srl);
location.href = url;
}
/* 글 삭제 */
function completeDeleteDocument(ret_obj) {
var error = ret_obj['error'];
var message = ret_obj['message'];
var mid = ret_obj['mid'];
var page = ret_obj['page'];
var url = "./?mid="+mid;
if(page) url += "&page="+page;
alert(message);
location.href = url;
}
/* 검색 실행 */
function completeSearch(fo_obj, params) {
fo_obj.submit();
}
/* 추천, 추천은 별도의 폼입력이 필요 없어 직접 필터 사용 */
function doVote() {
var fo_obj = document.getElementById('fo_document_info');
procFilter(fo_obj, vote);
}
function completeVote(ret_obj) {
var error = ret_obj['error'];
var message = ret_obj['message'];
alert(message);
location.href = location.href;
}
// 현재 페이지 reload
function completeReload(ret_obj) {
var error = ret_obj['error'];
var message = ret_obj['message'];
location.href = location.href;
}
/* 댓글 글쓰기 작성후 */
function completeInsertComment(ret_obj) {
var error = ret_obj['error'];
var message = ret_obj['message'];
var mid = ret_obj['mid'];
var document_srl = ret_obj['document_srl'];
var comment_srl = ret_obj['comment_srl'];
var url = "./?mid="+mid+"&document_srl="+document_srl;
if(comment_srl) url += "#comment_"+comment_srl;
alert(message);
location.href = url;
}
/* 댓글 삭제 */
function completeDeleteComment(ret_obj) {
var error = ret_obj['error'];
var message = ret_obj['message'];
var mid = ret_obj['mid'];
var document_srl = ret_obj['document_srl'];
var page = ret_obj['page'];
var url = "./?mid="+mid+'&document_srl='+document_srl;
if(page) url += "&page="+page;
alert(message);
location.href = url;
}
/* 트랙백 삭제 */
function completeDeleteTrackback(ret_obj) {
var error = ret_obj['error'];
var message = ret_obj['message'];
var mid = ret_obj['mid'];
var document_srl = ret_obj['document_srl'];
var page = ret_obj['page'];
var url = "./?mid="+mid+'&document_srl='+document_srl;
if(page) url += "&page="+page;
alert(message);
location.href = url;
}
/* 카테고리 이동 */
function doChangeCategory(sel_obj, url) {
var category_srl = sel_obj.options[sel_obj.selectedIndex].value;
if(!category_srl) location.href=url;
else {
location.href = current_url.setQuery('category',category_srl);
}
}

View file

@ -0,0 +1,139 @@
<!--%import("filter/search.xml")-->
<!--#include("header.html")-->
<!-- 게시물 내용 include -->
<!--@if($document && $grant->view)-->
<!--#include("./view_document.html")-->
<!--@end-->
<!-- 목록 -->
<table cellspacing="0" summary="" class="boardList">
<thead>
<tr>
<th scope="col" class="num">&nbsp;</th>
<!--@if($module_info->use_category == "Y")-->
<th scope="col" class="category">
<form action="./" method="get">
<select name="category" onchange="doChangeCategory(this, '{getUrl('category','')}')" >
<option selected="selected">{$lang->category}</option>
<!--@foreach($category_list as $val)-->
<option value="{$val->category_srl}" <!--@if($category==$val->category_srl)-->selected="true"<!--@end-->>{$val->title} <!--@if($val->document_count)-->({$val->document_count})<!--@end--></option>
<!--@end-->
</select>
</form>
</th>
<!--@end-->
<th scope="col" class="title">{$lang->title}</th>
<th class="author" scope="col">{$lang->writer}</th>
<th class="reading" scope="col"><a href="#">{$lang->readed_count}<img src="./images/{$module_info->colorset}/buttonDescending.gif" alt="" width="5" height="3" class="sort" /></a></th>
<th class="recommend" scope="col"><a href="#">{$lang->voted_count}<img src="./images/{$module_info->colorset}/buttonDescending.gif" alt="" width="5" height="3" class="sort" /></a></th>
<th scope="col" class="date">{$lang->date}</th>
</tr>
</thead>
<tbody>
<!--@foreach($document_list as $no => $val)-->
<!--@if($val->is_notice=="Y")-->
<tr class="notice">
<td class="num">{$lang->notice}</td>
<!--@else-->
<tr class="bg{($no+1)%2+1}">
<td class="num">{$no}</td>
<!--@end-->
<!--@if($module_info->use_category == "Y")-->
<td class="category">{$category_list[$val->category_srl]->title}</td>
<!--@end-->
<td class="title">
<!--@if($grant->is_admin)-->
<input type="checkbox" value="{$val->document_srl}" onclick="doAddCart('{$mid}',this)" <!--@if($check_list[$val->document_srl])-->checked="true"<!--@end--> />
<!--@end-->
<!--@if($module_info->subject_cut_size>0)-->
{@ $val->title = cut_str($val->title,$module_info->subject_cut_size)}
<!--@end-->
<!--@if($grant->view)-->
<!-- 검색중일 경우는 새창으로 -->
<!--@if($search_target && $search_keyword)-->
<a href="#" onclick="winopen('{getUrl('','document_srl',$val->document_srl)}','viewDocument');return false;">{htmlspecialchars($val->title)}</a>
<!-- 검색을 하지 않을 시에는 현재창으로 -->
<!--@else-->
<a href="{getUrl('','document_srl',$val->document_srl)}">{htmlspecialchars($val->title)}</a>
<!--@end-->
<!--@else-->
{htmlspecialchars($val->title)}
<!--@end-->
<!--@if($val->comment_count>0)-->
<span class="replyAndTrackback" title="Replies">(<strong>{$val->comment_count}</strong>)</span>
<!--@end-->
<!--@if($val->trackback_count>0)-->
<span class="replyAndTrackback" title="Trackbacks">[<strong>{$val->trackback_count}</strong>]</span>
<!--@end-->
</td>
<td class="author"><div class="member_{$val->member_srl}">{$val->nick_name}</div></td>
<td class="reading">{$val->readed_count}</td>
<td class="recommend">{$val->voted_count}</td>
<td class="date">{zdate($val->regdate,"Y-m-d")}</td>
</tr>
<!--@end-->
</tbody>
</table>
<!--@if($grant->view)-->
<!-- 페이지 네비게이션 -->
<div class="pageNavigation">
<a href="{getUrl('page','','document_srl','')}" class="goToFirst"><img src="./images/{$module_info->colorset}/bottomGotoFirst.gif" alt="{$lang->first_page}" width="7" height="5" /></a>
<!--@while($page_no = $page_navigation->getNextPage())-->
<!--@if($page == $page_no)-->
<span class="current">{$page_no}</span>
<!--@else-->
<a href="{getUrl('page',$page_no,'document_srl','')}">{$page_no}</a>
<!--@end-->
<!--@end-->
<a href="{getUrl('page',$page_navigation->last_page,'document_srl','')}" class="goToLast"><img src="./images/{$module_info->colorset}/bottomGotoLast.gif" alt="{$lang->last_page}" width="7" height="5" /></a>
</div>
<!-- 글쓰기 버튼 -->
<div class="buttonRight">
<!--@if($grant->write_document)-->
<a href="{getUrl('act','dispBoardWrite','document_srl','')}" class="buttonTypeA"><img src="./images/blank.gif" alt="" class="leftCap" /><img src="./images/{$module_info->colorset}/iconWrite.gif" width="12" height="11" class="icon" alt="" />{$lang->cmd_write}<img src="./images/blank.gif" alt="" class="rightCap" /></a>
<!--@end-->
</div>
<!--@if($grant->is_admin)-->
<!-- 문서 관리 버튼 -->
<div class="buttonLeft">
<a href="#" onclick="popopen('{getUrl('act','dispBoardAdminManageDocument')}','manageDocument'); return false;" class="buttonTypeB"><img src="./images/blank.gif" alt="" class="leftCap" /><img src="./images/{$module_info->colorset}/iconCheck.gif" width="10" height="9" class="icon" alt="" />{$lang->cmd_manage_document}<img src="./images/blank.gif" alt="" class="rightCap" /></a>
</div>
<!--@end-->
<!-- 검색 -->
<form action="./" method="get" onsubmit="return procFilter(this, search)" class="boardSearch" id="fo_search">
<input type="hidden" name="mid" value="{$mid}" />
<input type="hidden" name="category" value="{$category}" />
<fieldset>
<legend>{$lang->cmd_search}</legend>
<select name="search_target">
<!--@foreach($search_option as $key => $val)-->
<option value="{$key}" <!--@if($search_target==$key)-->selected="true"<!--@end-->>{$val}</option>
<!--@end-->
</select>
<input type="text" name="search_keyword" value="{htmlspecialchars($search_keyword)}" class="inputTypeText"/>
<ul class="searchButton">
<li><a href="#" onclick="xGetElementById('fo_search').submit();return false;" class="buttonTypeB"><img src="./images/blank.gif" alt="" class="leftCap" />{$lang->cmd_search}<img src="./images/blank.gif" alt="" class="rightCap" /></a></li>
<li><a href="#" onclick="location.href='{getUrl('','mid',$mid)}';return false;" class="buttonTypeB"><img src="./images/blank.gif" alt="" class="leftCap" />{$lang->cmd_cancel}<img src="./images/blank.gif" alt="" class="rightCap" /></a></li>
</ul>
</fieldset>
</form>
<!--@end-->
<!--#include("footer.html")-->

View file

@ -0,0 +1,11 @@
<!--#include("header.html")-->
<div>
{$message}
</div>
<!--@if(!$is_logged)-->
<a href="{getUrl('act','dispMemberLoginForm')}">{$lang->cmd_login}</a>
<!--@end-->
<!--#include("footer.html")-->

View file

@ -0,0 +1,31 @@
<?xml version="1.0" encoding="utf-8"?>
<skin>
<title xml:lang="ko">제로보드XE 게시판 기본 스킨(목록형)</title>
<maker email_address="zero@zeroboard.com" link="http://www.zeroboard.com" date="2007. 2. 28">
<name xml:lang="ko">(주)NHN</name>
<description xml:lang="ko">
제로보드XE 게시판의 목록형 기본 스킨입니다.
디자인 : 서기정
HTML/CSS : 정찬명
</description>
</maker>
<colorset>
<color name="white" src="screenshot/white.gif">
<title xml:lang="ko">하얀색(기본)</title>
</color>
</colorset>
<extra_vars>
<var name="title" type="text">
<title xml:lang="ko">제목</title>
<description xml:lang="ko">게시판의 제목을 적어주세요.</description>
</var>
<var name="sub_title" type="text">
<title xml:lang="ko">간단한 설명</title>
<description lang="ko">제목 옆에 나타날 간단한 설명을 적어주세요.</description>
</var>
<var name="subject_cut_size" type="text">
<title xml:lang="ko">제목 글자수</title>
<description lang="ko">제목 글자수를 지정할 수 있습니다. (0또는 비워주시면 자르지 않습니다)</description>
</var>
</extra_vars>
</skin>

View file

@ -0,0 +1,21 @@
<!-- 엮인글 목록 -->
<div>
<!--@if($document->trackback_list)-->
<ul id="trackback">
<!--@foreach($document->trackback_list as $key => $val)-->
<a name="trackback_{$val->trackback_srl}"></a>
<li>
<a href="#" onclick="winopen('{$val->url}');return false;">{$val->title} - {$val->excerpt}</a>
<address>
<a href="#" onclick="winopen('{$val->url}');return false;">{htmlspecialchars($val->blog_name)}</a>
<span class="date">
{zdate($val->regdate, "Y.m.d H:i")}
({$val->ipaddress})
</span>
<a href="{getUrl('act','dispBoardDeleteTrackback','trackback_srl',$val->trackback_srl)}"><img src="./images/{$module_info->colorset}/buttonDeleteX.gif" border="0" alt="delete" width="12" height="13" /></a>
</address>
</li>
<!--@end-->
</ul>
<!--@end-->
</div>

View file

@ -0,0 +1,117 @@
<!--%import("filter/vote.xml")-->
<!-- 현 글의 기본 정보를 담고 있는 form. 필수 -->
<form id="fo_document_info" action="./" method="get">
<input type="hidden" name="mid" value="{$mid}" />
<input type="hidden" name="document_srl" value="{$document_srl}" />
</form>
<!-- 글 내용 보여주기 -->
<div class="boardRead">
<div class="originalContent">
<div class="readHeader">
<div class="titleAndCategory">
<h4>{htmlspecialchars($document->title)}</h4>
<!--@if($module_info->use_category == "Y" && $document->category_srl)-->
<span class="vr">|</span><span class="category">{$category_list[$document->category_srl]->title}</span>
<!--@end-->
</div>
<div class="dateAndModify">
<span class="date">
<strong>{zdate($document->regdate,"Y.m.d")}</strong> {zdate($document->regdate,"H:i:s")}
<!--@if($grant->is_admin)-->
({$document->ipaddress})
<!--@end-->
</span>
<!--@if($document->is_granted || !$document->member_srl)-->
<ul>
<li><a href="{getUrl('act','dispBoardWrite')}" class="buttonTypeB"><img src="./images/blank.gif" alt="" class="leftCap" />{$lang->cmd_modify}<img src="./images/blank.gif" alt="" class="rightCap" /></a></li>
<li><a href="{getUrl('act','dispBoardDelete')}" class="buttonTypeB"><img src="./images/blank.gif" alt="" class="leftCap" />{$lang->cmd_delete}<img src="./images/blank.gif" alt="" class="rightCap" /></a></li>
</ul>
<!--@end-->
</div>
</div>
<dl class="uri">
<dt>{$lang->document_url} :</dt>
<dd>{getUrl('','document_srl',$document->document_srl)}</dd>
<!--@if($document->allow_trackback=='Y')-->
<dt>{$lang->trackback_url} :</dt>
<dd>{getUrl('','document_srl',$document->document_srl,'act','trackback')}</dd>
<!--@end-->
</dl>
<div class="readBody">{$document->content}</div>
<div class="readFooter">
<!--@if($document->tag_list)-->
<div class="tag">
<h5><img src="./images/{$module_info->colorset}/iconTag.gif" alt="{$lang->tag}" width="17" height="10" class="tagIcon" /></h5>
<ul>
<!--@foreach($document->tag_list as $val)-->
<li><a href="{getUrl('search_target','tag','search_keyword',urlencode($val),'document_srl','')}">{htmlspecialchars($val)}</a>,</li>
<!--@end-->
</ul>
</div>
<!--@end-->
<!--@if($document->uploaded_count && $document->uploaded_list)-->
<div class="fileAttached">
<h5>{$lang->uploaded_file} : </h5>
<ul>
<!--@foreach($document->uploaded_list as $key => $file)-->
<li><a href="{getUrl('')}{$file->download_url}">{$file->source_filename} ({FileHandler::filesize($file->file_size)})({number_format($file->download_count)})</a></li>
<!--@end-->
</ul>
</div>
<!--@end-->
</div>
</div>
<ul class="replyAndTrackback">
<!--@if($grant->write_comment&&$document->allow_comment=='Y')-->
<li class="reply"><a href="#comment">{$lang->comment} <strong>{count($document->comment_list)}</strong></a></li>
<!--@end-->
<!--@if($document->allow_trackback=='Y')-->
<li class="trackback"><a href="#trackback">{$lang->trackback} <strong>{count($document->trackback_list)}</strong></a></li>
<!--@end-->
</ul>
<!-- 엮인글 파일 include -->
<!--@if($document->allow_trackback=='Y')-->
<a name="trackback"></a>
<!--#include("./trackback.html")-->
<!--@end-->
<!-- 댓글 파일 include -->
<!--@if($grant->write_comment&&$document->allow_comment=='Y')-->
<a name="comment"></a>
<!--#include("./comment.html")-->
<!--@end-->
</div>
<!--
<tr>
<th>{$lang->writer}</th>
<td><div class="member_{$document->member_srl}">{htmlspecialchars($document->nick_name)}</div></td>
</tr>
<tr>
<th>{$lang->readed_count}</th>
<td>{$document->readed_count}</td>
</tr>
<tr>
<th>{$lang->voted_count}</th>
<td>{$document->voted_count}</td>
</tr>
</table>
<div>
<a href="{getUrl('document_srl','')}">[{$lang->cmd_list}]</a>
<a href="#" onclick="doVote();return false;">[{$lang->cmd_vote}]</a>
</div>
-->

View file

@ -0,0 +1,98 @@
<!--%import("filter/insert.xml")-->
<!--#include("header.html")-->
<div class="boardWrite">
<form action="./" method="post" onsubmit="return procFilter(this, insert)" <!--@if($grant->fileupload)-->enctype="multipart/form-data"<!--@end--> class="boardEditor">
<fieldset>
<input type="hidden" name="mid" value="{$mid}" />
<input type="hidden" name="content" value="{htmlspecialchars($document->content)}" />
<input type="hidden" name="document_srl" value="{$document_srl}" />
<!--@if(!$is_logged)-->
<div class="userNameAndPw">
<label for="userName">{$lang->writer}</label>
<input type="text" name="nick_name" value="{$document->nick_name}" class="userName inputTypeText" id="userName"/>
<label for="userPw">{$lang->password}</label>
<input type="password" name="password" value="" id="userPw" class="userPw inputTypeText" />
<label for="emailAddress">{$lang->email_address}</label>
<input type="text" name="email_address" value="{htmlspecialchars($document->email_address)}" id="emailAddress" class="emailAddress inputTypeText"/>
<label for="homePage">{$lang->homepage}</label>
<input type="text" name="homepage" value="{htmlspecialchars($document->homepage)}" id="homePage" class="homePage inputTypeText"/>
</div>
<!--@end-->
<div class="title">
<label for="title" class="title">{$lang->title}</label>
<!--@if($module_info->use_category=="Y")-->
<select name="category_srl" >
<option value="">{$lang->category}</option>
<!--@foreach($category_list as $val)-->
<option value="{$val->category_srl}" <!--@if($category==$val->category_srl||$val->category_srl==$document->category_srl)-->selected="true"<!--@end-->>{$val->title} <!--@if($val->document_count)-->({$val->document_count})<!--@end--></option>
<!--@end-->
</select>
<!--@end-->
<input type="text" name="title" id="title" class="inputTypeText" value="{htmlspecialchars($document->title)}" />
</div>
<dl class="option">
<dt>설정옵션</dt>
<!--@if($grant->manager)-->
<dd>
<input type="checkbox" name="is_notice" value="Y" <!--@if($document->is_notice== "Y")-->checked="true"<!--@end--> id="is_notice" />
<label for="is_notice">{$lang->notice}</label>
</dd>
<dd>
<input type="checkbox" name="lock_comment" value="Y" <!--@if($document->lock_comment == "Y")-->checked="true"<!--@end--> id="lock_comment" />
<label for="lock_comment">{$lang->lock_comment}</label>
</dd>
<!--@end-->
<dd>
<input type="checkbox" name="is_secret" value="Y" <!--@if($document->is_secret== "Y")-->checked="true"<!--@end--> id="is_secret" />
<label for="is_secret">{$lang->secret}</label>
</dd>
<dd>
<input type="checkbox" name="allow_comment" value="Y" <!--@if($document->allow_comment != "N")-->checked="true"<!--@end--> id="allow_comment" />
<label for="allow_comment">{$lang->allow_comment}</label>
</dd>
<dd>
<input type="checkbox" name="allow_trackback" value="Y" <!--@if($document->allow_trackback != "N")-->checked="true"<!--@end--> id="allow_trackback" />
<label for="allow_trackback">{$lang->allow_trackback}</label>
</dd>
</dl>
<div>{$editor}</div>
<div class="trackbackURI">
<label for="trackbackURI">{$lang->cmd_send_trackback}</label>
<select name="trackback_charset">
<option value='UTF-8'>UTF-8</option>
<option value='EUC-KR'>EUC-KR</option>
<option value='EUC-JP'>EUC-JP</option>
<option value='SHIFT_JIS'>SHIFT_JIS</option>
<option value='EUC-CN'>EUC-CN</option>
<option value='HZ'>HZ</option>
<option value='BIG5'>BIG5</option>
</select>
<input type="text" name="trackback_url" id="trackbackURI" class="inputTypeText" />
</div>
<div class="tag">
<label for="tag">{$lang->tag}</label>
<input type="text" name="tags" id="tag" value="{htmlspecialchars($document->tags)}" class="inputTypeText" />
<p class="info">{$lang->about_tag}</p>
</div>
</fieldset>
<div class="buttonWrite">
<a href="#" onclick="submit();return false;" class="buttonTypeA"><img src="./images/blank.gif" alt="" class="leftCap" />{$lang->cmd_registration}<img src="./images/blank.gif" alt="" class="rightCap" /></a>
</div>
</form>
</div>
<!--#include("footer.html")-->

View file

@ -135,6 +135,7 @@ div.editor_drag_down_area {
.editor_uploader_status {
margin:5px 0px 5px 0px;
height:20px;
}
.editor_uploader_status .title {