git-svn-id: http://xe-core.googlecode.com/svn/sandbox@2327 201d5d3c-b55e-5fd7-737f-ddc643e51545
This commit is contained in:
zero 2007-08-12 03:59:52 +00:00
commit 8326004cb2
2773 changed files with 91485 additions and 0 deletions

View file

@ -0,0 +1,18 @@
<?xml version="1.0" encoding="utf-8"?>
<widget version="0.1">
<title xml:lang="ko">로그인 정보 출력</title>
<title xml:lang="zh-CN">登陆表单</title>
<title xml:lang="jp">ログイン情報表示</title>
<title xml:lang="en">Display Login Info</title>
<author email_address="zero@zeroboard.com" link="http://www.zeroboard.com" date="2007. 2. 28">
<name xml:lang="ko">제로</name>
<name xml:lang="zh-CN">zero</name>
<name xml:lang="jp">Zero</name>
<name xml:lang="en">zero</name>
<description xml:lang="ko">로그인 폼이나 로그인 정보를 출력합니다</description>
<description xml:lang="zh-CN">显示登陆表单或登陆信息。</description>
<description xml:lang="jp">ログインフォームまたはログイン情報を表示します。</description>
<description xml:lang="en">This widget displays login form or login info.</description>
</author>
<extra_vars />
</widget>

View file

@ -0,0 +1,39 @@
<?php
/**
* @class login_info
* @author zero (zero@nzeo.com)
* @version 0.1
* @brief 로그인 폼을 출력하는 위젯
*
* $logged_info를 이용하며 이는 미리 설정되어 있음
**/
class login_info extends WidgetHandler {
/**
* @brief 위젯의 실행 부분
* ./widgets/위젯/conf/info.xml에 선언한 extra_vars를 args로 받는다
* 결과를 만든후 print가 아니라 return 해주어야 한다
**/
function proc($args) {
// 템플릿의 스킨 경로를 지정 (skin, colorset에 따른 값을 설정)
$tpl_path = sprintf('%sskins/%s', $this->widget_path, $args->skin);
Context::set('colorset', $args->colorset);
// 템플릿 파일을 지정
if(Context::get('is_logged')) $tpl_file = 'login_info';
else $tpl_file = 'login_form';
// 회원 관리 정보를 받음
$oModuleModel = &getModel('module');
$this->member_config = $oModuleModel->getModuleConfig('member');
Context::set('member_config', $this->member_config);
// 템플릿 컴파일
$oTemplate = &TemplateHandler::getInstance();
return $oTemplate->compile($tpl_path, $tpl_file);
}
}
?>

View file

