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

This commit is contained in:
zero 2007-06-12 04:33:45 +00:00
parent 8e8ea521f0
commit 60902a5889
86 changed files with 1784 additions and 3 deletions

View file

@ -1,4 +1,3 @@
<!--%import("filter/insert_comment.xml")-->
<!--@if($document->comment_list)-->
<!--@foreach($document->comment_list as $key => $val)-->

View file

@ -0,0 +1,56 @@
<!--@if($document->comment_list)-->
<ul id="reply">
<!--@foreach($document->comment_list as $key => $val)-->
<li <!--@if($val->depth)-->class="reply"<!--@end-->>
<!--@if($val->depth)-->
<div style="margin-left:{($val->depth-1)*1.3}em" class="replyIndent">
<!--@end-->
<a name="comment_{$key}"></a>
<div class="member_{$val->member_srl} author">{htmlspecialchars($val->nick_name)}</div>
<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>
<div class="date">
{zdate($val->regdate, "Y.m.d H:i")}
<!--@if($grant->is_admin)-->
({$val->ipaddress})
<!--@end-->
</div>
<div class="replyContent">
{$val->content}
</div>
<!--@if($val->uploaded_count && $val->uploaded_list)-->
<div class="fileAttached">
<ul>
<!--@foreach($val->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-->
<!--@if($val->depth)-->
</div>
<!--@end-->
</li>
<!--@end-->
</ul>
<!--@end-->
<!-- 댓글 입력 폼 -->
<!--@if($grant->write_comment && $document->lock_comment == 'N')-->
<div id="comment_form_{$document->document_srl}"></div>
<!--@end-->

View file

@ -0,0 +1,70 @@
<!--%import("filter/insert_comment.xml")-->
<!--%import("js/blog.js")-->
<!--@if($source_comment)-->
<!--#include("header.html")-->
<!--@end-->
<!-- 만약 댓글의 답을 다는 것이라면 원문 보여줌 -->
<!--@if($source_comment)-->
<ul id="reply">
<li>
<div class="member_{$source_comment->member_srl} author">{htmlspecialchars($source_comment->nick_name)}</div>
<div class="date">
{zdate($source_comment->regdate, "Y.m.d H:i")}
<!--@if($grant->is_admin)-->
({$source_comment->ipaddress})
<!--@end-->
</div>
<div class="replyContent">
{$source_comment->content}
</div>
</li>
</ul>
<!--@end-->
<!-- 글쓰기 폼 -->
<div class="boardWrite">
<form action="./" method="post" onsubmit="return procFilter(this, insert_comment)" <!--@if($grant->fileupload)-->enctype="multipart/form-data"<!--@end--> class="boardEditor" >
<fieldset>
<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}" />
<!--@if(!$is_logged)-->
<div class="userNameAndPw">
<label for="userName">{$lang->writer}</label>
<input type="text" name="nick_name" value="{$comment->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($comment->email_address)}" id="emailAddress" class="emailAddress inputTypeText"/>
<label for="homePage">{$lang->homepage}</label>
<input type="text" name="homepage" value="{htmlspecialchars($comment->homepage)}" id="homePage" class="homePage inputTypeText"/>
</div>
<!--@end-->
<div>{$comment_editor}</div>
<div class="buttonWrite">
<!--@if($act&&$act!='dispBlogContent')-->
<input type="button" value="{$lang->cmd_back}" onclick="location.href='{getUrl('act','')}'" />
<!--@end-->
<input type="submit" value="{$lang->cmd_registration}" accesskey="s" />
</div>
</fieldset>
</form>
</div>
<!--@if($source_comment)-->
<!--#include("footer.html")-->
<!--@end-->

View file

@ -0,0 +1,102 @@
#blog_category .title_box {
cursor:pointer;
padding-left:18px;
background:url(../images/tree_menu/folder.gif) no-repeat left;
margin-bottom:3px;
}
#blog_category .node_item A {
text-decoration:none;
}
#blog_category .selected {
background-color:#0E078F;
font-weight:bold;
color:#FFFFFF;
font-size:9pt;
cursor:pointer;
padding:1px 2px 1px 2px;
}
#blog_category .unselected {
background-color:#FFFFFF;
font-weight:normal;
color:#000000;
font-size:9pt;
cursor:pointer;
padding:1px 2px 1px 2px;
}
#blog_category .document_count {
margin-left:5px;
color:#AAAAAA;
font-size:9px;
}
#blog_category .page {
cursor:pointer;
background:url(../images/tree_menu/page.gif) no-repeat left;
}
#blog_category .folder_open {
cursor:pointer;
background:url(../images/tree_menu/page_folder.gif) no-repeat left;
}
#blog_category .folder_close {
cursor:pointer;
background:url(../images/tree_menu/folder.gif) no-repeat left;
}
#blog_category .item_open {
display:block;
padding-left:18px;
}
#blog_category .item_close {
display:none;
padding-left:18px;
}
#blog_category .line_open {
display:block;
padding-left:18px;
background:url(../images/tree_menu/line.gif) repeat-y left;
}
#blog_category .line_close {
display:none;
padding-left:18px;
background:url(../images/tree_menu/line.gif) repeat-y left;
}
#blog_category .plus {
padding-left:18px;
background:url(../images/tree_menu/plus.gif) repeat-y left;
}
#blog_category .plus_bottom {
padding-left:18px;
background:url(../images/tree_menu/plusbottom.gif) no-repeat left;
}
#blog_category .minus {
padding-left:18px;
background:url(../images/tree_menu/minus.gif) repeat-y left;
}
#blog_category .minus_bottom {
padding-left:18px;
background:url(../images/tree_menu/minusbottom.gif) no-repeat left;
}
#blog_category .join {
padding-left:18px;
background:url(../images/tree_menu/join.gif) repeat-y left;
}
#blog_category .join_bottom {
padding-left:18px;
background:url(../images/tree_menu/joinbottom.gif) no-repeat left;
}

