삭제
git-svn-id: http://xe-core.googlecode.com/svn/sandbox@2327 201d5d3c-b55e-5fd7-737f-ddc643e51545
18
widgets/login_info/conf/info.xml
Normal 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>
|
||||
39
widgets/login_info/login_info.class.php
Normal 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);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
?>
|
||||
41
widgets/login_info/skins/default/css/default.css
Normal 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;}
|
||||
|
||||
14
widgets/login_info/skins/default/filter/login.xml
Normal 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>
|
||||
7
widgets/login_info/skins/default/filter/logout.xml
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
<filter name="widget_logout" module="member" act="procMemberLogout">
|
||||
<form />
|
||||
<response>
|
||||
<tag name="error" />
|
||||
<tag name="message" />
|
||||
</response>
|
||||
</filter>
|
||||
10
widgets/login_info/skins/default/filter/openid_login.xml
Normal 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>
|
||||
BIN
widgets/login_info/skins/default/images/blank.gif
Normal file
|
After Width: | Height: | Size: 43 B |
BIN
widgets/login_info/skins/default/images/default/bul_01.gif
Executable file
|
After Width: | Height: | Size: 53 B |
|
After Width: | Height: | Size: 188 B |
|
After Width: | Height: | Size: 169 B |
|
After Width: | Height: | Size: 170 B |
BIN
widgets/login_info/skins/default/images/default/hr_dot_01.gif
Executable file
|
After Width: | Height: | Size: 46 B |
BIN
widgets/login_info/skins/default/images/default/icon_friend.gif
Normal file
|
After Width: | Height: | Size: 77 B |
|
After Width: | Height: | Size: 556 B |
BIN
widgets/login_info/skins/default/images/default/icon_key.gif
Normal file
|
After Width: | Height: | Size: 81 B |
|
After Width: | Height: | Size: 967 B |
|
After Width: | Height: | Size: 559 B |
BIN
widgets/login_info/skins/default/images/default/icon_note.gif
Normal file
|
After Width: | Height: | Size: 82 B |
BIN
widgets/login_info/skins/default/images/default/icon_profile.gif
Normal file
|
After Width: | Height: | Size: 73 B |
BIN
widgets/login_info/skins/default/images/default/login_btn_submit.gif
Executable file
|
After Width: | Height: | Size: 915 B |
BIN
widgets/login_info/skins/default/images/openid_login_bg.gif
Normal file
|
After Width: | Height: | Size: 237 B |
36
widgets/login_info/skins/default/js/login.js
Normal 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;
|
||||
}
|
||||
|
||||
|
||||
|
||||
47
widgets/login_info/skins/default/login_form.html
Normal 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-->
|
||||
22
widgets/login_info/skins/default/login_info.html
Normal 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>
|
||||
25
widgets/login_info/skins/default/skin.xml
Normal 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>
|
||||
42
widgets/login_info/skins/xe_official/css/black.css
Normal 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; }
|
||||
42
widgets/login_info/skins/xe_official/css/default.css
Normal 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;}
|
||||
38
widgets/login_info/skins/xe_official/css/white.css
Normal 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;}
|
||||
14
widgets/login_info/skins/xe_official/filter/login.xml
Normal 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>
|
||||
7
widgets/login_info/skins/xe_official/filter/logout.xml
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
<filter name="widget_logout" module="member" act="procMemberLogout">
|
||||
<form />
|
||||
<response>
|
||||
<tag name="error" />
|
||||
<tag name="message" />
|
||||
</response>
|
||||
</filter>
|
||||
10
widgets/login_info/skins/xe_official/filter/openid_login.xml
Normal 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>
|
||||
|
After Width: | Height: | Size: 44 B |
|
After Width: | Height: | Size: 1.5 KiB |
|
After Width: | Height: | Size: 946 B |
BIN
widgets/login_info/skins/xe_official/images/black/vrType1.gif
Normal file
|
After Width: | Height: | Size: 44 B |
BIN
widgets/login_info/skins/xe_official/images/blank.gif
Normal file
|
After Width: | Height: | Size: 43 B |
|
After Width: | Height: | Size: 44 B |
|
After Width: | Height: | Size: 605 B |
|
After Width: | Height: | Size: 929 B |
BIN
widgets/login_info/skins/xe_official/images/default/vrType1.gif
Normal file
|
After Width: | Height: | Size: 44 B |
BIN
widgets/login_info/skins/xe_official/images/openid_login_bg.gif
Normal file
|
After Width: | Height: | Size: 237 B |
|
After Width: | Height: | Size: 44 B |
|
After Width: | Height: | Size: 605 B |
|
After Width: | Height: | Size: 929 B |
|
After Width: | Height: | Size: 132 B |
BIN
widgets/login_info/skins/xe_official/images/white/vrType1.gif
Normal file
|
After Width: | Height: | Size: 44 B |
47
widgets/login_info/skins/xe_official/js/login.js
Normal 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;
|
||||
}
|
||||
}
|
||||
63
widgets/login_info/skins/xe_official/login_form.html
Normal 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>
|
||||
36
widgets/login_info/skins/xe_official/login_info.html
Normal 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>
|
||||
|
||||
45
widgets/login_info/skins/xe_official/skin.xml
Normal 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>
|
||||