mirror of
https://github.com/Lastorder-DC/rhymix.git
synced 2026-05-04 09:32:15 +09:00
css 및 js 호출순서 조정기능 추가
git-svn-id: http://xe-core.googlecode.com/svn/sandbox@5785 201d5d3c-b55e-5fd7-737f-ddc643e51545
This commit is contained in:
parent
4f380d9c48
commit
61851f1dfe
2149 changed files with 109090 additions and 18689 deletions
24
modules/wiki/conf/info.xml
Normal file
24
modules/wiki/conf/info.xml
Normal file
|
|
@ -0,0 +1,24 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<module version="0.2">
|
||||
<title xml:lang="ko">위키</title>
|
||||
<title xml:lang="en">wiki</title>
|
||||
<title xml:lang="zh-CN">维基系统</title>
|
||||
<title xml:lang="zh-TW">維基</title>
|
||||
<title xml:lang="jp">wiki</title>
|
||||
<description xml:lang="ko">위키모듈.</description>
|
||||
<description xml:lang="en">wiki module.</description>
|
||||
<description xml:lang="zh-CN">维基模块。</description>
|
||||
<description xml:lang="zh-TW">維基百科模組。</description>
|
||||
<description xml:lang="jp">wikiモジュール</description>
|
||||
<version>0.1</version>
|
||||
<date>2009-01-31</date>
|
||||
<category>service</category>
|
||||
|
||||
<author email_address="haneul0318@gmail.com" link="http://seungyeop.kr">
|
||||
<name xml:lang="ko">haneul</name>
|
||||
<name xml:lang="en">haneul</name>
|
||||
<name xml:lang="zh-CN">haneul</name>
|
||||
<name xml:lang="zh-TW">haneul</name>
|
||||
<name xml:lang="jp">haneul</name>
|
||||
</author>
|
||||
</module>
|
||||
37
modules/wiki/conf/module.xml
Normal file
37
modules/wiki/conf/module.xml
Normal file
|
|
@ -0,0 +1,37 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<module>
|
||||
<grants>
|
||||
<grant name="write_document" default="guest">
|
||||
<title xml:lang="ko">글 작성</title>
|
||||
<title xml:lang="zh-CN">发表新主题</title>
|
||||
<title xml:lang="jp">書き込み作成</title>
|
||||
<title xml:lang="en">write document</title>
|
||||
<title xml:lang="es">Escribir el documento</title>
|
||||
<title xml:lang="zh-TW">發表主題</title>
|
||||
</grant>
|
||||
<grant name="write_comment" default="guest">
|
||||
<title xml:lang="ko">댓글 작성</title>
|
||||
<title xml:lang="zh-CN">发表评论</title>
|
||||
<title xml:lang="jp">コメント作成</title>
|
||||
<title xml:lang="en">write comment</title>
|
||||
<title xml:lang="es">Escribir comentario</title>
|
||||
<title xml:lang="zh-TW">發表評論</title>
|
||||
</grant>
|
||||
</grants>
|
||||
<permissions>
|
||||
</permissions>
|
||||
<actions>
|
||||
<action name="dispWikiContent" type="view" index="true" />
|
||||
<action name="dispWikiEditPage" type="view" />
|
||||
<action name="dispWikiTitleIndex" type="view" />
|
||||
<action name="dispWikiAdminContent" type="view" standalone="true" admin_index="true" />
|
||||
<action name="dispWikiAdminInsertWiki" type="view" standalone="true" />
|
||||
<action name="dispWikiAdminGrantInfo" type="view" standalone="true" />
|
||||
<action name="dispWikiAdminSkinInfo" type="view" standalone="true" />
|
||||
<action name="dispWikiAdminWikiAdditionSetup" type="view" standalone="true" />
|
||||
<action name="procWikiAdminInsertWiki" type="controller" standalone="true" />
|
||||
<action name="dispWikiAdminDeleteWiki" type="view" standalone="true" />
|
||||
<action name="procWikiAdminDeleteWiki" type="controller" standalone="true" />
|
||||
<action name="procWikiInsertDocument" type="controller" standalone="true" />
|
||||
</actions>
|
||||
</module>
|
||||
13
modules/wiki/lang/jp.lang.php
Normal file
13
modules/wiki/lang/jp.lang.php
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
<?php
|
||||
/**
|
||||
* @file modules/wiki/lang/jp.lang.php
|
||||
* @author haneul (haneul0318@gmail.com) 翻訳:ミニミ
|
||||
* @brief wikiモジュール基本言語パッケージ
|
||||
**/
|
||||
|
||||
$lang->wiki = 'wiki';
|
||||
$lang->not_exist = '存在しないドキュメントです。作成権限により、ドキュメント作成が出来ます。サイト管理者にお問い合わせ下さい。';
|
||||
$lang->cmd_create = '新規作成';
|
||||
$lang->cmd_wiki_list = 'リスト';
|
||||
$lang->cmd_view_info = 'wiki情報';
|
||||
?>
|
||||
13
modules/wiki/lang/ko.lang.php
Normal file
13
modules/wiki/lang/ko.lang.php
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
<?php
|
||||
/**
|
||||
* @file ko.lang.php
|
||||
* @author haneul (haneul0318@gmail.com)
|
||||
* @brief 위키(wiki) 모듈의 기본 언어팩
|
||||
**/
|
||||
|
||||
$lang->wiki = '위키';
|
||||
$lang->not_exist = '존재하지 않는 문서입니다. 권한이 있으시면, 문서를 만들 수 있습니다.';
|
||||
$lang->cmd_create = '문서 생성';
|
||||
$lang->cmd_wiki_list = '목록';
|
||||
$lang->cmd_view_info = '위키 정보';
|
||||
?>
|
||||
13
modules/wiki/lang/zh-TW.lang.php
Normal file
13
modules/wiki/lang/zh-TW.lang.php
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
<?php
|
||||
/**
|
||||
* @file zh-TW.lang.php
|
||||
* @author haneul (haneul0318@gmail.com) 翻譯:royallin
|
||||
* @brief 維基(wiki)模組基本語言
|
||||
**/
|
||||
|
||||
$lang->wiki = '維基';
|
||||
$lang->not_exist = '不存在的檔案。如果你擁有權限,可以建立新檔案。';
|
||||
$lang->cmd_create = '檔案建立';
|
||||
$lang->cmd_wiki_list = '列表';
|
||||
$lang->cmd_view_info = '維基資訊';
|
||||
?>
|
||||
24
modules/wiki/queries/getWikiList.xml
Normal file
24
modules/wiki/queries/getWikiList.xml
Normal file
|
|
@ -0,0 +1,24 @@
|
|||
<query id="getWikiList" action="select">
|
||||
<tables>
|
||||
<table name="modules" />
|
||||
</tables>
|
||||
<columns>
|
||||
<column name="*" />
|
||||
</columns>
|
||||
<conditions>
|
||||
<condition operation="equal" column="module" default="wiki" />
|
||||
<group pipe="and">
|
||||
<condition operation="like" column="mid" var="s_mid" pipe="or" />
|
||||
<condition operation="like" column="title" var="s_title" pipe="or" />
|
||||
<condition operation="like" column="comment" var="s_comment" pipe="or" />
|
||||
<condition operation="equal" column="module" var="s_module" pipe="or" />
|
||||
<condition operation="equal" column="module_category_srl" var="s_module_category_srl" pipe="or" />
|
||||
</group>
|
||||
</conditions>
|
||||
<navigation>
|
||||
<index var="sort_index" default="module_srl" order="desc" />
|
||||
<list_count var="list_count" default="20" />
|
||||
<page_count var="page_count" default="10" />
|
||||
<page var="page" default="1" />
|
||||
</navigation>
|
||||
</query>
|
||||
11
modules/wiki/skins/xe_wiki/create_document.html
Normal file
11
modules/wiki/skins/xe_wiki/create_document.html
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
<!--#include("header.html")-->
|
||||
<div class="boardRead">
|
||||
<div class="readBody">
|
||||
{$lang->not_exist}
|
||||
</div>
|
||||
</div>
|
||||
<div class="clear" ></div>
|
||||
<div class="createButtons">
|
||||
<a href="{getUrl('act','dispWikiEditPage','entry',$entry)}" class="button {$btn_class}"><span>{$lang->cmd_create}</span></a>
|
||||
</div>
|
||||
<!--#include("footer.html")-->
|
||||
347
modules/wiki/skins/xe_wiki/css/wiki.css
Normal file
347
modules/wiki/skins/xe_wiki/css/wiki.css
Normal file
|
|
@ -0,0 +1,347 @@
|
|||
@charset "utf-8";
|
||||
|
||||
/*
|
||||
NHN UIT Lab. WebStandardization Team (http://html.nhndesign.com/)
|
||||
Jeong, Chan Myeong 070601~070630
|
||||
*/
|
||||
|
||||
/**
|
||||
* Header
|
||||
**/
|
||||
|
||||
/* board Title */
|
||||
.boardHeader { border:1px solid #e1e1dd; border-bottom:0; background:#ffffff url(../images/common/bgH3.gif) repeat-x left bottom; overflow:hidden;}
|
||||
.boardHeader .boardHeaderBorder { width:100%;}
|
||||
.boardHeader h3 { margin:0; float:left; padding:15px 15px 12px 15px; font-size:1.2em; background:#ffffff url(../images/common/lineH3.gif) no-repeat right bottom;}
|
||||
|
||||
/* board Description */
|
||||
.boardDescription { color:#AEAEAE; border:1px solid #DDDDDD; overflow:hidden; padding:10px; margin: 5px 0; background-color:#FFFFFF;}
|
||||
|
||||
/* board Information */
|
||||
.boardInformation { width:100%; clear:both; margin:5px 0 2px 0; overflow:hidden; color:#666666;}
|
||||
.articleNum { float:left; padding:0 0 0 15px; }
|
||||
|
||||
/* account Navigation */
|
||||
.accountNavigation { margin:0; padding:0; float:right; }
|
||||
.accountNavigation li { float:left; margin-left:7px; list-style:none; }
|
||||
.accountNavigation li a { white-space:nowrap; color:#666666; text-decoration:none;}
|
||||
.accountNavigation li.setup a { background:url(../images/common/iconSetup.gif) no-repeat left top; padding-left:14px; }
|
||||
.accountNavigation li.admin a { background:url(../images/common/iconAdmin.gif) no-repeat left top; padding-left:12px; }
|
||||
.accountNavigation li.listType { margin-left:5px; }
|
||||
.accountNavigation li.loginAndLogout a { background:url(../images/common/line_1x10_e0e0e0.gif) no-repeat left 2px; padding-left:8px; }
|
||||
|
||||
/* secret Content */
|
||||
.secretContent { margin:20px auto; text-align:center; border:1px solid #EFEFEF; width:240px; }
|
||||
.secretContent .title { padding:10px 0 10px 0; background-color:#EFEFEF; display:block; font-weight:bold; }
|
||||
.secretContent .content { padding:10px 0 10px 0; background-color:#FFFFFF; display:block; }
|
||||
|
||||
/* blog Style Notice */
|
||||
.blogNotice { margin-bottom:10px; padding:5px; border:1px solid #e0e1db;}
|
||||
.blogNotice .item { background:url("../images/common/notice.gif") no-repeat -2px 3px; padding:3px 0 3px 18px; }
|
||||
.blogNotice .item .date { font-family:verdana; font-size:.9em;color:#AAAAAA; }
|
||||
.blogNotice .item a { text-decoration:none; color:#444444; }
|
||||
.blogNotice .item a:hover { text-decoration:underline}
|
||||
.blogNotice .item .replyAndTrackback { color:#AAAAAA; font-size:.9em; }
|
||||
|
||||
/* boardRead */
|
||||
.viewDocument { border-bottom:2px solid #AAAAAA; margin-bottom:20px; }
|
||||
.boardRead { }
|
||||
|
||||
.boardRead .titleAndUser { overflow:hidden; border-bottom:1px solid #e0e1db; }
|
||||
|
||||
|
||||
.boardRead .dateAndCount { clear:both; white-space:nowrap; color:#444444; margin:5px 0 0 0; font-size:.9em; font-family:tahoma; line-height:17px; padding-bottom:10px; }
|
||||
|
||||
.boardRead .dateAndCount .uri { float:left; }
|
||||
.boardRead .dateAndCount .uri a { text-decoration:none; margin-left:4px; color:#BBBBBB; }
|
||||
|
||||
.boardRead .dateAndCount .date { float:right; background:url("../images/common/calendar.gif") no-repeat left top; padding-left:18px; margin-left:10px; }
|
||||
.boardRead .dateAndCount .readedCount { float:right; color:#AAAAAA; margin-left:10px; background:url("../images/common/read.gif") no-repeat left top; padding-left:18px; color:#4A3FD7;}
|
||||
.boardRead .dateAndCount .votedCount { float:right; color:#AAAAAA; margin-left:10px; background:url("../images/common/vote.gif") no-repeat left top; padding-left:18px; color:#D76A3F;}
|
||||
.boardRead .dateAndCount .replyAndTrackback { float:right; }
|
||||
.boardRead .dateAndCount .replyAndTrackback .replyCount { margin-left:10px; float:left; background:#FFFFFF url(../images/common/iconReply.gif) no-repeat left 1px; padding-left:15px; }
|
||||
.boardRead .dateAndCount .replyAndTrackback .trackbackCount { margin-left:10px; float:left; background:#FFFFFF url(../images/common/iconTrackback.gif) no-repeat left 1px; padding-left:15px; }
|
||||
.boardRead .dateAndCount .replyAndTrackback a { color:#333333; white-space:nowrap; text-decoration:none; }
|
||||
.boardRead .dateAndCount .replyAndTrackback a:hover { text-decoration:underline; }
|
||||
.boardRead .dateAndCount .category { float:left; margin-right:10px; }
|
||||
.boardRead .dateAndCount .category a { color:#555555; text-decoration:none; background:url("../images/common/category.gif") no-repeat left -1px; padding-left:18px; font-weight:bold;}
|
||||
.boardRead .dateAndCount .category a:hover { text-decoration:underline; }
|
||||
|
||||
/* extraVars list */
|
||||
.boardRead .extraVarsList { width:100%; border:1px solid #e0e1db; border-bottom:none; margin:0 0 30px 0; table-layout:fixed;}
|
||||
.boardRead .extraVarsList th { font-weight:normal; color:#555555; text-align:left; padding:4px 0 4px 10px; border-bottom:1px solid #e0e1db; border-right:1px solid #e0e1db;}
|
||||
.boardRead .extraVarsList td { color:#555555; border-bottom:1px solid #e0e1db; padding:4px 0 4px 10px; }
|
||||
.boardRead .extraVarsList td a { color:#555555; }
|
||||
|
||||
.boardRead .readBody { color:#555555; margin-top:20px; }
|
||||
|
||||
|
||||
.boardRead .tag { background:#FFFFFF url(../images/common/iconTag.gif) no-repeat 3px 2px; padding-left:25px; margin:10px 0 0 0; }
|
||||
.boardRead .tag ul { margin:0; padding:0; }
|
||||
.boardRead .tag li { display:inline; list-style:none; }
|
||||
.boardRead .tag li a { color:#444444;}
|
||||
|
||||
.boardRead .fileAttached { border:1px solid #EFEFEF; background-color:#F4F4F4; padding:5px; margin-top:10px; overflow:hidden;}
|
||||
.boardRead .fileAttached h5 { font-weight:normal; color:#999999; font-size:1em; line-height:22px; }
|
||||
.boardRead .fileAttached ul { padding:0; margin:0; }
|
||||
.boardRead .fileAttached li { padding-left:15px; display:block; float:left; white-space:nowrap; list-style:none; margin:0 10px 5px 0; }
|
||||
.boardRead .fileAttached li a { text-decoration:none; font-size:.9em; white-space:nowrap; color:#444444; }
|
||||
.boardRead .fileAttached li a:visited { color:#777777;}
|
||||
|
||||
.boardRead .contentButton { text-align:right;margin:10px 0 5px 0; border-top:1px solid #DDDDDD; padding-top:10px;}
|
||||
|
||||
|
||||
.trackbackBox { padding:.6em .6em; color:#666666; border:1px solid #e0e1db;;margin-top:.5em; }
|
||||
.trackbackBox .trackbackUrl { color:#1F3DAE; font-size:.9em; background:url("../images/common/iconTrackback.gif") no-repeat left top; padding-left:18px; margin:0; }
|
||||
.trackbackBox .trackbackItem { background-color:#F3F3F3; padding:.6em .8em .6em .6em; line-height:1.25em; border-top:1px dotted #EEEEEE; list-style:none;}
|
||||
.trackbackBox p { display:inline; margin-bottom:1em;}
|
||||
.trackbackBox a { color:#666666; text-decoration:none;}
|
||||
.trackbackBox div { clear:both; }
|
||||
.trackbackBox address { display:block; padding:0 .3em 0 0; }
|
||||
.trackbackBox address a { font-size:.9em; color:#3074a5; margin-right:.3em; float:left;}
|
||||
.trackbackBox address .date { font:.8em Tahoma; color:#cccccc; float:right;}
|
||||
|
||||
.replyBox { padding:10px; color:#666666; border:1px solid #e0e1db; margin-top:.5em;}
|
||||
.replyBox .replyItem { background-color:#FFFFFF; padding:.6em .8em .6em .6em; line-height:1.25em; clear:both; border-bottom:1px dotted #EEEEEE; list-style:none;}
|
||||
.replyBox p { display:inline; margin-bottom:1em;}
|
||||
.replyBox .author { float:left; padding:0 .3em 0 0; font-size:.9em; color:#3074a5; margin:0 .3em .5em 0;}
|
||||
.replyBox .author a { color:#3074a5; margin-right:.3em; text-decoration:none; }
|
||||
.replyBox .voted { float:left; font-size:.9em; color:#AAAAAA; margin:0 .3em .5em 1em;}
|
||||
.replyBox .date { float:right; font:.8em Tahoma; color:#cccccc; margin:.3em 0 .5em 0;}
|
||||
|
||||
.replyBox .replyOption { height:20px; float:right; white-space:nowrap; margin-left:.2em;}
|
||||
.replyBox .replyOption img { vertical-align:middle;}
|
||||
|
||||
.replyBox .replyContent { clear:left; }
|
||||
.replyBox .replyContent p { display:block; }
|
||||
.replyBox .reply { background-color:#F4F4F4; border-bottom:1px dotted #DDDDDD;}
|
||||
.replyBox .replyIndent { background:url(../images/common/iconReplyArrow.gif) no-repeat .0em .3em; padding-left:1.3em;}
|
||||
|
||||
.replyBox .fileAttached { border:1px solid #EFEFEF; background-color:#F4F4F4; padding:5px; margin-top:10px; overflow:hidden;}
|
||||
.replyBox .fileAttached ul { border:0; margin:0; padding:0;}
|
||||
.replyBox .fileAttached h5 { font-weight:normal; color:#999999; float:left; font-size:1em; }
|
||||
.replyBox .fileAttached li { padding-left:15px; display:block; float:left; white-space:nowrap; list-style:none; margin:0px 10px 5px 0; }
|
||||
.replyBox .fileAttached li a { text-decoration:none; font-size:.9em; white-space:nowrap; color:#444444; }
|
||||
.replyBox .fileAttached li a:visited { color:#777777;}
|
||||
|
||||
.commentButton { margin-top:.5em; }
|
||||
|
||||
/* gallery sub menu */
|
||||
.boardSubMenu { margin:0 0 .5em 0; padding:1em 0 .5em .5em; border-bottom:1px solid #e0e1db;}
|
||||
.boardSubMenu a { text-decoration:none; color:#666666; vertical-align:bottom; background:url(../images/common/line_1x10_e0e0e0.gif) no-repeat right 5px; padding-left:10px; padding-right:10px; _padding-top:5px; position:relative; top:5px; }
|
||||
.boardSubMenu img.sort { vertical-align:middle; }
|
||||
|
||||
/* list */
|
||||
.boardList { width:100%; border:1px solid #e0e1db; border-top:none; overflow:hidden; }
|
||||
|
||||
.boardList thead tr th div { white-space:nowrap; margin:0 5px; }
|
||||
.boardList thead tr th.title , .boardList thead tr th.category, .boardList thead tr th.topic { width:100%; }
|
||||
.boardList tbody td { white-space:nowrap; }
|
||||
.boardList tbody td.title { white-space:normal; }
|
||||
.boardList tbody td.webzineTitle { white-space:normal; }
|
||||
.boardList tbody td.wrap { white-space:normal; }
|
||||
|
||||
.boardListNoTopBorder { border:none; }
|
||||
.boardList th { color:#3e3f3e; font-weight:normal; border-top:1px solid #e0e1db; border-bottom:1px solid #ffffff; white-space:nowrap; padding-top:5px; height:28px; overflow:hidden;}
|
||||
html:not([lang*=""]) .boardList th { height:33px; }
|
||||
.boardList th.no_line { background-position:-3px bottom; }
|
||||
.boardList th a { color:#3e3f3e; text-decoration:none; }
|
||||
.boardList th.num { border-left:1px solid #ffffff; }
|
||||
.boardList th.checkbox { text-align:center; }
|
||||
.boardList th.title { text-align:center; padding-left:1em; }
|
||||
.boardList th.topic { text-align:left; padding-left:1em; }
|
||||
.boardList th.category { text-align:left; padding-left:1em; }
|
||||
.boardList th.category select { vertical-align:middle; width:200px; height:20px;}
|
||||
.boardList th.reading, th.recommend , th.date { white-space:nowrap;}
|
||||
.boardList th .sort { padding:0 .2em; vertical-align:middle;}
|
||||
|
||||
.boardList tr.notice { background:#f8f8f8; }
|
||||
.boardList tr.notice .num { font-weight:bold;}
|
||||
.boardList tr.bg1 { background:#ffffff}
|
||||
.boardList tr.bg2 { background:#fbfbfb;}
|
||||
.boardList td { border-top:1px solid #eff0ed; padding:.5em;}
|
||||
.boardList td.num { font:.8em tahoma; color:#999999; padding:.5em 1em; text-align:center;}
|
||||
.boardList td.checkbox { font:.8em tahoma; color:#999999; text-align:center;}
|
||||
.boardList tr.notice td.num { padding:.5em; white-space:nowrap;}
|
||||
.boardList tr.notice td.notice { font-size:.9em; color:#999999; font-weight:bold; text-align:center;}
|
||||
.boardList td.thumb { }
|
||||
.boardList td.thumb img { border:1px solid #E0E1DB; padding:3px; margin:none; }
|
||||
|
||||
.boardList td.title {padding-left:1em; }
|
||||
.boardList td.title strong.category { font-size:1em; background:url(../images/common/line_1x10_e0e0e0.gif) no-repeat right 3px; padding-right:.5em; margin-right:.5em;}
|
||||
.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; text-decoration:none;}
|
||||
.boardList td.title a:visited { color:#777777;}
|
||||
|
||||
.boardList td.topic { padding-left:1em; color:#888888; }
|
||||
.boardList td.topic strong a { font-size:1em; font-weight:normal; text-decoration:none; color:#222222; }
|
||||
.boardList td.topic strong a:visited { color:#777777; }
|
||||
.boardList td.topic .category { background:url(../images/common/line_1x10_e0e0e0.gif) no-repeat left 3px; padding-left:.5em; margin-left:.5em; color:#AAAAAA; }
|
||||
.boardList td.topic div.author { margin-top:.5em; color:#BBBBBB; font-size:0.8em; }
|
||||
.boardList td.topic div.author strong { font-size:1.2em; font-weight:normal; color:#666666; }
|
||||
.boardList td.commentCount { font:bold .8em Tahoma; color:#888888; text-align:center; }
|
||||
|
||||
.boardList td.latestPost { color:#888888; }
|
||||
.boardList td.latestPost div.author { margin-top:.5em; color:#BBBBBB; font-size:0.8em; }
|
||||
.boardList td.latestPost div.author strong { font-size:1.2em; font-weight:normal; color:#666666; }
|
||||
.boardList td.latestPost div.date { font-size:0.8em; margin-top:.5em; }
|
||||
.boardList td.latestPost div.date strong { font-family:Tahoma; font-weight:normal; color:#666666; }
|
||||
|
||||
.boardListNoTopBorder td { border-top:none; border-bottom:1px solid #eff0ed; padding:.5em;}
|
||||
|
||||
.boardList td.webzineTitle { padding-left:1em; color:#777777; height:1.2em; width:100%;}
|
||||
.boardList td.webzineTitle strong.category { font-size:1em; background:url(../images/common/line_1x10_e0e0e0.gif) no-repeat right 3px; padding-right:.5em; margin-right:.5em;}
|
||||
.boardList td.webzineTitle.bold { font-size:1.2em; font-weight:bold;}
|
||||
.boardList td.webzineTitle * { vertical-align:middle;}
|
||||
.boardList td.webzineTitle,
|
||||
.boardList td.webzineTitle a { color:#444444; text-decoration:none;}
|
||||
.boardList td.webzineTitle a:visited { color:#777777;}
|
||||
|
||||
.boardList td.summary { border-top:none; vertical-align:top; color:#666666; line-height:1.25em; padding-left:1em; white-space:normal; }
|
||||
.boardList td.summary a { color:#666666; text-decoration:none; line-height:inherit;}
|
||||
.boardList td.summary a:visited { color:#999999;}
|
||||
|
||||
.boardList td .replyAndTrackback img.trackback { margin-bottom:-.1em;}
|
||||
.boardList td .replyAndTrackback strong { font:bold 1em Tahoma;}
|
||||
.boardList td .replyAndTrackback { font:.8em Tahoma; }
|
||||
.boardList td.author { color:#333333; font-size:.95em; padding-left:1em;}
|
||||
.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; text-align:center;}
|
||||
.boardList td.date { font:.8em Tahoma; color:#999999; text-align:center; white-space:nowrap;}
|
||||
.boardList td input { _margin:-3px;}
|
||||
|
||||
.buttonTypeGo { border:none; cursor:pointer; width:24px; height:20px; _position:relative; _top:3px; font:.75em Tahoma; text-align:center;}
|
||||
*:first-child+html .buttonTypeGo { position:relative; top:3px; }
|
||||
|
||||
.thumbnailBox { margin-top:1em; clear:both; overflow:hidden; border-bottom:1px solid #e0e1db; }
|
||||
.thumbnailBox div.cell { display:block; float:left; overflow:hidden; margin-bottom:1em; margin-right:1em;}
|
||||
.thumbnailBox div.cell img.thumb { padding:2px; border:1px solid #e0e1db; display:block; margin-bottom:1em; margin-left:auto;margin-right:auto;}
|
||||
.thumbnailBox div.title { color:#3B96C0; margin-bottom:.2em; overflow:hidden; white-space:nowrap; text-align:center;}
|
||||
.thumbnailBox div.title a { color:#3B96C0; text-decoration:none;}
|
||||
.thumbnailBox div.nameAndDate { font-size:.9em; color:#999999; margin-bottom:.2em; text-align:center;}
|
||||
.thumbnailBox div.nameAndDate a { color:#999999;}
|
||||
.thumbnailBox div.nameAndDate .author { margin-left:auto; margin-right:right; }
|
||||
.thumbnailBox div.nameAndDate .author div { display:inline; vertical-align:middle;}
|
||||
.thumbnailBox div.nameAndDate .date { font:.8em Tahoma; color:#999999;}
|
||||
.thumbnailBox div.readAndRecommend { font-size:.9em; color:#666666; text-align:center;}
|
||||
.thumbnailBox div.readAndRecommend .num { font:.8em Tahoma;}
|
||||
.thumbnailBox div.readAndRecommend .vr { color:#dddddd;}
|
||||
.thumbnailBox div.readAndRecommend strong.num { font:bold .8em Tahoma; color:#ff6600;}
|
||||
|
||||
/* board Bottom */
|
||||
.boardBottom { margin-top:10px; }
|
||||
|
||||
/* list button */
|
||||
.leftButtonBox { float: left; }
|
||||
.rightButtonBox { float: right; }
|
||||
|
||||
/* Search Form */
|
||||
.boardSearch { margin-top:30px; margin-left:auto; margin-right:auto; clear:both; text-align:center;}
|
||||
.boardSearch select { height:20px; }
|
||||
.boardSearch input { height:18px; }
|
||||
|
||||
/* boardWrite */
|
||||
.boardEditor { margin-bottom:10px; }
|
||||
.commentEditor { margin-top:10px; }
|
||||
.boardWrite { border:1px solid #e0e1db; padding-bottom:10px;}
|
||||
.boardWrite fieldset { border:none; }
|
||||
.boardWrite .userNameAndPw { margin:10px 10px 0 10px; }
|
||||
.boardWrite .userNameAndPw .userName {width:60px; margin-right:10px; }
|
||||
.boardWrite .userNameAndPw .userPw {width:60px; margin-right:10px; }
|
||||
.boardWrite .userNameAndPw .emailAddress {width:60px; margin-right:10px; }
|
||||
.boardWrite .userNameAndPw .homePage {width:60px; margin-right:10px; }
|
||||
|
||||
.boardWrite .title { margin-top:5px; }
|
||||
.boardWrite .title .category { margin-left:10px; }
|
||||
.boardWrite .title label.title { margin:0 10px 0 10px; }
|
||||
.boardWrite .title input.title { width:60%;}
|
||||
|
||||
.boardWrite dl { padding:0; margin:0; }
|
||||
.boardWrite dl dd { padding:0; margin:0; }
|
||||
.boardWrite dl.option { margin:10px 0 3px 10px; padding:0;}
|
||||
.boardWrite dl.option dd { display:inline; margin-right:5px; }
|
||||
.boardWrite dl.option dd * { vertical-align:middle;}
|
||||
.boardWrite dl.option dd select { width:8em; font-size:.95em; }
|
||||
|
||||
.boardWrite .tag { margin-top:10px; margin-left:10px; }
|
||||
.boardWrite .tag .inputTypeText { width:90%; background:#FFFFFF url(../images/common/iconTag.gif) no-repeat 5px 5px; padding-left:30px;}
|
||||
.boardWrite .tag .help { vertical-align:middle;}
|
||||
.boardWrite .tag .info { font-size:.9em; color:#999999; background:url(../images/common/iconArrowD8.gif) no-repeat 0% 40%; margin-top:5px; padding-left:5px;}
|
||||
|
||||
.boardWrite .extraVarsList { width:100%; border-top:1px solid #e0e1db; border-bottom:none; margin:10px 0 10px 0; table-layout:fixed;}
|
||||
.boardWrite .extraVarsList th { font-weight:normal; color:#555555; text-align:left; padding:4px 0 4px 10px; border-bottom:1px solid #e0e1db; border-right:1px solid #e0e1db;}
|
||||
.boardWrite .extraVarsList td { color:#555555; border-bottom:1px solid #e0e1db; padding:4px 0 4px 10px; }
|
||||
.boardWrite .extraVarsList td a { color:#555555; }
|
||||
|
||||
.boardWrite .extraVarsList p { margin:5px 0 0 0; padding:0; }
|
||||
.boardWrite .extraVarsList ul { margin:0; padding:0; }
|
||||
|
||||
|
||||
/* 게시물의 팝업 메뉴 */
|
||||
.comment_popup_menu, .document_popup_menu { text-align:right; background:none; background:url(../images/common/document_menu.gif) no-repeat right top; padding:0 15px 0 0; height:18px; clear:both;}
|
||||
.comment_popup_menu a, .document_popup_menu a { cursor:pointer; display:inline; color:#555555; text-decoration:none; }
|
||||
|
||||
/* tag list */
|
||||
.tagsBox { border:1px solid #EEEEEE; padding:10px; overflow:hidden;}
|
||||
.tagsBox h5 { margin:0; padding:2px; }
|
||||
.tags { width:100%; }
|
||||
.tags div { float:left; padding:2px; margin-right:10px; overflow:hidden; white-space:nowrap; height:15px;}
|
||||
.tags div a { text-decoration:none; color:#555555; line-height:150%;}
|
||||
.tags div a:hover { background-color:#888888; color:#FFFFFF;}
|
||||
.tags .tagTypeA a { color:#fe3614; font-weight:bold; font-size:12pt; background-color:#EFEFEF; margin:0;}
|
||||
.tags .tagTypeB a { color:#fe3614; font-size:11pt; margin:0;}
|
||||
.tags .tagTypeC a { font-weight:bold; font-size:11pt; margin:0; background-color:#EFEFEF;}
|
||||
.tags .tagTypeD a { font-weight:bold; margin:0; background-color:#EFEFEF;}
|
||||
.tags .tagTypeE a { font-weight:normal; margin:0;}
|
||||
|
||||
|
||||
/* 회원 서명 및 프로필 이미지 출력 */
|
||||
.memberSignature { border:1px solid #e0e1db; padding:10px; margin-top:20px; clear:both;}
|
||||
.memberSignature .profile { float:left; margin-right:20px; }
|
||||
.commentProfileImage { margin:0 10px 10px 0; float:left; }
|
||||
.replyBox .xe_content { display:inline; }
|
||||
|
||||
.display_date { cursor:pointer; width:80px; border:1px solid; border-color:#a6a6a6 #d8d8d8 #d8d8d8 #a6a6a6; height:1em; padding:3px; margin-right:10px;}
|
||||
|
||||
.wikimain { width:80%; margin:20px;}
|
||||
.wikimain .header .title { float:left; }
|
||||
.wikimain .header .title h1.pageTitle { overflow:hidden; color:#32576B; font-size:24px; font-weight:bold; line-height: 1em; padding:0; margin:0; }
|
||||
.wikimain .header .edit { float:left; margin-left: 10px; }
|
||||
.wikimain .header .go { float:right; }
|
||||
.wikimain .pageHistory {
|
||||
border-bottom:1px solid #DDEEDD;
|
||||
border-top:1px solid #DDEEDD;
|
||||
color:#666666; font-size:11px; font-weight:normal; margin-top:5px; padding-top:5px; padding-bottom:5px; }
|
||||
.wikimain .pageHistory .userInfo { white-space:nowrap; }
|
||||
.wikimain .pageHistory .userInfo .author { float:left; color:#3074a5; }
|
||||
.wikimain .pageHistory .userInfo .author a { color:#3074a5; text-decoration:none; }
|
||||
.wikimain .pageHistory .userInfo .date { float:left; margin-left:5px; }
|
||||
.wikimain .pageHistory .links { float:right; }
|
||||
.wikimain .pageHistory .history { float:right; margin-left:3px; }
|
||||
|
||||
/* Pagination Reset */
|
||||
.pagination{ padding:15px 0; margin:0; text-align:center;}
|
||||
.pagination *{ margin:0; padding:0;}
|
||||
.pagination img{ border:0;}
|
||||
.pagination a,
|
||||
.pagination strong{ position:relative; display:inline-block; text-decoration:none; line-height:normal; color:#333; font-family:Tahoma, Sans-serif; vertical-align:middle;}
|
||||
.pagination a:hover,
|
||||
.pagination a:active,
|
||||
.pagination a:focus{ background-color:#f4f4f4 !important; }
|
||||
.pagination strong{ color:#ff6600 !important;}
|
||||
.pagination a.prev,
|
||||
.pagination a.prevEnd,
|
||||
.pagination a.next,
|
||||
.pagination a.nextEnd{ font-weight:normal !important; border:none !important; margin:0 !important; white-space:nowrap; }
|
||||
|
||||
/* Pagination A1 */
|
||||
.pagination.a1 a,
|
||||
.pagination.a1 strong{ margin:0 -4px; padding:1px 10px 1px 8px; border:none; border-left:1px solid #ccc; border-right:1px solid #ddd; font-weight:bold; font-size:12px; background:#fff;}
|
||||
.pagination.a1 a.prev{ padding-left:10px; background:#fff url(../images/common/arrowPrevA1.gif) no-repeat left center; }
|
||||
.pagination.a1 a.prevEnd{ padding-left:15px; background:#fff url(../images/common/arrowPrevEndA1.gif) no-repeat left center; }
|
||||
.pagination.a1 a.next{ padding-right:10px; background:#fff url(../images/common/arrowNextA1.gif) no-repeat right center; }
|
||||
.pagination.a1 a.nextEnd{ padding-right:15px; background:#fff url(../images/common/arrowNextEndA1.gif) no-repeat right center; }
|
||||
1
modules/wiki/skins/xe_wiki/footer.html
Normal file
1
modules/wiki/skins/xe_wiki/footer.html
Normal file
|
|
@ -0,0 +1 @@
|
|||
</div>
|
||||
57
modules/wiki/skins/xe_wiki/header.html
Normal file
57
modules/wiki/skins/xe_wiki/header.html
Normal file
|
|
@ -0,0 +1,57 @@
|
|||
<!--%import("css/wiki.css")-->
|
||||
<div class="wikimain">
|
||||
<div class="header">
|
||||
<!--@if($oDocument)-->
|
||||
<div class="title"><H1 class="pageTitle">{$entry}</H1></div>
|
||||
<div class="edit"><!--@if($oDocument->isExists())--><a href="{getUrl('act','dispWikiEditPage','entry',$entry)}">Edit</a><!--@end--></div>
|
||||
<!--@end-->
|
||||
<div class="go">
|
||||
<form action="{getUrl()}" method="get">
|
||||
<input type="hidden" name="mid" value="{$module_info->mid}" />
|
||||
<input type="text" class="inputTypeText w100" name="entry" />
|
||||
<span class="button"><input type="submit" value="Go" /></span>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
<div class="clear"></div>
|
||||
<div class="readHeader">
|
||||
<div class="pageHistory">
|
||||
<!--@if($oDocument)-->
|
||||
<div class="userInfo">
|
||||
<!--@if(!$oDocument->getMemberSrl())-->
|
||||
<div class="author">
|
||||
last edited by
|
||||
<!--@if($oDocument->isExistsHomepage())-->
|
||||
<a href="{$oDocument->getHomepageUrl()}" onclick="window.open(this.href);return false;">{$oDocument->getNickName()}</a>
|
||||
<!--@else-->
|
||||
{$oDocument->getNickName()}
|
||||
<!--@end-->
|
||||
</div>
|
||||
<!--@else-->
|
||||
<div class="author">
|
||||
last edited by
|
||||
<span class="member_{$oDocument->get('member_srl')}">{$oDocument->getNickName()}</span></div>
|
||||
<!--@end-->
|
||||
<div class="date" title="{$lang->regdate}">
|
||||
<strong>{$oDocument->getUpdate('Y.m.d')}</strong> {$oDocument->getUpdate('H:i:s')}
|
||||
</div>
|
||||
</div>
|
||||
<!--@if($use_history != 'N')-->
|
||||
<div class="history">
|
||||
<a href="{getUrl('act','dispWikiHistory','document_srl',$oDocument->document_srl)}">View History</a>
|
||||
</div>
|
||||
<!--@end-->
|
||||
<!--@end-->
|
||||
<div class="links">
|
||||
<a href="{getUrl('act','dispWikiContent','entry','')}">Front Page</a>
|
||||
<a href="{getUrl('act','dispWikiTitleIndex','entry','','document_srl','')}">Title Index</a>
|
||||
</div>
|
||||
|
||||
<div class="clear"></div>
|
||||
</div>
|
||||
|
||||
<div class="clear"></div>
|
||||
</div>
|
||||
<div class="clear"></div>
|
||||
|
||||
|
||||
29
modules/wiki/skins/xe_wiki/histories.html
Normal file
29
modules/wiki/skins/xe_wiki/histories.html
Normal file
|
|
@ -0,0 +1,29 @@
|
|||
<!--#include("header.html")-->
|
||||
<div class="readBody">
|
||||
<table>
|
||||
<tr>
|
||||
<td>
|
||||
{$oDocument->getUpdate()}
|
||||
</td>
|
||||
<td>
|
||||
by {$oDocument->getNickName()}
|
||||
</td>
|
||||
<td>
|
||||
(current revision)
|
||||
</td>
|
||||
</tr>
|
||||
<!--@foreach($histories as $val)-->
|
||||
<tr>
|
||||
<td>
|
||||
{zdate($val->regdate, 'Y.m.d H:i:s')}
|
||||
</td>
|
||||
<td>
|
||||
by {$val->nick_name}
|
||||
</td>
|
||||
<td>
|
||||
</td>
|
||||
</tr>
|
||||
<!--@end-->
|
||||
</table>
|
||||
</div>
|
||||
<!--#include("footer.html")-->
|
||||
BIN
modules/wiki/skins/xe_wiki/images/common/iconTag.gif
Normal file
BIN
modules/wiki/skins/xe_wiki/images/common/iconTag.gif
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 205 B |
34
modules/wiki/skins/xe_wiki/skin.xml
Normal file
34
modules/wiki/skins/xe_wiki/skin.xml
Normal file
|
|
@ -0,0 +1,34 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<skin version="0.2">
|
||||
<title xml:lang="ko">XE Default Skin</title>
|
||||
<title xml:lang="zh-CN">XE维基默认皮肤</title>
|
||||
<title xml:lang="zh-TW">XE維基預設面板</title>
|
||||
<title xml:lang="jp">XE Default Skin</title>
|
||||
<description xml:lang="ko">
|
||||
XE Default Skin
|
||||
</description>
|
||||
<description xml:lang="zh-CN">
|
||||
XE维基默认皮肤。
|
||||
</description>
|
||||
<description xml:lang="zh-TW">
|
||||
XE維基預設面板
|
||||
</description>
|
||||
<description xml:lang="jp">
|
||||
XE基本スキン
|
||||
</description>
|
||||
<version>0.1</version>
|
||||
<date>2009-01-31</date>
|
||||
|
||||
<author email_address="haneul0318@gmail.com" link="http://seungyeop.kr">
|
||||
<name xml:lang="ko">haneul</name>
|
||||
<name xml:lang="zh-CN">haneul</name>
|
||||
<name xml:lang="zh-TW">haneul</name>
|
||||
<name xml:lang="jp">haneul</name>
|
||||
</author>
|
||||
|
||||
<license>GPL</license>
|
||||
|
||||
<extra_vars>
|
||||
</extra_vars>
|
||||
</skin>
|
||||
|
||||
31
modules/wiki/skins/xe_wiki/title_index.html
Normal file
31
modules/wiki/skins/xe_wiki/title_index.html
Normal file
|
|
@ -0,0 +1,31 @@
|
|||
<!--#include("header.html")-->
|
||||
<div class="readBody">
|
||||
<!--@if(!$document_list)-->
|
||||
<div>
|
||||
{$lang->no_documents}
|
||||
</div>
|
||||
<!--@else-->
|
||||
<table>
|
||||
<!--@foreach($document_list as $val)-->
|
||||
<tr>
|
||||
<td>
|
||||
<a href="{getUrl('','mid',$module_info->mid,'entry',$val->get('title'))}">{$val->get('title')}</a>
|
||||
</td>
|
||||
</tr>
|
||||
<!--@end-->
|
||||
</table>
|
||||
<!--@end-->
|
||||
</div>
|
||||
|
||||
<div class="pagination a1">
|
||||
<a href="{getUrl('page','','document_srl','','division',$division,'last_division',$last_division,'entry','')}" class="prevEnd">{$lang->first_page}</a>
|
||||
<!--@while($page_no = $page_navigation->getNextPage())-->
|
||||
<!--@if($page == $page_no)-->
|
||||
<strong>{$page_no}</strong>
|
||||
<!--@else-->
|
||||
<a href="{getUrl('page',$page_no,'document_srl','','division',$division,'last_division',$last_division,'entry','')}">{$page_no}</a>
|
||||
<!--@end-->
|
||||
<!--@end-->
|
||||
<a href="{getUrl('page',$page_navigation->last_page,'document_srl','','division',$division,'last_division',$last_division,'entry','')}" class="nextEnd">{$lang->last_page}</a>
|
||||
</div>
|
||||
<!--#include("footer.html")-->
|
||||
56
modules/wiki/skins/xe_wiki/view_document.html
Normal file
56
modules/wiki/skins/xe_wiki/view_document.html
Normal file
|
|
@ -0,0 +1,56 @@
|
|||
<!--#include("header.html")-->
|
||||
<!-- 글 내용 보여주기 -->
|
||||
<div class="boardRead">
|
||||
<div class="originalContent">
|
||||
<div class="readBody">
|
||||
<div class="contentBody">
|
||||
|
||||
<!--@if($oDocument->isSecret() && !$oDocument->isGranted())-->
|
||||
<div class="secretContent">
|
||||
<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="{$oDocument->document_srl}" />
|
||||
|
||||
<div class="title">{$lang->msg_is_secret}</div>
|
||||
<div class="content"><input type="password" name="password" id="cpw" class="inputTypeText" /><span class="button {$btn_class}"><input type="submit" value="{$lang->cmd_input}" accesskey="s" /></span></div>
|
||||
|
||||
</form>
|
||||
</div>
|
||||
<!--@else-->
|
||||
{$oDocument->getContent(false)}
|
||||
<!--@end-->
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{@ $tag_list = $oDocument->get('tag_list') }
|
||||
<!--@if(count($tag_list))-->
|
||||
<div class="tag">
|
||||
<ul>
|
||||
<!--@for($i=0;$i<count($tag_list);$i++)-->
|
||||
{@ $tag = $tag_list[$i]; }
|
||||
<li><a href="{getUrl('search_target','tag','search_keyword',$tag,'document_srl','')}" rel="tag">{htmlspecialchars($tag)}</a><!--@if($i<count($tag_list)-1)-->, <!--@end--></li>
|
||||
<!--@end-->
|
||||
</ul>
|
||||
</div>
|
||||
<!--@end-->
|
||||
|
||||
<!--@if($oDocument->hasUploadedFiles())-->
|
||||
<div class="fileAttached">
|
||||
{@ $uploaded_list = $oDocument->getUploadedFiles() }
|
||||
<ul>
|
||||
<!--@foreach($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 class="clear"></div>
|
||||
</div>
|
||||
<!--@end-->
|
||||
</div>
|
||||
|
||||
<!-- 목록, 수정/삭제 버튼 -->
|
||||
<div class="contentButton">
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<!--#include("footer.html")-->
|
||||
34
modules/wiki/skins/xe_wiki/write_form.html
Normal file
34
modules/wiki/skins/xe_wiki/write_form.html
Normal file
|
|
@ -0,0 +1,34 @@
|
|||
<!--#include("header.html")-->
|
||||
|
||||
<form action="./" method="post" onsubmit="return procFilter(this, insert)" id="fo_write">
|
||||
<input type="hidden" name="mid" value="{$mid}" />
|
||||
<input type="hidden" name="content" value="{$oDocument->getContentText()}" />
|
||||
<input type="hidden" name="document_srl" value="{$document_srl}" />
|
||||
<input type="hidden" name="title" value="{$entry}" />
|
||||
|
||||
<div class="boardWrite">
|
||||
|
||||
<div class="editor">{$oDocument->getEditor()}</div>
|
||||
|
||||
<div class="tag">
|
||||
<input type="text" name="tags" value="{htmlspecialchars($oDocument->get('tags'))}" class="inputTypeText" />
|
||||
<p class="info">{$lang->about_tag}</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="fl gap1">
|
||||
<!--@if($is_logged)-->
|
||||
<span class="button {$btn_class}"><input type="button" value="{$lang->cmd_temp_save}" onclick="doDocumentSave(this); return false;" /></span>
|
||||
<span class="button {$btn_class}"><input type="button" value="{$lang->cmd_load}" onclick="doDocumentLoad(this); return false;" /></span>
|
||||
<span class="button {$btn_class}"><input type="button" value="{$lang->cmd_back}" onclick="location.href='{getUrl('act','')}'" /></span>
|
||||
<!--@end-->
|
||||
</div>
|
||||
|
||||
<div class="fr gap1">
|
||||
<span class="button {$btn_class}"><input type="button" value="{$lang->cmd_preview}" onclick="doDocumentPreview(this); return false;" /></span>
|
||||
<span class="button {$btn_class}"><input type="submit" value="{$lang->cmd_registration}" accesskey="s" /></span>
|
||||
</div>
|
||||
|
||||
<div class="clear"></div>
|
||||
</form>
|
||||
<!--#include("footer.html")-->
|
||||
3
modules/wiki/tpl/addition_setup.html
Normal file
3
modules/wiki/tpl/addition_setup.html
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
<!--#include("header.html")-->
|
||||
|
||||
{$setup_content}
|
||||
10
modules/wiki/tpl/filter/delete_wiki.xml
Normal file
10
modules/wiki/tpl/filter/delete_wiki.xml
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
<filter name="delete_wiki" module="wiki" act="procWikiAdminDeleteWiki">
|
||||
<form>
|
||||
<node target="module_srl" required="true" />
|
||||
</form>
|
||||
<response callback_func="completeDeleteWiki">
|
||||
<tag name="error" />
|
||||
<tag name="message" />
|
||||
<tag name="page" />
|
||||
</response>
|
||||
</filter>
|
||||
12
modules/wiki/tpl/filter/insert.xml
Normal file
12
modules/wiki/tpl/filter/insert.xml
Normal file
|
|
@ -0,0 +1,12 @@
|
|||
<filter name="insert" module="wiki" act="procWikiInsertDocument" confirm_msg_code="confirm_submit">
|
||||
<form>
|
||||
<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" />
|
||||
</response>
|
||||
</filter>
|
||||
27
modules/wiki/tpl/filter/insert_wiki.xml
Normal file
27
modules/wiki/tpl/filter/insert_wiki.xml
Normal file
|
|
@ -0,0 +1,27 @@
|
|||
<filter name="insert_wiki" module="wiki" act="procWikiAdminInsertWiki" confirm_msg_code="confirm_submit">
|
||||
<form>
|
||||
<node target="mid" required="true" filter="alpha_number" />
|
||||
<node target="browser_title" required="true" maxlength="250" />
|
||||
</form>
|
||||
<parameter>
|
||||
<param name="wiki_name" target="mid" />
|
||||
<param name="module_srl" target="module_srl" />
|
||||
<param name="module_category_srl" target="module_category_srl" />
|
||||
<param name="layout_srl" target="layout_srl" />
|
||||
<param name="skin" target="skin" />
|
||||
<param name="browser_title" target="browser_title" />
|
||||
<param name="admin_mail" target="admin_mail" />
|
||||
<param name="is_default" target="is_default" />
|
||||
<param name="description" target="description" />
|
||||
<param name="header_text" target="header_text" />
|
||||
<param name="footer_text" target="footer_text" />
|
||||
</parameter>
|
||||
<response callback_func="completeInsertWiki">
|
||||
<tag name="error" />
|
||||
<tag name="message" />
|
||||
<tag name="module" />
|
||||
<tag name="act" />
|
||||
<tag name="page" />
|
||||
<tag name="module_srl" />
|
||||
</response>
|
||||
</filter>
|
||||
3
modules/wiki/tpl/grant_list.html
Normal file
3
modules/wiki/tpl/grant_list.html
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
<!--#include("./header.html")-->
|
||||
|
||||
{$grant_content}
|
||||
27
modules/wiki/tpl/header.html
Normal file
27
modules/wiki/tpl/header.html
Normal file
|
|
@ -0,0 +1,27 @@
|
|||
<!--%import("js/wiki_admin.js")-->
|
||||
|
||||
<h3 class="xeAdmin">{$lang->wiki} <span class="gray">{$lang->cmd_management}</span></h3>
|
||||
|
||||
<div class="infoText">{nl2br($lang->about_wiki)}</div>
|
||||
|
||||
<!--@if($module_info)-->
|
||||
<div class="header4">
|
||||
<!--@if($module_info->mid)-->
|
||||
<h4 class="xeAdmin">{$module_info->mid} <!--@if($module_info->is_default=='Y')--><span class="bracket">({$lang->is_default})</span><!--@end--> <span class="vr">|</span> <a href="{getSiteUrl($module_info->domain,'','mid',$module_info->mid)}" onclick="window.open(this.href); return false;" class="view">View</a></h4>
|
||||
<!--@end-->
|
||||
|
||||
<ul class="localNavigation">
|
||||
<!--@if($module=='admin')-->
|
||||
<li <!--@if($act=='dispWikiAdminContent')-->class="on"<!--@end-->><a href="{getUrl('act','dispWikiAdminContent','module_srl','')}">{$lang->cmd_wiki_list}</a></li>
|
||||
<!--@else-->
|
||||
<li><a href="{getUrl('act','')}">{$lang->cmd_back}</a></li>
|
||||
<!--@end-->
|
||||
<li <!--@if($act=='dispWikiAdminWikiInfo'||$act=='dispWikiAdminInsertWiki')-->class="on"<!--@end-->><a href="{getUrl('act','dispWikiAdminWikiInfo')}">{$lang->cmd_view_info}</a></li>
|
||||
<li <!--@if($act=='dispWikiAdminCategoryInfo')-->class="on"<!--@end-->><a href="{getUrl('act','dispWikiAdminCategoryInfo')}">{$lang->cmd_manage_category}</a></li>
|
||||
<li <!--@if($act=='dispWikiAdminGrantInfo')-->class="on"<!--@end-->><a href="{getUrl('act','dispWikiAdminGrantInfo')}">{$lang->cmd_manage_grant}</a></li>
|
||||
<li <!--@if($act=='dispWikiAdminWikiAdditionSetup')-->class="on"<!--@end-->><a href="{getUrl('act','dispWikiAdminWikiAdditionSetup')}">{$lang->cmd_addition_setup}</a></li>
|
||||
<li <!--@if($act=='dispWikiAdminSkinInfo')-->class="on"<!--@end-->><a href="{getUrl('act','dispWikiAdminSkinInfo')}">{$lang->cmd_manage_skin}</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<!--@end-->
|
||||
|
||||
84
modules/wiki/tpl/index.html
Normal file
84
modules/wiki/tpl/index.html
Normal file
|
|
@ -0,0 +1,84 @@
|
|||
<!--#include("./header.html")-->
|
||||
|
||||
|
||||
<!-- 목록 -->
|
||||
<form action="./" method="get" onsubmit="return doChangeCategory(this);" id="fo_list">
|
||||
<table cellspacing="0" class="rowTable">
|
||||
<caption>Total {number_format($total_count)}, Page {number_format($page)}/{number_format($total_page)}</caption>
|
||||
<thead>
|
||||
<tr>
|
||||
<th scope="col"><div>{$lang->no}</div></th>
|
||||
<th scope="col"><div><input type="checkbox" onclick="XE.checkboxToggleAll(); return false;" /></div></th>
|
||||
<th scope="col">
|
||||
<div>
|
||||
<input type="hidden" name="module" value="{$module}" />
|
||||
<input type="hidden" name="act" value="{$act}" />
|
||||
<select name="module_category_srl" class="fullWidth">
|
||||
<option value="">{$lang->module_category}</option>
|
||||
<!--@foreach($module_category as $key => $val)-->
|
||||
<option value="{$key}" <!--@if($module_category_srl==$key)-->selected="selected"<!--@end-->>{$val->title}</option>
|
||||
<!--@end-->
|
||||
<option value="">---------</option>
|
||||
<option value="-1">{$lang->cmd_management}</option>
|
||||
</select>
|
||||
<input type="submit" name="go_button" id="go_button" value="GO" class="buttonTypeGo" />
|
||||
</div>
|
||||
</th>
|
||||
<th scope="col" class="half_wide"><div>{$lang->mid}</div></th>
|
||||
<th scope="col" class="half_wide"><div>{$lang->browser_title}</div></th>
|
||||
<th scope="col"><div>{$lang->regdate}</div></th>
|
||||
<th scope="col" colspan="3"><div> </div></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<!--@foreach($wiki_list as $no => $val)-->
|
||||
<tr>
|
||||
<td class="center number">{$no}</td>
|
||||
<td class="center"><input type="checkbox" name="cart" value="{$val->module_srl}" /></td>
|
||||
<td>
|
||||
<!--@if(!$val->module_category_srl)-->
|
||||
<!--@if($val->site_srl)-->
|
||||
{$lang->virtual_site}
|
||||
<!--@else-->
|
||||
{$lang->not_exists}
|
||||
<!--@end-->
|
||||
<!--@else-->
|
||||
{$module_category[$val->module_category_srl]->title}
|
||||
<!--@end-->
|
||||
</td>
|
||||
<td>{htmlspecialchars($val->mid)}</td>
|
||||
<td><a href="{getSiteUrl($val->domain,'','mid',$val->mid)}" onclick="window.open(this.href); return false;">{htmlspecialchars($val->browser_title)}</a></td>
|
||||
<td>{zdate($val->regdate,"Y-m-d")}</td>
|
||||
<td><a href="{getUrl('act','dispWikiAdminInsertWiki','module_srl',$val->module_srl)}" class="buttonSet buttonSetting"><span>{$lang->cmd_setup}</span></a></td>
|
||||
<td><a href="./?module=module&act=dispModuleAdminCopyModule&module_srl={$val->module_srl}" onclick="popopen(this.href);return false;" class="buttonSet buttonCopy"><span>{$lang->cmd_copy}</span></a></td>
|
||||
<td><!--@if($val->is_default!='Y')--><a href="{getUrl('act','dispWikiAdminDeleteWiki','module_srl', $val->module_srl)}" class="buttonSet buttonDelete"><span>{$lang->cmd_delete}</span></a><!--@else--> <!--@end--></td>
|
||||
</tr>
|
||||
<!--@end-->
|
||||
</tbody>
|
||||
</table>
|
||||
</form>
|
||||
|
||||
<!-- 버튼 -->
|
||||
<div class="clear">
|
||||
<div class="fl">
|
||||
<a href="{getUrl('','module','module','act','dispModuleAdminModuleSetup')}" onclick="doCartSetup(this.href); return false;" class="button green"><span>{$lang->cmd_setup}</span></a>
|
||||
<a href="{getUrl('','module','module','act','dispModuleAdminModuleAdditionSetup')}" onclick="doCartSetup(this.href); return false;" class="button red"><span>{$lang->cmd_addition_setup}</span></a>
|
||||
<a href="{getUrl('','module','module','act','dispModuleAdminModuleGrantSetup')}" onclick="doCartSetup(this.href); return false;" class="button blue"><span>{$lang->cmd_manage_grant}</span></a>
|
||||
</div>
|
||||
<div class="fr">
|
||||
<a href="{getUrl('act','dispWikiAdminInsertWiki','module_srl','')}" class="button black strong"><span>{$lang->cmd_make}</span></a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- 페이지 네비게이션 -->
|
||||
<div class="pagination a1">
|
||||
<a href="{getUrl('page','','module_srl','')}" class="prevEnd">{$lang->first_page}</a>
|
||||
<!--@while($page_no = $page_navigation->getNextPage())-->
|
||||
<!--@if($page == $page_no)-->
|
||||
<strong>{$page_no}</strong>
|
||||
<!--@else-->
|
||||
<a href="{getUrl('page',$page_no,'module_srl','')}">{$page_no}</a>
|
||||
<!--@end-->
|
||||
<!--@end-->
|
||||
<a href="{getUrl('page',$page_navigation->last_page,'module_srl','')}" class="nextEnd">{$lang->last_page}</a>
|
||||
</div>
|
||||
117
modules/wiki/tpl/js/wiki.js
Normal file
117
modules/wiki/tpl/js/wiki.js
Normal file
|
|
@ -0,0 +1,117 @@
|
|||
/**
|
||||
* @file modules/wiki/js/wiki.js
|
||||
* @author zero (zero@nzeo.com)
|
||||
* @brief wiki 모듈의 javascript
|
||||
**/
|
||||
|
||||
/* 글쓰기 작성후 */
|
||||
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'];
|
||||
|
||||
//alert(message);
|
||||
|
||||
var url;
|
||||
if(!document_srl)
|
||||
{
|
||||
url = current_url.setQuery('mid',mid).setQuery('act','');
|
||||
}
|
||||
else
|
||||
{
|
||||
url = current_url.setQuery('mid',mid).setQuery('document_srl',document_srl).setQuery('act','');
|
||||
}
|
||||
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 = current_url.setQuery('mid',mid).setQuery('act','').setQuery('document_srl','');
|
||||
if(page) url = url.setQuery('page',page);
|
||||
|
||||
//alert(message);
|
||||
|
||||
location.href = url;
|
||||
}
|
||||
|
||||
/* 검색 실행 */
|
||||
function completeSearch(fo_obj, params) {
|
||||
fo_obj.submit();
|
||||
}
|
||||
|
||||
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 = current_url.setQuery('mid',mid).setQuery('document_srl',document_srl).setQuery('act','');
|
||||
if(comment_srl) url = url.setQuery('rnd',comment_srl)+"#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 = current_url.setQuery('mid',mid).setQuery('document_srl',document_srl).setQuery('act','');
|
||||
if(page) url = url.setQuery('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 = current_url.setQuery('mid',mid).setQuery('document_srl',document_srl).setQuery('act','');
|
||||
if(page) url = url.setQuery('page',page);
|
||||
|
||||
//alert(message);
|
||||
|
||||
location.href = url;
|
||||
}
|
||||
|
||||
|
||||
/* 스크랩 */
|
||||
function doScrap(document_srl) {
|
||||
var params = new Array();
|
||||
params["document_srl"] = document_srl;
|
||||
exec_xml("member","procMemberScrapDocument", params, null);
|
||||
}
|
||||
49
modules/wiki/tpl/js/wiki_admin.js
Normal file
49
modules/wiki/tpl/js/wiki_admin.js
Normal file
|
|
@ -0,0 +1,49 @@
|
|||
/**
|
||||
* @file modules/wiki/js/wiki_admin.js
|
||||
* @author zero (zero@nzeo.com)
|
||||
* @brief wiki 모듈의 관리자용 javascript
|
||||
**/
|
||||
|
||||
|
||||
/* 모듈 생성 후 */
|
||||
function completeInsertWiki(ret_obj) {
|
||||
var error = ret_obj['error'];
|
||||
var message = ret_obj['message'];
|
||||
|
||||
var page = ret_obj['page'];
|
||||
var module_srl = ret_obj['module_srl'];
|
||||
|
||||
alert(message);
|
||||
|
||||
var url = current_url.setQuery('act','dispWikiAdminInsertWiki');
|
||||
if(module_srl) url = url.setQuery('module_srl',module_srl);
|
||||
if(page) url.setQuery('page',page);
|
||||
location.href = url;
|
||||
}
|
||||
|
||||
/* 모듈 삭제 후 */
|
||||
function completeDeleteWiki(ret_obj) {
|
||||
var error = ret_obj['error'];
|
||||
var message = ret_obj['message'];
|
||||
var page = ret_obj['page'];
|
||||
alert(message);
|
||||
|
||||
var url = current_url.setQuery('act','dispWikiAdminContent').setQuery('module_srl','');
|
||||
if(page) url = url.setQuery('page',page);
|
||||
location.href = url;
|
||||
}
|
||||
|
||||
|
||||
/* 일괄 설정 */
|
||||
function doCartSetup(url) {
|
||||
var module_srl = new Array();
|
||||
jQuery('#fo_list input[name=cart]:checked').each(function() {
|
||||
module_srl[module_srl.length] = jQuery(this).val();
|
||||
});
|
||||
|
||||
if(module_srl.length<1) return;
|
||||
|
||||
url += "&module_srls="+module_srl.join(',');
|
||||
popopen(url,'modulesSetup');
|
||||
}
|
||||
|
||||
3
modules/wiki/tpl/skin_info.html
Normal file
3
modules/wiki/tpl/skin_info.html
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
<!--#include("./header.html")-->
|
||||
|
||||
{$skin_content}
|
||||
32
modules/wiki/tpl/wiki_delete.html
Normal file
32
modules/wiki/tpl/wiki_delete.html
Normal file
|
|
@ -0,0 +1,32 @@
|
|||
<!--%import("filter/delete_wiki.xml")-->
|
||||
<!--%import("js/wiki_admin.js")-->
|
||||
<!--#include("header.html")-->
|
||||
|
||||
<form action="./" method="get" onsubmit="return procFilter(this, delete_wiki)">
|
||||
<input type="hidden" name="page" value="{$page}" />
|
||||
<input type="hidden" name="module_srl" value="{$module_info->module_srl}" />
|
||||
|
||||
<h4 class="xeAdmin">{$lang->confirm_delete}</h4>
|
||||
<table cellspacing="0" class="rowTable">
|
||||
<tr>
|
||||
<th scope="row"><div>{$lang->module_name}</div></th>
|
||||
<td class="wide">{$module_info->mid}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row"><div>{$lang->module}</div></th>
|
||||
<td>{$module_info->module}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row"><div>{$lang->document_count}</div></th>
|
||||
<td>{$module_info->document_count}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th colspan="2" class="button">
|
||||
<span class="button black strong"><input type="submit" value="{$lang->cmd_delete}" /></span>
|
||||
<a href="{getUrl('act','dispWikiAdminContent')}" class="button"><span>{$lang->cmd_back}</span></a>
|
||||
</th>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
|
||||
</form>
|
||||
103
modules/wiki/tpl/wiki_insert.html
Normal file
103
modules/wiki/tpl/wiki_insert.html
Normal file
|
|
@ -0,0 +1,103 @@
|
|||
<!--%import("filter/insert_wiki.xml")-->
|
||||
<!--%import("js/wiki_admin.js")-->
|
||||
<!--#include("header.html")-->
|
||||
|
||||
<form action="./" method="post" onsubmit="return procFilter(this, insert_wiki)" enctype="multipart/form-data">
|
||||
<input type="hidden" name="page" value="{$page}" />
|
||||
<input type="hidden" name="module_srl" value="{$module_info->module_srl}" />
|
||||
<!--@if($module_info->is_default=='Y')-->
|
||||
<input type="hidden" name="is_default" value="Y" />
|
||||
<!--@end-->
|
||||
|
||||
<table cellspacing="0" class="rowTable">
|
||||
<tr>
|
||||
<th scope="row"><div>{$lang->mid}</div></th>
|
||||
<td>
|
||||
<input type="text" name="mid" value="{$module_info->mid}" class="inputTypeText w200" />
|
||||
<p>{$lang->about_mid}</p>
|
||||
</td>
|
||||
</tr>
|
||||
<!--@if($module_info->is_default!='Y')-->
|
||||
<tr>
|
||||
<th scope="row"><div>{$lang->is_default}</div></th>
|
||||
<td>
|
||||
<input type="checkbox" name="is_default" value="Y" <!--@if($module_info->is_default=='Y')-->checked="checked"<!--@end--> id="fld_for_default" class="checkbox" />
|
||||
<label for="fld_for_default">{$lang->about_default}</label>
|
||||
</td>
|
||||
</tr>
|
||||
<!--@end-->
|
||||
<tr>
|
||||
<th scope="row"><div>{$lang->module_category}</div></th>
|
||||
<td>
|
||||
<select name="module_category_srl">
|
||||
<option value="0">{$lang->notuse}</option>
|
||||
<!--@foreach($module_category as $key => $val)-->
|
||||
<option value="{$key}" <!--@if($module_info->module_category_srl==$key)-->selected="selected"<!--@end-->>{$val->title}</option>
|
||||
<!--@end-->
|
||||
</select>
|
||||
<p>{$lang->about_module_category}</p>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<th scope="row"><div>{$lang->browser_title}</div></th>
|
||||
<td>
|
||||
<input type="text" name="browser_title" value="{htmlspecialchars($module_info->browser_title)}" class="inputTypeText w400" id="browser_title"/>
|
||||
<a href="{getUrl('','module','module','act','dispModuleAdminLangcode','target','browser_title')}" onclick="popopen(this.href);return false;" class="buttonSet buttonSetting"><span>{$lang->cmd_find_langcode}</span></a>
|
||||
<p>{$lang->about_browser_title}</p>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<th scope="row"><div>{$lang->layout}</div></th>
|
||||
<td>
|
||||
<select name="layout_srl">
|
||||
<option value="0">{$lang->notuse}</option>
|
||||
<!--@foreach($layout_list as $key => $val)-->
|
||||
<option value="{$val->layout_srl}" <!--@if($module_info->layout_srl==$val->layout_srl)-->selected="selected"<!--@end-->>{$val->title} ({$val->layout})</option>
|
||||
<!--@end-->
|
||||
</select>
|
||||
<p>{$lang->about_layout}</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row"><div>{$lang->skin}</div></th>
|
||||
<td>
|
||||
<select name="skin">
|
||||
<!--@foreach($skin_list as $key=>$val)-->
|
||||
<option value="{$key}" <!--@if($module_info->skin==$key ||(!$module_info->skin && $key=='xe_wiki'))-->selected="selected"<!--@end-->>{$val->title}</option>
|
||||
<!--@end-->
|
||||
</select>
|
||||
<p>{$lang->about_skin}</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row"><div>{$lang->description}</div></th>
|
||||
<td>
|
||||
<textarea name="description" class="inputTypeTextArea fullWidth">{htmlspecialchars($module_info->description)}</textarea>
|
||||
<p>{$lang->about_description}</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row"><div>{$lang->header_text}</div></th>
|
||||
<td>
|
||||
<textarea name="header_text" class="inputTypeTextArea fullWidth" id="header_text">{htmlspecialchars($module_info->header_text)}</textarea>
|
||||
<a href="{getUrl('','module','module','act','dispModuleAdminLangcode','target','header_text')}" onclick="popopen(this.href);return false;" class="buttonSet buttonSetting"><span>{$lang->cmd_find_langcode}</span></a>
|
||||
<p>{$lang->about_header_text}</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row"><div>{$lang->footer_text}</div></th>
|
||||
<td>
|
||||
<textarea name="footer_text" class="inputTypeTextArea fullWidth" id="footer_text">{htmlspecialchars($module_info->footer_text)}</textarea>
|
||||
<a href="{getUrl('','module','module','act','dispModuleAdminLangcode','target','footer_text')}" onclick="popopen(this.href);return false;" class="buttonSet buttonSetting"><span>{$lang->cmd_find_langcode}</span></a>
|
||||
<p>{$lang->about_footer_text}</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th colspan="2" class="button">
|
||||
<span class="button black strong"><input type="submit" value="{$lang->cmd_registration}" accesskey="s" /></span>
|
||||
<span class="button"><input type="button" value="{$lang->cmd_back}" onclick="history.back(); return false;" /></span>
|
||||
</th>
|
||||
</table>
|
||||
</form>
|
||||
58
modules/wiki/wiki.admin.controller.php
Normal file
58
modules/wiki/wiki.admin.controller.php
Normal file
|
|
@ -0,0 +1,58 @@
|
|||
<?php
|
||||
/**
|
||||
* @class wikiAdminController
|
||||
* @author zero (zero@nzeo.com)
|
||||
* @brief wiki 모듈의 admin controller class
|
||||
**/
|
||||
|
||||
class wikiAdminController extends wiki {
|
||||
/**
|
||||
* @brief 초기화
|
||||
**/
|
||||
function init() {
|
||||
}
|
||||
|
||||
function procWikiAdminInsertWiki($args = null) {
|
||||
// module 모듈의 model/controller 객체 생성
|
||||
$oModuleController = &getController('module');
|
||||
$oModuleModel = &getModel('module');
|
||||
|
||||
$args = Context::getRequestVars();
|
||||
$args->module = 'wiki';
|
||||
$args->mid = $args->wiki_name;
|
||||
unset($args->wiki_name);
|
||||
if($args->module_srl) {
|
||||
$module_info = $oModuleModel->getModuleInfoByModuleSrl($args->module_srl);
|
||||
if($module_info->module_srl != $args->module_srl) unset($args->module_srl);
|
||||
}
|
||||
|
||||
if(!$args->module_srl) {
|
||||
$output = $oModuleController->insertModule($args);
|
||||
$msg_code = 'success_registed';
|
||||
} else {
|
||||
$output = $oModuleController->updateModule($args);
|
||||
$msg_code = 'success_updated';
|
||||
}
|
||||
|
||||
if(!$output->toBool()) return $output;
|
||||
|
||||
$this->add('page',Context::get('page'));
|
||||
$this->add('module_srl',$output->get('module_srl'));
|
||||
$this->setMessage($msg_code);
|
||||
}
|
||||
|
||||
function procWikiAdminDeleteWiki() {
|
||||
$module_srl = Context::get('module_srl');
|
||||
|
||||
// 원본을 구해온다
|
||||
$oModuleController = &getController('module');
|
||||
$output = $oModuleController->deleteModule($module_srl);
|
||||
if(!$output->toBool()) return $output;
|
||||
|
||||
$this->add('module','wiki');
|
||||
$this->add('page',Context::get('page'));
|
||||
$this->setMessage('success_deleted');
|
||||
}
|
||||
|
||||
}
|
||||
?>
|
||||
126
modules/wiki/wiki.admin.view.php
Normal file
126
modules/wiki/wiki.admin.view.php
Normal file
|
|
@ -0,0 +1,126 @@
|
|||
<?php
|
||||
/**
|
||||
* @class wikiAdminView
|
||||
* @brief wiki 모듈의 admin view class
|
||||
**/
|
||||
|
||||
class wikiAdminView extends wiki {
|
||||
function init() {
|
||||
// module_srl이 있으면 미리 체크하여 존재하는 모듈이면 module_info 세팅
|
||||
$module_srl = Context::get('module_srl');
|
||||
if(!$module_srl && $this->module_srl) {
|
||||
$module_srl = $this->module_srl;
|
||||
Context::set('module_srl', $module_srl);
|
||||
}
|
||||
|
||||
// module model 객체 생성
|
||||
$oModuleModel = &getModel('module');
|
||||
|
||||
// module_srl이 넘어오면 해당 모듈의 정보를 미리 구해 놓음
|
||||
if($module_srl) {
|
||||
$module_info = $oModuleModel->getModuleInfoByModuleSrl($module_srl);
|
||||
if(!$module_info) {
|
||||
Context::set('module_srl','');
|
||||
$this->act = 'list';
|
||||
} else {
|
||||
ModuleModel::syncModuleToSite($module_info);
|
||||
$this->module_info = $module_info;
|
||||
Context::set('module_info',$module_info);
|
||||
}
|
||||
}
|
||||
|
||||
$module_category = $oModuleModel->getModuleCategories();
|
||||
Context::set('module_category', $module_category);
|
||||
|
||||
// 템플릿 경로 지정 (board의 경우 tpl에 관리자용 템플릿 모아놓음)
|
||||
$template_path = sprintf("%stpl/",$this->module_path);
|
||||
$this->setTemplatePath($template_path);
|
||||
}
|
||||
|
||||
function dispWikiAdminContent() {
|
||||
$args->sort_index = "module_srl";
|
||||
$args->page = Context::get('page');
|
||||
$args->list_count = 20;
|
||||
$args->page_count = 10;
|
||||
$args->s_module_category_srl = Context::get('module_category_srl');
|
||||
$output = executeQueryArray('wiki.getWikiList', $args);
|
||||
ModuleModel::syncModuleToSite($output->data);
|
||||
|
||||
// 템플릿에 쓰기 위해서 context::set
|
||||
Context::set('total_count', $output->total_count);
|
||||
Context::set('total_page', $output->total_page);
|
||||
Context::set('page', $output->page);
|
||||
Context::set('wiki_list', $output->data);
|
||||
Context::set('page_navigation', $output->page_navigation);
|
||||
|
||||
// 템플릿 파일 지정
|
||||
$this->setTemplateFile('index');
|
||||
}
|
||||
|
||||
function dispWikiAdminInsertWiki() {
|
||||
if(!in_array($this->module_info->module, array('admin', 'wiki'))) {
|
||||
return $this->alertMessage('msg_invalid_request');
|
||||
}
|
||||
|
||||
// 스킨 목록을 구해옴
|
||||
$oModuleModel = &getModel('module');
|
||||
$skin_list = $oModuleModel->getSkins($this->module_path);
|
||||
Context::set('skin_list',$skin_list);
|
||||
|
||||
// 레이아웃 목록을 구해옴
|
||||
$oLayoutMode = &getModel('layout');
|
||||
$layout_list = $oLayoutMode->getLayoutList();
|
||||
Context::set('layout_list', $layout_list);
|
||||
|
||||
// 템플릿 파일 지정
|
||||
$this->setTemplateFile('wiki_insert');
|
||||
}
|
||||
|
||||
function dispWikiAdminDeleteWiki() {
|
||||
if(!Context::get('module_srl')) return $this->dispWikiAdminContent();
|
||||
if(!in_array($this->module_info->module, array('admin', 'wiki'))) {
|
||||
return $this->alertMessage('msg_invalid_request');
|
||||
}
|
||||
$module_info = Context::get('module_info');
|
||||
|
||||
$oDocumentModel = &getModel('document');
|
||||
$document_count = $oDocumentModel->getDocumentCount($module_info->module_srl);
|
||||
$module_info->document_count = $document_count;
|
||||
|
||||
Context::set('module_info',$module_info);
|
||||
$this->setTemplateFile('wiki_delete');
|
||||
}
|
||||
|
||||
function dispWikiAdminWikiAdditionSetup() {
|
||||
// content는 다른 모듈에서 call by reference로 받아오기에 미리 변수 선언만 해 놓음
|
||||
$content = '';
|
||||
|
||||
// 추가 설정을 위한 트리거 호출
|
||||
// 게시판 모듈이지만 차후 다른 모듈에서의 사용도 고려하여 trigger 이름을 공용으로 사용할 수 있도록 하였음
|
||||
$output = ModuleHandler::triggerCall('module.dispAdditionSetup', 'before', $content);
|
||||
$output = ModuleHandler::triggerCall('module.dispAdditionSetup', 'after', $content);
|
||||
Context::set('setup_content', $content);
|
||||
|
||||
// 템플릿 파일 지정
|
||||
$this->setTemplateFile('addition_setup');
|
||||
}
|
||||
|
||||
function dispWikiAdminGrantInfo() {
|
||||
// 공통 모듈 권한 설정 페이지 호출
|
||||
$oModuleAdminModel = &getAdminModel('module');
|
||||
$grant_content = $oModuleAdminModel->getModuleGrantHTML($this->module_info->module_srl, $this->xml_info->grant);
|
||||
Context::set('grant_content', $grant_content);
|
||||
|
||||
$this->setTemplateFile('grant_list');
|
||||
}
|
||||
|
||||
function dispWikiAdminSkinInfo() {
|
||||
// Call the common page for managing skin information
|
||||
$oModuleAdminModel = &getAdminModel('module');
|
||||
$skin_content = $oModuleAdminModel->getModuleSkinHTML($this->module_info->module_srl);
|
||||
Context::set('skin_content', $skin_content);
|
||||
|
||||
$this->setTemplateFile('skin_info');
|
||||
}
|
||||
}
|
||||
?>
|
||||
30
modules/wiki/wiki.class.php
Normal file
30
modules/wiki/wiki.class.php
Normal file
|
|
@ -0,0 +1,30 @@
|
|||
<?php
|
||||
/**
|
||||
* @class wiki
|
||||
* @author haneul (haneul0318@gmail.com)
|
||||
* @brief wiki 모듈의 high class
|
||||
**/
|
||||
|
||||
class wiki extends ModuleObject {
|
||||
function moduleInstall() {
|
||||
return new Object();
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 설치가 이상이 없는지 체크하는 method
|
||||
**/
|
||||
function checkUpdate() {
|
||||
return false;
|
||||
}
|
||||
|
||||
function moduleUpdate() {
|
||||
return new Object(0, 'success_updated');
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 캐시 파일 재생성
|
||||
**/
|
||||
function recompileCache() {
|
||||
}
|
||||
}
|
||||
?>
|
||||
59
modules/wiki/wiki.controller.php
Normal file
59
modules/wiki/wiki.controller.php
Normal file
|
|
@ -0,0 +1,59 @@
|
|||
<?php
|
||||
|
||||
class wikiController extends wiki {
|
||||
|
||||
function init() {
|
||||
}
|
||||
|
||||
function procWikiInsertDocument() {
|
||||
// 권한 체크
|
||||
if(!$this->grant->write_document) return new Object(-1, 'msg_not_permitted');
|
||||
$entry = Context::get('entry');
|
||||
|
||||
// 글작성시 필요한 변수를 세팅
|
||||
$obj = Context::getRequestVars();
|
||||
$obj->module_srl = $this->module_srl;
|
||||
if(!$obj->nick_name) $obj->nick_name = "anonymous";
|
||||
if($obj->is_notice!='Y'||!$this->grant->manager) $obj->is_notice = 'N';
|
||||
|
||||
settype($obj->title, "string");
|
||||
if($obj->title == '') $obj->title = cut_str(strip_tags($obj->content),20,'...');
|
||||
//그래도 없으면 Untitled
|
||||
if($obj->title == '') $obj->title = 'Untitled';
|
||||
debugPrint($obj);
|
||||
|
||||
// document module의 model 객체 생성
|
||||
$oDocumentModel = &getModel('document');
|
||||
|
||||
// document module의 controller 객체 생성
|
||||
$oDocumentController = &getController('document');
|
||||
|
||||
// 이미 존재하는 글인지 체크
|
||||
$oDocument = $oDocumentModel->getDocument($obj->document_srl, $this->grant->manager);
|
||||
|
||||
// 이미 존재하는 경우 수정
|
||||
if($oDocument->isExists() && $oDocument->document_srl == $obj->document_srl) {
|
||||
$output = $oDocumentController->updateDocument($oDocument, $obj);
|
||||
$msg_code = 'success_updated';
|
||||
|
||||
// 그렇지 않으면 신규 등록
|
||||
} else {
|
||||
$output = $oDocumentController->insertDocument($obj);
|
||||
$msg_code = 'success_registed';
|
||||
$obj->document_srl = $output->get('document_srl');
|
||||
$oDocumentController->insertAlias($obj->module_srl, $obj->document_srl, $obj->title);
|
||||
}
|
||||
|
||||
// 오류 발생시 멈춤
|
||||
if(!$output->toBool()) return $output;
|
||||
|
||||
// 결과를 리턴
|
||||
$this->add('mid', Context::get('mid'));
|
||||
$this->add('document_srl', $output->get('document_srl'));
|
||||
|
||||
// 성공 메세지 등록
|
||||
$this->setMessage($msg_code);
|
||||
}
|
||||
}
|
||||
|
||||
?>
|
||||
177
modules/wiki/wiki.view.php
Normal file
177
modules/wiki/wiki.view.php
Normal file
|
|
@ -0,0 +1,177 @@
|
|||
<?php
|
||||
/**
|
||||
* @class wikiView
|
||||
* @author haneul (haneul0318@gmail.com)
|
||||
* @brief wiki 모듈의 View class
|
||||
**/
|
||||
|
||||
class wikiView extends wiki {
|
||||
|
||||
/**
|
||||
* @brief 초기화
|
||||
* wiki 모듈은 일반 사용과 관리자용으로 나누어진다.\n
|
||||
**/
|
||||
function init() {
|
||||
/**
|
||||
* 스킨 경로를 미리 template_path 라는 변수로 설정함
|
||||
* 스킨이 존재하지 않는다면 xe_wiki로 변경
|
||||
**/
|
||||
$template_path = sprintf("%sskins/%s/",$this->module_path, $this->module_info->skin);
|
||||
if(!is_dir($template_path)) {
|
||||
$this->module_info->skin = 'xe_wiki';
|
||||
$template_path = sprintf("%sskins/%s/",$this->module_path, $this->module_info->skin);
|
||||
}
|
||||
$this->setTemplatePath($template_path);
|
||||
|
||||
$oModuleModel = &getModel('module');
|
||||
|
||||
$document_config = $oModuleModel->getModulePartConfig('document', $this->module_info->module_srl);
|
||||
if(!isset($document_config->use_history)) $document_config->use_history = 'N';
|
||||
Context::set('use_history', $document_config->use_history);
|
||||
|
||||
Context::addJsFile($this->module_path.'tpl/js/wiki.js');
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 선택된 글 출력
|
||||
**/
|
||||
function dispWikiContent() {
|
||||
$output = $this->dispWikiContentView();
|
||||
if(!$output->toBool()) return;
|
||||
}
|
||||
|
||||
function dispWikiHistory() {
|
||||
$oDocumentModel = &getModel('document');
|
||||
$document_srl = Context::get('document_srl');
|
||||
$oDocument = $oDocumentModel->getDocument($document_srl);
|
||||
if(!$oDocument->isExists()) return $this->stop('msg_invalid_request');
|
||||
$entry = $oDocument->getTitleText();
|
||||
Context::set('entry',$entry);
|
||||
$histories = $oDocumentModel->getHistories($document_srl);
|
||||
if(!$histories) $histories = array();
|
||||
Context::set('histories',$histories);
|
||||
Context::set('oDocument', $oDocument);
|
||||
$this->setTemplateFile('histories');
|
||||
}
|
||||
|
||||
function dispWikiEditPage() {
|
||||
if(!$this->grant->write_document) return $this->dispWikiMessage('msg_not_permitted');
|
||||
|
||||
$oDocumentModel = &getModel('document');
|
||||
$document_srl = Context::get('document_srl');
|
||||
$oDocument = $oDocumentModel->getDocument(0, $this->grant->manager);
|
||||
$oDocument->setDocument($document_srl);
|
||||
$oDocument->add('module_srl', $this->module_srl);
|
||||
Context::set('document_srl',$document_srl);
|
||||
Context::set('oDocument', $oDocument);
|
||||
|
||||
Context::addJsFilter($this->module_path.'tpl/filter', 'insert.xml');
|
||||
|
||||
$this->setTemplateFile('write_form');
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Displaying Message
|
||||
**/
|
||||
function dispWikiMessage($msg_code) {
|
||||
$msg = Context::getLang($msg_code);
|
||||
if(!$msg) $msg = $msg_code;
|
||||
Context::set('message', $msg);
|
||||
$this->setTemplateFile('message');
|
||||
}
|
||||
|
||||
function dispWikiTitleIndex() {
|
||||
$page = Context::get('page');
|
||||
$oDocumentModel = &getModel('document');
|
||||
$obj->module_srl = $this->module_info->module_srl;
|
||||
$obj->sort_index = "title";
|
||||
$obj->page = $page;
|
||||
$obj->list_count = 50;
|
||||
$output = $oDocumentModel->getDocumentList($obj);
|
||||
debugPrint($output);
|
||||
|
||||
Context::set('document_list', $output->data);
|
||||
Context::set('total_count', $output->total_count);
|
||||
Context::set('total_page', $output->total_page);
|
||||
Context::set('page', $output->page);
|
||||
Context::set('page_navigation', $output->page_navigation);
|
||||
$this->setTemplateFile('title_index');
|
||||
}
|
||||
|
||||
function dispWikiContentView() {
|
||||
// 요청된 변수 값들을 정리
|
||||
$document_srl = Context::get('document_srl');
|
||||
$entry = Context::get('entry');
|
||||
$oDocumentModel = &getModel('document');
|
||||
if(!$document_srl && !$entry) {
|
||||
$entry = "Front Page";
|
||||
Context::set('entry', $entry);
|
||||
$document_srl = $oDocumentModel->getDocumentSrlByAlias($this->module_info->mid, $entry);
|
||||
}
|
||||
|
||||
|
||||
// document model 객체 생성
|
||||
|
||||
/**
|
||||
* 요청된 문서 번호가 있다면 문서를 구함
|
||||
**/
|
||||
if($document_srl) {
|
||||
$oDocument = $oDocumentModel->getDocument($document_srl);
|
||||
|
||||
// 해당 문서가 존재할 경우 필요한 처리를 함
|
||||
if($oDocument->isExists()) {
|
||||
|
||||
// 글과 요청된 모듈이 다르다면 오류 표시
|
||||
if($oDocument->get('module_srl')!=$this->module_info->module_srl ) return $this->stop('msg_invalid_request');
|
||||
|
||||
// 관리 권한이 있다면 권한을 부여
|
||||
if($this->grant->manager) $oDocument->setGrant();
|
||||
|
||||
if(!Context::get('entry')) Context::set('entry', $oDocument->getTitleText());
|
||||
|
||||
// 상담기능이 사용되고 공지사항이 아니고 사용자의 글도 아니면 무시
|
||||
|
||||
// 요청된 문서번호의 문서가 없으면 document_srl null 처리 및 경고 메세지 출력
|
||||
} else {
|
||||
Context::set('document_srl','',true);
|
||||
$this->alertMessage('msg_not_founded');
|
||||
}
|
||||
|
||||
/**
|
||||
* 요청된 문서 번호가 아예 없다면 빈 문서 객체 생성
|
||||
**/
|
||||
} else {
|
||||
$oDocument = $oDocumentModel->getDocument(0);
|
||||
}
|
||||
|
||||
/**
|
||||
* 글 보기 권한을 체크해서 권한이 없으면 오류 메세지 출력하도록 처리
|
||||
**/
|
||||
if($oDocument->isExists()) {
|
||||
// 브라우저 타이틀에 글의 제목을 추가
|
||||
Context::addBrowserTitle($oDocument->getTitleText());
|
||||
|
||||
// 조회수 증가 (비밀글일 경우 권한 체크)
|
||||
if(!$oDocument->isSecret() || $oDocument->isGranted()) $oDocument->updateReadedCount();
|
||||
|
||||
// 비밀글일때 컨텐츠를 보여주지 말자.
|
||||
if($oDocument->isSecret() && !$oDocument->isGranted()) $oDocument->add('content',Context::getLang('thisissecret'));
|
||||
$this->setTemplateFile('view_document');
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->setTemplateFile('create_document');
|
||||
}
|
||||
|
||||
// 스킨에서 사용할 oDocument 변수 세팅
|
||||
Context::set('oDocument', $oDocument);
|
||||
|
||||
/**
|
||||
* 사용되는 javascript 필터 추가
|
||||
**/
|
||||
Context::addJsFilter($this->module_path.'tpl/filter', 'insert_comment.xml');
|
||||
|
||||
return new Object();
|
||||
}
|
||||
}
|
||||
?>
|
||||
Loading…
Add table
Add a link
Reference in a new issue