View file

@ -0,0 +1,144 @@
@charset "utf-8";
body {
margin:0px;
padding:0px;
}
/**
* 블로그 기본 기능
**/
.blog_default_menu {
margin:5px 10px 0px 10px;
width:890px;
text-align:right;
}
/**
* 상단 로고 메인 1차 메뉴
**/
.layout_top {
margin:10px 10px 0px 10px;
width:890px;
}
/* 상단 로고 부분 */
.layout_logo A {
font-weight:bold;
font-size:16pt;
color:#888888;
text-decoration:none;
}
/* 상단 1차 메뉴 */
.layout_first_menu {
border-bottom:2px solid #DDDDDD;
width:100%;
text-align:right;
padding:3px 0px 3px 0px;
}
/**
* 좌측 메뉴 메인 2차 메뉴, 로그인 플러그인 기타
**/
.layout_left {
width:220px;
float:left;
margin-top:10px;
position:absolute;
left:10px;
z-index:10;
}
#blog_category {
padding:10px;
margin-bottom:10px;
}
/* 컨텐츠 */
.layout_content {
position:absolute;
left:0px;
padding:10px 10px 0px 240px;
z-index:1;
width:660px;
}
/* 상단 메뉴 */
.first_menu {
background-color:#999999;
padding:3px 10px 3px 10px;
margin-left:5px;
}
.first_menu A {
font-weight:normal;
color:#FFFFFF;
text-decoration:none;
}
.first_menu_selected {
background-color:#000000;
padding:3px 10px 3px 10px;
margin-left:5px;
}
.first_menu_selected A {
color:#FFFFFF;
font-weight:bold;
text-decoration:none;
}
/* 프로필 영역 */
.layout_profile {
border:2px solid #EEEEEE;
text-align:center;
padding:10px 0px 10px 0px;
margin-bottom:10px;
}
.layout_profile .profile_image {
margin-bottom:10px;
}
.layout_profile .profile{
color:#555555;
text-align:left;
padding:0px 10px 10px 10px;
}
/* 검색 */
.layout_search {
border-top:2px solid #EEEEEE;
padding:10px;
margin-bottom:10px;
}
.layout_search .search_keyword {
border:1px solid #EEEEEE;
width:100px;
}
.layout_search .search_button {
border:1px solid #AAAAAA;
background-color:#FFFFFF;
width:40px;
}
/* 좌측 관리자 메뉴 */
.layout_admin {
border-top:1px solid #EEEEEE;
text-align:center;
padding-top:10px;
margin:10px 5px 0px 10px;
}
.layout_admin A {
color:#AAAAAA;
text-decoration:none;
}
/* 내용 */
#content {
}

View file