@ -0,0 +1,41 @@
.fc_01 { color:#797771; }
.fc_02 { color:#9A9893; }
.box_login { border:solid 3px #D5D8DB; background:#FFFFFE; margin-bottom:10px;}
.box_login .user_info { padding:5px 0 0 5px; height:22px; }
.box_login .hr_dot_01 { background:url(../images/default/hr_dot_01.gif) repeat-x; height:2px; overflow:hidden; clear:both; margin:6px; }
.box_login .item { background:url(../images/default/bul_01.gif) no-repeat 5px 5px; height:16px; padding:3px 0px 0px 20px; margin-left:5px; margin-top:2px; }
.box_login .item a { color:#666666; text-decoration:none; }
.box_login .item { font-size:11px; letter-spacing:-1px; margin-right:10px; padding:3px 0px 0px 20px; white-space:nowrap; }
.box_login .profile { width:70px; float:left; background:url(../images/default/icon_profile.gif) no-repeat left; }
.box_login .message { width:70px; float:left; background:url(../images/default/icon_note.gif) no-repeat left; }
.box_login .friend { float:left; background:url(../images/default/icon_friend.gif) no-repeat left; }
.box_login .administrative { float:left; background:url(../images/default/icon_key.gif) no-repeat left; margin-right:0px; }
.box_login .administrative a { color:#D80D0F; }
.box_login .lastlogin { clear:both; padding-bottom:5px;}
.box_login .form_field { float:left; margin:9px 9px 0 9px; _margin:3px 3px 0 3px; height:55px; }
.box_login .form_field div { margin-top:2px; margin-bottom:3px; }
.box_login input.submit { width:45px; height:45px; background:url(../images/default/login_btn_submit.gif) no-repeat; border:none; margin:9px 0 0 0; _margin:5px 0 0 0; cursor:pointer; }
.box_login .input { width:140px; background-color: #ffffff; border:1px solid; border-color:#a6a6a6 #d8d8d8 #d8d8d8 #a6a6a6; padding:2px; height:14px; margin:0px; cursor:text; color:#666666;}
.box_login ul.option { clear:both; height:20px; margin:0 0 0 9px;}
.box_login ul.option li { float:left; list-style:none;}
.box_login ul.option li a.btn { background:url(../images/default/bul_01.gif) no-repeat left; padding-left:10px; margin-left:14px; }
.box_login .checkbox { width:15px; height:15px; margin:-1px 0px 0px -1px; margin-right:2px; }
.box_login .clear { clear:both; }
.openid_login { clear:both; height:38px; border:3px solid #D5D8DB; background-color:#FFFFFF; margin:0 0 10px 0; }
.openid_login .openid_user_id { width:110px; _width:100px; background: url(../images/openid_login_bg.gif) left no-repeat; background-color: #ffffff; background-position: 0 50%; padding:3px 3px 3px 18px; border:1px solid; border-color:#a6a6a6 #d8d8d8 #d8d8d8 #a6a6a6; height:16px; line-height:1em; vertical-align:middle; margin-bottom:.5em; color:#666666;}
.openid_login .wButtonTypeA { display:block; cursor:pointer; background:url(../images/default/buttonTypeACenter.gif) repeat-x left center; line-height:100%; overflow:visible; color:#3f4040; margin:0 1px; white-space:nowrap;border:0px;}
.openid_login .wButtonTypeA:hover { text-decoration:none;}
.openid_login .wButtonTypeA img { vertical-align:middle;}
.openid_login .wButtonTypeA input { border:none; cursor:pointer; background:url(../images/default/buttonTypeACenter.gif) repeat-x left center; line-height:100%; overflow:visible; color:#3f4040; margin:0 1px; white-space:nowrap;border:0px; vertical-align:middle; }
.openid_login .wButtonTypeA .leftCap { width:2px; height:24px; background:url(../images/default/buttonTypeALeft.gif) no-repeat; margin:0 .3em 0 0; position:relative; left:-1px;}
.openid_login .wButtonTypeA .rightCap { width:2px; height:24px; background:url(../images/default/buttonTypeARight.gif) no-repeat; margin:0 -1px 0 .4em;}
.openid_login .wButtonTypeA .icon { margin:0 .2em;}
.openid_login .wButtonWrite ul { text-align:center; clear:both; display:block;}
.openid_login .wButtonWrite li { margin-top:.5em; float:left; margin-left:.3em; list-style:none;}

View file

@ -0,0 +1,14 @@
<filter name="widget_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="widget_logout" module="member" act="procMemberLogout">
<form />
<response>
<tag name="error" />
<tag name="message" />
</response>
</filter>

View file

@ -0,0 +1,10 @@
<filter name="openid_login" module="member" act="procMemberOpenIDLogin">
<form>
<node target="user_id" required="true" />
</form>
<parameter />
<response callback_func="completeOpenIDLogin">
<tag name="error" />
<tag name="message" />
</response>
</filter>

Binary file not shown.

After

Width:  |  Height:  |  Size: 43 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 53 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 188 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 169 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 170 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 46 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 77 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 556 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 81 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: 82 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 73 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 915 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 237 B

View file

@ -0,0 +1,36 @@
/* 로그인 영역에 포커스 */
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 = current_url.setQuery('act','');
location.href = url;
}
/* 오픈아이디 로그인 후 */
function completeOpenIDLogin(ret_obj, response_tags) {
var redirect_url = ret_obj['redirect_url'];
location.href = redirect_url;
}

View file

@ -0,0 +1,47 @@
<!-- colorset의 값에 따라 css 파일을 import 한다 -->
<!--@if($colorset=="default"||!$colorset)-->
<!--%import("css/default.css")-->
<!--@end-->
<!--%import("./filter/login.xml")-->
<!--%import("./filter/openid_login.xml")-->
<!--%import("./js/login.js")-->
<div class="box_login fc_01" id="box_login">
<form action="./" method="get" onsubmit="return procFilter(this, widget_login)" id="fo_login_widget">
<div class="form_field">
<div>
<input name="user_id" type="text" class="input" id="login_form_user_id" />
</div>
<div>
<input name="password" type="password" class="input" />
</div>
</div>
<div><input type="submit" value=" " class="submit" /></div>
<ul class="option">
<li><input type="checkbox" name="remember_user_id" id="chk_remember_user_id" value="Y" class="checkbox" /></li>
<li><label for="chk_remember_user_id">{$lang->remember_user_id}</label></li>
<li><a href="{getUrl('act','dispMemberSignUpForm')}" class="fc_02 btn">{$lang->cmd_signup}</a></li>
</ul>
</form>
<div class="clear"></div>
<script type="text/javascript">
xAddEventListener(window, "load", function(){ doFocusUserId("fo_login_widget"); });
</script>
</div>
<!-- OpenID -->
<!--@if($member_config->enable_openid=='Y')-->
<div class="openid_login fc_01" id="box_login">
<form action="./" method="post" onsubmit="return procFilter(this, openid_login)" >
<div class="wButtonWrite">
<ul>
<li><input type="text" name="user_id" class="openid_user_id" /></li>
<li><span class="wButtonTypeA"><img src="./images/blank.gif" alt="" class="leftCap" /><input type="submit" value="{$lang->cmd_login}" accesskey="s" /><img src="./images/blank.gif" alt="" class="rightCap" /></span></li>
</ul>
</div>
</form>
</div>
<!--@end-->

View file

@ -0,0 +1,22 @@
<!-- colorset의 값에 따라 css 파일을 import 한다 -->
<!--@if($colorset=="default"||!$colorset)-->
<!--%import("css/default.css")-->
<!--@end-->
<!--%import("./filter/logout.xml")-->
<div class="box_login">
<div class="user_info">
<div class="fl"><div class="member_{$logged_info->member_srl} fl fc_01">{$logged_info->nick_name}</div></div>
<div class="fr tRight"><a href="{getUrl('act','dispMemberLogout')}" class="button"><span>{$lang->cmd_logout}</span></a></div>
</div>
<div class="hr_dot_01"></div>
<div class="item profile"><a href="{getUrl('act','dispMemberInfo','member_srl',$logged_info->member_srl)}">{$lang->cmd_view_member_info}</a></div>
<div class="item friend"><a href="{getUrl('act','dispMemberFriend','member_srl',$logged_info->member_srl)}">{$lang->cmd_view_friend}</a></div>
<div class="item message"><a href="{getUrl('act','dispMemberMessages','member_srl',$logged_info->member_srl)}">{$lang->cmd_view_message_box}</a></div>
<!--@if($logged_info->is_admin=="Y")-->
<div class="item administrative"><a href="{getUrl('','module','admin')}" onclick="window.open(this.href);return false;">{$lang->cmd_management}</a></div>
<!--@end-->
<div class="item lastlogin fc_02">{$lang->last_login} : {zDate($logged_info->last_login, "Y-m-d H:i")}</div>
</div>

View file

@ -0,0 +1,25 @@
<?xml version="1.0" encoding="utf-8"?>
<skin>
<title xml:lang="ko">로그인 정보 출력 기본 스킨 </title>
<title xml:lang="jp">ログイン情報表示のデフォルトスキン</title>
<title xml:lang="zh-CN">登陆表单默认皮肤</title>
<title xml:lang="en">Default Login Info Display Skin</title>
<maker email_address="zero@zeroboard.com" link="http://www.zeroboard.com" date="2007. 2. 28">
<name xml:lang="ko">제로</name>
<name xml:lang="jp">Zero</name>
<name xml:lang="zh-CN">zero</name>
<name xml:lang="en">zero</name>
<description xml:lang="ko">기본 스킨</description>
<description xml:lang="jp">ログイン情報表示login_infoのデフォルトスキン</description>
<description xml:lang="zh-CN">登陆表单默认皮肤。</description>
<description xml:lang="en">default skin</description>
</maker>
<colorset>
<color name="default">
<title xml:lang="ko">기본</title>
<title xml:lang="jp">デフォルト</title>
<title xml:lang="zh-CN">默认</title>
<title xml:lang="en">default</title>
</color>
</colorset>
</skin>

View file

@ -0,0 +1,42 @@
#login { border:2px solid #515151; width:196px; position:relative; _padding-top:2px; display:block;}
*:first-child+html body#black #login { padding-top:2px;}
#login legend { display:block; width:0; height:0; overflow:hidden; font-size:0;}
#login form { position:relative; border:1px solid #6b6b6b; padding:11px 11px 7px 11px; width:172px;}
#login form .idpwWrap { overflow:hidden; clear:both; width:172px;}
#login form .idpw { float:left;}
#login form .idpw input { border:1px solid #6b6b6b; color:#cbcbcb; width:105px; background:#515151; padding:1px 5px; margin-bottom:2px; font:.9em Tahoma;}
#login form .login { float:right;}
#login form p.save { clear:both; padding:.3em 0;}
#login form p.save input { vertical-align:middle; _margin:-3px;}
*:first-child+html body#black #login form p input { margin:-3px; }
#login form p.save label { font:.9em "돋움", Dotum, "굴림", Gulim, AppleGothic, Sans-serif; color:#818181;}
#login form ul.help { border-top:1px solid #515151; overflow:hidden; padding:.5em 0 0 0; white-space:nowrap;}
#login form ul.help li { list-style:none; float:left; display:block; padding:0 3px 0 7px; background:url(../images/black/vrType1.gif) no-repeat left center;}
#login form ul.help li.first-child { background:none; padding-left:0;}
#login form ul.help li a { color:#818181; font:.9em "돋움", Dotum, "굴림", Gulim, AppleGothic, Sans-serif; white-space:nowrap; text-decoration:none;}
#login form ul.help li a:hover { text-decoration:underline;}
#login form ul.help li.first-child a { color:#cbcbcb;}
#login form .userName { width:172px; overflow:hidden; border-bottom:1px solid #515151; padding:0 0 6px 0; margin-top:-5px;}
#login form .userName strong { color:#cbcbcb; float:left; padding:4px 0 0 2px; font:bold .9em Tahoma;}
#login form .userName a { float:right;}
#login form ul.userMenu { padding:0 0 6px 4px; overflow:hidden; margin-top:10px;}
#login form ul.userMenu li { list-style:none; color:#cbcbcb; list-style:none;padding-left:10px; background:url(../images/black/bulletFF1A00.gif) no-repeat left 4px; height:18px; }
#login form ul.userMenu li a { color:#cbcbcb;text-decoration:none;}
#login form ul.userMenu li a:hover {text-decoration:underline;}
#login form p.latestLogin { color:#818181; font:.9em "돋움", Dotum, "굴림", Gulim, AppleGothic, Sans-serif;}
#login form p.latestLogin span { font:1em Tahoma;}
img.login_mask { width:201px; height:5px; background:#3d3d3d; display:block;}
#openid_login { border:2px solid #515151; width:196px; position:relative; _padding-top:2px; display:block;}
*:first-child+html body#black #openid_login { padding-top:2px;}
#openid_login legend { display:block; width:0; height:0; overflow:hidden; font-size:0;}
#openid_login form { position:relative; border:1px solid #6b6b6b; padding:11px 11px 7px 11px; width:172px;}
#openid_login form .idpwWrap { overflow:hidden; clear:both; width:172px;}
#openid_login form .idpw { float:left;}
#openid_login form .idpw p { margin-bottom:5px; background: url(../images/openid_login_bg.gif) left no-repeat; padding-left:18px; font-size:.9em Tahoma;color:#999999}
#openid_login form .idpw input { border:1px solid #6b6b6b; color:#cbcbcb; width:105px; background:#515151; padding:1px 5px; margin-bottom:2px; font:.9em Tahoma;}
#openid_login form .login { float:right;}
#openid_login form p.save { clear:both; padding:.3em 0;}
#openid_login form p.save input { vertical-align:middle; _margin:-3px;}
*:first-child+html body #openid_login form p input { margin:-3px; }

View file

@ -0,0 +1,42 @@
#login { border:2px solid #d9d9d9; width:196px; position:relative; _padding-top:2px; display:block;}
*:first-child+html body #login { padding-top:2px;}
#login legend { display:block; width:0; height:0; overflow:hidden; font-size:0;}
#login form { position:relative; border:1px solid #cacaca; padding:11px 11px 7px 11px; width:172px;}
#login form .idpwWrap { overflow:hidden; clear:both; width:172px;}
#login form .idpw { float:left;}
#login form .idpw input { border:1px solid #c9c9c9; color:#282828; width:105px; background:#fbfbfb; padding:1px 5px; margin-bottom:2px; font:.9em Tahoma;}
#login form .login { float:right;}
#login form p.save { clear:both; padding:.3em 0;}
#login form p.save input { vertical-align:middle; _margin:-3px;}
*:first-child+html body #login form p input { margin:-3px; }
#login form p.save label { font:.9em "돋움", Dotum, "굴림", Gulim, AppleGothic, Sans-serif; color:#999999;}
#login form ul.help { border-top:1px solid #e4e4e4; overflow:hidden; padding:.5em 0 0 0; white-space:nowrap;}
#login form ul.help li { float:left; display:block; padding:0 3px 0 7px; background:url(../images/default/vrType1.gif) no-repeat left center;}
#login form ul.help li.first-child { background:none; padding-left:0;}
#login form ul.help li a { color:#999999; font:.9em "돋움", Dotum, "굴림", Gulim, AppleGothic, Sans-serif; white-space:nowrap; text-decoration:none; }
#login form ul.help li.first-child a { color:#54564b; text-decoration:none;}
#login form ul.help li a:hover { text-decoration:underline; }
#login form .userName { width:172px; overflow:hidden; border-bottom:1px solid #e4e4e4; padding:0 0 6px 0; margin-top:-5px;}
#login form .userName strong { color:#282828; float:left; padding:4px 0 0 2px; font:bold .9em Tahoma;}
#login form .userName a { float:right;}
#login form ul.userMenu { padding:0 0 6px 4px; overflow:hidden; margin-top:10px;}
#login form ul.userMenu li { list-style:none; padding-left:10px; background:url(../images/default/bulletFF1A00.gif) no-repeat left 4px; height:18px; }
#login form ul.userMenu li a { color:#54564b; text-decoration:none;}
#login form ul.userMenu li a:hover { text-decoration:underline;}
#login form p.latestLogin { color:#999999; font:.9em "돋움", Dotum, "굴림", Gulim, AppleGothic, Sans-serif;}
#login form p.latestLogin span { font:1em Tahoma;}
img.login_mask { width:201px; height:5px; background:#ffffff; display:block;}
#openid_login { border:2px solid #d9d9d9; width:196px; position:relative; _padding-top:2px; display:block; }
*:first-child+html body #openid_login { padding-top:2px;}
#openid_login legend { display:block; width:0; height:0; overflow:hidden; font-size:0;}
#openid_login form { position:relative; border:1px solid #cacaca; padding:11px 11px 7px 11px; width:172px; }
#openid_login form .idpwWrap { overflow:hidden; clear:both; width:172px;}
#openid_login form .idpw { float:left;}
#openid_login form .idpw p { margin-bottom:5px; background: url(../images/openid_login_bg.gif) left no-repeat; padding-left:18px; font-size:.9em Tahoma;color:#999999}
#openid_login form .idpw input { border:1px solid #c9c9c9; color:#282828; width:105px; background:#fbfbfb; padding:1px 5px; margin-bottom:2px; font:.9em Tahoma; }
#openid_login form .login { float:right;}
#openid_login form p.save { clear:both; padding:.3em 0;}
#openid_login form p.save input { vertical-align:middle; _margin:-3px;}
*:first-child+html body #openid_login form p input { margin:-3px; }
#openid_login form p.save label { font:.9em "돋움", Dotum, "굴림", Gulim, AppleGothic, Sans-serif; color:#999999;}

View file

@ -0,0 +1,38 @@
#login { border:2px solid #d9d9d9; width:196px; position:relative; _padding-top:2px; display:block;}
*:first-child+html body#white #login { padding-top:2px;}
#login legend { display:block; width:0; height:0; overflow:hidden; font-size:0;}
#login form { position:relative; border:1px solid #cacaca; padding:11px 11px 7px 11px; width:172px;}
#login form .idpwWrap { overflow:hidden; clear:both; width:172px;}
#login form .idpw { float:left;}
#login form .idpw input { border:1px solid #c9c9c9; color:#282828; width:105px; background:#fbfbfb; padding:1px 5px; margin-bottom:2px; font:.9em Tahoma;}
#login form .login { float:right;}
#login form p.save { clear:both; padding:.3em 0;}
#login form p.save input { vertical-align:middle; _margin:-3px;}
*:first-child+html body#white #login form p input { margin:-3px; }
#login form p.save label { font:.9em "돋움", Dotum, "굴림", Gulim, AppleGothic, Sans-serif; color:#999999;}
#login form ul.help { border-top:1px solid #e4e4e4; overflow:hidden; padding:.5em 0 0 0; white-space:nowrap;}
#login form ul.help li { list-style:none; float:left; display:block; padding:0 3px 0 7px; background:url(../images/white/vrType1.gif) no-repeat left center;}
#login form ul.help li.first-child { background:none; padding-left:0;}
#login form ul.help li a { color:#999999; font:.9em "돋움", Dotum, "굴림", Gulim, AppleGothic, Sans-serif; white-space:nowrap; text-decoration:none; }
#login form ul.help li a:hover { text-decoration:underline; }
#login form ul.help li.first-child a { color:#54564b;}
#login form .userName { width:172px; overflow:hidden; border-bottom:1px solid #e4e4e4; padding:0 0 6px 0; margin-top:-5px;}
#login form .userName strong { color:#282828; float:left; padding:4px 0 0 2px; font:bold .9em Tahoma;}
#login form .userName a { float:right; text-decoration:none; }
#login form ul.userMenu { padding:0 0 6px 4px; overflow:hidden; margin-top:10px;}
#login form ul.userMenu li { list-style:none; padding-left:10px; background:url(../images/white/bulletFF1A00.gif) no-repeat left 4px; height:18px; }
#login form ul.userMenu li a { color:#54564b; text-decoration:none; }
#login form ul.userMenu li a:hover { text-decoration:underline; }
#login form p.latestLogin { color:#999999; font:.9em "돋움", Dotum, "굴림", Gulim, AppleGothic, Sans-serif;}
#login form p.latestLogin span { font:1em Tahoma;}
img.login_mask { width:201px; height:5px; background:#ffffff; display:block;}
#openid_login { border:2px solid #d9d9d9; width:196px; position:relative; _padding-top:2px; display:block; }
*:first-child+html body #openid_login { padding-top:2px;}
#openid_login legend { display:block; width:0; height:0; overflow:hidden; font-size:0;}
#openid_login form { position:relative; border:1px solid #cacaca; padding:11px 11px 7px 11px; width:172px; }
#openid_login form .idpwWrap { overflow:hidden; clear:both; width:172px;}
#openid_login form .idpw { float:left;}
#openid_login form .idpw p { margin-bottom:5px; background: url(../images/openid_login_bg.gif) left no-repeat; padding-left:18px; font-size:.9em Tahoma;color:#999999}
#openid_login form .idpw input { border:1px solid #c9c9c9; color:#282828; width:105px; background:#fbfbfb; padding:1px 5px; margin-bottom:2px; font:.9em Tahoma; }
#openid_login form .login { float:right;}

View file

@ -0,0 +1,14 @@
<filter name="widget_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="widget_logout" module="member" act="procMemberLogout">
<form />
<response>
<tag name="error" />
<tag name="message" />
</response>
</filter>

View file

@ -0,0 +1,10 @@
<filter name="openid_login" module="member" act="procMemberOpenIDLogin">
<form>
<node target="user_id" required="true" />
</form>
<parameter />
<response callback_func="completeOpenIDLogin">
<tag name="error" />
<tag name="message" />
</response>
</filter>

Binary file not shown.

After

Width:  |  Height:  |  Size: 44 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 946 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 44 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 43 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 44 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 605 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 929 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 44 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 237 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 44 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 605 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 929 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 132 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 44 B

View file

@ -0,0 +1,47 @@
/* 로그인 영역에 포커스 */
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 = current_url.setQuery('act','');
location.href = url;
}
/* 오픈아이디 로그인 후 */
function completeOpenIDLogin(ret_obj, response_tags) {
var redirect_url = ret_obj['redirect_url'];
location.href = redirect_url;
}
/* 오픈 아이디 폼 변환 */
function toggleLoginForm(obj) {
if(xGetElementById('login').style.display != "none") {
xGetElementById('login').style.display = "none";
xGetElementById('openid_login').style.display = "block";
xGetElementById('use_open_id_2').checked = true;
} else {
xGetElementById('openid_login').style.display = "none";
xGetElementById('login').style.display = "block";
xGetElementById('use_open_id').checked = false;
xGetElementById('use_open_id_2').checked = false;
}
}

View file

@ -0,0 +1,63 @@
<!-- colorset의 값에 따라 css 파일을 import 한다 -->
<!--@if($colorset=="black")-->
<!--%import("css/black.css")-->
<!--@elseif($colorset=="white")-->
<!--%import("css/white.css")-->
<!--@else-->
<!--%import("css/default.css")-->
<!--@end-->
<!--%import("./filter/login.xml")-->
<!--%import("./filter/openid_login.xml")-->
<!--%import("./js/login.js")-->
<fieldset id="login">
<legend>{$lang->cmd_login}</legend>
<form action="./" method="get" onsubmit="return procFilter(this, widget_login)" id="fo_login_widget">
<div class="idpwWrap">
<div class="idpw">
<input name="user_id" type="text" title="user id" />
<input name="password" type="password" title="password" />
</div>
<input type="image" src="./images/{$colorset}/buttonLogin.gif" alt="login" class="login" />
</div>
<p class="save">
<input name="remember_user_id" id="chk_remember_user_id" type="checkbox" value="Y" />
<label for="chk_remember_user_id">{$lang->remember_user_id}</label>
<!--@if($member_config->enable_openid=='Y')-->
<input name="use_open_id" id="use_open_id" type="checkbox" value="Y" onclick="toggleLoginForm(this); return false;"/>
<label for="use_open_id">Open ID</label>
<!--@end-->
</p>
<ul class="help">
<li class="first-child"><a href="{getUrl('act','dispMemberSignUpForm')}">{$lang->cmd_signup}</a></li>
<!--<li><a href="#">아이디/비밀번호 찾기</a></li>-->
</ul>
</form>
</fieldset>
<!-- OpenID -->
<!--@if($member_config->enable_openid=='Y')-->
<fieldset id="openid_login" style="display:none;">
<legend>{$lang->cmd_login}</legend>
<form action="./" method="post" onsubmit="return procFilter(this, openid_login)" >
<div class="idpwWrap">
<div class="idpw">
<p>{$lang->openid}</p>
<input type="text" name="user_id" class="openid_user_id" />
</div>
<input type="image" src="./images/{$colorset}/buttonLogin.gif" alt="login" class="login" />
</div>
<p class="save">
<input name="use_open_id" id="use_open_id_2" type="checkbox" value="Y" onclick="toggleLoginForm(this); return false;"/>
<label for="use_open_id_2">Open ID</label>
</p>
</form>
</fieldset>
<!--@end-->
<script type="text/javascript">
xAddEventListener(window, "load", function(){ doFocusUserId("fo_login_widget"); });
</script>

View file

@ -0,0 +1,36 @@
<!-- colorset의 값에 따라 css 파일을 import 한다 -->
<!--@if($colorset=="black")-->
<!--%import("css/black.css")-->
<!--@elseif($colorset=="white")-->
<!--%import("css/white.css")-->
<!--@else-->
<!--%import("css/default.css")-->
<!--@end-->
<!--%import("./filter/logout.xml")-->
<fieldset id="login">
<legend>{$lang->cmd_login}</legend>
<form action="" method="post">
<div class="userName">
<div class="fl member_{$logged_info->member_srl}"><strong>{$logged_info->nick_name}</strong></div>
<a href="{getUrl('act','dispMemberLogout')}"><img src="./images/{$colorset}/buttonLogout.gif" alt="{$lang->cmd_logout}" width="47" height="18" /></a>
</div>
<ul class="userMenu">
<li><a href="{getUrl('act','dispMemberInfo','member_srl',$logged_info->member_srl)}">{$lang->cmd_view_member_info}</a></li>
<li><a href="{getUrl('act','dispMemberFriend','member_srl',$logged_info->member_srl)}">{$lang->cmd_view_friend}</a></li>
<li><a href="{getUrl('act','dispMemberMessages','member_srl',$logged_info->member_srl)}">{$lang->cmd_view_message_box}</a></li>
<li><a href="{getUrl('act','dispMemberScrappedDocument','member_srl',$logged_info->member_srl)}">{$lang->cmd_view_scrapped_document}</a></li>
<!--@if($logged_info->is_admin=="Y")-->
<li><a href="{getUrl('','module','admin')}" onclick="window.open(this.href);return false;">{$lang->cmd_management}</a></li>
<!--@if($layout_info->layout_srl)-->
<li><a href="{getUrl('act','dispLayoutAdminModify','layout_srl',$layout_info->layout_srl)}">{$lang->cmd_layout_management}</a> / <a href="{getUrl('act','dispLayoutAdminEdit','layout_srl',$layout_info->layout_srl)}">{$lang->cmd_edit}</a></li>
<!--@end-->
<!--@end-->
</ul>
<p class="latestLogin">{$lang->last_login} : <span>{zDate($logged_info->last_login, "Y-m-d H:i")}</span></p>
</form>
</fieldset>

View file

@ -0,0 +1,45 @@
<?xml version="1.0" encoding="utf-8"?>
<skin>
<title xml:lang="ko">XE 공식 로그인 정보 출력</title>
<title xml:lang="jp">XEログイン情報表示</title>
<title xml:lang="en">Display XE Official Login Info</title>
<title xml:lang="zh-CN">XE 官方网站登陆表单皮肤</title>
<maker email_address="zero@zeroboard.com" link="http://www.zeroboard.com" date="2007. 2. 28">
<name xml:lang="ko">제로</name>
<name xml:lang="jp">Zero</name>
<name xml:lang="en">zero</name>
<name xml:lang="zh-CN">Zero</name>
<description xml:lang="ko">
XE 공식 레이아웃에 적합한 로그인 정보 출력 위젯입니다.
디자인 : 이소라 (http://ra-ra.pe.kr)
퍼블리싱 : 정찬명 (http://naradesign.net)
레이아웃 제작 : zero (http://blog.nzeo.com)
</description>
<description xml:lang="jp">
XEレイアウトに適したログイン情報表示用のウィジェットです。
デザインイソラhttp://ra-ra.pe.kr
パブリシングジョンチャンミョンhttp://naradesign.net
レイアウトZero (http://blog.nzeo.com)
</description>
<description xml:lang="en">
This is a suitable login info display widget for XE Official layout.
Design : So-ra Lee (http://ra-ra.pe.kr)
Publishing : Chan-Myeong Jeong (http://naradesign.net)
Layout Maker : Zero (http://blog.nzeo.com)
</description>
<description xml:lang="zh-CN">
适合XE 官房网站布局的登陆表单控件。
设计 : So-Ra Lee(http://ra-ra.pe.kr)
HTML/CSS : Chan-Myung Jeong(http://naradesign.net)
布局: zero (http://blog.nzeo.com)
</description>
</maker>
<colorset>
<color name="default">
<title xml:lang="ko">기본</title>
<title xml:lang="jp">デフォルト</title>
<title xml:lang="zh-CN">默认</title>
<title xml:lang="en">default</title>
</color>
</colorset>
</skin>