mirror of
https://github.com/Lastorder-DC/rhymix.git
synced 2026-01-27 23:29:57 +09:00
cafeXE
1. 메인 페이지 생성 :: cafeXE 관리자 페이지에서 mid 지정 가능 2. 사용자가 카페를 생성하기 위한 옵션을 추가 3. 사용자 카페 생성 기능 추가 git-svn-id: http://xe-core.googlecode.com/svn/sandbox@6176 201d5d3c-b55e-5fd7-737f-ddc643e51545
This commit is contained in:
parent
010923790d
commit
7d67cee78e
41 changed files with 888 additions and 132 deletions
BIN
modules/homepage/skins/xe_default/img/arrowNextA1.gif
Normal file
BIN
modules/homepage/skins/xe_default/img/arrowNextA1.gif
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 46 B |
BIN
modules/homepage/skins/xe_default/img/arrowNextEndA1.gif
Normal file
BIN
modules/homepage/skins/xe_default/img/arrowNextEndA1.gif
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 52 B |
BIN
modules/homepage/skins/xe_default/img/arrowPrevA1.gif
Normal file
BIN
modules/homepage/skins/xe_default/img/arrowPrevA1.gif
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 47 B |
BIN
modules/homepage/skins/xe_default/img/arrowPrevEndA1.gif
Normal file
BIN
modules/homepage/skins/xe_default/img/arrowPrevEndA1.gif
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 51 B |
BIN
modules/homepage/skins/xe_default/img/lineTextDiv.gif
Executable file
BIN
modules/homepage/skins/xe_default/img/lineTextDiv.gif
Executable file
Binary file not shown.
|
After Width: | Height: | Size: 44 B |
BIN
modules/homepage/skins/xe_default/img/lineVr11.gif
Normal file
BIN
modules/homepage/skins/xe_default/img/lineVr11.gif
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 44 B |
149
modules/homepage/skins/xe_default/index.html
Normal file
149
modules/homepage/skins/xe_default/index.html
Normal file
|
|
@ -0,0 +1,149 @@
|
|||
<!--%import("./style.css")-->
|
||||
|
||||
<!--@if($module_info->title)-->
|
||||
<div class="cafeHeader">
|
||||
<div class="cafeTitle">
|
||||
<h2 class="cafeTitleText"><a href="{getUrl('','mid',$mid,'listStyle',$listStyle)}">{$module_info->title}<!--@if($module_info->sub_title)--> : <em>{$module_info->sub_title}</em><!--@end--></a></h2>
|
||||
</div>
|
||||
<!--@end-->
|
||||
|
||||
<!--@if($module_info->comment)-->
|
||||
<p class="cafeDescription">{$module_info->comment}</p>
|
||||
</div>
|
||||
<!--@end-->
|
||||
|
||||
<div class="cafeBox">
|
||||
|
||||
<div class="cafeLeftBox">
|
||||
|
||||
<!--@if($module_info->intro_title)-->
|
||||
<div class="intro">
|
||||
<h3>{$module_info->intro_title}</h3>
|
||||
<img src="{$module_info->intro_image}" alt="" align="left" />
|
||||
{$module_info->intro_description}
|
||||
<span class="url"><a href="{$module_info->intro_url}" onclick="window.open(this.href); return false;">{$module_info->intro_url}</a></span>
|
||||
</div>
|
||||
<!--@end-->
|
||||
|
||||
<div>
|
||||
<ul class="cafeList">
|
||||
<!--@foreach($homepage_list as $key => $val)-->
|
||||
<li>
|
||||
<p class="titleArea">
|
||||
<a class="title" href="{getSiteUrl($val->domain)}" onclick="window.open(this.href); return false;">{($val->cafe_title)}</a>
|
||||
</p>
|
||||
|
||||
<p class="text">
|
||||
<!--@if($val->cafe_banner)-->
|
||||
<a class="thumb" href="{$val->link}" onclick="window.open(this.href); return false;"><img src="{$val->cafe_banner}" width="100" height="100" align="left"/></a>
|
||||
<!--@end-->
|
||||
|
||||
<!--@if($val->cafe_description)-->
|
||||
{preg_replace('/<([^>]+)>/i','',$val->cafe_description)}
|
||||
<!--@end-->
|
||||
</p>
|
||||
|
||||
<p class="url">
|
||||
<a href="{getSiteUrl($val->domain)}" onclick="window.open(this.href); return false;">{getSiteUrl($val->domain)}</a>
|
||||
</p>
|
||||
<p class="date">
|
||||
{zdate($val->regdate,"Y/m/d H:i")}
|
||||
</p>
|
||||
</li>
|
||||
<!--@end-->
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="pagination a1">
|
||||
<a href="{getUrl('page','','document_srl','','division',$division,'last_division',$last_division)}" class="prevEnd">{$lang->first_page}</a>
|
||||
<!--@if($page_navigation)-->
|
||||
<!--@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)}">{$page_no}</a>
|
||||
<!--@end-->
|
||||
<!--@end-->
|
||||
<!--@end-->
|
||||
<a href="{getUrl('page',$page_navigation->last_page,'document_srl','','division',$division,'last_division',$last_division)}" class="nextEnd">{$lang->last_page}</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<hr class="cafeHR" />
|
||||
|
||||
<div class="cafeRightBox">
|
||||
|
||||
<!--@if($is_logged)-->
|
||||
<div class="cafeContext">
|
||||
<!--@if($isEnableCreateCafe)-->
|
||||
<h3>{$lang->cmd_make_cafe}</h3>
|
||||
<form action="./" method="post" onsubmit="return procFilter(this, cafe_creation);">
|
||||
<table cellspacing="0" class="cafeTable">
|
||||
<tr>
|
||||
<th><div>{$lang->cafe_id}</div></th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="wide">
|
||||
<input type="text" name="cafe_id" class="inputTypeText cafeID" />
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th><div>{$lang->cafe_title}</div></th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="wide"><input type="text" name="cafe_title" class="inputTypeText cafeTitle"/></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th><div>{$lang->cafe_description}</div></th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><textarea name="cafe_description" class="inputTypeTextArea cafeDescription"></textarea></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th class="button"><span class="button black strong"><input type="submit" value="{$lang->cmd_make_cafe}" /></span></th>
|
||||
</tr>
|
||||
</table>
|
||||
</form>
|
||||
<!--@end-->
|
||||
|
||||
<!--@if($my_cafes && count($my_cafes))-->
|
||||
<h3>{$lang->mycafe_list} ({count($my_cafes)})</h3>
|
||||
<ul>
|
||||
<!--@foreach($my_cafes as $key => $val)-->
|
||||
<li>
|
||||
<a href="{getSiteUrl($val->domain)}" onclick="window.open(this.href);return false;">{cut_str($val->cafe_title,30)}</a>
|
||||
</li>
|
||||
<!--@end-->
|
||||
</ul>
|
||||
<!--@end-->
|
||||
</div>
|
||||
<!--@end-->
|
||||
|
||||
<!--@if($newest_documents)-->
|
||||
<div class="cafeContext">
|
||||
<h3>{$lang->cafe_latest_documents}</h3>
|
||||
<ul>
|
||||
<!--@foreach($newest_documents as $key => $val)-->
|
||||
<li>
|
||||
<span class="member_{$val->member_srl}">{cut_str($val->nick_name,10)}</span> - <a href="{getSiteUrl($val->domain,'document_srl',$val->document_srl)}" onclick="window.open(this.href);return false;">{cut_str($val->title,30)}</a>
|
||||
</li>
|
||||
<!--@end-->
|
||||
</ul>
|
||||
</div>
|
||||
<!--@end-->
|
||||
|
||||
<!--@if($newest_comments)-->
|
||||
<div class="cafeContext">
|
||||
<h3>{$lang->cafe_latest_comments}</h3>
|
||||
<ul>
|
||||
<!--@foreach($newest_comments as $key => $val)-->
|
||||
<li>
|
||||
<span class="member_{$val->member_srl}">{cut_str($val->nick_name,10)}</span> - <a href="{getSiteUrl($val->domain,'document_srl',$val->document_srl)}#comment_{$val->comment_srl}" onclick="window.open(this.href);return false;">{cut_str(preg_replace('/<([^>]+)>/i','',$val->content),30)}</a>
|
||||
</li>
|
||||
<!--@end-->
|
||||
</ul>
|
||||
</div>
|
||||
<!--@end-->
|
||||
</div>
|
||||
|
||||
</div>
|
||||
53
modules/homepage/skins/xe_default/skin.xml
Normal file
53
modules/homepage/skins/xe_default/skin.xml
Normal file
|
|
@ -0,0 +1,53 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<skin version="0.2">
|
||||
<title xml:lang="ko">Cafe 기본 Skin</title>
|
||||
<description xml:lang="ko">
|
||||
Cafe 기본 스킨입니다.
|
||||
</description>
|
||||
<version>0.1</version>
|
||||
<date>2009-04-03</date>
|
||||
|
||||
<author email_address="zero@xpressengine.com" link="http://blog.nzeo.com">
|
||||
<name xml:lang="ko">zero</name>
|
||||
</author>
|
||||
|
||||
<license>GPL</license>
|
||||
|
||||
<colorset>
|
||||
<color name="default">
|
||||
<title xml:lang="ko">기본</title>
|
||||
</color>
|
||||
</colorset>
|
||||
|
||||
<extra_vars>
|
||||
<var name="title" type="text">
|
||||
<title xml:lang="ko">제목</title>
|
||||
<description xml:lang="ko">제목을 적어주세요.</description>
|
||||
</var>
|
||||
<var name="sub_title" type="text">
|
||||
<title xml:lang="ko">부제목</title>
|
||||
<description xml:lang="ko">제목 옆에 나타날 부제목을 적어주세요.</description>
|
||||
</var>
|
||||
<var name="comment" type="textarea">
|
||||
<title xml:lang="ko">상세 설명</title>
|
||||
<description xml:lang="ko">제목 아래 표시될 설명을 입력하실 수 있습니다.</description>
|
||||
</var>
|
||||
<var name="intro_title" type="text">
|
||||
<title xml:lang="ko">카페 소개 제목</title>
|
||||
<description xml:lang="ko">소개할 카페의 제목을 입력해주세요. (메인 노출)</description>
|
||||
</var>
|
||||
<var name="intro_description" type="textarea">
|
||||
<title xml:lang="ko">카페 소개 내용</title>
|
||||
<description xml:lang="ko">소개할 카페의 내용을 입력해주세요. (메인 노출)</description>
|
||||
</var>
|
||||
<var name="intro_image" type="image">
|
||||
<title xml:lang="ko">카페 소개 이미지</title>
|
||||
<description xml:lang="ko">소개할 카페의 내용에 포함되는 이미지를 등록해주세요. (메인 노출)</description>
|
||||
</var>
|
||||
<var name="intro_url" type="text">
|
||||
<title xml:lang="ko">카페 소개 링크 </title>
|
||||
<description xml:lang="ko">소개할 카페의 링크를 입력해주세요. (http:// 모두 포함)</description>
|
||||
</var>
|
||||
</extra_vars>
|
||||
</skin>
|
||||
|
||||
120
modules/homepage/skins/xe_default/style.css
Normal file
120
modules/homepage/skins/xe_default/style.css
Normal file
|
|
@ -0,0 +1,120 @@
|
|||
@charset "utf-8";
|
||||
|
||||
/* header */
|
||||
.cafeHeader *{ margin:0 0 30px 0; padding:0;}
|
||||
.cafeHeader .cafeTitle{ font-size:1em; letter-spacing:-.1em; margin-bottom:10px; border-bottom:3px solid; *zoom:1; background-repeat:no-repeat; background-position:left center;}
|
||||
.cafeHeader .cafeTitle:after{ content:""; display:block; clear:both;}
|
||||
.cafeHeader .cafeTitleText{ float:left; clear:both; margin-bottom:-3px; padding:5px 15px 5px 5px; border-bottom:3px solid; background-repeat:no-repeat; background-position:right bottom;}
|
||||
.cafeHeader .cafeTitleText a{ text-decoration:none;}
|
||||
.cafeHeader .cafeTitleText em{ font-style:normal; font-weight:normal;}
|
||||
.cafeHeader .cafeDescription{ padding:7px 15px; -moz-border-radius:3px; -webkit-border-radius:3px; position:relative;}
|
||||
.cafeHeader .cafeTitle{ border-color:#ddd; }
|
||||
.cafeHeader .cafeTitleText{ border-color:#666; background-image:url(./img/lineVr11.gif);}
|
||||
.cafeHeader .cafeTitleText a{ color:#000;}
|
||||
.cafeHeader .cafeTitleText em{ color:#666;}
|
||||
.cafeHeader .cafeDescription{ background:#f8f8f8; }
|
||||
|
||||
/* layout */
|
||||
div.cafeBox { position:relative; padding:0 250px 0 0; *zoom:1; }
|
||||
div.cafeBox:after{ content:""; display:block; clear:both;}
|
||||
div.cafeBox a { text-decoration:none; }
|
||||
div.cafeBox a:hover { text-decoration:underline; position:relative; }
|
||||
|
||||
div.cafeLeftBox { position:relative; margin-bottom:20px; text-align:justify; float:left; width:100%;}
|
||||
div.cafeRightBox { position:relative; width:230px; float:right; clear:right; margin-left:-230px; right:-250px; }
|
||||
|
||||
hr.cafeHR { display:none; position:absolute;}
|
||||
|
||||
/* intro */
|
||||
div.intro { border:4px solid #ddd; margin-bottom:20px; padding:10px; *zoom:1; overflow:hidden;}
|
||||
div.intro h3 { width:100%; padding:0 0 5px 0; border-bottom:2px solid #aaa; margin-bottom:10px; }
|
||||
div.intro img { padding:0; margin:10px; }
|
||||
div.intro .url { text-align:right; display:block; }
|
||||
div.intro .url a { color:#5B96C2; }
|
||||
|
||||
/* cafe list */
|
||||
.cafeList div.tabContent { display:none; }
|
||||
.cafeList{ position:relative; margin:0; padding:0; font-size:12px; line-height:1.5; *zoom:1;}
|
||||
.cafeList:after{ content:""; display:block; clear:both;}
|
||||
.cafeList li { list-style:none; clear:both; margin-bottom:10px; padding-bottom:10px; *zoom:1; overflow:hidden; border-bottom:1px dotted #ddd;}
|
||||
.cafeList li p{ margin:0; padding:0;}
|
||||
.cafeList li p.thumbArea{ position:relative; float:left; overflow:hidden; margin-right:10px; }
|
||||
.cafeList li p.titleArea{ margin-bottom:4px; overflow:hidden; white-space:nowrap; padding-right:2px; font-size:16px; }
|
||||
.cafeList li p.titleArea .board{ padding-right:5px;}
|
||||
.cafeList li p.text{ margin-bottom:4px; clear:both; padding-left:10px;}
|
||||
.cafeList li p.url { color:#5B96C2; float:left; clear:left; }
|
||||
.cafeList li p.url a { color:#5B96C2!important; }
|
||||
.cafeList li p.date { float:right; color:#999; font-weight:normal;}
|
||||
.cafeList li .thumb{ text-decoration:none; overflow:hidden; width:100px; height:100px; }
|
||||
.cafeList li .thumb img { margin:0 5px 5px 0; padding:1px; border:1px solid #eee; }
|
||||
.cafeList li .title{ font-weight:bold;}
|
||||
.cafeList li .replyNum a{ font:10px Tahoma; margin:0 -1px;}
|
||||
.cafeList li .trackbackNum a{ font:10px Tahoma; margin:0 -1px;}
|
||||
.cafeList li .author{ margin-right:10px;}
|
||||
.cafeList li .date{ font:11px Tahoma; }
|
||||
.cafeList li .hour{ font:11px Tahoma;}
|
||||
.cafeList li .board{ color:#333; background:url(./img/lineTextDiv.gif) no-repeat right center;}
|
||||
.cafeList li .title{ color:#666;}
|
||||
.cafeList li .replyNum a{ color:#ff1a1a;}
|
||||
.cafeList li .trackbackNum a{ color:#66c;}
|
||||
.cafeList li .author{ color:#333;}
|
||||
.cafeList li .category{ color:#333; background:url(./img/lineTextDiv.gif) no-repeat right center;}
|
||||
.cafeList li .date{ font-weight:bold; }
|
||||
.cafeList li .hour{ color:#888;}
|
||||
.cafeList li .text{ color:#888;}
|
||||
|
||||
/* 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(./img/arrowPrevA1.gif) no-repeat left center; }
|
||||
.pagination.a1 a.prevEnd{ padding-left:15px; background:#fff url(./img/arrowPrevEndA1.gif) no-repeat left center; }
|
||||
.pagination.a1 a.next{ padding-right:10px; background:#fff url(./img/arrowNextA1.gif) no-repeat right center; }
|
||||
.pagination.a1 a.nextEnd{ padding-right:15px; background:#fff url(./img/arrowNextEndA1.gif) no-repeat right center; }
|
||||
|
||||
/* cafe creation */
|
||||
#cafeCreation { margin-bottom:10px; overflow:hidden; *zoom:1; position:relative;}
|
||||
#cafeCreation a { text-decoration:none; }
|
||||
#cafeCreation a:hover { text-decoration:underline; }
|
||||
#cafeCreation { margin-bottom:30px; position:relative; *zoom:1;}
|
||||
|
||||
/* cafe context */
|
||||
div.cafeContext { margin-bottom:20px; }
|
||||
div.cafeContext h3 { font-size:12px; color:#777; border-bottom:2px solid #ccc; padding:3px; margin:0 0 10px 0;}
|
||||
div.cafeContext ul { list-style:none; margin:10px 5px; padding:0; }
|
||||
div.cafeContext ul li { margin:0 0 3px 0; padding:0; color:#aaa; white-space:nowrap; overflow:hidden; height:20px; }
|
||||
div.cafeContext ul li span { color:#5B96C2; cursor:pointer;}
|
||||
div.cafeContext ul li a { color:#728694!important; }
|
||||
div.cafeContext ul li a img { vertical-align:middle; }
|
||||
|
||||
.cafeTable{ width:100%; border:0; margin:0 0 20px 0; padding:0;}
|
||||
.cafeTable th div { white-space:nowrap; }
|
||||
.cafeTable th,
|
||||
.cafeTable td{ border:0; padding:5px 10px; vertical-align:top;}
|
||||
.cafeTable th{ background:#f4f4f4;}
|
||||
.cafeTable thead th{ border-top:2px solid #cfcfcf; border-bottom:1px solid #e5e5e5; background-image:url(../img/lineVrText.gif); background-repeat:no-repeat; background-position:left center;}
|
||||
.cafeTable thead th:first-child{ background-image:none;}
|
||||
.cafeTable tbody th{ border-bottom:1px solid #e5e5e5; text-align:left;}
|
||||
.cafeTable td{ border-bottom:1px solid #f0f0f0;}
|
||||
|
||||
.cafeTable th.button { text-align:right; }
|
||||
.cafeTable td.alert { color:red !important; }
|
||||
.cafeTable td.alert a { text-decoration:none; color:red !important; }
|
||||
|
||||
input.cafeID { width:150px; }
|
||||
input.cafeTitle { width:90%; }
|
||||
textarea.cafeDescription{ width:90%; height:40px;}
|
||||
Loading…
Add table
Add a link
Reference in a new issue