@ -0,0 +1,269 @@
@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 left top; padding:0 0 0 1.5em; margin:.5em 0 0 0;}
.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 { 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 { background:none; 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;}
/* 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; position:relative; top:-.2em;}
.boardList td .replyAndTrackback img.trackback { margin-bottom:-.1em;}
.boardList td.title.bold .replyAndTrackback { font:.6em Tahoma; color:#ff6600; 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;}
/* pageNavigation */
.pageNavigation { 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; }
/* 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;border:0px;}
.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;}
.buttonRight ul { float:left; }
.buttonRight ul li { float:left; margin-right:.3em;}
.buttonLeft { position:relative; float:left; top:-3em; margin:0 0 -3em 0; _top:-3.5em; padding-left:.5em; overflow:visible;}
.buttonLeft ul { float:left; }
.buttonLeft ul li { float:left; margin-right:.3em;}
.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;}
/* 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;}
/* 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 .num { font-size:.9em; font-family:Tahoma; color:#999999; margin-right:.5em; float:left; position:relative; top:.3em;}
.boardRead .dateAndModify .num strong { font-size:1em; font-family:Tahoma;}
.boardRead .dateAndModify .ipaddress { font-size:.9em; font-family:Tahoma; color:#555555; margin-right:.5em; float:left; position:relative; top:.3em;}
.boardRead .dateAndModify ul { display:inline;}
.boardRead .dateAndModify ul li { float:left; margin-left:.3em;}
.boardRead dl.uri { overflow:hidden; margin:0 0 2em .3em; float:right;}
.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 .userInfo { float:left; white-space:nowrap;}
.boardRead .userInfo .author { float:left; padding:0 .3em 0 0; color:#3074a5; margin-right:.3em;}
.boardRead .readBody { padding:0 .3em; color:#555555; overflow:hidden; margin-bottom:2em; clear:both;}
.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 .replyAndTrackback li.button { float:right; }
.boardRead .replyAndTrackback li.button a { display:inline; padding:0; margin:0 1em 0 1em;}
#trackbacks { padding:.6em .6em; color:#666666; border:1px solid #e0e1db;;margin-top:.5em;}
#trackbacks li { padding:.6em .8em .6em .6em; line-height:1.25em; border-bottom:1px dotted #EEEEEE;}
#trackbacks p { display:inline; margin-bottom:1em;}
#trackbacks a { color:#666666; }
#trackbacks div { clear:both; }
#trackbacks address { display:block; padding:0 .3em 0 0; }
#trackbacks address a { font-size:.9em; color:#3074a5; margin-right:.3em; float:left;}
#trackbacks address .date { font:.8em Tahoma; color:#cccccc; float:right;}
#reply { padding:.6em .6em; color:#666666; border:1px solid #e0e1db; margin-top:.5em;}
#reply li { padding:.6em .8em .6em .6em; line-height:1.25em; clear:both; border-bottom:1px dotted #EEEEEE;}
#reply p { display:inline; margin-bottom:1em;}
#reply .author { float:left; padding:0 .3em 0 0; font-size:.9em; color:#3074a5; margin-right:.3em;}
#reply .author a { font-size:.9em; color:#3074a5; margin-right:.3em;}
#reply .date { float:right; font:.8em Tahoma; color:#cccccc; margin:.3em 0 .5em 0;}
#reply .replyOption { float:right; white-space:nowrap; margin-left:.2em;}
#reply .replyOption img { vertical-align:middle;}
#reply .replyContent { clear:left; }
#reply .reply { background-color:#FAFAFA;}
#reply .replyIndent { background:url(../images/white/iconReplyArrow.gif) no-repeat .0em .3em; padding-left:1.3em;}
#reply li .fileAttached { _width:100%; border:1px solid #eaeae7; overflow:hidden; background:#fbfbfb; margin-top:.3em;}
#reply li .fileAttached ul { float:left; padding:.3em 1em .2em 0; margin-left:.5em; _margin-left:.25em;}
#reply li .fileAttached li { border:0px; display:inline; margin-right:.75em; line-height:1.5em; padding:.1em 0 .1em 1.5em; background:url(../images/white/iconFile.gif) no-repeat left;}
#reply li .fileAttached li a { font-size:.9em; white-space:nowrap; position:relative; color:#444444; }
#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 .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;}
.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 .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:50%;}
.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:50%;}
.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 { text-align:center; margin:.5em 0 1em 0; clear:both;}
.boardWrite .buttonWrite input { border:1px solid #999999; background-color:#FFFFFF; color:#999999; height:1.5em; width:5em; _padding-top:.1em; cursor:pointer;}

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="blog" act="procBlogDeleteComment">
<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="blog" act="procBlogDeleteDocument">
<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="blog" act="procBlogDeleteTrackback">
<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="blog" act="procBlogVerificationPassword" >
<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="blog" act="procBlogInsertDocument" 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="blog" act="procBlogInsertComment" 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 @@
{$module_info->footer_text}

View file

@ -0,0 +1,13 @@
<!-- JS 파일 로드 -->
<!--%import("js/blog.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}

Binary file not shown.

After

Width:  |  Height:  |  Size: 43 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 372 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 70 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 66 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 68 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 90 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 85 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 582 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 622 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 91 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 88 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: 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: 101 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,177 @@
/**
* @file modules/blog/js/blog.js
* @author zero (zero@nzeo.com)
* @brief blog 모듈의 javascript
**/
/**
* url에 #comment_번호가 있을 경우 댓글창을 열고 위치 이동
**/
if(location.href.indexOf('#comment')>0) {
function openCommentAndMove() {
doDisplayComment(current_url.getQuery('document_srl'));
location.href = location.href;
}
xAddEventListener(window,'load', openCommentAndMove);
}
if(location.href.indexOf('#trackback')>0) {
function openTrackbackAndMove() {
doDisplayTrackback(current_url.getQuery('document_srl'));
location.href = location.href;
}
xAddEventListener(window,'load', openTrackbackAndMove);
}
/**
* 댓글 오픈
* 댓글의 경우 editor를 동반해서 불러야 하기에 ajax로 tpl파일을 가져와서 쓰는걸로 한다.
**/
var _opend_comment = new Array();
function doDisplayComment(document_srl) {
var comment_zone = xGetElementById('comment_'+document_srl);
// 닫혀 있는 상태라면 한번이라도 열렸었는지 검사하여 열린적이 없다면 에디터를 가져온다
if(comment_zone.style.display != "block") {
if(!_opend_comment[document_srl]) {
_opend_comment[document_srl] = true;
doGetCommentEditorForm(document_srl);
}
comment_zone.style.display = "block";
}
else comment_zone.style.display = "none";
}
function doGetCommentEditorForm(document_srl) {
var params = new Array();
params['document_srl'] = document_srl;
var response_tags = new Array('error','message','document_srl','upload_target_srl','tpl');
show_waiting_message = false;
exec_xml('blog','getBlogCommentEditorForm', params, completeCommentEditorForm, response_tags);
show_waiting_message = true;
}
var editor_path = "./modules/editor/tpl";
function completeCommentEditorForm(ret_obj) {
var document_srl = ret_obj['document_srl'];
var upload_target_srl = ret_obj['upload_target_srl'];
var tpl = ret_obj['tpl'];
var comment_form_zone = xGetElementById('comment_form_'+document_srl);
if(!comment_form_zone) return;
// tpl 입력
xInnerHtml(comment_form_zone, tpl);
// 에디터 실행
editorStart(upload_target_srl, true, 100);
}
/**
* 엮인글 오픈
**/
function doDisplayTrackback(document_srl) {
var trackback_zone = xGetElementById('trackback_'+document_srl);
if(trackback_zone.style.display != "block") trackback_zone.style.display = "block";
else trackback_zone.style.display = "none";
}
/* 글쓰기 작성후 */
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();
}
// 현재 페이지 reload
function completeReload(ret_obj) {
var error = ret_obj['error'];
var message = ret_obj['message'];
location.href = location.href;
}
/* 댓글쓰기 submit */
function doCommentSubmit() {
var fo_obj = xGetElementById('fo_comment_write');
procFilter(fo_obj, insert);
}
/* 댓글 글쓰기 작성후 */
function completeInsertComment(ret_obj) {
var error = ret_obj['error'];
var message = ret_obj['message'];
alert(message);
location.href = current_url.setQuery('comment_srl','').setQuery('act','');
}
/* 댓글 삭제 */
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=url+'&category='+category_srl;
}

