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

This commit is contained in:
zero 2007-04-18 04:43:57 +00:00
parent 970339b7d8
commit 76f599c69b
30 changed files with 456 additions and 32 deletions

View file

@ -0,0 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<plugin version="0.1">
<title xml:lang="ko">로그인 정보 출력</title>
<author email_address="zero@zeroboard.com" link="http://www.zeroboard.com" date="2007. 2. 28">
<name xml:lang="ko">제로</name>
<description xml:lang="ko">로그인 폼이나 로그인 정보를 출력합니다</description>
</author>
<extra_vars />
</plugin>

View file

@ -0,0 +1,36 @@
<?php
/**
* @class login_info
* @author zero (zero@nzeo.com)
* @version 0.1
* @brief 로그인 폼을 출력하는 플러그인
*
* $logged_info를 이용하며 이는 미리 설정되어 있음
**/
class login_info extends PluginHandler {
/**
* @brief 플러그인의 실행 부분
* ./plugins/플러그인/conf/info.xml에 선언한 extra_vars를 args로 받는다
* 결과를 만든후 print가 아니라 return 해주어야 한다
**/
function proc($args) {
// 변수 설정
Context::set('style', $args->style);
// 템플릿의 스킨 경로를 지정 (skin, colorset에 따른 값을 설정)
$tpl_path = sprintf('%sskins/%s', $this->plugin_path, $args->skin);
Context::set('colorset', $args->colorset);
// 템플릿 파일을 지정
$tpl_file = 'login_info';
// 템플릿 컴파일
$oTemplate = new TemplateHandler();
return $oTemplate->compile($tpl_path, $tpl_file);
}
}
?>

View file

@ -0,0 +1,14 @@
<filter name="plugin_login" module="member" act="procMemberLogin">
<form>
<node target="user_id" required="true" filter="user_id"/>
<node target="password" required="true" />
</form>
<parameter>
<param name="user_id" target="user_id" />
<param name="password" target="password" />
</parameter>
<response callback_func="completeLogin">
<tag name="error" />
<tag name="message" />
</response>
</filter>

View file

@ -0,0 +1,7 @@
<filter name="plugin_logout" module="member" act="procMemberLogout">
<form />
<response>
<tag name="error" />
<tag name="message" />
</response>
</filter>

Binary file not shown.

After

Width:  |  Height:  |  Size: 556 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 505 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 967 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 559 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 534 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 535 B

View file

@ -0,0 +1,31 @@
/* 로그인 영역에 포커스 */
function doFocusUserId(fo_id) {
var fo_obj = xGetElementById(fo_id);
if(xGetCookie('user_id')) {
fo_obj.user_id.value = xGetCookie('user_id');
fo_obj.remember_user_id.checked = true;
try{
fo_obj.password.focus();
} catch(e) {};
} else {
try{
fo_obj.user_id.focus();
} catch(e) {};
}
}
/* 로그인 후 */
function completeLogin(ret_obj, response_tags, params, fo_obj) {
if(fo_obj.remember_user_id && fo_obj.remember_user_id.checked) {
var expire = new Date();
expire.setTime(expire.getTime()+ (7000 * 24 * 3600000));
xSetCookie('user_id', fo_obj.user_id.value, expire);
}
var url = location.href.setQuery('act','');
location.href = location.href.setQuery('act','');
}

View file

@ -0,0 +1,83 @@
<!-- colorset의 값에 따라 css 파일을 import 한다 -->
<!--@if($colorset=="normal"||!$colorset)-->
<!--%import("normal/style.css")-->
<!--@end-->
<!-- 로그인 사용자일 경우 로그인 정보를 출력 -->
<!--@if($logged_info)-->
<!--%import("./filter/logout.xml")-->
<div class="login_plugin">
<!-- 닉네임 + 로그아웃 -->
<div class="top_box">
<div class="logout">
<a href="#" onclick="location.href='{getUrl('act','dispMemberLogout')}';return false;">{$lang->cmd_logout}</a>
</div>
<div class="nick_name">
<div class="member_{$logged_info->member_srl}">{$logged_info->nick_name}</div>
</div>
</div>
<div class="info_box">
<!-- 정보 수정 링크 -->
<div class="member_info">
<a href="#" onclick="location.href='{getUrl('act','dispMemberInfo')}';return false;">{$lang->cmd_view_member_info}</a>
</div>
<div class="friend_list">
<a href="#" onclick="popopen('{getUrl('','module','member','act','dispMemberFriend')}','sendMessage');return false;">{$lang->cmd_view_friend}</a>
</div>
<div class="message_box">
<a href="#" onclick="location.href='{getUrl('act','dispMemberMessages')}';return false;">{$lang->cmd_view_message_box}</a>
</div>
<!-- 관리자일 경우 관리자 링크 -->
<!--@if($logged_info->is_admin=="Y")-->
<div class="link_admin">
<a href="#" onclick="winopen('./?module=admin');return false;">{$lang->cmd_management}</a>
</div>
<!--@end-->
<!-- 최종 록그인 시간 -->
<div class="last_login">
{$lang->last_login} : {zDate($logged_info->last_login, "Y-m-d H:i")}
</div>
</div>
</div>
<!-- 비로그인 사용자일 경우 로그인 폼을 출력 -->
<!--@else-->
<!--%import("./filter/login.xml")-->
<!--%import("./js/login.js")-->
<div class="login_plugin">
<form action="./" method="get" onsubmit="return procFilter(this, plugin_login)" id="fo_login_plugin">
<div class="login_box">
<div class="header">{$lang->user_id}</div>
<div class="body">
<div><input type="text" name="user_id" id="login_form_user_id" class="input" /></div>
<div>
<input type="checkbox" name="remember_user_id" id="chk_remember_user_id" value="Y" />
<label for="chk_remember_user_id">{$lang->remember_user_id}</label>
</div>
</div>
<div class="header">{$lang->password}</div>
<div class="body"><input type="password" name="password" class="input" /></div>
</div>
<div class="button_area">
<input type="submit" value="{$lang->cmd_login}" class="submit_button" />
<input type="button" value="{$lang->cmd_signup}" class="signup_button" onclick="location.href='{getUrl('act','dispMemberSignUpForm')}';return false;" />
</div>
</form>
<script type="text/javascript">
xAddEventListener(window, "load", function(){ doFocusUserId("fo_login_plugin"); });
</script>
</div>
<!--@end-->