View file

@ -0,0 +1,269 @@
/**
* @file blog_tree_menu.js
* @author zero (zero@nzeo.com)
* @brief xml파일을 읽어서 트리 메뉴를 그려줌
*
* common/tpl/tree_menu.js 서비스용으로만 사용하기 위해서 수정한 .
* 관리 기능이 없고 css 적용이 가능
**/
// 폴더를 모두 열고/닫기 위한 변수 설정
var blog_tree_menu_folder_list = new Array();
// 노드의 정보를 가지고 있을 변수
var blog_node_info_list = new Array();
// 카테고리별 문서 수를 가지고 있는 전역 변수
var category_document_count = new Array();
var total_document_count = 0;
// 카테고리의 문서 갯수를 세팅하는 함수
function setDocumentCount(node_srl, document_count) {
category_document_count[node_srl] = document_count;
total_document_count += document_count;
}
// 카테고리의 node_srl로 문서 갯수를 리턴하는 함수
function getDocumentCount(node_srl) {
return parseInt(category_document_count[node_srl],10);
}
// 트리메뉴의 정보를 담고 있는 xml파일을 읽고 drawTreeMenu()를 호출하는 함수
function blogLoadTreeMenu(xml_url, title, index_url) {
// 일단 그릴 곳을 찾아서 사전 작업을 함 (그릴 곳이 없다면 아예 시도를 안함)
var zone = xGetElementById("blog_category");
if(typeof(zone)=="undefined") return;
// 제목이 없으면 제목을 category로 지정
if(typeof(title)=="undefined" || !title) title = "category";
// index url이 없으면 현재 # 으로 대체
if(!index_url) index_url= "#";
// xml_handler를 이용해서 직접 메뉴 xml파일를 읽음
if(!xml_url) return;
var oXml = new xml_handler();
oXml.reset();
oXml.xml_path = xml_url;
var param = {"title":title, "index_url":index_url}
// 요청후 drawTreeMenu()함수를 호출 (xml_handler.js에서 request method를 직접 이용)
oXml.request(blogDrawTreeMenu, oXml, null, null, null, param);
}
// 트리메뉴 XML정보를 이용해서 정해진 zone에 출력
var blog_menu_selected = false;
function blogDrawTreeMenu(oXml, callback_func, resopnse_tags, null_func, param) {
var title = param.title;
var index_url = param.index_url;
var zone = xGetElementById("blog_category");
var html = "";
// 받아온 xml내용을 이용하여 트리 메뉴 그림
var xmlDoc = oXml.getResponseXml();
if(!xmlDoc) {
xInnerHtml(zone, html);
return null;
}
// node 태그에 해당하는 값들을 가져와서 html을 작성
var node_list = xmlDoc.getElementsByTagName("node");
if(node_list.length>0) {
var root = xmlDoc.getElementsByTagName("root")[0];
var output = blogDrawNode(root);
html += output.html;
}
// 제목 지정
var title_class = "selected";
if(blog_menu_selected) title_class = "unselected";
html = '<div class="title_box"><span class="'+title_class+'" id="blog_title" onclick="location.href=\''+index_url+'\';return false;" >'+title+'</span> <span class="document_count">('+total_document_count+')</span></div>'+html;
// 출력하려는 zone이 없다면 load후에 출력하도록 함
if(!zone) {
xAddEventListener(window, 'load', function() { blogDrawTeeMenu(html); });
// 출력하려는 zone을 찾아졌다면 바로 출력
} else {
xInnerHtml(zone, html);
}
return null;
}
// 페이지 랜더링 중에 메뉴의 html이 완성되었을때 window.onload event 후에 그리기 재시도를 하게 될 함수
function blogDrawTeeMenu(html) {
xInnerHtml("blog_category", html);
}
// root부터 시작해서 recursive하게 노드를 표혐
function blogDrawNode(parent_node) {
var output = {html:"", expand:"N"}
for (var i=0; i< parent_node.childNodes.length; i++) {
var html = "";
var selected = false;
// nodeName이 node가 아니면 패스~
var node = parent_node.childNodes.item(i);
if(node.nodeName!="node") continue;
// node의 기본 변수들 체크
var node_srl = node.getAttribute("node_srl");
var text = node.getAttribute("text");
var url = node.getAttribute("url");
var expand = node.getAttribute("expand");
if(!text) continue;
// 자식 노드가 있는지 확인
var hasChild = false;
if(node.hasChildNodes()) hasChild = true;
// nextSibling가 있는지 확인
var hasNextSibling = false;
if(i==parent_node.childNodes.length-1) hasNextSibling = true;
// 후에 사용하기 위해 blog_node_info_list에 node_srl을 값으로 하여 node object 추가
blog_node_info_list[node_srl] = node;
// zone_id 값을 세팅
var zone_id = "blog_category_"+node_srl;
blog_tree_menu_folder_list[blog_tree_menu_folder_list.length] = zone_id;
var current_category = current_url.getQuery('category');
if(current_category == node_srl) {
selected = true;
blog_menu_selected = true;
}
// blog_selected_node이 node_srl과 같으면 펼침으로 처리
if(selected) expand = "Y";
// 아이콘 설정
var line_class = null;
var folder_class = null;
// 자식 노드가 있을 경우 자식 노드의 html을 구해옴
var child_output = null;
var child_html = "";
if(hasChild) {
// 자식 노드의 zone id를 세팅
var child_zone_id = zone_id+"_child";
blog_tree_menu_folder_list[blog_tree_menu_folder_list.length] = child_zone_id;
// html을 받아옴
child_output = blogDrawNode(node);
var chtml = child_output.html;
var cexpand = child_output.expand;
if(cexpand == "Y") expand = "Y";
// 무조건 펼침이 아닐 경우
if(expand!="Y") {
if(!hasNextSibling) child_html += '<div id="'+child_zone_id+'" class="line_close">'+chtml+'</div>';
else child_html += '<div id="'+child_zone_id+'" class="item_close">'+chtml+'</div>';
// 무조건 펼침일 경우
} else {
if(!hasNextSibling) child_html += '<div id="'+child_zone_id+'" class="line_open"">'+chtml+'</div>';
else child_html += '<div id="'+child_zone_id+'" class="item_open">'+chtml+'</div>';
}
}
// 자식 노드가 있는지 확인하여 있으면 아이콘을 바꿈
if(hasChild) {
// 무조건 펼침이 아닐 경우
if(expand != "Y") {
if(!hasNextSibling) {
line_class = "minus";
folder_class = "folder_close";
} else {
line_class = "minus_bottom";
folder_class = "folder_close";
}
// 무조건 펼침일 경우
} else {
if(!hasNextSibling) {
line_class = "plus";
folder_class = "folder_open";
} else {
line_class = "plus_bottom";
folder_class = "folder_open";
}
}
// 자식 노드가 없을 경우
} else {
if(hasNextSibling) {
line_class = "join_bottom";
folder_class = "page";
} else {
line_class = "join";
folder_class = "page";
}
}
// html 작성
var click_str = ' class="'+folder_class+'"' ;
if(hasChild) click_str += ' onclick="blogToggleFolder(\''+zone_id+'\');return false;" ';
var text_class = "unselected";
if(selected) text_class = "selected";
var document_count_text = "";
var document_count = getDocumentCount(node_srl);
if(document_count>0) document_count_text = '<span class="document_count">('+document_count+')</span>';
// 왼쪽 폴더/페이지와 텍스트 위치를 맞추기 위해;;; table태그 일단 사용. 차후 바꾸자..
html += '<div id="'+zone_id+'" class="node_item">'+
'<div id="'+zone_id+'_line" class="'+line_class+'">'+
'<table border="0" cellspacing="0" cellpadding="0"><tr><td height="20"><img src="'+request_uri+'/common/tpl/images/blank.gif" width="18" height="18" alt="" id="'+zone_id+'_folder" '+click_str+' /></td>'+
'<td><a href="#" id="'+zone_id+'_node" class="'+text_class+'" onclick="blogSelectNode(\''+url+'\');return false;">'+text+'</a>'+document_count_text+'</td></tr></table>'+
'</div>';
if(hasChild && child_html) html += child_html;
html += '</div>';
output.html += html;
if(expand=="Y") output.expand = "Y";
}
return output;
}
// 노드의 폴더 아이콘 클릭시
function blogToggleFolder(zone_id) {
// 아이콘을 클릭한 대상을 찾아봄
var child_zone = xGetElementById(zone_id+"_child");
if(!child_zone) return;
var line_obj = xGetElementById(zone_id+'_line');
var folder_obj = xGetElementById(zone_id+'_folder');
// 대상의 자식 노드들이 숨겨져 있다면 열고 아니면 닫기
if(folder_obj.className == "folder_open") {
child_zone.style.display = "none";
if(line_obj.className.indexOf('bottom')>0) line_obj.className = 'minus_bottom';
else line_obj.className = 'minus';
folder_obj.className = 'folder_close'
} else {
child_zone.style.display = "block";
if(line_obj.className.indexOf('bottom')>0) line_obj.className = 'plus_bottom';
else line_obj.className = 'plus';
folder_obj.className = 'folder_open';
}
}
// 노드 클릭시
function blogSelectNode(url) {
location.href = url;
}

View file

@ -0,0 +1,123 @@
<!-- 레이아웃과 연동될 css 파일 import -->
<!--%import("css/layout.css")-->
<!--%import("css/blog_tree_menu.css")-->
<!--%import("js/blog_tree_menu.js")-->
<!-- 블로그 카테고리의 글 갯수를 javascript변수로 설정 -->
<script type="text/javascript">
<!--@foreach($category_list as $key => $val)-->setDocumentCount({$key}, {(int)$val->document_count});<!--@end-->
</script>
<!-- 블로그 카테고리를 js/blog_tree_menu.js를 이용해서 표시 -->
<script type="text/javascript">
blogLoadTreeMenu("{getUrl()}/files/cache/blog_category/{$layout_info->layout_srl}.xml.php", "{$layout_info->category_name?$layout_info->category_name:'category'}", "{getUrl('','mid',$mid)}");
</script>
<!-- 블로그 기본 기능 메뉴 출력 -->
<div class="blog_default_menu">
<!-- 로그인 -->
<!--@if(!$is_logged)-->
<a href="{getUrl('act','dispMemberSignUpForm')}">{$lang->cmd_signup}</a>
<a href="#" onclick="location.href='{getUrl('act','dispMemberLoginForm')}';return false;">{$lang->cmd_login}</a>
<!--@else-->
<a href="{getUrl('act','dispMemberInfo')}">{$lang->cmd_view_member_info}</a>
<a href="#" onclick="location.href='{getUrl('act','dispMemberLogout')}';return false;">{$lang->cmd_logout}</a>
<!--@end-->
<!-- 관리 기능 -->
<!--@if($grant->is_admin)-->
<!-- 관리자일 경우 블로그 관리 메뉴 -->
<a href="#" onclick="location.href='{getUrl('mid', $layout_info->mid, 'act','dispBlogAdminBlogInfo','layout_srl',$layout_info->layout_srl)}';return false;">{$lang->cmd_management}</a>
<!--@end-->
<!-- RSS -->
<!--@if($rss_url)-->
<!-- rss 버튼 -->
<a href="{$rss_url}">rss</a>
<!--@end-->
</div>
<!-- 상단 로고 및 상단 메뉴 출력 -->
<div class="layout_top">
<div class="layout_logo">
<!--@if($layout_info->logo_image)-->
<a href="{getUrl('','mid',$layout_info->mid)}"><img src="{$layout_info->logo_image}" border="0" alt="{$layout_info->browser_title}"/></a>
<!--@end-->
<!--@if($layout_info->top_title)-->
<a href="{getUrl('','mid',$layout_info->mid)}">{$layout_info->top_title}</a>
<!--@end-->
</div>
<div class="layout_first_menu">
<!-- top_menu 시작 -->
<!--@foreach($top_menu->list as $key => $val)--><!--@if($val['text'])-->
<!--@if($val['selected'])-->
{@ $class_name = 'first_menu_selected'}
<!--@else-->
{@ $class_name = 'first_menu'}
<!--@end-->
<span class="{$class_name}">
<a href="#" onclick="return move_url('{$val['href']}','{$val['open_window']}');">{$val['text']}</a>
</span>
<!--@end--><!--@end-->
<!-- top_menu 끝 -->
</div>
</div>
<!-- 왼쪽 분류 출력 -->
<div class="layout_left">
<!--@if($layout_info->profile || $layout_info->profile_image)-->
<!-- 프로필 -->
<div class="layout_profile">
<!--@if($layout_info->profile_image)-->
<div class="profile_image">
<img src="{$layout_info->profile_image}" border="0" alt="profile image" />
</div>
<!--@end-->
<!--@if($layout_info->profile)-->
<div class="profile">
{$layout_info->profile}
</div>
<!--@end-->
<!--@if($grant->is_admin)-->
<div class="layout_admin">
<!-- 글쓰기 버튼 -->
<a href="{getUrl('mid', $layout_info->mid, 'act','dispBlogWrite','document_srl','')}">{$lang->cmd_write}</a>
</div>
<!--@end-->
</div>
<!--@end-->
<!-- 블로그 메뉴 출력 -->
<div id="blog_category"></div>
<!-- 검색 -->
<div class="layout_search">
<form action="{getUrl()}" method="get">
<input type="hidden" name="mid" value="{$layout_info->mid}" />
<input type="text" class="search_keyword" name="search_keyword" value="<!--@if(!$search_target)-->{htmlspecialchars($search_keyword)}<!--@end-->" />
<input type="submit" class="search_button" value="{$lang->cmd_search}" />
</form>
</div>
</div>
<!-- 컨텐츠 출력 부분 -->
<div class="layout_content">
<div id="content">{$content}</div>
</div>