Binary file not shown.

After

Width:  |  Height:  |  Size: 282 B

View file

@ -0,0 +1,151 @@
.login_plugin {
border:3px solid #DDDDDD;
padding:6px;
height:80px;
margin-bottom:10px;
}
.login_plugin .top_box {
height:22px;
border-bottom:2px dotted #DDDDDD;
overflow:hidden;
margin-bottom:5px;
}
.login_plugin .top_box .nick_name {
font-weight:bold;
float:left;
color:#555555;
}
.login_plugin .top_box .logout {
float:right;
}
.login_plugin .top_box .logout A {
text-decoration:none;
color:#737CF5;
}
.login_plugin .top_box .logout A:hover {
font-weight:bold;
letter-spacing:-1px;
color:#151F9E;
}
.login_plugin .info_box {
clear:both;
color:#555555;
}
.login_plugin .info_box A:link {
text-decoration:none;
color:#555555;
}
.login_plugin .info_box A:visited {
text-decoration:none;
color:#555555;
}
.login_plugin .info_box A:hover {
text-decoration:none;
font-weight:bold;
letter-spacing:-1px;
color:#555555;
}
.login_plugin .info_box div {
padding-left:15px;
margin:0px 0px 4px 0px;
}
.login_plugin .info_box .member_info {
background:url("../images/icon_profile.gif") no-repeat left;
float:left;
width:90px;
}
.login_plugin .info_box .friend_list {
background:url("../images/icon_friend_list.gif") no-repeat left;
float:left;
}
.login_plugin .info_box .message_box {
background:url("../images/icon_message_box.gif") no-repeat left;
float:left;
width:90px;
}
.login_plugin .info_box .link_admin {
background:url("../images/icon_key.gif") no-repeat left;
float:left;
}
.login_plugin .info_box .link_admin A {
color:#cd0000;
}
.login_plugin .info_box .last_login {
clear:left;
background:url("../images/icon_last_login.gif") no-repeat left;
padding-left:15px;
margin-bottom:4px;
}
.login_plugin .login_box {
height:40px;
}
.login_plugin .header {
float:left;
clear:left;
width:80px;
margin-bottom:5px;
font-weight:bold;
color:#555555;
}
.login_plugin .body {
float:left;
width:100px;
margin-bottom:5px;
}
.login_plugin .body .input {
width:90px;
height:13px;
border:1px solid #AAAAAA;
color:#555555;
}
.login_plugin .body label {
cursor:pointer;
}
.login_plugin .button_area {
clear:both;
height:20px;
margin-top:5px;
text-align:center;
}
.login_plugin .button_area .submit_button {
width:80px;
height:18px;
border:1px solid #AAAAAA;
background-color:#555555;
color:#FFFFFF;
font-weight:bold;
}
.login_plugin .button_area .signup_button {
width:80px;
height:18px;
border:1px solid #555555;
background-color:#FFFFFF;
color:#000000;
font-weight:bold;
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 589 B

View file

@ -0,0 +1,13 @@
<?xml version="1.0" encoding="utf-8"?>
<skin>
<title xml:lang="ko">로그인 정보 출력 기본 스킨 </title>
<maker email_address="zero@zeroboard.com" link="http://www.zeroboard.com" date="2007. 2. 28">
<name xml:lang="ko">제로</name>
<description xml:lang="ko">newest_document의 기본 스킨</description>
</maker>
<colorset>
<color name="normal">
<title xml:lang="ko">기본</title>
</color>
</colorset>
<skin>