View file

@ -0,0 +1,48 @@
<!--#include("header.html")-->
<!-- 목록 -->
<div style="margin-bottom:20px;">
<!-- 검색된 글 목록이 있고 권한이 있을 경우 출력 -->
<!--@if($document_list && $grant->list)-->
<!--@foreach($document_list as $no => $document)-->
<!-- 검색어가 사용되었을 경우 목록형태로 출력 -->
<!--@if($search_target && $search_keyword)-->
<div>
<!-- 일자, 제목 출력-->
[{zdate($document->regdate, "Y-m-d")}] <a href="#" onclick="winopen('{getUrl('','document_srl',$document->document_srl)}');return false;">{$document->title}</a>
<!-- 댓글이 있으면 댓글의 수 출력 -->
<!--@if($document->comment_count)-->({number_format($document->comment_count)})<!--@end-->
<!-- 엮인글이 있으면 엮인글의 수 출력 -->
<!--@if($document->trackback_count)-->({number_format($document->trackback_count)})<!--@end-->
</div>
<!-- 검색어가 없다면 내용을 바로 출력 -->
<!--@else-->
<!--#include("./view_document.html")-->
<!--@end-->
<!--@end-->
<!--@else-->
{$lang->no_documents}
<!--@end-->
</div>
<!-- 페이지 네비게이션 -->
<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>
<!--#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,51 @@
<?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="top_title" type="text">
<title xml:lang="ko">상단 제목</title>
<description xml:lang="ko">레이아웃의 상단에 표시할 제목을 입력하세요.</description>
</var>
<var name="logo_image" type="image" width="60" height="60">
<title xml:lang="ko">로고이미지</title>
<description xml:lang="ko">레이아웃의 상단에 표시될 로고이미지를 입력하세요.</description>
</var>
<var name="profile_image" type="image" width="60" height="60">
<title xml:lang="ko">프로필 이미지</title>
<description xml:lang="ko">프로필 이미지를 입력해 주세요 (가로 사이즈는 200px이 가장 보기 좋습니다)</description>
</var>
<var name="profile" type="textarea">
<title xml:lang="ko">프로필</title>
<description lang="ko">간단한 프로필을 입력해주세요</description>
</var>
<var name="category_name" type="text">
<title xml:lang="ko">카테고리명</title>
<description lang="ko">카테고리의 이름을 입력해주세요.</description>
</var>
<var name="display_writer" type="select">
<title xml:lang="ko">글쓴이 표시</title>
<description lang="ko">다수가 블로그를 함께 운영시에 글쓴이의 이름을 표시할 수 있습니다.</description>
<default>off</default>
<default>on</default>
</var>
</extra_vars>
<menus>
<menu name="top_menu" default="true">
<title xml:lang="ko">상단 메뉴</title>
<maxdepth>1</maxdepth>
</menu>
</menus>
</skin>

View file

@ -0,0 +1,24 @@
<!-- 엮인글 목록 -->
<!--@if($document->trackback_list)-->
<ul id="trackbacks">
<!--@foreach($document->trackback_list as $key => $val)-->
<li>
<a name="trackback_{$val->trackback_srl}"></a>
<address>
<a href="#" onclick="winopen('{$val->url}');return false;">{htmlspecialchars($val->blog_name)}</a>
<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>
<span class="date">
{zdate($val->regdate, "Y.m.d H:i")}
({$val->ipaddress})
</span>
</address>
<div>
<a href="#" onclick="winopen('{$val->url}');return false;">{$val->title} - {$val->excerpt}</a>
</div>
</li>
<!--@end-->
</ul>
<!--@end-->

View file

@ -0,0 +1,110 @@
<!--%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="num">
<strong>{zdate($document->regdate,"Y.m.d")}</strong> {zdate($document->regdate,"H:i:s")}
</span>
<!--@if($grant->is_admin)-->
<span class="ipaddress">
({$document->ipaddress})
</span>
<!--@end-->
<!--@if($document->is_granted || !$document->member_srl)-->
<ul>
<li><a href="{getUrl('act','dispBoardWrite','document_srl',$document->document_srl)}" 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','document_srl',$document->document_srl)}" 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>
<!--@if($module_info->display_writer == "on")-->
<div class="userInfo">
<div class="author member_{$document->member_srl}">{htmlspecialchars($document->nick_name)}</div>
</div>
<!--@end-->
<div class="readBody"><p>{$document->content}</p></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>
<!--@for($i=0;$i<count($document->tag_list);$i++)-->
{@ $tag = $document->tag_list[$i]; }
<li>
<a href="{getUrl('search_target','tag','search_keyword',urlencode($tag),'document_srl','')}">{htmlspecialchars($tag)}</a><!--@if($i<count($document->tag_list)-1)-->,<!--@end-->
</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="#" onclick="doDisplayComment('{$document->document_srl}');return false;">{$lang->comment} <strong>{count($document->comment_list)}</strong></a></li>
<!--@end-->
<!--@if($document->allow_trackback=='Y')-->
<li class="trackback"><a href="#" onclick="doDisplayTrackback('{$document->document_srl}');return false;">{$lang->trackback} <strong>{count($document->trackback_list)}</strong></a></li>
<!--@end-->
</ul>
</div>
<!-- 엮인글 파일 include -->
<a name="trackback_{$document->document}"></a>
<div id="trackback_{$document->document_srl}" style="display:none">
<!--@if($document->allow_trackback=='Y')-->
<!--#include("./trackback.html")-->
<!--@end-->
</div>
<!-- 댓글 파일 include -->
<a name="comment_top_{$document->document_srl}"></a>
<div id="comment_{$document->document_srl}" style="display:none">
<!--@if($grant->write_comment&&$document->allow_comment=='Y')-->
<!--#include("./comment.html")-->
<!--@end-->
</div>

View file

@ -0,0 +1,100 @@
<!--%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" id="fo_write">
<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>
<input type="text" name="trackback_url" id="trackbackURI" class="inputTypeText" />
<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>
</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">
<!--@if($act&&$act!='dispBoardContent')-->
<input type="button" value="{$lang->cmd_back}" onclick="location.href='{getUrl('act','')}'" />
<!--@end-->
<input type="submit" value="{$lang->cmd_registration}" accesskey="s" />
</div>
</form>
</div>
<!--#include("footer.html")-->

View file

@ -11,7 +11,7 @@
<column name="content" var="content" notnull="notnull" />
<column name="uploaded_count" var="uploaded_count" default="0" />
<column name="password" var="password" minlength="2" maxlength="60" />
<column name="nick_name" var="nick_name" minlength="1" maxlength="40" notnull="notnull" />
<column name="nick_name" var="nick_name" minlength="1" maxlength="40" />
<column name="member_srl" var="member_srl" default="0" filter="number" />
<column name="user_name" var="user_name" default="" />
<column name="email_address" var="email_address" filter="email" maxlength="250" />

View file

@ -108,7 +108,7 @@
<div class="textAreaWrap">
<div id="editorInfo">
<img src="./images/buttonClose.gif" alt="close" width="13" height="13" class="close" >
<img src="./images/buttonClose.gif" alt="close" width="13" height="13" class="close" onclick="closeEditorInfo()">
{$lang->about_dblclick_in_editor}
<span id="for_ie_help_{$upload_target_srl}" style="display:none">{$lang->edit->help_use_paragrapth}</span>
</div>