css 및 js 호출순서 조정기능 추가

git-svn-id: http://xe-core.googlecode.com/svn/sandbox@5785 201d5d3c-b55e-5fd7-737f-ddc643e51545
This commit is contained in:
ngleader 2009-03-06 05:33:56 +00:00
parent 4f380d9c48
commit 61851f1dfe
2149 changed files with 109090 additions and 18689 deletions

View file

@ -1,12 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<module version="0.2">
<title xml:lang="ko">회원</title>
<title xml:lang="zh-CN">会员</title>
<title xml:lang="jp">会員</title>
<title xml:lang="en">Member</title>
<title xml:lang="es">Usuario</title>
<title xml:lang="ru">Пользователи</title>
<title xml:lang="zh-TW">會員</title>
<title xml:lang="ko">회원 관리</title>
<title xml:lang="zh-CN">会员管理</title>
<title xml:lang="jp">会員 管理</title>
<title xml:lang="en">Member Management</title>
<title xml:lang="es">Usuario Gestión</title>
<title xml:lang="ru">Пользователи Управление</title>
<title xml:lang="zh-TW">會員 管理</title>
<description xml:lang="ko">회원 관리 및 회원 관련 설정등을 하는 모듈입니다.</description>
<description xml:lang="zh-CN">对会员进行管理及相关设置的模块。</description>
<description xml:lang="jp">会員管理及び会員関連設定などを行うモジュールです。</description>
@ -16,7 +16,7 @@
<description xml:lang="zh-TW">對會員進行管理與相關設置的模組。</description>
<version>0.1</version>
<date>2007-02-28</date>
<category>service</category>
<category>member</category>
<author email_address="zero@zeroboard.com" link="http://blog.nzeo.com">
<name xml:lang="ko">zero</name>

View file

@ -1,5 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<module>
<grants />
<permissions />
<actions>
<action name="dispMemberInfo" type="view" standalone="true" />
<action name="dispMemberSignUpForm" type="view" standalone="true" />
@ -33,6 +35,11 @@
<action name="procMemberLogin" type="controller" standalone="true" />
<action name="procMemberOpenIDLogin" type="controller" standalone="true" />
<action name="procMemberOpenIDValidate" type="controller" standalone="true" />
<action name="procModuleSiteSignUp" type="controller" standalone="true" />
<action name="procModuleSiteLeave" type="controller" standalone="true" />
<action name="procMemberAddOpenIDToMember" type="controller" standalone="true" />
<action name="procMemberValidateAddOpenIDToMember" type="controller" standalone="true" />
<action name="procMemberDeleteOpenIDFromMember" type="controller" standalone="true" />
<action name="procMemberLogout" type="controller" standalone="true" />
<action name="procMemberCheckValue" type="controller" standalone="true" />
<action name="procMemberInsert" type="controller" standalone="true" />
@ -54,6 +61,7 @@
<action name="procMemberFindAccount" type="controller" standalone="true" />
<action name="procMemberAuthAccount" type="controller" standalone="true" />
<action name="procMemberUpdateAuthMail" type="controller" standalone="true" />
<action name="procMemberAdminInsert" type="controller" standalone="true" />
<action name="procMemberAdminDelete" type="controller" standalone="true" />
@ -66,5 +74,6 @@
<action name="procMemberAdminUpdateJoinForm" type="controller" standalone="true" />
<action name="procMemberAdminInsertDeniedID" type="controller" standalone="true" />
<action name="procMemberAdminUpdateDeniedID" type="controller" standalone="true" />
<action name="procMemberAdminGroupImageMarkUpdateOrder" type="controller" standalone="true" />
</actions>
</module>

View file

@ -36,6 +36,10 @@
$lang->image_mark = 'Image Mark';
$lang->image_mark_max_width = 'Max Width';
$lang->image_mark_max_height = 'Max Height';
$lang->group_image_mark = 'Group Image Mark';
$lang->group_image_mark_max_width = 'Max Width';
$lang->group_image_mark_max_height = 'Max Height';
$lang->group_image_mark_order = '그룹 이미지 마크 순서';
$lang->signature_max_height = 'Max Signature Height';
$lang->enable_openid = 'Enable OpenID';
$lang->enable_join = 'Allow Member Join';
@ -59,6 +63,7 @@
'N' => 'Reject All',
);
$lang->about_allow_message = 'You may allow or reject messages.';
$lang->logged_users = 'Logged Users';
$lang->webmaster_name = "Webmaster's Name";
$lang->webmaster_email = "Webmaster's Email";
@ -84,6 +89,7 @@
$lang->cmd_login = 'Login';
$lang->cmd_logout = 'Logout';
$lang->cmd_signup = 'Join';
$lang->cmd_site_signup = 'Join';
$lang->cmd_modify_member_info = 'Modify Member Info';
$lang->cmd_modify_member_password = 'Modify Password';
$lang->cmd_view_member_info = 'Member Info';
@ -141,6 +147,7 @@
$lang->msg_not_uploaded_profile_image = 'Profile image could not be registered';
$lang->msg_not_uploaded_image_name = 'Image name could not be registered';
$lang->msg_not_uploaded_image_mark = 'Image mark could not be registered';
$lang->msg_not_uploaded_group_image_mark = '그룹 이미지 마크를 등록할 수가 없습니다';
$lang->msg_accept_agreement = 'You have to agree the agreement';
@ -183,6 +190,7 @@
$lang->about_image_name = "Allow users to use image name instead of text name";
$lang->about_image_mark = "Allow users to use mark in front of their names";
$lang->about_group_image_mark = '사용자의 이름앞에 그룹 마크를 달 수 있습니다';
$lang->about_profile_image = 'Allow users to use profile images';
$lang->about_accept_agreement = "I have read the agreement and agree";
@ -193,4 +201,5 @@
$lang->about_member = "This is a module for creating/modifying/deleting members and managing group or join form.\nYou can manage members by creating new groups, and get additional information by managing join form";
$lang->about_find_member_account = 'Your account info will be noticed by registered email address.<br />Please input email address which you have input on registration, and press "Find Account Info" button.<br />';
$lang->add_openid = 'Add OpenID';
?>

View file

@ -36,6 +36,10 @@
$lang->image_mark = 'Marca de la imagen';
$lang->image_mark_max_width = 'Ancho Máximo';
$lang->image_mark_max_height = 'Altura Máxima';
$lang->group_image_mark = 'Group Image Mark';
$lang->group_image_mark_max_width = 'Ancho Máximo';
$lang->group_image_mark_max_height = 'Altura Máxima';
$lang->group_image_mark_order = '그룹 이미지 마크 순서';
$lang->enable_openid = 'Activar OpenID';
$lang->enable_join = 'Permitir el registro del usuario';
$lang->enable_confirm = '메일 인증 사용';
@ -58,6 +62,7 @@
'N' => '모두 금지',
);
$lang->about_allow_message = '쪽지 허용 방법 및 대상을 지정할 수 있습니다';
$lang->logged_users = 'Logged Users';
$lang->webmaster_name = 'Nombre del Webmaster';
$lang->webmaster_email = 'Correo electrónico Webmaster';
@ -84,6 +89,7 @@
$lang->cmd_login = 'Conectar';
$lang->cmd_logout = 'Desconectar';
$lang->cmd_signup = 'Registrar';
$lang->cmd_site_signup = 'Join';
$lang->cmd_modify_member_info = 'Modificar nombre del usuario';
$lang->cmd_modify_member_password = 'Cambiar la contraseña';
$lang->cmd_view_member_info = 'Información del usuario';
@ -140,6 +146,7 @@
$lang->msg_not_uploaded_image_name = 'Imagen del nombre no puede ser registrado';
$lang->msg_not_uploaded_image_mark = 'Imagen de marca no puede ser resistrado';
$lang->msg_not_uploaded_group_image_mark = '그룹 이미지 마크를 등록할 수가 없습니다';
$lang->msg_accept_agreement = 'Usted primero debe aceptar el acuerdo';
@ -182,6 +189,7 @@
$lang->about_image_name = "Permitir a los usuarios el uso de imagen del nombre en ves del nombre del usuario";
$lang->about_image_mark = "Permitir a los usuarios el uso de imagen de marca delante de sus nombres";
$lang->about_group_image_mark = '사용자의 이름앞에 그룹 마크를 달 수 있습니다';
$lang->about_profile_image = 'Permitir a los usuarios a utilizar nombre de la imagen en lugar de texto nombre';
$lang->about_accept_agreement = "Yo he leído todo el acuerdo y acepto";

View file

@ -36,6 +36,10 @@
$lang->image_mark = 'Marque en Image';
$lang->image_mark_max_width = 'Largeur Maximum';
$lang->image_mark_max_height = 'Hauteur Maximum';
$lang->group_image_mark = 'Group Image Mark';
$lang->group_image_mark_max_width = 'Largeur Maximum';
$lang->group_image_mark_max_height = 'Hauteur Maximum';
$lang->group_image_mark_order = '그룹 이미지 마크 순서';
$lang->signature_max_height = 'Hauteur Maximum de la Signature';
$lang->enable_openid = 'Permettre OpenID';
$lang->enable_join = 'Permettre l\'inscription';
@ -59,6 +63,7 @@
'N' => '모두 금지',
);
$lang->about_allow_message = '쪽지 허용 방법 및 대상을 지정할 수 있습니다';
$lang->logged_users = 'Logged Users';
$lang->webmaster_name = "Nom de Webmestre";
$lang->webmaster_email = "Mél de Webmestre";
@ -84,6 +89,7 @@
$lang->cmd_login = 'Connexion';
$lang->cmd_logout = 'Déconnexion';
$lang->cmd_signup = 'Inscription';
$lang->cmd_site_signup = 'Join';
$lang->cmd_modify_member_info = 'Modifier Mon Information';
$lang->cmd_modify_member_password = 'Modifier le Mot de Passe';
$lang->cmd_view_member_info = 'Voir Mon Information';
@ -141,6 +147,7 @@
$lang->msg_not_uploaded_profile_image = 'L\'image de Profil n\'a pas pu être enrégistré';
$lang->msg_not_uploaded_image_name = 'Le nom d\'image n\'a pas pu être enrégistré';
$lang->msg_not_uploaded_image_mark = 'La marque en image n\'a pas pu être enrégistrée';
$lang->msg_not_uploaded_group_image_mark = '그룹 이미지 마크를 등록할 수가 없습니다';
$lang->msg_accept_agreement = 'Vous devez agréer l\'accord';
@ -183,6 +190,7 @@
$lang->about_image_name = "Permettre aux utilisateurs d'utiliser une image pour présenter leurs noms au lieu des lettres";
$lang->about_image_mark = "Permettre aux utilisateurs d'utiliser une marque devent leurs noms";
$lang->about_group_image_mark = '사용자의 이름앞에 그룹 마크를 달 수 있습니다';
$lang->about_profile_image = 'Permettre aux utilisateurs d\'utiliser une image de profil';
$lang->about_accept_agreement = "J'ai lu l'Accord et je suis d'accord.";

View file

@ -36,6 +36,10 @@
$lang->image_mark = 'イメージマーク';
$lang->image_mark_max_width = '横幅制限サイズ';
$lang->image_mark_max_height = '縦幅制限サイズ';
$lang->group_image_mark = 'Group Image Mark';
$lang->group_image_mark_max_width = '横幅制限サイズ';
$lang->group_image_mark_max_height = '縦幅制限サイズ';
$lang->group_image_mark_order = '그룹 이미지 마크 순서';
$lang->signature_max_height = '署名欄の高さの制限';
$lang->enable_openid = 'OpenID使用';
$lang->enable_join = '会員登録を許可する';
@ -59,6 +63,7 @@
'N' => '全て禁止',
);
$lang->about_allow_message = 'メッセージの許可タイプ及び対象を設定します。';
$lang->logged_users = 'Logged Users';
$lang->webmaster_name = 'ウェブマスターのお名前';
$lang->webmaster_email = 'ウェブマスターのメールアドレス';
@ -84,6 +89,7 @@
$lang->cmd_login = 'ログイン';
$lang->cmd_logout = 'ログアウト';
$lang->cmd_signup = '会員登録';
$lang->cmd_site_signup = 'Join';
$lang->cmd_modify_member_info = '会員情報修正';
$lang->cmd_modify_member_password = 'パスワード変更';
$lang->cmd_view_member_info = '会員情報表示';
@ -141,6 +147,7 @@
$lang->msg_not_uploaded_profile_image = 'プロフィールイメージを登録することができません。';
$lang->msg_not_uploaded_image_name = 'イメージ名を登録することができません。';
$lang->msg_not_uploaded_image_mark = 'イメージマークを登録することができません。';
$lang->msg_not_uploaded_group_image_mark = '그룹 이미지 마크를 등록할 수가 없습니다';
$lang->msg_accept_agreement = '規約に同意しなければなりません。';
@ -184,6 +191,7 @@
$lang->about_image_name = 'ユーザの名前を文字の代わりにイメージで表示させることができます。';
$lang->about_image_mark = '使用者の名前の前にマークを付けることができます。';
$lang->about_profile_image = 'ユーザのプロフィールイメージが使用できるようにします。';
$lang->about_group_image_mark = '사용자의 이름앞에 그룹 마크를 달 수 있습니다';
$lang->about_signature_max_height = '署名欄の高さのサイズを制限します。 (0 もしくは空の場合は制限なし。)';
$lang->about_accept_agreement = '登録規約をすべて読んだ上で同意します。';

View file

@ -36,6 +36,10 @@
$lang->image_mark = '이미지 마크';
$lang->image_mark_max_width = '가로 제한 크기';
$lang->image_mark_max_height = '세로 제한 크기';
$lang->group_image_mark = '그룹 이미지 마크';
$lang->group_image_mark_max_width = '가로 제한 크기';
$lang->group_image_mark_max_height = '세로 제한 크기';
$lang->group_image_mark_order = '그룹 이미지 마크 순서';
$lang->signature_max_height = '서명 높이 제한';
$lang->enable_openid = 'OpenID 지원';
$lang->enable_join = '회원 가입 허가';
@ -59,6 +63,7 @@
'N' => '모두 금지',
);
$lang->about_allow_message = '쪽지 허용 방법 및 대상을 지정할 수 있습니다';
$lang->logged_users = '현재 접속자';
$lang->webmaster_name = '웹마스터 이름';
$lang->webmaster_email = '웹마스터 메일주소';
@ -84,6 +89,7 @@
$lang->cmd_login = '로그인';
$lang->cmd_logout = '로그아웃';
$lang->cmd_signup = '회원 가입';
$lang->cmd_site_signup = '가입';
$lang->cmd_modify_member_info = '회원 정보 수정';
$lang->cmd_modify_member_password = '비밀번호 변경';
$lang->cmd_view_member_info = '회원 정보 보기';
@ -108,7 +114,7 @@
$lang->msg_alreay_scrapped = '이미 스크랩된 게시물입니다';
$lang->msg_cart_is_null = '대상을 선택해주세요';
$lang->msg_checked_file_is_deleted = '%d개의 첨부파일이 삭제되었습니다';
$lang->msg_checked_file_is_deleted = "%d개의 첨부파일이 삭제되었습니다";
$lang->msg_find_account_title = '아이디/ 비밀번호 정보입니다';
$lang->msg_find_account_info = '요청하신 계정 정보는 아래와 같습니다';
@ -116,8 +122,8 @@
$lang->msg_confirm_account_title = '가입 인증 메일 입니다';
$lang->msg_confirm_account_info = '가입하신 계정 정보는 아래와 같습니다';
$lang->msg_confirm_account_comment = '아래 링크를 클릭하시면 가입 인증이 이루어집니다.';
$lang->msg_auth_mail_sent = '%s 메일로 인증 정보를 담은 메일이 발송되었습니다. 메일을 확인하세요.';
$lang->msg_confirm_mail_sent = '%s 메일로 가입 인증 메일이 발송되었습니다. 메일을 확인하세요.';
$lang->msg_auth_mail_sent = "%s 메일로 인증 정보를 담은 메일이 발송되었습니다. 메일을 확인하세요.";
$lang->msg_confirm_mail_sent = "%s 메일로 가입 인증 메일이 발송되었습니다. 메일을 확인하세요.";
$lang->msg_invalid_auth_key = '잘못된 계정 인증 요청입니다.<br />아이디/비밀번호 찾기를 다시 하시거나 사이트 관리자에게 계정 정보를 문의해주세요';
$lang->msg_success_authed = '인증이 정상적으로 되어 로그인 처리가 되었습니다.\n꼭 인증 메일에 표시된 비밀번호를 이용하여 원하시는 비밀번호로 변경하세요.';
$lang->msg_success_confirmed = '가입 인증이 정상적으로 처리 되었습니다.';
@ -141,12 +147,13 @@
$lang->msg_not_uploaded_profile_image = '프로필 이미지를 등록할 수가 없습니다';
$lang->msg_not_uploaded_image_name = '이미지 이름을 등록할 수가 없습니다';
$lang->msg_not_uploaded_image_mark = '이미지 마크를 등록할 수가 없습니다';
$lang->msg_not_uploaded_group_image_mark = '그룹 이미지 마크를 등록할 수가 없습니다';
$lang->msg_accept_agreement = '약관에 동의하셔야 합니다';
$lang->msg_user_denied = '입력하신 아이디의 사용이 중지되셨습니다';
$lang->msg_user_not_confirmed = '아직 메일 인증이 이루어지지 않았습니다. 메일을 확인해 주세요';
$lang->msg_user_limited = '입력하신 아이디는 %s 이후부터 사용하실 수 있습니다';
$lang->msg_user_limited = "입력하신 아이디는 %s 이후부터 사용하실 수 있습니다";
$lang->about_user_id = '사용자 ID는 3~20자 사이의 영문+숫자로 이루어져야 하며 영문으로 시작되어야 합니다';
$lang->about_password = '비밀번호는 6~20자로 되어야 합니다';
@ -183,6 +190,7 @@
$lang->about_image_name = '사용자의 이름을 글자 대신 이미지로 사용할 수 있게 합니다';
$lang->about_image_mark = '사용자의 이름앞에 마크를 달 수 있습니다';
$lang->about_group_image_mark = '사용자의 이름앞에 그룹 마크를 달 수 있습니다';
$lang->about_profile_image = '사용자의 프로필 이미지를 사용할 수 있게 합니다';
$lang->about_signature_max_height = '서명란의 높이를 제한 할 수 있습니다. (0 또는 비워두면 제한하지 않습니다)';
$lang->about_accept_agreement = '약관을 모두 읽었으며 동의합니다';
@ -195,4 +203,5 @@
$lang->about_member = "회원을 생성/수정/삭제 할 수 있고 그룹관리나 가입폼 관리등을 할 수 있는 회원 관리 모듈입니다.\n기본으로 생성된 그룹외의 그룹을 생성하여 회원 관리가 가능하고 가입폼관리를 통한 기본 정보외의 추가 정보를 요구받을 수도 있습니다.";
$lang->about_ssl_port = '기본 포트 이외의 SSL 포트를 사용하는 경우 포트번호를 입력해주세요';
$lang->add_openid = '오픈아이디 추가';
?>

View file

@ -36,6 +36,10 @@
$lang->image_mark = 'Изображение-марка';
$lang->image_mark_max_width = 'Макс. ширина';
$lang->image_mark_max_height = 'Макс. высота';
$lang->group_image_mark = 'Group Image Mark';
$lang->group_image_mark_max_width = 'Макс. ширина';
$lang->group_image_mark_max_height = 'Макс. высота';
$lang->group_image_mark_order = '그룹 이미지 마크 순서';
$lang->enable_openid = 'Включить открытый ID (OpenID)';
$lang->enable_join = 'Позволить пользователям регистрироваться';
$lang->enable_confirm = '메일 인증 사용';
@ -58,6 +62,7 @@
'N' => '모두 금지',
);
$lang->about_allow_message = '쪽지 허용 방법 및 대상을 지정할 수 있습니다';
$lang->logged_users = 'Logged Users';
$lang->webmaster_name = "Имя веб-мастера";
$lang->webmaster_email = "Email веб-мастера";
@ -83,6 +88,7 @@
$lang->cmd_login = 'Войти';
$lang->cmd_logout = 'Выйти';
$lang->cmd_signup = 'Регистрация';
$lang->cmd_site_signup = 'Join';
$lang->cmd_modify_member_info = 'Изменить информацию пользователя';
$lang->cmd_modify_member_password = 'Изменить пароль';
$lang->cmd_view_member_info = 'Информация пользователя';
@ -140,6 +146,7 @@
$lang->msg_not_uploaded_image_name = 'Имя изображения не может быть зарегистрировано';
$lang->msg_not_uploaded_image_mark = 'Марка не может быть зарегистрирована';
$lang->msg_not_uploaded_group_image_mark = '그룹 이미지 마크를 등록할 수가 없습니다';
$lang->msg_accept_agreement = 'Вы должны принять Соглашение';
@ -182,6 +189,7 @@
$lang->about_image_name = "Позволить пользователям использовать изображение вместо текста";
$lang->about_image_mark = "Позволить пользователям использовать марку перед их именами";
$lang->about_group_image_mark = '사용자의 이름앞에 그룹 마크를 달 수 있습니다';
$lang->about_profile_image = 'Позволить пользователям использовать изображения профиля';
$lang->about_accept_agreement = "Я прочитал соглашение полностью и согласен";

View file

@ -2,11 +2,11 @@
/**
* @file zh-CN.lang.php
* @author zero (zero@nzeo.com)
* @brief 简体中文语言包 (只收录基本内容)
* @brief 会员模块简体中文语言包
**/
$lang->member = '会员';
$lang->member_default_info = '基本信息';
$lang->member_default_info = '基本资料';
$lang->member_extend_info = '扩展信息';
$lang->default_group_1 = "准会员";
$lang->default_group_2 = "正会员";
@ -27,7 +27,7 @@
$lang->group_title = '用户组标题';
$lang->group_srl = '用户组编号';
$lang->signature = '签名';
$lang->profile_image = '签名图片';
$lang->profile_image = '个性头像';
$lang->profile_image_max_width = '宽度限制';
$lang->profile_image_max_height = '高度限制';
$lang->image_name = '昵称图片';
@ -36,6 +36,10 @@
$lang->image_mark = '用户图标';
$lang->image_mark_max_width = '宽度限制';
$lang->image_mark_max_height = '高度限制';
$lang->group_image_mark = 'Group Image Mark';
$lang->group_image_mark_max_width = '宽度限制';
$lang->group_image_mark_max_height = '高度限制';
$lang->group_image_mark_order = '그룹 이미지 마크 순서';
$lang->signature_max_height = '签名高度限制';
$lang->enable_openid = '支持OpenID';
$lang->enable_join = '允许会员注册';
@ -59,6 +63,7 @@
'N' => '只允许好友',
);
$lang->about_allow_message = '可以指定接收短消息方法及对象。';
$lang->logged_users = '在线用户';
$lang->webmaster_name = '管理员名';
$lang->webmaster_email = '管理员电子邮件';
@ -78,30 +83,31 @@
'last_login' => '最后登录',
'last_login_more' => '最后登录(以上)',
'last_login_less' => '最后登录시(以下)',
'extra_vars' => '扩展变数',
'extra_vars' => '扩展信息',
);
$lang->cmd_login = '登录';
$lang->cmd_logout = '退出';
$lang->cmd_signup = '新会员注册';
$lang->cmd_modify_member_info = '修改会员信息';
$lang->cmd_site_signup = '注册';
$lang->cmd_modify_member_info = '编辑个人资料';
$lang->cmd_modify_member_password = '修改密码';
$lang->cmd_view_member_info = '查看会员信息';
$lang->cmd_view_member_info = '个人资料';
$lang->cmd_leave = '注销';
$lang->cmd_find_member_account = '查找用户名/密码';
$lang->cmd_member_list = '会员目录';
$lang->cmd_module_config = '基本设置';
$lang->cmd_member_group = '用户组管理';
$lang->cmd_module_config = '常规选项';
$lang->cmd_member_group = '用户组';
$lang->cmd_send_mail = '发送邮件';
$lang->cmd_manage_id = '禁止用户名管理';
$lang->cmd_manage_form = '注册表单管理';
$lang->cmd_view_own_document = '查看发表主题';
$lang->cmd_manage_id = '禁止用户名';
$lang->cmd_manage_form = '扩展注册表单';
$lang->cmd_view_own_document = '我的话题';
$lang->cmd_trace_document = '主题追踪';
$lang->cmd_trace_comment = '评论追踪';
$lang->cmd_view_scrapped_document = '查看收藏';
$lang->cmd_view_saved_document = '查看临时保存箱';
$lang->cmd_view_scrapped_document = '我的收藏';
$lang->cmd_view_saved_document = '临时保存箱';
$lang->cmd_send_email = '发送邮件';
$lang->msg_email_not_exists = "没有找到您输入的Email地址。";
@ -142,6 +148,7 @@
$lang->msg_not_uploaded_profile_image = '不能登录签名图像!';
$lang->msg_not_uploaded_image_name = '不能登录昵称图像!';
$lang->msg_not_uploaded_image_mark = '不能登录用户图标!';
$lang->msg_not_uploaded_group_image_mark = '그룹 이미지 마크를 등록할 수가 없습니다';
$lang->msg_accept_agreement = '您必须同意条款。';
@ -184,6 +191,7 @@
$lang->about_image_name = '用户昵称可以用小图片来替代显示。';
$lang->about_image_mark = '显示在用户昵称前的小图标。';
$lang->about_group_image_mark = '사용자의 이름앞에 그룹 마크를 달 수 있습니다';
$lang->about_profile_image = '可以使用签名图片。';
$lang->about_signature_max_height = '可以限制签名栏高度(0或留空为不限制)。';
$lang->about_accept_agreement = '已阅读全部条款并同意。';

View file

@ -2,7 +2,7 @@
/**
* @file zh-TW.lang.php
* @author zero (zero@nzeo.com) 翻譯royallin
* @brief 正體中文語言 (包含基本內容)
* @brief 會員(member)模組正體中文語言 (包含基本內容)
**/
$lang->member = '會員';
@ -23,9 +23,9 @@
$lang->allow_mailing = '接收郵件';
$lang->denied = '禁止使用';
$lang->is_admin = '最高管理權限';
$lang->group = '用戶組';
$lang->group_title = '用戶組標題';
$lang->group_srl = '用戶組編號';
$lang->group = '組';
$lang->group_title = '組標題';
$lang->group_srl = '組編號';
$lang->signature = '簽名檔';
$lang->profile_image = '個人圖片';
$lang->profile_image_max_width = '寬度限制';
@ -36,11 +36,15 @@
$lang->image_mark = '用戶圖示';
$lang->image_mark_max_width = '寬度限制';
$lang->image_mark_max_height = '高度限制';
$lang->group_image_mark = 'Group Image Mark';
$lang->group_image_mark_max_width = '寬度限制';
$lang->group_image_mark_max_height = '高度限制';
$lang->group_image_mark_order = '그룹 이미지 마크 순서';
$lang->signature_max_height = '簽名檔高度限制';
$lang->enable_openid = '支援 OpenID';
$lang->enable_openid = '支援OpenID';
$lang->enable_join = '允許會員註冊';
$lang->enable_confirm = '使用郵件認證';
$lang->enable_ssl = '使用 SSL 功能';
$lang->enable_ssl = '使用SSL功能';
$lang->security_sign_in = '使用安全登入';
$lang->limit_day = '認證限制';
$lang->limit_date = '限制日期';
@ -59,6 +63,7 @@
'N' => '全部禁止',
);
$lang->about_allow_message = '可選擇是否接收短訊息。';
$lang->logged_users = '線上會員';
$lang->webmaster_name = '管理員名稱';
$lang->webmaster_email = '管理員電子郵件';
@ -73,17 +78,18 @@
'nick_name' => '暱稱',
'email_address' => '電子郵件',
'regdate' => '註冊日期',
'regdate_more' => '註冊日期(更多)',
'regdate_less' => '註冊日期(較少)',
'regdate_more' => '註冊日期(以上)',
'regdate_less' => '註冊日期(以下)',
'last_login' => '最近登入',
'last_login_more' => '最近登入(更多)',
'last_login_less' => '最近登入(較少)',
'last_login_more' => '最近登入(以上)',
'last_login_less' => '最近登入(以下)',
'extra_vars' => '延伸變數',
);
$lang->cmd_login = '登入';
$lang->cmd_logout = '登出';
$lang->cmd_signup = '會員註冊';
$lang->cmd_site_signup = 'Join';
$lang->cmd_modify_member_info = '修改會員資料';
$lang->cmd_modify_member_password = '修改密碼';
$lang->cmd_view_member_info = '檢視會員資料';
@ -103,7 +109,7 @@
$lang->cmd_view_saved_document = '檢視臨時儲存箱';
$lang->cmd_send_email = '發送郵件';
$lang->msg_email_not_exists = "找不到您輸入的郵件地址。";
$lang->msg_email_not_exists = '找不到您輸入的郵件地址。';
$lang->msg_alreay_scrapped = '已收藏的主題!';
@ -124,8 +130,8 @@
$lang->msg_new_member = '會員註冊';
$lang->msg_update_member = '修改會員資料';
$lang->msg_leave_member = '退出會員';
$lang->msg_group_is_null = '無用戶組。';
$lang->msg_leave_member = '會員退出';
$lang->msg_group_is_null = '無組。';
$lang->msg_not_delete_default = '無法刪除基本項目';
$lang->msg_not_exists_member = '不存在的帳號';
$lang->msg_cannot_delete_admin = '無法解除管理員帳號,請解除管理後再刪除';
@ -141,6 +147,7 @@
$lang->msg_not_uploaded_profile_image = '無法登錄個人圖片!';
$lang->msg_not_uploaded_image_name = '無法登錄暱稱圖片!';
$lang->msg_not_uploaded_image_mark = '無法登錄用戶圖示!';
$lang->msg_not_uploaded_group_image_mark = '그룹 이미지 마크를 등록할 수가 없습니다';
$lang->msg_accept_agreement = '您必須同意條款。';
@ -160,7 +167,7 @@
$lang->about_denied = '選擇時不能使用此帳號。';
$lang->about_is_admin = '選擇時將具有最高管理權限。';
$lang->about_member_description = '管理員對會員的註記。';
$lang->about_group = '一個用戶名稱可擁有多個用戶組。';
$lang->about_group = '一個帳號可擁有多個群組。';
$lang->about_column_type = '請選擇要新增的註冊表單格式。';
$lang->about_column_name = '請輸入在樣板中可以使用的英文名稱。(變數名稱)';
@ -170,10 +177,10 @@
$lang->about_form_description = '說明欄裡輸入的內容,在註冊時會顯示。';
$lang->about_required = '註冊時成為必填項目。';
$lang->about_enable_openid = '想要網站支援 OpenID 時,請勾選此項。';
$lang->about_enable_openid = '想要網站支援OpenID時請勾選此項。';
$lang->about_enable_join = '選擇此項後,用戶才可以註冊。';
$lang->about_enable_confirm = '為確認會員註冊資料,會向會員輸入的郵件地址發送註冊認證郵件。';
$lang->about_enable_ssl = '如主機提供 SSL 認證服務,新會員註冊/修改會員資料/登入等資料的傳送將使用 SSL(https) 認證。';
$lang->about_enable_ssl = '如主機提供SSL認證服務新會員註冊/修改會員資料/登入等資料的傳送將使用SSL(https)認證。';
$lang->about_limit_day = '註冊會員後的認證有效期限。';
$lang->about_limit_date = '直到指定日期,否則該帳號都無法登入。';
$lang->about_after_login_url = '可以指定登入後的頁面轉向網址(留空為目前頁面)。';
@ -183,16 +190,18 @@
$lang->about_image_name = '用戶暱稱可以用圖片替代。';
$lang->about_image_mark = '顯示在用戶暱稱前的圖示。';
$lang->about_group_image_mark = '사용자의 이름앞에 그룹 마크를 달 수 있습니다';
$lang->about_profile_image = '可以使用個人圖片。';
$lang->about_signature_max_height = '可以限制簽名檔高度(0或留空為不限制)。';
$lang->about_accept_agreement = '已閱讀全部條款並同意。';
$lang->about_member_default = '將成為註冊會員時的預設用戶組。';
$lang->about_openid = '用 OpenID 註冊時,該網站只儲存帳號和郵件等基本資料,密碼和認證處理是在提供 OpenID 服務的網站中得到解決。';
$lang->about_openid_leave = '刪除 OpenID 就等於永久刪除站內會員的資料。<br />被刪除後,再重新登錄就等於新會員註冊,因此對以前自己寫的主題將失去其權限。';
$lang->about_openid = '用OpenID註冊時該網站只儲存帳號和郵件等基本資料密碼和認證處理是在提供OpenID服務的網站中得到解決。';
$lang->about_openid_leave = '刪除OpenID就等於永久刪除站內會員的資料。<br />被刪除後,再重新登錄就等於新會員註冊,因此對以前自己寫的主題將失去其權限。';
$lang->about_find_member_account = '帳號/密碼將發送到您註冊時,所輸入的電子郵件當中。<br />輸入註冊時的電子郵件地址後,請按「查詢帳號/密碼」按鈕。<br />';
$lang->about_member = "可以新增/修改/刪除會員及管理用戶組或註冊表單的會員管理模組。\n此模組不僅可以建立預設用戶組以外的其他用戶組來管理會員,並且通過註冊表單的管理獲得除會員基本資料以外的延伸資料。";
$lang->about_ssl_port = '請輸入想要使用預設 SSL 埠口以外的埠口。';
$lang->about_ssl_port = '請輸入想要使用預設SSL埠口以外的埠口。';
$lang->add_openid = 'Add OpenID';
?>

View file

@ -83,7 +83,19 @@
**/
function procMemberAdminInsertConfig() {
// 기본 정보를 받음
$args = Context::gets('webmaster_name','webmaster_email','skin','colorset','enable_openid','enable_join','enable_confirm','limit_day','after_login_url','after_logout_url','redirect_url','agreement','profile_image','profile_image_max_width','profile_image_max_height','image_name','image_mark', 'image_name_max_width', 'image_name_max_height','image_mark_max_width','image_mark_max_height','signature_max_height','editor_skin','editor_colorset');
$args = Context::gets(
'webmaster_name', 'webmaster_email',
'skin', 'colorset',
'editor_skin', 'editor_colorset',
'enable_openid', 'enable_join', 'enable_confirm', 'limit_day',
'after_login_url', 'after_logout_url', 'redirect_url', 'agreement',
'profile_image', 'profile_image_max_width', 'profile_image_max_height',
'image_name', 'image_name_max_width', 'image_name_max_height',
'image_mark', 'image_mark_max_width', 'image_mark_max_height',
'group_image_mark', 'group_image_mark_max_width', 'group_image_mark_max_height',
'signature_max_height'
);
if(!$args->skin) $args->skin = "default";
if(!$args->colorset) $args->colorset = "white";
if(!$args->editor_skin) $args->editor_skin= "default";
@ -93,6 +105,7 @@
if($args->profile_image !='Y') $args->profile_image = 'N';
if($args->image_name!='Y') $args->image_name = 'N';
if($args->image_mark!='Y') $args->image_mark = 'N';
if($args->group_image_mark!='Y') $args->group_image_mark = 'N';
if(!trim(strip_tags($args->agreement))) $args->agreement = null;
$args->limit_day = (int)$args->limit_day;
@ -106,7 +119,7 @@
* @brief 사용자 그룹 추가
**/
function procMemberAdminInsertGroup() {
$args = Context::gets('title','description','is_default');
$args = Context::gets('title','description','is_default','image_mark');
$output = $this->insertGroup($args);
if(!$output->toBool()) return $output;
@ -129,7 +142,7 @@
$msg_code = 'success_deleted';
break;
case 'update' :
$args = Context::gets('group_srl','title','description','is_default');
$args = Context::gets('group_srl','title','description','is_default','image_mark');
$args->site_srl = 0;
$output = $this->updateGroup($args);
if(!$output->toBool()) return $output;
@ -387,6 +400,17 @@
return executeQuery('member.deleteGroup', $args);
}
function procMemberAdminGroupImageMarkUpdateOrder() {
$oModuleModel = &getModel('module');
$oModuleControll = getController('module');
$config = $oModuleModel->getModuleConfig('member');
$config->group_image_mark_order = Context::get('group_image_mark_order');
$oModuleControll->insertModuleConfig('member', $config);
}
/**
* @brief 금지아이디 등록
**/

View file

@ -100,8 +100,6 @@
$args->page_count = 10;
$query_id = 'member.getSiteMemberList';
$output = executeQueryArray($query_id, $args);
if(!$output->data) return array();
return $output;
}

View file

@ -161,6 +161,12 @@
* @brief 그룹 목록 출력
**/
function dispMemberAdminGroupList() {
$oModuleModel = &getModel('module');
$config = $oModuleModel->getModuleConfig('member');
if($config->group_image_mark_order) $config->group_image_mark_order = explode(',', $config->group_image_mark_order);
Context::set('config', $config);
$group_srl = Context::get('group_srl');
if($group_srl && $this->group_list[$group_srl]) {
@ -237,7 +243,7 @@
}
/**
* @brief 회원 일괄 삭제
* @brief 회원 일괄 삭제
**/
function dispMemberAdminDeleteMembers() {
// 선택된 회원 목록을 구함

View file

@ -1,10 +1,9 @@
<?php
/**
* @class member
* @class member
* @author zero (zero@nzeo.com)
* @brief member module의 high class
**/
class member extends ModuleObject {
/**
@ -37,35 +36,6 @@
function moduleInstall() {
// action forward에 등록 (관리자 모드에서 사용하기 위함)
$oModuleController = &getController('module');
$oModuleController->insertActionForward('member', 'view', 'dispMemberInfo');
$oModuleController->insertActionForward('member', 'view', 'dispMemberSignUpForm');
$oModuleController->insertActionForward('member', 'view', 'dispMemberModifyInfo');
$oModuleController->insertActionForward('member', 'view', 'dispMemberModifyPassword');
$oModuleController->insertActionForward('member', 'view', 'dispMemberLeave');
$oModuleController->insertActionForward('member', 'view', 'dispMemberOpenIDLeave');
$oModuleController->insertActionForward('member', 'view', 'dispMemberLoginForm');
$oModuleController->insertActionForward('member', 'view', 'dispMemberLogout');
$oModuleController->insertActionForward('member', 'view', 'dispMemberOwnDocument');
$oModuleController->insertActionForward('member', 'view', 'dispMemberScrappedDocument');
$oModuleController->insertActionForward('member', 'view', 'dispMemberSavedDocument');
$oModuleController->insertActionForward('member', 'view', 'dispMemberFindAccount');
$oModuleController->insertActionForward('member', 'view', 'dispMemberAdminList');
$oModuleController->insertActionForward('member', 'view', 'dispMemberAdminConfig');
$oModuleController->insertActionForward('member', 'view', 'dispMemberAdminInsert');
$oModuleController->insertActionForward('member', 'view', 'dispMemberAdminDeleteForm');
$oModuleController->insertActionForward('member', 'view', 'dispMemberAdminGroupList');
$oModuleController->insertActionForward('member', 'view', 'dispMemberAdminJoinFormList');
$oModuleController->insertActionForward('member', 'view', 'dispMemberAdminInfo');
$oModuleController->insertActionForward('member', 'view', 'dispMemberAdminInsertJoinForm');
$oModuleController->insertActionForward('member', 'view', 'dispMemberAdminDeniedIDList');
$oModuleController->insertActionForward('member', 'controller', 'procMemberInsertProfileImage');
$oModuleController->insertActionForward('member', 'controller', 'procMemberInsertImageName');
$oModuleController->insertActionForward('member', 'controller', 'procMemberInsertImageMark');
$oModuleController->insertActionForward('member', 'controller', 'procMemberDeleteProfileImage');
$oModuleController->insertActionForward('member', 'controller', 'procMemberDeleteImageName');
$oModuleController->insertActionForward('member', 'controller', 'procMemberDeleteImageMark');
$oDB = &DB::getInstance();
$oDB->addIndex("member_group","idx_site_title", array("site_srl","title"),true);
@ -157,38 +127,12 @@
$oDB = &DB::getInstance();
$oModuleModel = &getModel('module');
// dispMemberOwnDocument act의 여부 체크 (2007. 7. 24 추가)
$act = $oModuleModel->getActionForward('dispMemberOwnDocument');
if(!$act) return true;
// dispMemberScrappedDocument act의 여부 체크 (2007. 7. 25 추가)
$act = $oModuleModel->getActionForward('dispMemberScrappedDocument');
if(!$act) return true;
// dispMemberOpenIDLeave act의 여부 체크 (2007. 9. 19 추가)
$act = $oModuleModel->getActionForward('dispMemberOpenIDLeave');
if(!$act) return true;
// member 디렉토리 체크 (2007. 8. 11 추가)
if(!is_dir("./files/member_extra_info")) return true;
// dispMemberFindAccount act의 여부 체크 (2007. 10. 15)
$act = $oModuleModel->getActionForward('dispMemberFindAccount');
if(!$act) return true;
// member 디렉토리 체크 (2007. 10. 22 추가)
if(!is_dir("./files/member_extra_info/profile_image")) return true;
// procMemberInsertProfileImage, procMemberDeleteProfileImage act의 여부 체크 (2007. 10. 22)
$act = $oModuleModel->getActionForward('procMemberInsertProfileImage');
if(!$act) return true;
$act = $oModuleModel->getActionForward('procMemberDeleteProfileImage');
if(!$act) return true;
// dispMemberSavedDocument act의 여부 체크 (2007. 10. 29)
$act = $oModuleModel->getActionForward('dispMemberSavedDocument');
if(!$act) return true;
// member_auth_mail 테이블에 is_register 필드 추가 (2008. 04. 22)
$act = $oDB->isColumnExists("member_auth_mail", "is_register");
if(!$act) return true;
@ -198,6 +142,9 @@
if(!$oDB->isColumnExists("member_group", "site_srl")) return true;
if($oDB->isIndexExists("member_group","uni_member_group_title")) return true;
// image_mark 추가 (2009. 02. 14)
if(!$oDB->isColumnExists("member_group", "image_mark")) return true;
return false;
}
@ -208,15 +155,6 @@
$oDB = &DB::getInstance();
$oModuleController = &getController('module');
// act 추가
$oModuleController->insertActionForward('member', 'view', 'dispMemberOwnDocument');
$oModuleController->insertActionForward('member', 'view', 'dispMemberScrappedDocument');
$oModuleController->insertActionForward('member', 'view', 'dispMemberSavedDocument');
$oModuleController->insertActionForward('member', 'view', 'dispMemberOpenIDLeave');
$oModuleController->insertActionForward('member', 'view', 'dispMemberFindAccount');
$oModuleController->insertActionForward('member', 'controller', 'procMemberInsertProfileImage');
$oModuleController->insertActionForward('member', 'controller', 'procMemberDeleteProfileImage');
// member 디렉토리 체크
FileHandler::makeDir('./files/member_extra_info/image_name');
FileHandler::makeDir('./files/member_extra_info/image_mark');
@ -241,6 +179,11 @@
$oDB->dropIndex("member_group","uni_member_group_title",true);
}
// image_mark 추가 (2009. 02. 14)
if(!$oDB->isColumnExists("member_group", "image_mark")) {
$oDB->addColumn("member_group", "image_mark", "text");
}
return new Object(0, 'success_updated');
}
@ -250,4 +193,4 @@
function recompileCache() {
}
}
?>
?>

View file

@ -42,7 +42,7 @@
/**
* @brief openid로그인
**/
function procMemberOpenIDLogin() {
function procMemberOpenIDLogin($validator = "procMemberOpenIDValidate") {
$oModuleModel = &getModel('module');
$config = $oModuleModel->getModuleConfig('member');
if($config->enable_openid != 'Y') $this->stop('msg_invalid_request');
@ -76,7 +76,7 @@
header("location:" . $referer_url);
} else {
$goto = urlencode($referer_url);
$ApprovedURL = Context::getRequestUri(RELEASE_SSL) . "?module=member&act=procMemberOpenIDValidate&goto=" . $goto;
$ApprovedURL = Context::getRequestUri(RELEASE_SSL) . "?module=member&act=" . $validator. "&goto=" . $goto;
$openid->SetApprovedURL($ApprovedURL);
$url = $openid->GetRedirectURL();
$this->add('redirect_url', $url);
@ -87,18 +87,7 @@
}
function getLegacyUserIDsFromOpenID($openid_identity) {
// Issue 17515512:
// OpenID Provider가 openid.identity를
// http://araste.myid.net/ 으로 넘겨주든
// http://araste.myid.net 으로 넘겨주든,
// 동일한 제로보드 사용자 이름에 매핑되어야 한다.
// 가입되지 않은 경우엔 / 를 뗀 것이 우선이 된다.
// OpenID Provider의 정책의 일시적 변경 때문에
// / 가 붙은 꼴의 유저아이디로 (예: jangxyz.myid.net/ )
// 가입된 사례가 있다. 이 때는
// jangxyz.myid.net 과 jangxyz.myid.net/ 둘 모두로 시도해보아야 한다.
// 이를 위한 workaround이다.
// Issue 17515512: workaround
$result = array();
$uri_matches = array();
preg_match(Auth_OpenID_getURIPattern(), $openid_identity, $uri_matches);
@ -138,39 +127,61 @@
return $result;
}
/**
* @brief openid 인증 체크
**/
function procMemberOpenIDValidate() {
// use the JanRain php-openid library
ini_set('include_path', ini_get('include_path').':./modules/member/php-openid-1.2.3');
require_once('Auth/OpenID/URINorm.php');
function doOpenIDValidate($openid) {
// use the JanRain php-openid library
require_once($this->module_path.'php-openid-1.2.3/Auth/OpenID/URINorm.php');
$oModuleModel = &getModel('module');
$config = $oModuleModel->getModuleConfig('member');
if($config->enable_openid != 'Y') $this->stop('msg_invalid_request');
$openid_identity = Auth_OpenID_urinorm($_GET['openid_identity']);
ob_start();
require('./modules/member/openid_lib/class.openid.php');
require_once('./modules/member/openid_lib/libcurlemu.inc.php');
require($this->module_path.'openid_lib/class.openid.php');
require_once($this->module_path.'openid_lib/libcurlemu.inc.php');
$openid = new SimpleOpenID;
$openid->SetIdentity($openid_identity);
$openid_validation_result = $openid->ValidateWithServer();
$openid_ctx = new SimpleOpenID;
$openid_ctx->SetIdentity(Auth_OpenID_urinorm($openid));
$openid_ctx->validation_result = $openid_ctx->ValidateWithServer();
ob_clean();
return $openid_ctx;
}
/**
* @brief openid 인증 체크
**/
function procMemberOpenIDValidate() {
$openid = $this->doOpenIDValidate($_GET['openid_identity']);
$openid_identity = $openid->GetIdentity();
$openid_validation_result = $openid->validation_result;
// 인증 성공
if ($openid_validation_result == true) {
$oMemberModel = &getModel('member');
// 이 오픈아이디와 연결된 (또는 연결되어 있을 가능성이 있는) 제로보드 아이디들을 받아온다.
$login_success = false;
$user_id_candidates = $this->getLegacyUserIDsFromOpenID($openid_identity);
$assoc_member_info = null;
$args->openid = $openid_identity;
$output = executeQuery('member.getMemberSrlByOpenID', $args);
if ($output->toBool() && !is_array($output->data)) {
$member_srl = $output->data->member_srl;
$member_info = $oMemberModel->getMemberInfoByMemberSrl($member_srl);
if ($member_info) {
$assoc_member_info = $member_info;
}
}
$user_id_candidates = $this->getLegacyUserIDsFromOpenID($openid_identity);
$default_user_id = $user_id_candidates[0];
if ($assoc_member_info != null) {
$user_id_candidates = array_merge(array($assoc_member_info->user_id), $user_id_candidates);
}
foreach($user_id_candidates as $user_id) {
$args->user_id = $args->nick_name = $user_id;
// 기본 정보들을 받음
@ -184,6 +195,12 @@
if ($output->toBool()) {
if ($assoc_member_info == null) {
$logged_info = Context::get('logged_info');
$args->member_srl = $logged_info->member_srl;
$args->openid = $openid_identity;
executeQuery('member.addOpenIDToMember', $args);
}
$login_success = true;
break;
}
@ -193,25 +210,30 @@
if(!$login_success) {
$args->user_id = $args->nick_name = $default_user_id;
$args->password = md5(getmicrotime());
$output = $this->insertMember($args);
if(!$output->toBool()) return $this->stop($output->getMessage());
$output = $this->doLogin($args->user_id);
if(!$output->toBool()) return $this->stop($output->getMessage());
$logged_info = Context::get('logged_info');
$args->member_srl = $logged_info->member_srl;
$args->openid = $openid_identity;
executeQuery('member.addOpenIDToMember', $args);
}
Context::close();
// 페이지 이동
if(Context::get('goto')){
if(Context::get('goto')) {
$goto = Context::get('goto');
header("location:" . $goto);
}else{
} else {
header("location:./");
}
exit();
// 인증 실패
} else if($openid->IsError() == true) {
$error = $openid->GetError();
@ -221,6 +243,82 @@
}
}
/**
* @brief 오픈아이디 연결 요청
**/
function procMemberAddOpenIDToMember() {
return $this->procMemberOpenIDLogin("procMemberValidateAddOpenIDToMember");
}
/**
* @brief 오픈아이디 연결 요청 마무리
**/
function procMemberValidateAddOpenIDToMember() {
$openid = $this->doOpenIDValidate($_GET['openid_identity']);
$openid_identity = $openid->GetIdentity();
$openid_validation_result = $openid->validation_result;
if ($openid_validation_result == true) {
$logged_info = Context::get('logged_info');
if (!Context::get('is_logged')) return $this->stop('msg_not_logged');
$member_srl = $logged_info->member_srl;
$args->member_srl = $member_srl;
$args->openid = $openid_identity;
$output = executeQuery('member.addOpenIDToMember', $args);
if (!$output->toBool()) return $output;
Context::close();
if(Context::get('goto')){
$goto = Context::get('goto');
header("location:" . $goto);
}else{
header("location:./");
}
exit();
} else if($openid->IsError() == true) {
$error = $openid->GetError();
return $this->stop($error['description']);
} else {
return $this->stop('invalid_authorization');
}
}
/**
* @brief 오픈아이디 연결 해제
**/
function procMemberDeleteOpenIDFromMember() {
$logged_info = Context::get('logged_info');
$openid_identity = Context::get('openid_to_delete');
$arg->openid = $openid_identity;
$result = executeQuery('member.getMemberSrlByOpenID', $arg);
if (!Context::get('is_logged')) {
$this->setError(-1);
$this->setMessage('msg_not_logged');
return;
} else if (!$result->data || is_array($result->data)) {
$this->setError(-1);
$this->setMessage('msg_not_founded');
return;
} else if ($result->data->member_srl != $logged_info->member_srl) {
$this->setError(-1);
$this->setMessage('msg_not_permitted');
return;
}
$arg->openid = $openid_identity;
$output = executeQuery('member.deleteMemberOpenID', $arg);
if(!$output->toBool()) return $output;
$this->setMessage('success_updated');
}
/**
* @brief 로그아웃
**/
@ -818,6 +916,7 @@
if(!$email_address) return new Object(-1, 'msg_invalid_request');
$oMemberModel = &getModel('member');
$oModuleModel = &getModel('module');
// 메일 주소에 해당하는 회원이 있는지 검사
$member_srl = $oMemberModel->getMemberSrlByEmailAddress($email_address);
@ -846,8 +945,18 @@
// 메일 내용을 구함
Context::set('auth_args', $args);
Context::set('member_info', $member_info);
$member_config = $oModuleModel->getModuleConfig('member');
if(!$member_config->skin) $this->member_config->skin = "default";
if(!$member_config->colorset) $this->member_config->colorset = "white";
Context::set('member_config', $member_config);
$tpl_path = sprintf('%sskins/%s', $this->module_path, $member_config->skin);
if(!is_dir($tpl_path)) $tpl_path = sprintf('%sskins/%s', $this->module_path, 'default');
$oTemplate = &TemplateHandler::getInstance();
$content = $oTemplate->compile($this->module_path.'tpl', 'find_member_account_mail');
$content = $oTemplate->compile($tpl_path, 'find_member_account_mail');
// 사이트 웹마스터 정보를 구함
$oModuleModel = &getModel('module');
@ -919,6 +1028,101 @@
$this->setTemplatePath($this->module_path.'tpl');
$this->setTemplateFile('msg_success_authed');
}
/**
* @brief 아이디/비밀번호 찾기 기능 실행
* 메일에 등록된 링크를 선택시 호출되는 method로 비밀번호를 바꾸고 인증을 시켜버림
**/
function procMemberUpdateAuthMail() {
$member_srl = Context::get('member_srl');
if(!$member_srl) return new Object(-1, 'msg_invalid_request');
$oMemberModel = &getModel('member');
// 회원의 정보를 가져옴
$member_info = $oMemberModel->getMemberInfoByMemberSrl($member_srl);
// 인증메일 재발송 요청이 가능한 상태의 회원인지 검사
if ($member_info->denied != 'Y')
return new Object(-1, 'msg_invalid_request');
$chk_args->member_srl = $member_srl;
$output = executeQuery('member.chkAuthMail', $chk_args);
if ($output->toBool() && $output->data->count == '0') return new Object(-1, 'msg_invalid_request');
// 인증 DB에 데이터를 넣음
$auth_args->member_srl = $member_srl;
$auth_args->auth_key = md5(rand(0, 999999));
$output = executeQuery('member.updateAuthMail', $auth_args);
if (!$output->toBool()) {
$oDB->rollback();
return $output;
}
// 메일 내용을 구함
Context::set('auth_args', $auth_args);
Context::set('member_info', $member_info);
$oModuleModel = &getModel('module');
$member_config = $oModuleModel->getModuleConfig('member');
if(!$member_config->skin) $this->member_config->skin = "default";
if(!$member_config->colorset) $this->member_config->colorset = "white";
Context::set('member_config', $member_config);
$tpl_path = sprintf('%sskins/%s', $this->module_path, $member_config->skin);
if(!is_dir($tpl_path)) $tpl_path = sprintf('%sskins/%s', $this->module_path, 'default');
$oTemplate = &TemplateHandler::getInstance();
$content = $oTemplate->compile($tpl_path, 'confirm_member_account_mail');
// 사이트 웹마스터 정보를 구함
$oModuleModel = &getModel('module');
$member_config = $oModuleModel->getModuleConfig('member');
// 메일 발송
$oMail = new Mail();
$oMail->setTitle( Context::getLang('msg_confirm_account_title') );
$oMail->setContent($content);
$oMail->setSender( $member_config->webmaster_name?$member_config->webmaster_name:'webmaster', $member_config->webmaster_email);
$oMail->setReceiptor( $member_info->user_name, $member_info->email_address );
$oMail->send();
// 메세지 return
$msg = sprintf(Context::getLang('msg_auth_mail_sent'), $member_info->email_address);
return new Object(-1, $msg);
}
/**
* @brief 가상 사이트 가입
**/
function procModuleSiteSignUp() {
$site_module_info = Context::get('site_module_info');
$logged_info = Context::get('logged_info');
if(!$site_module_info->site_srl || !Context::get('is_logged') || count($logged_info->group_srl_list) ) return new Object(-1,'msg_invalid_request');
$oMemberModel = &getModel('member');
$default_group = $oMemberModel->getDefaultGroup($site_module_info->site_srl);
$this->addMemberToGroup($logged_info->member_srl, $default_group->group_srl, $site_module_info->site_srl);
$groups[$default_group->group_srl] = $default_group->title;
$logged_info->group_list = $groups;
}
/**
* @brief 가상 사이트 탈퇴
**/
function procModuleSiteLeave() {
$site_module_info = Context::get('site_module_info');
$logged_info = Context::get('logged_info');
if(!$site_module_info->site_srl || !Context::get('is_logged') || count($logged_info->group_srl_list) ) return new Object(-1,'msg_invalid_request');
$args->site_srl= $site_module_info->site_srl;
$args->member_srl = $logged_info->member_srl;
$output = executeQuery('member.deleteMembersGroup', $args);
if(!$output->toBool()) return $output;
$this->setMessage('success_deleted');
}
/**
* @brief 서명을 파일로 저장
@ -959,10 +1163,15 @@
/**
* @brief 특정 회원들의 그룹을 일괄 변경
* 가상 사이트와 같이 회원이 하나의 그룹만 가질 경우 사용할 있음
**/
function replaceMemberGroup($args) {
$obj->site_srl = $args->site_srl;
$obj->member_srl = implode(',',$args->member_srl);
$output = executeQueryArray('member.getMembersGroup', $obj);
if($output->data) foreach($output->data as $key => $val) $date[$val->member_srl] = $val->regdate;
$output = executeQuery('member.deleteMembersGroup', $obj);
if(!$output->toBool()) return $output;
@ -975,6 +1184,7 @@
$obj->member_srl = $val;
$obj->group_srl = $args->group_srl;
$obj->site_srl = $args->site_srl;
$obj->regdate = $date[$obj->member_srl];
$output = executeQuery('member.addMemberToGroup', $obj);
if(!$output->toBool()) return $output;
}
@ -1108,7 +1318,7 @@
$_SESSION['is_admin'] = '';
// 비밀번호는 세션에 저장되지 않도록 지워줌;;
unset($member_info->password);
//unset($member_info->password);
// 사용자 그룹 설정
/*
@ -1273,8 +1483,18 @@
// 메일 내용을 구함
Context::set('auth_args', $auth_args);
Context::set('member_info', $args);
$oTemplate = &TemplateHandler::getInstance();
$content = $oTemplate->compile($this->module_path.'tpl', 'confirm_member_account_mail');
$member_config = $oModuleModel->getModuleConfig('member');
if(!$member_config->skin) $this->member_config->skin = "default";
if(!$member_config->colorset) $this->member_config->colorset = "white";
Context::set('member_config', $member_config);
$tpl_path = sprintf('%sskins/%s', $this->module_path, $member_config->skin);
if(!is_dir($tpl_path)) $tpl_path = sprintf('%sskins/%s', $this->module_path, 'default');
$oTemplate = &TemplateHandler::getInstance();
$content = $oTemplate->compile($tpl_path, 'confirm_member_account_mail');
// 사이트 웹마스터 정보를 구함
$oModuleModel = &getModel('module');
@ -1445,6 +1665,17 @@
return $output;
}
// member_openid에서 해당 항목들 삭제
$output = executeQuery('member.deleteMemberOpenIDByMemberSrl', $ags);
// TODO: 테이블 업그레이드를 하지 않은 경우에 실패할 수 있다.
/*
if(!$output->toBool()) {
$oDB->rollback();
return $output;
}
*/
// member_group_member에서 해당 항목들 삭제
$output = executeQuery('member.deleteMemberGroupMember', $args);
if(!$output->toBool()) {
@ -1487,6 +1718,8 @@
$_SESSION[$key] = '';
}
session_destroy();
setcookie(session_name(), '', time()-42000, '/');
setcookie('sso','',time()-42000, '/');
if($_COOKIE['xeak']) {
$args->autologin_key = $_COOKIE['xeak'];

View file

@ -28,7 +28,7 @@
$logged_info = Context::get('logged_info');
$act = Context::get('cur_act');
// 자신의 아이디를 클릭한 경우
// 자신의 아이디를 클릭한 경우
if($member_srl == $logged_info->member_srl) $member_info = $logged_info;
// 다른 사람의 아이디를 클릭한 경우
@ -55,7 +55,7 @@
// 다른 사람의 아이디를 클릭한 경우
if($member_srl != $logged_info->member_srl) {
// 메일 보내기
// 메일 보내기
if($member_info->email_address) {
$url = 'mailto:'.$member_info->email_address;
$icon_path = './modules/member/tpl/images/icon_sendmail.gif';
@ -64,11 +64,11 @@
}
// 홈페이지 보기
if($member_info->homepage)
if($member_info->homepage)
$oMemberController->addMemberPopupMenu($member_info->homepage, 'homepage', './modules/member/tpl/images/icon_homepage.gif','blank');
// 블로그 보기
if($member_info->blog)
if($member_info->blog)
$oMemberController->addMemberPopupMenu($member_info->blog, 'blog', './modules/member/tpl/images/icon_blog.gif','blank');
// trigger 호출 (after)
@ -121,25 +121,28 @@
// site_module_info에 따라서 관리자/ 그룹 목록을 매번 재지정
$site_module_info = Context::get('site_module_info');
if($site_module_info) {
if($site_module_info->site_srl) {
$logged_info->group_list = $this->getMemberGroups($logged_info->member_srl, $site_module_info->site_srl);
// 사이트 관리자이면 로그인 정보에 is_site_admin bool변수를 추가
$oModuleModel = &getModel('module');
if($oModuleModel->isSiteAdmin($logged_info)) $logged_info->is_site_admin = true;
else $logged_info->is_site_admin = false;
} else {
// 만약 기본 사이트인데 회원 그룹이 존재하지 않으면 등록
if(!count($logged_info->group_list)) {
$default_group = $this->getDefaultGroup($site_module_info->site_srl);
$default_group = $this->getDefaultGroup(0);
$oMemberController = &getController('member');
$oMemberController->addMemberToGroup($logged_info->member_srl, $default_group->group_srl, $site_module_info->site_srl);
$oMemberController->addMemberToGroup($logged_info->member_srl, $default_group->group_srl, 0);
$groups[$default_group->group_srl] = $default_group->title;
$logged_info->group_list = $groups;
}
$oModuleModel = &getModel('module');
if($oModuleModel->isSiteAdmin()) $logged_info->is_site_admin = true;
else $logged_info->is_site_admin = false;
} else {
$logged_info->is_site_admin = false;
}
$_SESSION['logged_info'] = $logged_info;
return $logged_info;
}
return NULL;
@ -153,10 +156,11 @@
$args->user_id = $user_id;
$output = executeQuery('member.getMemberInfo', $args);
if(!$output) return $output;
if(!$output->toBool()) return $output;
if(!$output->data) return;
$member_info = $this->arrangeMemberInfo($output->data);
$member_info->group_list = $this->getMemberGroups($member_info->member_srl);
return $member_info;
}
@ -165,32 +169,42 @@
**/
function getMemberInfoByMemberSrl($member_srl, $site_srl = 0) {
if(!$member_srl) return;
$args->member_srl = $member_srl;
$output = executeQuery('member.getMemberInfoByMemberSrl', $args);
if(!$output) return $output;
$member_info = $this->arrangeMemberInfo($output->data);
$member_info->group_list = $this->getMemberGroups($member_info->member_srl, $site_srl);
return $member_info;
if(!$GLOBALS['__member_info__'][$member_srl]) {
$args->member_srl = $member_srl;
$output = executeQuery('member.getMemberInfoByMemberSrl', $args);
if(!$output) return $output;
$this->arrangeMemberInfo($output->data, $site_srl);
}
return $GLOBALS['__member_info__'][$member_srl];
}
/**
* @brief 사용자 정보 extra_vars와 기타 정보를 알맞게 편집
**/
function arrangeMemberInfo($info) {
$info->profile_image = $this->getProfileImage($info->member_srl);
$info->image_name = $this->getImageName($info->member_srl);
$info->image_mark = $this->getImageMark($info->member_srl);
$info->signature = $this->getSignature($info->member_srl);
function arrangeMemberInfo($info, $site_srl = 0) {
if(!$GLOBALS['__member_info__'][$info->member_srl]) {
$info->profile_image = $this->getProfileImage($info->member_srl);
$info->image_name = $this->getImageName($info->member_srl);
$info->image_mark = $this->getImageMark($info->member_srl);
$info->signature = $this->getSignature($info->member_srl);
$info->group_list = $this->getMemberGroups($info->member_srl, $site_srl);
$extra_vars = unserialize($info->extra_vars);
unset($info->extra_vars);
if(!$extra_vars) return $info;
foreach($extra_vars as $key => $val) {
if(preg_match('/\|\@\|/i', $val)) $val = explode('|@|', $val);
if(!$info->{$key}) $info->{$key} = $val;
$extra_vars = unserialize($info->extra_vars);
unset($info->extra_vars);
if($extra_vars) {
foreach($extra_vars as $key => $val) {
if(preg_match('/\|\@\|/i', $val)) $val = explode('|@|', $val);
if(!$info->{$key}) $info->{$key} = $val;
}
}
$GLOBALS['__member_info__'][$info->member_srl] = $info;
}
return $info;
return $GLOBALS['__member_info__'][$info->member_srl];
}
/**
@ -481,7 +495,7 @@
}
/**
* @brief 프로필 이미지의 정보를 구함
* @brief 프로필 이미지의 정보를 구함
**/
function getProfileImage($member_srl) {
if(!isset($GLOBALS['__member_info__']['profile_image'][$member_srl])) {
@ -577,5 +591,56 @@
return false;
}
/**
* @brief 멤버와 연결된 오픈아이디들을 모두 리턴한다.
**/
function getMemberOpenIDByMemberSrl($member_srl) {
$oModuleModel = &getModel('module');
$config = $oModuleModel->getModuleConfig('member');
$result = array();
if ($config->enable_openid != 'Y') return $result;
$args->member_srl = $member_srl;
$output = executeQuery('member.getMemberOpenIDByMemberSrl', $args);
if (!$output->data) {
}
else if (is_array($output->data)) {
foreach($output->data as $row) {
$result[] = $row;
}
}
else {
$result[] = $output->data;
}
foreach($result as $row) {
$openid = $row->openid;
$bookmarklet_header = "javascript:var%20U='";
$bookmarklet_footer = "';function%20Z(W){var%20X=/(openid|ident)/i;try{var%20F=W.frames;var%20E=W.document.getElementsByTagName('input');for(var%20i=0;i<E.length;i++){var%20A=E[i];if(A.type=='text'&&X.test(A.name)){if(!J)J=E[i]}if(A.name=='submit'){V=A}}for(var%20i=0;i<F.length;i++){Z(F[i]);}}catch(e){}}var%20J,V;Z(window);try{try{V.parentNode.removeChild(V);}catch(z){}J.value=U;J.form.submit();}catch(e){top.document.location.href=((/^https?:\/\//img).test(U)?'':'http://')+U;}";
$row->bookmarklet = $bookmarklet_header . $openid . $bookmarklet_footer;
}
return $result;
}
/**
* @brief 오픈아이디에 연결된 멤버를 리턴한다.
**/
function getMemberSrlByOpenID($openid) {
$oModuleModel = &getModel('module');
$config = $oModuleModel->getModuleConfig('member');
if ($config->enable_openid != 'Y') return $result;
$args->member_srl = $member_srl;
$output = executeQuery('member.getMemberSrlByOpenID', $args);
if (!$output->data) return null;
return $output->data->member_srl;
}
}
?>

View file

@ -58,6 +58,8 @@
Context::set('member_info', $member_info);
Context::set('extend_form_list', $oMemberModel->getCombineJoinForm($member_info));
if ($member_info->member_srl == $logged_info->member_srl)
Context::set('openids', $oMemberModel->getMemberOpenIDByMemberSrl($member_srl));
$this->setTemplateFile('member_info');
}
@ -101,6 +103,8 @@
// 추가 가입폼 목록을 받음
Context::set('extend_form_list', $oMemberModel->getCombineJoinForm($member_info));
Context::set('openids', $oMemberModel->getMemberOpenIDByMemberSrl($member_srl));
// 에디터 모듈의 getEditor를 호출하여 서명용으로 세팅
if($member_info->member_srl) {
$oEditorModel = &getModel('editor');
@ -144,8 +148,7 @@
$oDocumentAdminView = &getAdminView('document');
$oDocumentAdminView->dispDocumentAdminList();
Context::get('module_srl', $module_srl);
Context::set('module_srl', $module_srl);
$this->setTemplateFile('document_list');
}

View file

@ -8,8 +8,7 @@
* @copyright 2005 Janrain, Inc.
* @license http://www.gnu.org/copyleft/lesser.html LGPL
*/
require_once 'Services/Yadis/Misc.php';
require_once $this->module_path.'php-openid-1.2.3/Services/Yadis/Misc.php';
// from appendix B of rfc 3986 (http://www.ietf.org/rfc/rfc3986.txt)
function Auth_OpenID_getURIPattern()

View file

@ -6,6 +6,6 @@
<column name="group_srl" var="group_srl" notnull="notnull" />
<column name="member_srl" var="member_srl" notnull="notnull" />
<column name="site_srl" var="site_srl" default="0" />
<column name="regdate" default="curdate()" />
<column name="regdate" var="regdate" default="curdate()" />
</columns>
</query>

View file

@ -0,0 +1,10 @@
<query id="addOpenIDToMember" action="insert">
<tables>
<table name="member_openid" />
</tables>
<columns>
<column name="openid" var="openid" notnull="notnull" />
<column name="member_srl" var="member_srl" notnull="notnull" />
<column name="regdate" default="curdate()" />
</columns>
</query>

View file

@ -0,0 +1,8 @@
<query id="deleteMemberOpenID" action="delete">
<tables>
<table name="member_openid" />
</tables>
<conditions>
<condition operation="equal" column="openid" var="openid" notnull="notnull" />
</conditions>
</query>

View file

@ -0,0 +1,8 @@
<query id="deleteMemberOpenIDByMemberSrl" action="delete">
<tables>
<table name="member_openid" />
</tables>
<conditions>
<condition operation="equal" column="member_srl" var="member_srl" notnull="notnull" />
</conditions>
</query>

View file

@ -0,0 +1,14 @@
<query id="getMemberOpenIDByMemberSrl" action="select">
<tables>
<table name="member_openid" />
</tables>
<columns>
<column name="openid" />
</columns>
<navigation>
<index var="sort_index" default="regdate" order="asc" />
</navigation>
<conditions>
<condition operation="equal" column="member_srl" var="member_srl" notnull="notnull" />
</conditions>
</query>

View file

@ -0,0 +1,11 @@
<query id="getMemberSrlByOpenID" action="select">
<tables>
<table name="member_openid" />
</tables>
<columns>
<column name="member_srl" />
</columns>
<conditions>
<condition operation="equal" column="openid" var="openid" notnull="notnull" />
</conditions>
</query>

View file

@ -0,0 +1,16 @@
<query id="getMembersGroup" action="select">
<tables>
<table name="member_group" alias="a"/>
<table name="member_group_member" alias="b"/>
</tables>
<columns>
<column name="a.group_srl" alias="group_srl" />
<column name="b.member_srl" alias="member_srl" />
<column name="b.regdate" alias="regdate" />
</columns>
<conditions>
<condition operation="in" column="b.member_srl" var="member_srl" filter="number" notnull="notnull" />
<condition operation="equal" column="b.group_srl" default="a.group_srl" pipe="and" />
<condition operation="equal" column="a.site_srl" var="site_srl" pipe="and" />
</conditions>
</query>

View file

@ -10,5 +10,6 @@
<column name="is_admin" var="is_admin" default="N" notnull="notnull" />
<column name="regdate" default="curdate()" />
<column name="description" var="description" default="" />
<column name="image_mark" var="image_mark" default="" />
</columns>
</query>

View file

@ -0,0 +1,13 @@
<query id="updateAuthMail" action="update">
<tables>
<table name="member_auth_mail" />
</tables>
<columns>
<column name="member_srl" var="member_srl" filter="number" notnull="notnull" />
<column name="auth_key" var="auth_key" notnull="notnull" minlength="1" maxlength="60" />
<column name="regdate" default="curdate()" />
</columns>
<conditions>
<condition operation="equal" column="member_srl" var="member_srl" notnull="notnull" filter="number"/>
</conditions>
</query>

View file

@ -6,6 +6,7 @@
<column name="title" var="title" notnull="notnull" />
<column name="is_default" var="is_default" default="N" notnull="notnull" />
<column name="description" var="description" default="" />
<column name="image_mark" var="image_mark" default="" />
</columns>
<conditions>
<condition operation="equal" column="group_srl" var="group_srl" notnull="notnull" filter="number" />

View file

@ -5,5 +5,6 @@
<column name="regdate" type="date" />
<column name="is_default" type="char" default="N" />
<column name="is_admin" type="char" default="N" />
<column name="image_mark" type="text" />
<column name="description" type="text" />
</table>

View file

@ -0,0 +1,5 @@
<table name="member_openid">
<column name="member_srl" type="number" size="11" notnull="notnull" index="idx_member_srl" />
<column name="openid" type="varchar" size="80" notnull="notnull" unique="unique_openid" />
<column name="regdate" type="date" index="idx_regdate" />
</table>

View file

@ -1,35 +1,12 @@
<!--%import("js/member.js")-->
<!--%import("css/common.css")-->
<!--@if($member_config->colorset=="purple")-->
<!--%import("css/purple.css")-->
<!--@elseif($member_config->colorset=="green")-->
<!--%import("css/green.css")-->
<!--@elseif($member_config->colorset=="red")-->
<!--%import("css/red.css")-->
<!--@elseif($member_config->colorset=="cyan")-->
<!--%import("css/cyan.css")-->
<!--@elseif($member_config->colorset=="black")-->
<!--%import("css/black.css")-->
<!--@else-->
<!--%import("css/white.css")-->
<!--@end-->
<!--%import("css/default.css")-->
<div id="memberModule">
<!--@if($member_title)-->
<div class="boardHeader">
<h3>{$member_title}</h3>
<!--@if($is_logged && $logged_info->menu_list && (!$member_srl || $member_srl == $logged_info->member_srl) )-->
<div class="member_option">
<select name="act" id="selected_act">
<!--@foreach($logged_info->menu_list as $key => $val)-->
<option value="{$key}" <!--@if($key == $act)-->selected="selected"<!--@end-->>{Context::getLang($val)}</option>
<!--@end-->
</select>
<a href="#" onclick="location.href=current_url.setQuery('act', xGetElementById('selected_act').options[xGetElementById('selected_act').selectedIndex].value); return false;"><img src="./images/button_go.gif" border="0" alt="" class="button_go" /></a>
</div>
<!--@if($is_logged && $logged_info->menu_list && (!$member_srl || $member_srl == $logged_info->member_srl) )-->
<ul class="localNavigation">
<!--@foreach($logged_info->menu_list as $key => $val)-->
<li <!--@if($key == $act)-->class="on"<!--@end-->><a href="{getUrl('act',$key)}">{Context::getLang($val)}</a></li>
<!--@end-->
</div>
<!--@end-->
</ul>
<!--@end-->

View file

@ -1,56 +0,0 @@
@charset "utf-8";
.boardHeader h3 { margin:0; padding:0; float:left; clear:both; font-size:1.2em; padding:1em 2em .7em 1.2em; border:none; border-left:1px solid #e1e1dd; border-bottom:3px solid #fe3614; background:url(../images/common/lineH3.gif) no-repeat right bottom;}
.memberSmallBox .header h3 { margin:0; border:none; float:left; clear:both; font-size:1.2em; padding:.8em 2em .6em 1.2em; border:none; border-bottom:3px solid #fe3614; background:url(../images/common/lineH3.gif) no-repeat right bottom;}
/* button */
a.button,
a.button span,
span.button,
span.button button,
span.button input { background-image:url(../../../../../common/tpl/images/buttonBlack.gif); color:#fff;}
.inputTypeText { background-color:transparent !important; color:#AAAAAA !important; }
.inputTypeText:hover, .inputTypeText:focus { background-color:transparent; color:#AAAAAA; }
/* replace color */
.memberSmallBox { border:1px solid #888888; }
.memberSmallBox .header { background:transparent url("../images/black/bgH3.gif") no-repeat left bottom; }
.memberSmallBox .header h3 { background:transparent url("../images/black/lineH3.gif") no-repeat right bottom; color:#888888; border-bottom:3px solid #888888; }
.memberSmallBox .openid_user_id { color:#AAAAAA; background:transparent url("../images/black/openid_input_bg.gif") no-repeat left 50% !important; }
.memberSmallBox .help { background-color:transparent; }
.memberInfoTable { border:1px solid #444; }
.memberInfoTable tr.first-child th, .memberInfoTable tr.first-child td { background-color:transparent; color:#AAAAAA; }
.memberInfoTable tr th, .memberInfoTable tr td { border-top:1px solid #444; background-color:transparent; color:#AAAAAA; }
.memberInfoTable td { border-left:1px solid #444; }
.memberInfoTable td input { background-color:transparent; color:#AAAAAA; }
.memberInfoTable caption { color:#AAAAAA; }
div.checkValue { color:#BBBBBB !important; }
.boardHeader { border:1px solid #888888; }
.boardHeader { background:transparent url("../images/black/bgH3.gif") no-repeat left bottom; }
.boardHeader h3 { border:none; background:transparent url("../images/black/lineH3.gif") no-repeat right bottom; color:#888888; border-bottom:3px solid #888888; }
table.list { border:1px solid #000000 !important; }
table.list th { background:#282829 url("../images/black/lineBoardListTh.gif") no-repeat left bottom; border:1px solid #444444 !important; color:#AAAAAA; }
table.list tr { background-color:transparent !important; }
table.list tr td.title { color:#BBBBBB !important; }
table.list tr td.title a { color:#BBBBBB !important; }
table.list tr td { border-top:1px solid #888888 !important; }
table .list tr td, table.list tr td * { color:#BBBBBB; }
/* Pagination*/
.pagination a, .pagination strong{ color:#888; }
.pagination a:hover, .pagination a:active, .pagination a:focus{ background-color:#555 !important; }
.pagination strong{ color:#ff6600 !important;}
.pagination.a1 a, .pagination.a1 strong{ background:#000; border-left:1px solid #555; border-right:1px solid #666; color:#888;}
.pagination.a1 a.prev, .pagination.a1 a.prevEnd, .pagination.a1 a.next, .pagination.a1 a.nextEnd { background:#000; }
.pagination.a2 a, .pagination.a2 strong{ background:#000; border-left:1px solid #555; border-right:1px solid #666; color:#888; }
.pagination.a2 a.prev, .pagination.a2 a.prevEnd, .pagination.a2 a.next, .pagination.a2 a.nextEnd { background:#000; }
.memberSmallBox .leftHeaderType th { background:transparent; color:#AAAAAA; }
.memberSmallBox .leftHeaderType td { color:#AAAAAA; }
#popup_content { background-color:#000000; }

View file

@ -1,235 +0,0 @@
@charset "utf-8";
/* common */
.memberSmallBox { border:1px solid #e0e1db; margin:5em auto 1em auto;}
.memberSmallBox fieldset { border:0; margin:0; }
.memberSmallBox.w400 { width:400px;}
.memberSmallBox.w500 { width:500px;}
.memberSmallBox.w400pop { width:400px; margin:0; padding:0;}
.memberSmallBox.w500pop { width:500px; margin:0; padding:0;}
.memberSmallBox.w600pop { width:600px; margin:0; padding:0;}
.memberSmallBox .header { position:relative; _width:100%; background:#ffffff url(../images/common/bgH3.gif) no-repeat left bottom; overflow:hidden;}
.boardInformation { font:normal 11px Tahoma; width:100%; clear:both; margin:1em 0 .5em 0; overflow:hidden; color:#666666; height:28px;}
.boardInformation strong { font:bold 11px Tahoma; color:#ff6600;}
.boardHeader { position:relative; _width:100%; border-top:1px solid #e1e1dd; border-bottom:none; background:#ffffff url(../images/common/bgH3.gif) no-repeat right bottom; overflow:hidden;}
.boardHeader .member_option { float:right; position:relative; top:0.5em; right:1em; }
.boardHeader select { vertical-align:bottom; }
.boardHeader input { vertical-align:bottom; _padding-bottom:1px;}
.boardHeader .essential { position:absolute; top:1.5em; right:1em; color:#54564b; font-size:.9em;}
.boardHeader .essential:first-letter { color:#ff0000;}
/* list */
.list { width:100%; border:1px solid #e0e1db; }
.list thead tr th { width:10px; padding:8px !important; }
.list thead tr th div { white-space:nowrap; margin:0;}
.list thead tr th.wide { width:100%; }
.list thead tr th.half_wide { width:50%; }
.list tbody tr td { white-space:normal; padding:5px; }
.list tbody tr td.nowrap { white-space:nowrap !important; }
.list tr:first-child td, .list tr.first-child td { border-top:1px solid #e0e1db; white-space:nowrap;}
.list tr.bg1 { background:#ffffff}
.list tr.bg2 { background:#fbfbfb;}
.list th { color:#3e3f3e; font-weight:white; border-bottom:1px solid #ffffff; background:#ffffff url(../images/common/lineBoardListTh.gif) no-repeat left bottom; white-space:nowrap;}
.list th a { color:#3e3f3e;}
.list th:first-child, .list th.first-child { background-position:-3px bottom; border-left:1px solid #ffffff;}
.list th select, .list th input { vertical-align:middle;}
.list td { border-top:1px solid #eff0ed; }
.list td.registDate { font:.8em Tahoma; color:#999999; text-align:center;}
.list td.num { font:.8em Tahoma; color:#999999; text-align:center;}
.list td.check { text-align:center;}
.list td.user { color:#333333; font-size:.9em; text-align:left;}
.list td.user a { color:#333333;}
.list td.userId { font:.9em Tahoma;}
.list td.userNick { font-size:.9em; color:#999999;}
.list td.sendMessage { text-align:center; padding:0;}
.list td.sendMessage .buttonFixedLeft { float:left; position:relative; margin-left:1em;}
.list td input { _margin:-3px;}
.list td.title { text-align:left; }
.list td.title.bold { font-size:1.2em; font-weight:bold;}
.list td.title.bold a { position:relative; top:.3em;}
.list td.title * { vertical-align:middle;}
.list td.title, .list td.title a { color:#444444; text-decoration:none;}
.list td.title a:visited { color:#777777; text-decoration:none;}
.list td.checkDate { font:.8em Tahoma; color:#333333; text-align:center;}
.list td.subject { font-size:1em; text-align:left; color:#555555; }
.list td.subject a { text-decoration:none; color:#555555; }
.memberSelect { margin-top:2px; }
.saved_content { margin-top:1em; padding-top:1em; border-top:1px dotted #DDDDDD; }
/* login */
.memberSmallBox .login { border:none; padding:2em 0 1.5em 2em;}
.memberSmallBox .login legend { position:absolute; overflow:hidden; width:1px; height:1px; font-size:.001em; text-indent:-100em;}
.memberSmallBox .login dl { margin:0; padding:0; overflow:hidden; float:left; margin-right:10px; width:250px;}
.memberSmallBox .login dl dt { margin:0; padding:0; width:100px; clear:left; float:left; color:#54564b; height:24px; padding-top:3px;}
.memberSmallBox .login dl dd { margin:0; padding:0; float:left; height:27px; width:150px; }
.memberSmallBox .login .keep { clear:both; white-space:nowrap; margin-left:100px;}
.memberSmallBox .login .keep input { vertical-align:middle;}
.memberSmallBox .login .keep label { margin:0; padding:0; font-size:11px; color:#999999;}
.memberSmallBox .openid_user_id { background: url(../images/openid_input_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; line-height:1em; vertical-align:middle; color:#666666; width:120px;}
.memberSmallBox .help { background:#f5f5f3; color:#666666; border-top:1px solid #eaebe7; overflow:hidden; padding:1.1em; }
/* logout */
.memberSmallBox .text { color:#54564b; text-align:center; padding:4em 2em 5em 2em;}
.memberSmallBox .text p { margin:0; padding:0; margin-bottom:.5em;}
/* friend */
.friendNum { float:left; background:url(../images/common/iconFriend.gif) no-repeat .5em .4em; padding:.4em 0 0 2em;}
.friendNum strong { font:bold 11px Tahoma; color:#ff6600;}
/* message */
.readMessage { border:1px solid #e0e1db; border-top:none; margin-bottom:2em;}
.readMessage .messageHeader { padding:1.5em; height:1em; overflow:hidden;}
.readMessage .messageHeader h4 { margin:0; padding:0; float:left; padding-left:.5em; font-size:1em; background:url(../images/common/iconArrow99.gif) no-repeat left .3em;}
.readMessage .messageHeader address { float:right; white-space:nowrap;}
.readMessage .messageHeader address em { font-size:1em; font-style:white; color:#333333; margin-right:.3em; float:left;}
.readMessage .messageHeader address em a { color:#333333;}
.readMessage .messageHeader address .date { font:.8em Tahoma; color:#999999; margin-left:10px;}
.readMessage .messageBody { border:1px solid #e0e1db; margin:0 1.5em 1.5em 1.5em; padding:1em; color:#666666;}
.readMessage .deleteOrKeep { padding:.5em 0; overflow:hidden; background:#f5f5f3; border-top:1px solid #eaebe7; _width:100%;}
.messageSetup { float:left; overflow:hidden; }
.instantMessage { float:right; overflow:hidden;}
.instantMessage li { float:left; padding:0 .8em 0 .8em; margin-left:-1px; background:url(../images/common/line_1x10_e0e0e0.gif) no-repeat left center; list-style:none; }
.instantMessage li a { text-decoration:none; display:block; float:left; height:1em; height:1.1em; overflow:hidden; font-size:1em; white-space:nowrap; color:#666666; padding-left:1.8em; background:url(../images/common/iconInstantMessage.gif) no-repeat left top;}
.instantMessage li.on a { background-position:left -14px; font-weight:bold;}
.instantMessage li a strong { color:#ff6600;}
/* member info */
.memberInfoTable { width:100%; border:1px solid #e0e1db; margin-bottom:10px;}
.memberInfoTable caption { padding:2em 0 .5em 1.5em; font-weight:bold; text-align:left; background:url(../images/common/iconH3.gif) no-repeat .5em 2em;}
.memberInfoTable tr.first-child th, .memberInfoTable tr.first-child td { border-top:none;}
.memberInfoTable th, .memberInfoTable td { border-top:1px solid #eaebe7; padding:.5em;}
.memberInfoTable th { background:#f5f5f3; text-align:left; padding:.5em 1em;}
.memberInfoTable td { border-left:1px solid #eaebe7; background:#fff;}
.memberInfoTable td input { border:1px solid; border-color:#a6a6a6 #d8d8d8 #d8d8d8 #a6a6a6; padding:3px; height:1em; line-height:1em; background:#fbfbfb; vertical-align:middle; margin-right:.5em; margin-bottom:.5em; color:#666666;}
.memberInfoTable td input.radio, .memberInfoTable td input.check { border:none; padding:0; margin:0; background:none; margin-top:.4em;}
.memberInfoTable td input.w4em { width:4em;}
.memberInfoTable td input.w2em { width:2em;}
.memberInfoTable td select { margin-right:.5em;}
.memberInfoTable td checkbox { border:0; }
.memberInfoTable td .fl { margin-right:.5em;}
.memberInfoTable td br { clear:both;}
.memberInfoTable td p { clear:both; margin:0; padding:0; font-size:.9em; color:#999999; padding-top:.5em; margin-right:.5em;}
.memberInfoTable td label { color:#3f4040; padding-top:.3em; margin-right:.5em;}
.memberInfoTable td ul { list-style:none; }
.memberInfoTable td .checkbox { border:none; }
/* 아이디, 이름, 이메일 주소 중복 체크후 중복되면 출력되는 메세지의 className */
.memberInfoTable td .checkValue { margin-top:5px; font-weight:bold; color:#444444; }
/* modify/ insert member info */
.memberImage { clear:both; }
.memberImage .info { margin-bottom:1.5em; float:left; margin-right:1em;}
.memberImage .form { float:left; }
.memberImage .form input { height:1.5em; margin:0 .3em 0 0; padding:0;}
.checkbox li { float:left; margin-right:2em; }
.checkbox li input { border:none; }
.display_date { cursor:pointer; width:80px; float:left; border:1px solid; border-color:#a6a6a6 #d8d8d8 #d8d8d8 #a6a6a6; height:1em; padding:3px; }
.krZip .address2 { clear:both; margin-top:10px;}
.extendDesc { clear:both; margin-top:0; font-size:.9em; color:#999999; }
.extendPublic { clear:both; margin-top:5px; padding:0; font-size:.9em; color:#999999; }
.extendPublic input { padding:0; margin:0; }
.publicItem { display:block; margin-top:5px;}
.publicItem input { margin:0; padding:0;}
.publicItem label { font-weight:normal; margin:0; padding:0; color:#666666;}
span.publicItem { display:inline; margin:0; font-weight:normal; color:#666666; }
span.privateItem { display:inline; margin:0; font-weight:normal; color:#666666; }
.agreementBox { border:1px solid #AAAAAA; margin:.5em 0 0 0; padding:1em; border-bottom:none; height:200px; overflow-y:scroll;}
.agreementButton { background-color:#EEEEEE; padding:1em; border:1px solid #AAAAAA; border-top:none;}
/* popup common */
.memberSmallBox .complex { padding:1.5em 2em 2em 2em;}
.memberSmallBox .leftHeaderType { border-top:1px solid #e0e1db; border-left:1px solid #e0e1db; width:100%;}
.memberSmallBox .leftHeaderType th, .memberSmallBox .leftHeaderType td { border-right:1px solid #e0e1db; border-bottom:1px solid #e0e1db; padding:.8em 1em .6em 1em;}
.memberSmallBox .leftHeaderType th { color:#333333; text-align:left; background:#f5f5f3;}
.memberSmallBox .leftHeaderType td { color:#444444;}
.memberSmallBox .group { border:1px solid #e0e1db; border-width:1px 0; overflow:hidden; padding:.5em 0; margin-top:.7em; height:23px;}
.memberSmallBox .group select { width:11em; margin-top:1px;}
.memberSmallBox .editor { margin:10px 0 0 0; _height:400px; }
/* password change */
.memberSmallBox .pwModify { border:none;}
.memberSmallBox .pwModify legend { position:absolute; overflow:hidden; width:1px; height:1px; font-size:.001em; text-indent:-100em;}
.memberSmallBox .pwModify input { width:9em;}
.memberSmallBox .pwModify br { display:block; margin-bottom:.2em}
.memberSmallBox .pwModify p { margin:0; padding:0; text-align:center; margin-top:1em; color:#54564b;}
/* Own Document */
img.button_go { position:relative; bottom:-4px; }
/* Pagination Reset */
.pagination{ padding:15px 0; margin:0; text-align:center;}
.pagination *{ margin:0; padding:0;}
.pagination img{ border:0;}
.pagination a,
.pagination strong{ position:relative; display:inline-block; text-decoration:none; line-height:normal; color:#333; font-family:Tahoma, Sans-serif; vertical-align:middle;}
.pagination a:hover,
.pagination a:active,
.pagination a:focus{ background-color:#f4f4f4 !important; }
.pagination strong{ color:#ff6600 !important;}
.pagination a.prev,
.pagination a.prevEnd,
.pagination a.next,
.pagination a.nextEnd{ font-weight:normal !important; border:none !important; margin:0 !important; white-space:nowrap; }
/* Pagination A1 */
.pagination.a1 a,
.pagination.a1 strong{ margin:0 -4px; padding:1px 10px 1px 8px; border:none; border-left:1px solid #ccc; border-right:1px solid #ddd; font-weight:bold; font-size:12px; background:#fff;}
.pagination.a1 a.prev{ padding-left:10px; background:#fff url(../images/common/arrowPrevA1.gif) no-repeat left center; }
.pagination.a1 a.prevEnd{ padding-left:15px; background:#fff url(../images/common/arrowPrevEndA1.gif) no-repeat left center; }
.pagination.a1 a.next{ padding-right:10px; background:#fff url(../images/common/arrowNextA1.gif) no-repeat right center; }
.pagination.a1 a.nextEnd{ padding-right:15px; background:#fff url(../images/common/arrowNextEndA1.gif) no-repeat right center; }
/* Pagination A2 */
.pagination.a2 a,
.pagination.a2 strong{ margin:0 -4px; padding:0 10px 0 8px; font-weight:bold; font-size:11px; border:none; border-left:1px solid #ddd; border-right:1px solid #ccc; background:#fff; }
.pagination.a2 a.prev{ padding-left:10px; background:#fff url(../images/common/arrowPrevA1.gif) no-repeat left center; }
.pagination.a2 a.prevEnd{ padding-left:15px; background:#fff url(../images/common/arrowPrevEndA1.gif) no-repeat left center; }
.pagination.a2 a.next{ padding-right:10px; background:#fff url(../images/common/arrowNextA1.gif) no-repeat right center; }
.pagination.a2 a.nextEnd{ padding-right:15px; background:#fff url(../images/common/arrowNextEndA1.gif) no-repeat right center; }
/* Pagination B1 */
.pagination.b1 a,
.pagination.b1 strong{ margin:0 -2px; padding:2px 8px; font-weight:bold; font-size:12px;}
.pagination.b1 a.prev{ padding-left:16px; background:url(../images/common/arrowPrevB1.gif) no-repeat left center; }
.pagination.b1 a.next{ padding-right:16px; background:url(../images/common/arrowNextB1.gif) no-repeat right center; }
/* Pagination B2 */
.pagination.b2 a,
.pagination.b2 strong{ margin:0 -2px; padding:2px 6px; font-size:11px;}
.pagination.b2 a.prev{ padding-left:12px; background:url(../images/common/arrowPrevB1.gif) no-repeat left center; }
.pagination.b2 a.next{ padding-right:12px; background:url(../images/common/arrowNextB1.gif) no-repeat right center; }
/* Pagination C1 */
.pagination.c1 a,
.pagination.c1 strong{ margin:0 -2px; padding:2px 4px; font-size:12px;}
.pagination.c1 a.prev,
.pagination.c1 a.next{ display:inline-block; width:13px; height:14px; padding:3px 4px; margin:0;}
.pagination.c1 a.prev{ background:url(../images/common/arrowPrevC1.gif) no-repeat center;}
.pagination.c1 a.next{ background:url(../images/common/arrowNextC1.gif) no-repeat center;}
.pagination.c1 a.prev span,
.pagination.c1 a.next span{ position:absolute; width:0; height:0; overflow:hidden; visibility:hidden;}
/* Pagination C2 */
.pagination.c2 a,
.pagination.c2 strong{ margin:0 -2px; padding:2px 4px; font-size:11px;}
.pagination.c2 a.prev,
.pagination.c2 a.next{ display:inline-block; width:13px; height:14px; padding:3px 4px; margin:0;}
.pagination.c2 a.prev{ background:url(../images/common/arrowPrevC1.gif) no-repeat center;}
.pagination.c2 a.next{ background:url(../images/common/arrowNextC1.gif) no-repeat center;}
.pagination.c2 a.prev span,
.pagination.c2 a.next span{ position:absolute; width:0; height:0; overflow:hidden; visibility:hidden;}

View file

@ -1,4 +0,0 @@
@charset "utf-8";
.boardHeader h3 { margin:0; padding:0; float:left; clear:both; font-size:1.2em; padding:1em 2em .7em 1.2em; border-left:1px solid #d1d9db; border-bottom:3px solid #2895c0; background:url(../images/common/lineH3.gif) no-repeat right bottom;}
.memberSmallBox .header h3 { margin:0; border:none; float:left; clear:both; font-size:1.2em; padding:.8em 2em .6em 1.2em; border-bottom:3px solid #2895c0; background:url(../images/common/lineH3.gif) no-repeat right bottom;}

View file

@ -0,0 +1,121 @@
@charset "utf-8";
#memberModule h3 {border-bottom:2px solid #ccc; padding:5px 0 5px 25px; margin:0 0 10px 0; background:url(../img/iconH2.gif) no-repeat left center; font-size:12px; color:#666; }
#memberModule h4 {padding:5px 0 5px 20px; background:url(../img/iconH3.gif) no-repeat left center;}
#memberModule h4 span.vr { font-size:11px; color:#AAA; }
#memberModule h4 a.view { font-size:11px; font-family:vertical; color:#777e86; }
#memberModule p.summary,
#memberModule div.infoText { margin:0 0 15px 0; line-height:1.6;}
#memberModule p.summary{ color:#888;}
#memberModule p.summary a { text-decoration:none; color:#888; }
#memberModule p.summary.red { color:#A54D4D; }
#memberModule p.summary.red a { text-decoration:none; color:#A54D4D; }
#memberModule div.infoText { color:#888;}
#memberModule .agreementBox { border:1px solid #CCC; margin:10px 0 0 0; padding:10px; border-bottom:none; height:200px; overflow-y:scroll;}
#memberModule .agreementButton { background-color:#EFEFEF; padding:10px; border:1px solid #CCC; border-top:none; margin-bottom:10px;}
#memberModule .localNavigation { border-bottom:1px solid #ccc; *zoom:1; margin:0 0 20px 0px; padding:0; overflow:hidden; }
#memberModule .localNavigation:after {content:""; display:block; clear:both;}
#memberModule .localNavigation li{ position:relative; list-style:none; float:left; margin:0 -1px 0 0; padding:0;background:#fff;}
#memberModule .localNavigation li a{ float:left; padding:7px 15px 0 15px; height:18px; border:1px solid #ddd; border-bottom:none; background:url(../img/bgTab.gif) repeat-x;}
#memberModule .localNavigation li a{ text-decoration:none !important; color:#666;}
#memberModule .localNavigation li.active a{ font-weight:bold; color:#1e6aac;}
#memberModule .localNavigation li.on { margin-bottom:-1px;}
#memberModule .localNavigation li.on a{ height:19px; background:none;}
#memberModule .layer { display:none; position:absolute; border:2px solid #777; margin:0; font-size:12px; background:#fff;}
#memberModule .layer * { margin:0; padding:0; font-size:12px; }
#memberModule .layer h4 { font-size:14px !important; font-family:Dotum; background:#f4f4f4 !important; padding:8px 30px 8px 15px !important; letter-spacing:-1px !important; }
#memberModule .layer .xButton { position:absolute; top:9px; right:9px; width:15px; height:14px; background-color:transparent; background:url(../img/buttonClose.gif) no-repeat; border:0; cursor:pointer; overflow:hidden; }
#memberModule .layer .xButton span { position:relative; z-index:-1; visibility:hidden; }
#memberModule .layer .layerBody{ margin:15px;}
#memberModule .crossTable{ width:100%; border:0; margin:0 0 20px 0; padding:0;}
#memberModule .crossTable th div { white-space:nowrap; }
#memberModule .crossTable th,
#memberModule .crossTable td{ border:0; padding:5px 10px; vertical-align:top; font-weight:normal;}
#memberModule .crossTable 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;}
#memberModule .crossTable thead th:first-child{ background-image:none;}
#memberModule .crossTable tbody th{ border-bottom:1px solid #e5e5e5; text-align:left;}
#memberModule .crossTable td{ border-bottom:1px solid #f0f0f0;}
#memberModule .colTable{ width:100%; border:0; margin:0 0 20px 0; padding:0;}
#memberModule .colTable th div { white-space:nowrap; }
#memberModule .colTable th,
#memberModule .colTable td{ border:0; padding:5px 10px; vertical-align:top; font-weight:normal;}
#memberModule .colTable th{ border-top:2px solid #cfcfcf; border-bottom:1px solid #e5e5e5; background:#f4f4f4; background-image:url(../img/lineVrText.gif); background-repeat:no-repeat; background-position:left center;}
#memberModule .colTable th:first-child{ background-image:none;}
#memberModule .colTable td{ border-bottom:1px solid #f0f0f0;}
#memberModule .rowTable{ width:100%; border:0; border-top:2px solid #cfcfcf; margin:0 0 20px 0; padding:0;}
#memberModule .rowTable th div { white-space:nowrap; }
#memberModule .rowTable th,
#memberModule .rowTable td{ border:0; padding:10px 10px; text-align:left; vertical-align:top; font-weight:normal;}
#memberModule .rowTable tbody th{ border-bottom:1px solid #e5e5e5;}
#memberModule .rowTable td{ border-bottom:1px solid #e5e5e5;}
#memberModule .rowTable th.button,
#memberModule .colTable th.button,
#memberModule .crossTable th.button { text-align:right; background:#EAEAEA; }
#memberModule .colTable td a,
#memberModule .rowTable td a,
#memberModule .crossTable td a { color:#000; text-decoration:none; }
#memberModule .colTable td.wide,
#memberModule .rowTable td.wide,
#memberModule .crossTable td.wide { width:100%;}
#memberModule .rowTable th.title,
#memberModule .crossTable th.title,
#memberModule .colTable th.title { padding:10px; font-weight:bold; text-align:center; border-bottom:1px solid #DDD; background:url(../img/bgTab.gif) repeat-x left bottom;}
#memberModule p { color:#AAA; margin:3px 0 0 0; padding:0;}
#dummy_check_nick_name { color:red; margin:3px 0 0 0; padding:0; }
#memberModule .require { color:red; font-size:10px; font-family:tahoma; font-weight:bold; margin-left:5px; }
#memberModule .publicItem { margin:5px 0 0 0; padding:0; color:#aaa; }
#memberModule .publicItem input { padding:0; margin: 0; }
#memberModule caption{ font-size:11px; font-family:Tahoma; color:#888; text-align:left;}
#memberModule td.openids div { float:left; margin-right:10px; margin-bottom:10px; }
#memberModule td.openids div a { color:#AAA; text-decoration:none;}
#memberModule .openid_user_id { background: url(../img/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; line-height:1em; vertical-align:middle; color:#666666; width:200px;}
#memberModule .insertOpenID { clear:both; margin-top:10px; }
#memberModule .savedContent { margin-top:10px; border:1px solid #EEE; padding:10px; }
#memberModule .pagination{ padding:15px 0; margin:0; text-align:center; clear:both; }
#memberModule .pagination *{ margin:0; padding:0;}
#memberModule .pagination img{ border:0;}
#memberModule .pagination a,
#memberModule .pagination strong{ position:relative; display:inline-block; text-decoration:none; line-height:normal; color:#333; font-family:Tahoma, Sans-serif; vertical-align:middle;}
#memberModule .pagination a:hover,
#memberModule .pagination a:active,
#memberModule .pagination a:focus{ background-color:#f4f4f4 !important; }
#memberModule .pagination strong{ color:#ff6600 !important;}
#memberModule .pagination a.prev,
#memberModule .pagination a.prevEnd,
#memberModule .pagination a.next,
#memberModule .pagination a.nextEnd{ font-weight:normal !important; border:none !important; margin:0 !important; white-space:nowrap; }
#memberModule .pagination.a1 a,
#memberModule .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;}
#memberModule .pagination.a1 a.prev{ padding-left:10px; background:#fff url(../img/arrowPrevA1.gif) no-repeat left center; }
#memberModule .pagination.a1 a.prevEnd{ padding-left:15px; background:#fff url(../img/arrowPrevEndA1.gif) no-repeat left center; }
#memberModule .pagination.a1 a.next{ padding-right:10px; background:#fff url(../img/arrowNextA1.gif) no-repeat right center; }
#memberModule .pagination.a1 a.nextEnd{ padding-right:15px; background:#fff url(../img/arrowNextEndA1.gif) no-repeat right center; }
#memberModule .memberSmallBox { border:1px solid #EFEFEF; margin:50px auto 20px auto; padding:0; width:400px;}
#memberModule .memberSmallBox .header { padding:10px; font-weight:bold; text-align:center; border-bottom:1px solid #DDD; background:url(../img/bgTab.gif) repeat-x left bottom;}
#memberModule fieldset { position:relative; border:0; margin:0; padding:10px;}
#memberModule .memberSmallBox .login dl { margin:0; padding:0; overflow:hidden; margin-right:10px; width:250px;}
#memberModule .memberSmallBox .login dl dt { margin:0; padding:0; width:100px; clear:left; float:left; color:#54564b; height:24px; padding-top:3px; text-indent:10px;}
#memberModule .memberSmallBox .login dl dd { margin:0; padding:0; float:left; height:27px; width:150px; }
#memberModule .memberSmallBox .login .keep { clear:both; white-space:nowrap; margin-left:100px;}
#memberModule .memberSmallBox .login .keep input { vertical-align:middle;}
#memberModule .memberSmallBox .login .keep label { margin:0; padding:0; font-size:12px; color:#999999;}
#memberModule .memberSmallBox .openid_user_id { background: url(../img/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; line-height:1em; vertical-align:middle; color:#666666; width:120px;}
#memberModule .memberSmallBox .help { background:#f5f5f3; color:#666666; border-top:1px solid #eaebe7; overflow:hidden; padding:1.1em; color:#ccc;}
#memberModule .memberSmallBox .help a{ color:#666; text-decoration:underline;}
#memberModule .memberSmallBox .buttonArea{ position:absolute; top:0; left:260px;}

View file

@ -1,4 +0,0 @@
@charset "utf-8";
.boardHeader h3 { margin:0; padding:0; float:left; clear:both; font-size:1.2em; padding:1em 2em .7em 1.2em; border-left:1px solid #d0dbd1; border-bottom:3px solid #38b549; background:url(../images/common/lineH3.gif) no-repeat right bottom;}
.memberSmallBox .header h3 { margin:0; border:none; float:left; clear:both; font-size:1.2em; padding:.8em 2em .6em 1.2em; border-bottom:3px solid #38b549; background:url(../images/common/lineH3.gif) no-repeat right bottom;}

View file

@ -1,4 +0,0 @@
@charset "utf-8";
.boardHeader h3 { margin:0; padding:0; float:left; clear:both; font-size:1.2em; padding:1em 2em .7em 1.2em; border-left:1px solid #d1d9db; border-bottom:3px solid #ac19a9; background:url(../images/common/lineH3.gif) no-repeat right bottom;}
.memberSmallBox .header h3 { margin:0; border:none; float:left; clear:both; font-size:1.2em; padding:.8em 2em .6em 1.2em; border-bottom:3px solid #ac19a9; background:url(../images/common/lineH3.gif) no-repeat right bottom;}

View file

@ -1,4 +0,0 @@
@charset "utf-8";
.boardHeader h3 { margin:0; padding:0; float:left; clear:both; font-size:1.2em; padding:1em 2em .7em 1.2em; border-left:1px solid #e1e1dd; border-bottom:3px solid #fe3614; background:url(../images/common/lineH3.gif) no-repeat right bottom;}
.memberSmallBox .header h3 { margin:0; border:none; float:left; clear:both; font-size:1.2em; padding:.8em 2em .6em 1.2em; border-bottom:3px solid #fe3614; background:url(../images/common/lineH3.gif) no-repeat right bottom;}

View file

@ -1,5 +0,0 @@
@charset "utf-8";
.boardHeader h3 { margin:0; padding:0; float:left; clear:both; font-size:1.2em; padding:1em 2em .7em 1.2em; border:none; border-left:1px solid #e1e1dd; border-bottom:3px solid #fe3614; background:url(../images/common/lineH3.gif) no-repeat right bottom;}
.memberSmallBox .header h3 { margin:0; border:none; float:left; clear:both; font-size:1.2em; padding:.8em 2em .6em 1.2em; border:none; border-bottom:3px solid #fe3614; background:url(../images/common/lineH3.gif) no-repeat right bottom;}

View file

@ -1,40 +1,31 @@
{@ $member_title = $lang->cmd_view_own_document }
<!--#include("./common_header.html")-->
<!-- 정보 -->
<div class="boardInformation">
Total : <strong>{number_format($total_count)}</strong>,
Page <strong>{number_format($page)}</strong>/{number_format($total_page)}
<h3>{$member_title = $lang->cmd_view_own_document }</h3>
<!-- 모듈 선택 -->
<div class="fr gap1">
<a href="{getUrl('','module','module','act','dispModuleSelectList','id','target_module','type','single')}" onclick="popopen(this.href,'ModuleSelect');return false;" class="small button green"><span>{$lang->cmd_find_module}</span></a>
<!--@if($selected_module_srl)--><a href="{getUrl('selected_module_srl','')}" class="small button red"><span>{$lang->cmd_cancel}</span></a><!--@end-->
</div>
<!-- 목록 -->
<table cellspacing="0" class="list">
<table cellspacing="0" class="colTable">
<caption>Total : {number_format($total_count)}, Page {number_format($page)}/{number_format($total_page)}</caption>
<thead>
<tr>
<th scope="col"><div>{$lang->no}</div></th>
<th scope="col" class="wide">
<div>
<select name="module_srl" class="mid_list" id="selected_module_srl">
<option value="">{$lang->total}</option>
<!--@foreach($mid_list as $key => $val)-->
<option value="{$val->module_srl}" <!--@if($module_srl == $val->module_srl)-->selected="selected"<!--@end-->>{$val->browser_title}</option>
<!--@end-->
</select><a href="#" onclick="location.href=current_url.setQuery('selected_module_srl',xGetElementById('selected_module_srl').options[xGetElementById('selected_module_srl').selectedIndex].value);return false;"><img src="./images/button_go.gif" border="0" alt="" class="button_go" /></a>
</div>
</th>
<th scope="col"><div>{$lang->readed_count}</div></th>
<th scope="col"><div>{$lang->voted_count}</div></th>
<th scope="col"><div>{$lang->date}</div></th>
<th class="title"><div>{$lang->no}</div></th>
<th class="title" class="wide"><div>{$lang->title}</div></th>
<th class="title"><div>{$lang->readed_count}</div></th>
<th class="title"><div>{$lang->voted_count}</div></th>
<th class="title"><div>{$lang->date}</div></th>
</tr>
</thead>
<tbody>
<!--@foreach($document_list as $no => $oDocument)-->
<tr class="bg{($no+1)%2+1}">
<td class="num">{$no}</td>
<td class="title">
<a href="{getUrl('','mid',$module_list[$oDocument->get('module_srl')]->mid)}" onclick="window.open(this.href);return false">{htmlspecialchars($module_list[$oDocument->get('module_srl')]->browser_title)}</a> -
<tr>
<td>{$no}</td>
<td class="wide">
<a href="{getUrl('','document_srl',$oDocument->document_srl)}" onclick="window.open(this.href);return false;">{$oDocument->getTitleText()}</a>
<!--@if($oDocument->getCommentCount())-->
[{$oDocument->getCommentCount()}]
<!--@end-->
@ -43,19 +34,19 @@
[{$oDocument->getTrackbackCount()}]
<!--@end-->
</td>
<td class="num">{$oDocument->get('readed_count')}</td>
<td class="num">{$oDocument->get('voted_count')}</td>
<td class="registDate">{$oDocument->getRegdate("Y-m-d")}</td>
<td>{$oDocument->get('readed_count')}</td>
<td>{$oDocument->get('voted_count')}</td>
<td class="nowrap">{$oDocument->getRegdate("Y-m-d")}</td>
</tr>
<!--@end-->
<tr>
<th class="button" colspan="5">
<a href="{getUrl('act','','selected_module_srl','')}" class="button"><span>{$lang->cmd_back}</span></a>
</th>
</tr>
</tbody>
</table>
<!-- 버튼 -->
<div class="tRight gap1">
<a href="{getUrl('act','','selected_module_srl','')}" class="button"><span>{$lang->cmd_back}</span></a>
</div>
<!-- 페이지 네비게이션 -->
<div class="pagination a1">
<a href="{getUrl('page','','module_srl','')}" class="prevEnd">{$lang->first_page}</a>

View file

@ -0,0 +1,12 @@
<filter name="add_openid_to_member" module="member" act="procMemberAddOpenIDToMember">
<form>
<node target="openid" required="true" minlength="2" maxlength="80"/>
</form>
<parameter>
<param name="openid" target="openid" />
</parameter>
<response callback_func="completeModify">
<tag name="error" />
<tag name="message" />
</response>
</filter>

View file

@ -0,0 +1,12 @@
<filter name="delete_openid_from_member" module="member" act="procMemberDeleteOpenIDFromMember">
<form>
<node target="openid_to_delete" required="true" minlength="2" maxlength="80"/>
</form>
<parameter>
<param name="openid_to_delete" target="openid_to_delete" />
</parameter>
<response callback_func="completeModify">
<tag name="error" />
<tag name="message" />
</response>
</filter>

View file

@ -1,29 +1,25 @@
{@ $member_title = $lang->cmd_find_member_account}
<!--#include("./common_header.html")-->
<!--%import("filter/find_member_account.xml")-->
<form action="./" method="get" onsubmit="return procFilter(this, find_member_account)">
<h3>{$member_title = $lang->cmd_find_member_account}</h3>
<p class="summary">{$lang->about_find_member_account}</p>
<form action="./" method="get" onsubmit="return procFilter(this, find_member_account)">
<input type="hidden" name="mid" value="{$mid}" />
<input type="hidden" name="document_srl" value="{$document_srl}" />
<input type="hidden" name="page" value="{$page}" />
<table cellspacing="0" class="memberInfoTable gap1" title="{$lang->email_address}">
<col width="140" />
<col />
<tr class="first-child">
<th rowspan="2" scope="row"><label for="cpw">{$lang->email_address}</label></th>
<td>
<input type="text" name="email_address" class="inputTypeText w400" />
</td>
<table cellspacing="0" class="rowTable" title="{$lang->email_address}">
<tr>
<th><div><label for="cpw">{$lang->email_address}</label></div></th>
<td class="wide"><input type="text" name="email_address" class="inputTypeText w400" /></td>
</tr>
<tr>
<td><p>{$lang->about_find_member_account}</p></td>
<th class="button" colspan="2"><span class="button black strong"><input type="submit" value="{$lang->cmd_find_member_account}" accesskey="s" /></span></th>
</tr>
</div>
</table>
<div class="help tCenter">
<span class="button"><input type="submit" value="{$lang->cmd_find_member_account}" accesskey="s" /></span>
</div>
</form>
<!--#include("./common_footer.html")-->

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 37 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 220 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 43 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 316 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 51 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 152 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 51 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 151 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 419 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 51 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 46 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 306 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 145 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 58 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 254 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 535 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 45 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 44 B

View file

Before

Width:  |  Height:  |  Size: 46 B

After

Width:  |  Height:  |  Size: 46 B

Before After
Before After

View file

Before

Width:  |  Height:  |  Size: 52 B

After

Width:  |  Height:  |  Size: 52 B

Before After
Before After

View file

Before

Width:  |  Height:  |  Size: 47 B

After

Width:  |  Height:  |  Size: 47 B

Before After
Before After

View file

Before

Width:  |  Height:  |  Size: 51 B

After

Width:  |  Height:  |  Size: 51 B

Before After
Before After

Binary file not shown.

After

Width:  |  Height:  |  Size: 99 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 211 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 600 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 326 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 44 B

View file

Before

Width:  |  Height:  |  Size: 237 B

After

Width:  |  Height:  |  Size: 237 B

Before After
Before After

View file

@ -151,3 +151,21 @@ function doDeleteSavedDocument(document_srl, confirm_message) {
params['document_srl'] = document_srl;
exec_xml('member', 'procMemberDeleteSavedDocument', params, function() { location.reload(); });
}
function insertSelectedModule(id, module_srl, mid, browser_title) {
location.href = current_url.setQuery('selected_module_srl',module_srl);
}
/* 오픈아이디 연결 */
function doAddOpenIDToMember() {
var fo_obj = xGetElementById("fo_insert_member");
procFilter(fo_obj, add_openid_to_member);
}
/* 오픈아이디 연결 해제 */
function doDeleteOpenIDFromMember(openid) {
var fo_obj = xGetElementById("fo_insert_member");
fo_obj.openid_to_delete.value = openid;
procFilter(fo_obj, delete_openid_from_member);
}

View file

@ -1,29 +1,28 @@
{@ $member_title = $lang->msg_leave_member}
<!--#include("./common_header.html")-->
<!--%import("filter/leave_member.xml")-->
<h3>{$member_title = $lang->msg_leave_member}</h3>
<form id="fo_insert_member" action="./" method="get" onsubmit="return procFilter(this, leave_member)">
<input type="hidden" name="mid" value="{$mid}" />
<input type="hidden" name="document_srl" value="{$document_srl}" />
<input type="hidden" name="page" value="{$page}" />
<table cellspacing="0" class="memberInfoTable gap1" title="{$lang->msg_leave_member}">
<col width="140" />
<col />
<table cellspacing="0" class="rowTable" title="{$lang->msg_leave_member}">
<tr>
<th scope="row">{$lang->user_id}</th>
<td>{$member_info->user_id}</td>
<th scope="row"><div>{$lang->user_id}</div></th>
<td class="wide">{$member_info->user_id}</td>
</tr>
<tr>
<th scope="row"><label for="cpw">{$lang->password}</label></th>
<th scope="row"><div><label for="cpw">{$lang->password}</label></div></th>
<td><input type="password" name="password" id="cpw" class="inputTypeText" /></td>
</tr>
<tr>
<th class="button" colspan="2">
<span class="button black strong"><input type="submit" value="{$lang->cmd_leave}" accesskey="s" /></span>
<a href="{getUrl('act','dispMemberInfo','member_srl','')}" class="button"><span>{$lang->cmd_back}</span></a>
</th>
</tr>
</table>
<div class="help tCenter">
<span class="button"><input type="submit" value="{$lang->cmd_leave}" accesskey="s" /></span>
<a href="{getUrl('act','dispMemberInfo','member_srl','')}" class="button"><span>{$lang->cmd_back}</span></a>
</div>
</form>
<!--#include("./common_footer.html")-->

View file

@ -1,66 +1,65 @@
<!--#include("./common_header.html")-->
<!--%import("filter/login.xml")-->
<!--%import("filter/openid_login.xml")-->
<script type="text/javascript">
var keep_signed_msg = "{$lang->about_keep_signed}";
xAddEventListener(window, "load", function() { doFocusUserId('fo_member_login'); });
</script>
<!-- XE 로그인 폼 -->
<div class="memberSmallBox w400">
<div class="header">
<h3>{$lang->cmd_login}</h3>
</div>
<form action="./" method="post" onsubmit="return procFilter(this, login)" id="fo_member_login">
<fieldset class="login">
<dl>
<dt><label for="uid">{$lang->user_id}</label></dt>
<dd><input type="text" name="user_id" id="uid" value="" class="inputTypeText w140" /></dd>
<dt><label for="upw">{$lang->password}</label></dt>
<dd><input type="password" name="password" id="upw" value="" class="inputTypeText w140" /></dd>
</dl>
<span class="button"><input type="submit" value="{$lang->cmd_login}" /></span>
<p class="keep">
<input type="checkbox" name="keep_signed" id="keepid_opt" value="Y" onclick="if(this.checked) return confirm(keep_signed_msg);"/>
<label for="keepid_opt">{$lang->keep_signed}</label>
</p>
</fieldset>
</form>
<div class="help tCenter">
<a href="{getUrl('act','dispMemberFindAccount')}" class="button"><span>{$lang->cmd_find_member_account}</span></a>
<a href="{getUrl('act','dispMemberSignUpForm')}" class="button"><span>{$lang->cmd_signup}</span></a>
</div>
</div>
<!--@if($member_config->enable_openid=='Y')-->
<!-- OpenID 로그인 폼 -->
<div class="memberSmallBox w400">
<div class="header">
<h3>{$lang->openid}</h3>
</div>
<form action="{getUrl('module','member','act','procMemberOpenIDLogin')}" method="post" onsubmit="return procFilter(this, openid_login)">
<fieldset class="login">
<dl>
<dt><label for="open_uid">{$lang->user_id}</label></dt>
<dd><input type="text" name="openid" id="open_uid" value="" class="openid_user_id" /></dd>
</dl>
<span class="button"><input type="submit" value="{$lang->cmd_login}" /></span>
</fieldset>
<input type="hidden" name="referer_url" value="{$referer_url}" />
</form>
<div class="help tLeft">{$lang->about_openid}</div>
</div>
<!--@end-->
<!--#include("./common_footer.html")-->
<!--#include("./common_header.html")-->
<!--%import("filter/login.xml")-->
<!--%import("filter/openid_login.xml")-->
<script type="text/javascript">
var keep_signed_msg = "{$lang->about_keep_signed}";
xAddEventListener(window, "load", function() { doFocusUserId('fo_member_login'); });
</script>
<!-- XE 로그인 폼 -->
<div class="memberSmallBox">
<div class="header">{$lang->cmd_login}</div>
<form action="./" method="post" onsubmit="return procFilter(this, login)" id="fo_member_login">
<fieldset class="login">
<dl>
<dt><label for="uid">{$lang->user_id}</label></dt>
<dd><input type="text" name="user_id" id="uid" value="" class="inputTypeText w140" /></dd>
<dt><label for="upw">{$lang->password}</label></dt>
<dd><input type="password" name="password" id="upw" value="" class="inputTypeText w140" /></dd>
</dl>
<p class="keep">
<input type="checkbox" name="keep_signed" id="keepid_opt" value="Y" onclick="if(this.checked) return confirm(keep_signed_msg);"/>
<label for="keepid_opt">{$lang->keep_signed}</label>
</p>
<div class="buttonArea">
<span class="button black strong"><input type="submit" value="{$lang->cmd_login}" /></span>
</div>
</fieldset>
</form>
<div class="help tCenter">
<a href="{getUrl('act','dispMemberFindAccount')}"><span>{$lang->cmd_find_member_account}</span></a> |
<a href="{getUrl('act','dispMemberSignUpForm')}"><span>{$lang->cmd_signup}</span></a>
</div>
</div>
<!--@if($member_config->enable_openid=='Y')-->
<!-- OpenID 로그인 폼 -->
<div class="memberSmallBox">
<div class="header">{$lang->openid}</div>
<form action="{getUrl('module','member','act','procMemberOpenIDLogin')}" method="post" onsubmit="return procFilter(this, openid_login)">
<fieldset class="login">
<dl>
<dt><label for="open_uid">{$lang->user_id}</label></dt>
<dd><input type="text" name="openid" id="open_uid" value="" class="openid_user_id" /></dd>
</dl>
<span class="button black strong"><input type="submit" value="{$lang->cmd_login}" /></span>
</fieldset>
<input type="hidden" name="referer_url" value="{$referer_url}" />
</form>
<div class="help tLeft">{$lang->about_openid}</div>
</div>
<!--@end-->
<!--#include("./common_footer.html")-->

View file

@ -4,19 +4,19 @@
<form action="./" method="get" onsubmit="return procFilter(this, logout)">
<input type="hidden" name="mid" value="{$mid}" />
<div class="memberSmallBox w400">
<div class="header">
<h3>{$lang->cmd_logout}</h3>
</div>
<div class="text">
<p class="fwB">{$lang->confirm_logout}</p>
</div>
<h3>{$lang->cmd_logout}</h3>
<div class="help tCenter">
<span class="button"><input type="submit" value="{$lang->cmd_logout}" /></span>
<a href="{getUrl('act','','member_srl','')}" class="button"><span>{$lang->cmd_back}</span></a>
</div>
</div>
<table class="crossTable">
<tr>
<th class="title">{$lang->confirm_logout}</th>
</tr>
<tr>
<th class="button">
<span class="button black strong"><input type="submit" value="{$lang->cmd_logout}" /></span>
<a href="{getUrl('act','','member_srl','')}" class="button"><span>{$lang->cmd_back}</span></a>
</th>
</tr>
</table>
</form>
<!--#include("./common_footer.html")-->

View file

@ -1,81 +1,94 @@
{@ $member_title = $lang->cmd_view_member_info }
<!--#include("./common_header.html")-->
<table cellspacing="0" class="memberInfoTable">
<col width="140" />
<col />
<caption>{$lang->member_default_info}</caption>
<h3>{$lang->cmd_view_member_info}</h3>
<table cellspacing="0" class="rowTable">
<tr><th colspan="2" class="title"><div>{$lang->member_default_info}</div></th></tr>
<tr>
<th scope="row">{$lang->user_name}</th>
<td>{htmlspecialchars($member_info->user_name)}</td>
<th><div>{$lang->user_name}</div></th>
<td class="wide">{htmlspecialchars($member_info->user_name)}</td>
</tr>
<tr>
<th scope="row">{$lang->nick_name}</th>
<th><div>{$lang->nick_name}</div></th>
<td>{htmlspecialchars($member_info->nick_name)}</td>
</tr>
<!--@if($member_info->profile_image->src)-->
<tr>
<th scope="row">{$lang->profile_image}</th>
<th><div>{$lang->profile_image}</div></th>
<td><img src="{$member_info->profile_image->src}" border="0" alt="profile_image" /></td>
</tr>
<!--@end-->
<!--@if($member_info->image_name->src)-->
<tr>
<th scope="row">{$lang->image_name}</th>
<th><div>{$lang->image_name}</div></th>
<td><img src="{$member_info->image_name->src}" border="0" alt="image_name" /></td>
</tr>
<!--@end-->
<!--@if($member_info->image_mark->src)-->
<tr>
<th scope="row">{$lang->image_mark}</th>
<th><div>{$lang->image_mark}</div></th>
<td><img src="{$member_info->image_mark->src}" border="0" alt="image_mark" /></td>
</tr>
<!--@end-->
<tr>
<th scope="row">{$lang->homepage}</th>
<th><div>{$lang->homepage}</div></th>
<td><!--@if($member_info->homepage)--><a href="{htmlspecialchars($member_info->homepage)}" onclick="window.open(this.href); return false;">{htmlspecialchars($member_info->homepage)}</a><!--@else-->&nbsp;<!--@end--></td>
</tr>
<tr>
<th scope="row">{$lang->blog}</th>
<th><div>{$lang->blog}</div></th>
<td><!--@if($member_info->blog)--><a href="{htmlspecialchars($member_info->blog)}" onclick="window.open(this.href); return false;">{htmlspecialchars($member_info->blog)}</a><!--@else-->&nbsp;<!--@end--></td>
</tr>
<tr>
<th scope="row">{$lang->birthday}</th>
<th><div>{$lang->birthday}</div></th>
<td><!--@if($member_info->birthday)-->{zdate($member_info->birthday,"Y-m-d")}<!--@else-->&nbsp;<!--@end--></td>
</tr>
<!--@if($member_info->signature)-->
<tr>
<th scope="row">{$lang->signature}</th>
<th><div>{$lang->signature}</div></th>
<td>{$member_info->signature}</td>
</tr>
<!--@end-->
<tr>
<th scope="row">{$lang->group}</th>
<th><div>{$lang->group}</div></th>
<td><!--@foreach($member_info->group_list as $key => $val)-->{$val} <!--@end--></td>
</tr>
<tr>
<th scope="row">{$lang->signup_date}</th>
<th><div>{$lang->signup_date}</div></th>
<td>{zdate($member_info->regdate,"Y-m-d H:i")}</td>
</tr>
<!--@if($member_info->member_srl == $logged_info->member_srl || $logged_info->is_admin == 'Y' )-->
<tr>
<th scope="row">{$lang->last_login}</th>
<th><div>{$lang->last_login}</div></th>
<td>{zdate($member_info->last_login,"Y-m-d H:i")}</td>
</tr>
<!--@end-->
</table>
<!--@if($member_config->enable_openid=="Y")-->
<!--@if(sizeof($openids) > 0)-->
<tr>
<th colspan="2" class="title"><div>{$lang->openid} </div></th>
</tr>
<!--@foreach($openids as $openid)-->
<tr>
<th><div>{$lang->openid}</div></th>
<td> <a href="{$openid->bookmarklet}">{$openid->openid}</a> </td>
</tr>
<!--@end-->
<!--@end-->
<!--@end-->
<!--@if($extend_form_list)-->
<table cellspacing="0" class="memberInfoTable">
<col width="140" />
<col />
<caption>{$lang->member_extend_info}</caption>
<tr>
<th class="title" colspan="2"><div>{$lang->member_extend_info}</div></th>
</tr>
{@ $dummy_chk = 0 }
<!--@foreach($extend_form_list as $key => $val)-->
<tr <!--@if($dummy_chk==0)-->class="first-child" {@ $dummy_chk = 1; }<!--@end-->>
<th>
{htmlspecialchars($val->column_title)}
<div>
{htmlspecialchars($val->column_title)}
</div>
</th>
<td>
<!--@if($val->is_private)-->
@ -100,20 +113,21 @@
</td>
</tr>
<!--@end-->
</table>
<!--@end-->
<div class="tCenter">
<!--@if($member_info->member_srl == $logged_info->member_srl)-->
<a href="{getUrl('act','dispMemberModifyInfo','member_srl','')}" class="button"><span>{$lang->cmd_modify_member_info}</span></a>
<!--@if($logged_info->is_openid)-->
<a href="{getUrl('act','dispMemberOpenIDLeave','member_srl','')}" class="button"><span>{$lang->cmd_leave}</span></a>
<!--@else-->
<a href="{getUrl('act','dispMemberModifyPassword','member_srl','')}" class="button"><span>{$lang->cmd_modify_member_password}</span></a>
<a href="{getUrl('act','dispMemberLeave','member_srl','')}" class="button"><span>{$lang->cmd_leave}</span></a>
<tr>
<th colspan="2" class="button">
<!--@if($member_info->member_srl == $logged_info->member_srl)-->
<a href="{getUrl('act','dispMemberModifyInfo','member_srl','')}" class="button black strong"><span>{$lang->cmd_modify_member_info}</span></a>
<!--@if($logged_info->is_openid)-->
<a href="{getUrl('act','dispMemberOpenIDLeave','member_srl','')}" class="button red"><span>{$lang->cmd_leave}</span></a>
<!--@else-->
<a href="{getUrl('act','dispMemberModifyPassword','member_srl','')}" class="button green"><span>{$lang->cmd_modify_member_password}</span></a>
<a href="{getUrl('act','dispMemberLeave','member_srl','')}" class="button red"><span>{$lang->cmd_leave}</span></a>
<!--@end-->
<!--@end-->
<!--@end-->
<a href="{getUrl('act','','member_srl','')}" class="button"><span>{$lang->cmd_back}</span></a>
</div>
<a href="{getUrl('act','','member_srl','')}" class="button"><span>{$lang->cmd_back}</span></a>
</tr>
</table>
<!--#include("./common_footer.html")-->

View file

@ -1,4 +1,3 @@
{@ $member_title = $lang->msg_update_member}
<!--#include("./common_header.html")-->
<!--%import("../../tpl/js/signup_check.js")-->
<!--%import("../../tpl/js/krzip_search.js")-->
@ -16,9 +15,15 @@
<!--%import("filter/delete_image_mark.xml")-->
<!--@end-->
<!--@if($member_config->enable_openid=="Y")-->
<!--%import("filter/add_openid_to_member.xml")-->
<!--%import("filter/delete_openid_from_member.xml")-->
<!--@end-->
<!--// datepicker javascript plugin load -->
<!--%load_js_plugin("ui.datepicker")-->
<h3>{$lang->msg_update_member}</h3>
<form id="fo_insert_member" action="{getUrl()}" method="post" onsubmit="return procFilter(this, modify_info)" <!--@if($member_config->profile_image == 'Y' || $member_config->image_name=='Y' || $member_config->image_mark=='Y')-->enctype="multipart/form-data"<!--@end-->>
<input type="hidden" name="mid" value="{$mid}" />
@ -27,30 +32,28 @@
<input type="hidden" name="signature" value="{htmlspecialchars($member_info->signature)}" />
<input type="hidden" name="page" value="{$page}" />
<table cellspacing="0" class="memberInfoTable">
<col width="130" />
<col />
<caption>{$lang->member_default_info}</caption>
<tr class="first-child">
<th scope="row">{$lang->user_id}</th>
<td>{htmlspecialchars($member_info->user_id)}</td>
<table cellspacing="0" class="rowTable">
<tr><th colspan="2" class="title"><div>{$lang->member_default_info}</div></th></tr>
<tr>
<th><div>{$lang->user_id}</div></th>
<td class="wide">{htmlspecialchars($member_info->user_id)}</td>
</tr>
<tr>
<th scope="row">{$lang->user_name} *</th>
<td><input type="text" name="user_name" value="{htmlspecialchars($member_info->user_name)}" /> <p>{$lang->about_user_name}</p></td>
<th><div>{$lang->user_name} <span class="require">*</span></div></th>
<td class="wide"><input type="text" name="user_name" value="{htmlspecialchars($member_info->user_name)}" /> <p>{$lang->about_user_name}</p></td>
</tr>
<tr>
<th scope="row">{$lang->nick_name} *</th>
<th><div>{$lang->nick_name} <span class="require">*</span></div></th>
<td><input type="text" name="nick_name" value="{htmlspecialchars($member_info->nick_name)}" /> <p>{$lang->about_nick_name}</p></td>
</tr>
<tr>
<th scope="row">{$lang->email_address} *</th>
<th><div>{$lang->email_address} <span class="require">*</span></div></th>
<td><input type="text" name="email_address" value="{htmlspecialchars($member_info->email_address)}" /><p>{$lang->about_email_address}</p></td>
</tr>
<!--@if($member_config->profile_image == 'Y')-->
<tr>
<th scope="row">{$lang->profile_image}</th>
<th><div>{$lang->profile_image}</div></th>
<td>
<!--@if($member_info->profile_image->src)-->
<div class="memberImage">
@ -69,7 +72,7 @@
<!--@end-->
<!--@if($member_config->image_name == 'Y')-->
<tr>
<th scope="row">{$lang->image_name}</th>
<th><div>{$lang->image_name}</div></th>
<td>
<!--@if($member_info->image_name->src)-->
<div class="memberImage">
@ -88,7 +91,7 @@
<!--@end-->
<!--@if($member_config->image_mark == 'Y')-->
<tr>
<th scope="row">{$lang->image_mark}</th>
<th><div>{$lang->image_mark}</div></th>
<td>
<!--@if($member_info->image_mark->src)-->
<div class="memberImage">
@ -106,15 +109,15 @@
</tr>
<!--@end-->
<tr>
<th scope="row">{$lang->homepage}</th>
<th><div>{$lang->homepage}</div></th>
<td><input type="text" name="homepage" value="{htmlspecialchars($member_info->homepage)}" /> <p>{$lang->about_homepage}</p></td>
</tr>
<tr>
<th scope="row">{$lang->blog}</th>
<th><div>{$lang->blog}</div></th>
<td><input type="text" name="blog" value="{htmlspecialchars($member_info->blog)}" /> <p>{$lang->about_blog_url}</p></td>
</tr>
<tr>
<th scope="row">{$lang->birthday}</th>
<th><div>{$lang->birthday}</div></th>
<td>
<input type="hidden" name="birthday" value="{$member_info->birthday}" />
@ -124,30 +127,22 @@
</td>
</tr>
<tr>
<th scope="row">{$lang->allow_mailing}</th>
<th><div>{$lang->allow_mailing}</div></th>
<td><input type="checkbox" name="allow_mailing" value="Y" class="checkbox" <!--@if($member_info->allow_mailing!='N')-->checked="checked"<!--@end--> /> <p>{$lang->about_allow_mailing}</p></td>
</tr>
<tr>
<th scope="row">{$lang->signature}</th>
<th><div>{$lang->signature}</div></th>
<td>{$editor}</td>
</tr>
</table>
<!--@if($extend_form_list)-->
<table cellspacing="0" class="memberInfoTable">
<col width="130" />
<col />
<caption>{$lang->member_extend_info}</caption>
<tr><th colspan="2" class="title"><div>{$lang->member_extend_info}</div></th></tr>
{@ $dummy_chk = 0 }
<!--@foreach($extend_form_list as $key => $val)--><!--@if($val->is_active=='Y')-->
<tr <!--@if($dummy_chk==0)-->class="first-child" {@ $dummy_chk = 1; }<!--@end-->>
<th scope="row">
<th>
{htmlspecialchars($val->column_title)}
<!--@if($val->required=='Y')-->*<!--@end-->
<div class="publicItem">
<input type="checkbox" class="checkbox" name="open_{$val->column_name}" <!--@if($val->is_opened)-->checked="checked"<!--@end--> value="Y" id="open_{$val->column_name}" />
<label for="open_{$val->column_name}">{$lang->public}</label>
</div>
<!--@if($val->required=='Y')--><span class="require">*</span><!--@end-->
</th>
<td>
<!--// 일반 text -->
@ -227,19 +222,42 @@
<!--@end-->
<div class="extendDesc">{$val->description}</div>
<p>{$val->description}</p>
<div class="publicItem">
<input type="checkbox" class="checkbox" name="open_{$val->column_name}" <!--@if($val->is_opened)-->checked="checked"<!--@end--> value="Y" id="open_{$val->column_name}" />
<label for="open_{$val->column_name}">{$lang->public}</label>
</div>
</td>
</tr>
<!--@end--><!--@end-->
</table>
<!--@end-->
<div class="tRight">
<span class="button"><input type="submit" value="{$lang->cmd_registration}" accesskey="s" /></span>
<a href="{getUrl('act','dispMemberInfo','member_srl','')}" class="button"><span>{$lang->cmd_cancel}</span></a>
</div>
<!--@if($member_config->enable_openid=="Y")-->
<tr><th class="title" colspan="2"><div>{$lang->openid}</div></th></tr>
<tr>
<td colspan="2" class="openids">
<!--@foreach($openids as $openid)-->
<div><a href="{$openid->bookmarklet}">{$openid->openid}</a> <a onclick="doDeleteOpenIDFromMember('{$openid->openid}')" class="buttonSet buttonDelete"><span>{$lang->cmd_delete}</span></a></div>
<!--@end-->
<div class="insertOpenID">
<input name="openid" type="text" class="openid_user_id" />
<input name="openid_to_delete" type="hidden" />
<a onclick="doAddOpenIDToMember()" class="button"><span>{$lang->cmd_insert}</span></a>
</div>
</td>
</tr>
<!--@end-->
<tr>
<th class="button" colspan="2">
<span class="button black strong"><input type="submit" value="{$lang->cmd_registration}" accesskey="s" /></span>
<a href="{getUrl('act','dispMemberInfo','member_srl','')}" class="button"><span>{$lang->cmd_cancel}</span></a>
</th>
</tr>
</table>
</form>
<script type="text/javascript">
(function($){
$(function(){

View file

@ -1,24 +1,22 @@
{@ $member_title = $lang->cmd_modify_member_password }
<!--#include("./common_header.html")-->
<!--%import("filter/modify_password.xml")-->
<h3>{$member_title = $lang->cmd_modify_member_password}</h3>
<form id="fo_insert_member" action="./" method="get" onsubmit="return procFilter(this, modify_password)">
<input type="hidden" name="mid" value="{$mid}" />
<input type="hidden" name="document_srl" value="{$document_srl}" />
<input type="hidden" name="page" value="{$page}" />
<table cellspacing="0" class="memberInfoTable gap1" title="{$lang->cmd_modify_member_password}">
<col width="140" />
<col />
<table cellspacing="0" class="rowTable" title="{$lang->cmd_modify_member_password}">
<tr>
<th scope="row">{$lang->user_id}</th>
<td>{$member_info->user_id}</td>
<th scope="row"><div>{$lang->user_id}</div></th>
<td class="wide">{$member_info->user_id}</td>
</tr>
<tr>
<th scope="row"><label for="cpw">{$lang->current_password}</label></th>
<th scope="row"><div><label for="cpw">{$lang->current_password}</label></div></th>
<td><input type="password" name="current_password" id="cpw" class="inputTypeText" /></td>
</tr>
<tr>
<th scope="row"><label for="npw1">{$lang->password1}</label></th>
<th scope="row"><div><label for="npw1">{$lang->password1}</label></div></th>
<td>
<input type="password" name="password1" id="npw1" class="inputTypeText" />
<br />
@ -28,13 +26,13 @@
<p>{$lang->about_password}</p>
</td>
</tr>
<tr>
<th class="button" colspan="2">
<span class="button black strong"><input type="submit" value="{$lang->cmd_registration}" accesskey="s" /></span>
<a href="{getUrl('act','dispMemberInfo','member_srl','')}" class="button"><span>{$lang->cmd_back}</span></a>
</th>
</tr>
</table>
<div class="help tCenter">
<span class="button"><input type="submit" value="{$lang->cmd_registration}" accesskey="s" /></span>
<a href="{getUrl('act','dispMemberInfo','member_srl','')}" class="button"><span>{$lang->cmd_back}</span></a>
</div>
</form>
<!--#include("./common_footer.html")-->

View file

@ -1,28 +1,28 @@
{@ $member_title = $lang->msg_leave_member}
<!--#include("./common_header.html")-->
<!--%import("filter/openid_leave_member.xml")-->
<form id="fo_insert_member" action="./" method="get" onsubmit="return procFilter(this, openid_leave_member)">
<input type="hidden" name="mid" value="{$mid}" />
<input type="hidden" name="document_srl" value="{$document_srl}" />
<input type="hidden" name="page" value="{$page}" />
<h3>{$member_title = $lang->msg_leave_member}</h3>
<table cellspacing="0" class="memberInfoTable gap1" title="$lang->msg_leave_member}">
<col width="140" />
<col />
<tr class="first-child">
<th scope="row">{$lang->user_id}</th>
<td>
<form id="fo_insert_member" action="./" method="get" onsubmit="return procFilter(this, openid_leave_member)">
<input type="hidden" name="mid" value="{$mid}" />
<input type="hidden" name="document_srl" value="{$document_srl}" />
<input type="hidden" name="page" value="{$page}" />
<table cellspacing="0" class="rowTable" title="$lang->msg_leave_member}">
<tr>
<th><div>{$lang->user_id}</div></th>
<td class="wide">
{$member_info->user_id}
<p>{$lang->about_openid_leave}</p>
</td>
</tr>
<tr>
<th class="button" colspan="2">
<span class="button black strong"><input type="submit" value="{$lang->cmd_leave}" accesskey="s" /></span>
<a href="{getUrl('act','dispMemberInfo','member_srl','')}" class="button"><span>{$lang->cmd_back}</span></a>
</th>
</tr>
</table>
<div class="help tCenter">
<span class="button"><input type="submit" value="{$lang->cmd_leave}" accesskey="s" /></span>
<a href="{getUrl('act','dispMemberInfo','member_srl','')}" class="button"><span>{$lang->cmd_back}</span></a>
</div>
</form>
<!--#include("./common_footer.html")-->

View file

@ -1,40 +1,35 @@
{@ $member_title = $lang->cmd_view_saved_document }
<!--#include("./common_header.html")-->
<!-- 정보 -->
<div class="boardInformation">
Total : <strong>{number_format($total_count)}</strong>,
Page <strong>{number_format($page)}</strong>/{number_format($total_page)}
</div>
<h3>{$member_title = $lang->cmd_view_saved_document}</h3>
<!-- 목록 -->
<table cellspacing="0" class="list">
<table cellspacing="0" class="colTable">
<caption>Total : {number_format($total_count)}, Page {number_format($page)}/{number_format($total_page)}</caption>
<thead>
<tr>
<th scope="col"><div>{$lang->date}</th>
<th scope="col" class="wide"><div>{$lang->title}</th>
<th scope="col"><div>{$lang->cmd_delete}</th>
<tr class="title">
<th class="title"><div>{$lang->date}</th>
<th class="title"><div>{$lang->title}</th>
<th class="title"><div>{$lang->cmd_delete}</th>
</tr>
</thead>
<tbody>
<!--@foreach($document_list as $no => $val)-->
<tr class="bg{($no+1)%2+1}">
<td class="registDate">{$val->getRegdate("Y-m-d H:i:s")}</td>
<td class="title">
<tr>
<td class="nowrap">{$val->getRegdate("Y-m-d H:i:s")}</td>
<td class="wide">
<div><a href="#" onclick="jQuery('#saved_document_{$val->document_srl}').toggle(); return false;">{$val->getTitle()}</a></div>
<div id="saved_document_{$val->document_srl}" class="saved_content" style="display:none;">{$val->getContent(false)}</div>
<div id="saved_document_{$val->document_srl}" class="savedContent" style="display:none;">{$val->getContent(false)}</div>
</td>
<td><a href="#" onclick="doDeleteSavedDocument('{$val->document_srl}','{$lang->confirm_delete}'); return false;" class="button"><span>{$lang->cmd_delete}</span></a></td>
<td><a href="#" onclick="doDeleteSavedDocument('{$val->document_srl}','{$lang->confirm_delete}'); return false;" class="buttonSet buttonDelete"><span>{$lang->cmd_delete}</span></a></td>
</tr>
<!--@end-->
<tr>
<th colspan="3" class="button">
<a href="{getUrl('act','','selected_module_srl','')}" class="button"><span>{$lang->cmd_back}</span></a>
</th>
</tr>
</tbody>
</table>
<!-- 버튼 -->
<div class="tRight gap1">
<a href="{getUrl('act','','selected_module_srl','')}" class="button"><span>{$lang->cmd_back}</span></a>
</div>
<!-- 페이지 네비게이션 -->
<div class="pagination a1">
<a href="{getUrl('page','','module_srl','')}" class="prevEnd">{$lang->first_page}</a>

View file

@ -1,63 +1,49 @@
<!--#include("./common_header.html")-->
<!--%import("css/default.css")-->
<div class="memberSmallBox w600pop">
<div id="memberModule">
<div class="header">
<h3>{$lang->cmd_view_saved_document}</h3>
<div id="popHeader" class="wide">
<h3 class="xeAdmin">{$lang->cmd_view_saved_document}</h3>
</div>
<div class="complex">
<!-- 정보 -->
<div class="boardInformation">
Total : <strong>{number_format($total_count)}</strong>,
Page <strong>{number_format($page)}</strong>/{number_format($total_page)}
</div>
<!-- 목록 -->
<table cellspacing="0" class="list">
<col width="120" />
<col />
<col width="100" />
<thead>
<tr>
<th scope="col">{$lang->date}</th>
<th scope="col">{$lang->title}</th>
<th scope="col">{$lang->cmd_select}</th>
</tr>
</thead>
<tbody>
<!--@foreach($document_list as $no => $val)-->
<tr class="bg{($no+1)%2+1}">
<td class="registDate">{$val->getRegdate("Y-m-d H:i:s")}</td>
<td class="subject">
<div><a href="#" onclick="jQuery('#saved_document_{$val->document_srl}').toggle(); setFixedPopupSize(); return false;">{$val->getTitle()}</a></div>
<div id="saved_document_{$val->document_srl}" class="saved_content" style="display:none;">{$val->getContent(false)}</div>
</td>
<td><a href="#" onclick="doDocumentSelect('{$val->document_srl}'); return false;" class="button"><span>{$lang->cmd_select}</span></a></td>
</tr>
<!--@end-->
</tbody>
</table>
<!-- 페이지 네비게이션 -->
<div class="pagination a1">
<a href="{getUrl('page','','module_srl','')}" class="prevEnd">{$lang->first_page}</a>
<!--@while($page_no = $page_navigation->getNextPage())-->
<!--@if($page == $page_no)-->
<strong>{$page_no}</strong>
<!--@else-->
<a href="{getUrl('page',$page_no,'module_srl','')}">{$page_no}</a>
<div id="popBody">
<div id="memberModule">
<!-- 목록 -->
<table cellspacing="0" class="colTable">
<caption>Total : {number_format($total_count)}, Page {number_format($page)}/{number_format($total_page)}</caption>
<thead>
<tr>
<th class="title"><div>{$lang->date}</div></th>
<th class="title"><div>{$lang->title}</div></th>
<th class="title"><div>{$lang->cmd_select}</div></th>
</tr>
</thead>
<tbody>
<!--@foreach($document_list as $no => $val)-->
<tr>
<td class="nowrap">{$val->getRegdate("Y-m-d H:i:s")}</td>
<td class="wide">
<div><a href="#" onclick="jQuery('#saved_document_{$val->document_srl}').toggle(); setFixedPopupSize(); return false;">{$val->getTitle()}</a></div>
<div id="saved_document_{$val->document_srl}" class="saved_content" style="display:none;">{$val->getContent(false)}</div>
</td>
<td><a href="#" onclick="doDocumentSelect('{$val->document_srl}'); return false;" class="buttonSet buttonActive"><span>{$lang->cmd_select}</span></a></td>
</tr>
<!--@end-->
<!--@end-->
<a href="{getUrl('page',$page_navigation->last_page,'module_srl','')}" class="nextEnd">{$lang->last_page}</a>
</tbody>
</table>
<!-- 페이지 네비게이션 -->
<div class="pagination a1">
<a href="{getUrl('page','','module_srl','')}" class="prevEnd">{$lang->first_page}</a>
<!--@while($page_no = $page_navigation->getNextPage())-->
<!--@if($page == $page_no)-->
<strong>{$page_no}</strong>
<!--@else-->
<a href="{getUrl('page',$page_no,'module_srl','')}">{$page_no}</a>
<!--@end-->
<!--@end-->
<a href="{getUrl('page',$page_navigation->last_page,'module_srl','')}" class="nextEnd">{$lang->last_page}</a>
</div>
</div>
</div>
<div class="tCenter help">
<a href="#" onclick="window.close(); return false;" class="button"><span>{$lang->cmd_close}</span></a>
</div>
</div>
<!--#include("./common_footer.html")-->

View file

@ -1,43 +1,37 @@
{@ $member_title = $lang->cmd_view_scrapped_document }
<!--#include("./common_header.html")-->
<!-- 정보 -->
<div class="boardInformation">
Total : <strong>{number_format($total_count)}</strong>,
Page <strong>{number_format($page)}</strong>/{number_format($total_page)}
</div>
<h3>{$member_title = $lang->cmd_view_scrapped_document}</h3>
<!-- 목록 -->
<table cellspacing="0" class="list">
<table cellspacing="0" class="colTable">
<caption>Total : {number_format($total_count)}, Page {number_format($page)}/{number_format($total_page)}</caption>
<thead>
<tr>
<th scope="col"><div>{$lang->no}</div></th>
<th scope="col" class="wide"><div>{$lang->title}</div></th>
<th scope="col"><div>{$lang->writer}</div></th>
<th scope="col"><div>{$lang->date}</div></th>
<th scope="col"><div>{$lang->cmd_delete}</div></th>
<th class="title"><div>{$lang->no}</div></th>
<th class="title" class="wide"><div>{$lang->title}</div></th>
<th class="title"><div>{$lang->writer}</div></th>
<th class="title"><div>{$lang->date}</div></th>
<th class="title"><div>{$lang->cmd_delete}</div></th>
</tr>
</thead>
<tbody>
<!--@foreach($document_list as $no => $val)-->
<tr class="bg{($no+1)%2+1}">
<td class="num">{$no}</td>
<td class="title">
<a href="{getUrl('','document_srl',$val->document_srl)}" onclick="window.open(this.href);return false;">{htmlspecialchars($val->title)}</a>
</td>
<td class="author"><div class="member_{$val->target_member_srl}">{$val->nick_name}</div></td>
<td class="registDate">{zdate($val->regdate, "Y-m-d H:i")}</td>
<td><a href="#" onclick="doDeleteScrap({$val->document_srl}); return false;" class="button"><span>{$lang->cmd_delete}</span></a></td>
<tr>
<td>{$no}</td>
<td class="wide"><a href="{getUrl('','document_srl',$val->document_srl)}" onclick="window.open(this.href);return false;">{htmlspecialchars($val->title)}</a></td>
<td class="nowrap"><div class="member_{$val->target_member_srl}">{$val->nick_name}</div></td>
<td class="nowrap">{zdate($val->regdate, "Y-m-d H:i")}</td>
<td><a href="#" onclick="doDeleteScrap({$val->document_srl}); return false;" class="buttonSet buttonDelete"><span>{$lang->cmd_delete}</span></a></td>
</tr>
<!--@end-->
<tr>
<th class="button" colspan="5">
<a href="{getUrl('act','','selected_module_srl','')}" class="button"><span>{$lang->cmd_back}</span></a>
</th>
</tr>
</tbody>
</table>
<!-- 버튼 -->
<div class="tRight gap1">
<a href="{getUrl('act','','selected_module_srl','')}" class="button"><span>{$lang->cmd_back}</span></a>
</div>
<!-- 페이지 네비게이션 -->
<div class="pagination a1">
<a href="{getUrl('page','','module_srl','')}" class="prevEnd">{$lang->first_page}</a>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.1 KiB

View file

@ -7,9 +7,7 @@
<!--#include("./common_header.html")-->
<div class="boardHeader">
<h3>{$lang->cmd_signup}</h3>
</div>
<h3>{$lang->cmd_signup}</h3>
<form id="fo_insert_member" action="./" method="get" onsubmit="return procFilter(this, signup)">
<input type="hidden" name="mid" value="{$mid}" />
@ -26,89 +24,74 @@
</div>
<!--@end-->
<table cellspacing="0" class="memberInfoTable">
<col width="20%" />
<col width="80%" />
<caption>{$lang->member_default_info}</caption>
<tr class="first-child">
<th scope="row">{$lang->user_id} *</th>
<td><input type="text" name="user_id" value="" /> <p>{$lang->about_user_id}</p> </td>
<table cellspacing="0" class="rowTable">
<tr>
<th colspan="2" class="title"><div>{$lang->member_default_info}</div></th>
</tr>
<tr>
<th scope="row">{$lang->password} *</th>
<td><input type="password" name="password1" value="" /><p>{$lang->about_password}</p></td>
<th><div>{$lang->user_id} <span class="require">*</span></div></th>
<td class="wide"><input type="text" name="user_id" value="" class="inputTypeText"/> <p>{$lang->about_user_id}</p> </td>
</tr>
<tr>
<th scope="row">{$lang->password2} *</th>
<td><input type="password" name="password2" value="" /></td>
<th><div>{$lang->password} <span class="require">*</span></div></th>
<td><input type="password" name="password1" value="" class="inputTypeText"/><p>{$lang->about_password}</p></td>
</tr>
<tr>
<th scope="row">{$lang->user_name} *</th>
<th><div>{$lang->password2} <span class="require">*</span></div></th>
<td><input type="password" name="password2" value="" class="inputTypeText"/></td>
</tr>
<tr>
<th><div>{$lang->user_name} <span class="require">*</span></div></th>
<td>
<input type="text" name="user_name" value="" />
<p>{$lang->about_user_name}</p>
<input type="text" name="user_name" value="" class="inputTypeText"/><p>{$lang->about_user_name}</p>
</td>
</tr>
<tr>
<th scope="row">{$lang->nick_name} *</th>
<th><div>{$lang->nick_name} <span class="require">*</span></div></th>
<td>
<input type="text" name="nick_name" value="" />
<p>{$lang->about_nick_name}</p>
<input type="text" name="nick_name" value="" class="inputTypeText"/><p>{$lang->about_nick_name}</p>
</td>
</tr>
<tr>
<th scope="row">{$lang->email_address} *</th>
<th><div>{$lang->email_address} <span class="require">*</span></div></th>
<td>
<input type="text" name="email_address" value="" />
<p>{$lang->about_email_address}</p>
<input type="text" name="email_address" value="" class="inputTypeText"/><p>{$lang->about_email_address}</p>
</td>
</tr>
<tr>
<th scope="row">{$lang->homepage}</th>
<th><div>{$lang->homepage}</div></th>
<td>
<input type="text" name="homepage" value="" />
<p>{$lang->about_homepage}</p>
<input type="text" name="homepage" value="" class="inputTypeText"/><p>{$lang->about_homepage}</p>
</td>
</tr>
<tr>
<th scope="row">{$lang->blog}</th>
<th><div>{$lang->blog}</div></th>
<td>
<input type="text" name="blog" value="" />
<p>{$lang->about_blog_url}</p>
<input type="text" name="blog" value="" class="inputTypeText"/><p>{$lang->about_blog_url}</p>
</td>
</tr>
<tr>
<th scope="row">{$lang->birthday}</th>
<th><div>{$lang->birthday}</div></th>
<td>
<input type="hidden" name="birthday" id="date_birthday" value="" />
<input type="text" class="inputDate" value="" readonly="readonly" />
<p>{$lang->about_birthday}</p>
<input type="text" value="" readonly="readonly" class="inputDate inputTypeText" /><p>{$lang->about_birthday}</p>
</td>
</tr>
<tr>
<th scope="row">{$lang->allow_mailing}</th>
<th><div>{$lang->allow_mailing}</div></th>
<td><input type="checkbox" class="checkbox" name="allow_mailing" value="Y" checked="checked" /> <p>{$lang->about_allow_mailing}</p></td>
</tr>
</table>
<!--@if($extend_form_list)-->
<table cellspacing="0" class="memberInfoTable">
<col width="20%" />
<col width="80%" />
<caption>{$lang->member_extend_info}</caption>
{@ $dummy_chk = 0 }
<!--@foreach($extend_form_list as $key => $val)--><!--@if($val->is_active=='Y')-->
<tr <!--@if($dummy_chk==0)-->class="first-child" {@ $dummy_chk = 1; }<!--@end-->>
<th scope="row">
{htmlspecialchars($val->column_title)}
<!--@if($val->required=='Y')-->*<!--@end-->
<div class="publicItem">
<input type="checkbox" class="checkbox" name="open_{$val->column_name}" value="Y" id="open_{$val->column_name}" />
<label for="open_{$val->column_name}">{$lang->public}</label>
</div>
</th>
<tr>
<th class="title" colspan="2"><div>{$lang->member_extend_info}</div></th>
</tr>
<!--@foreach($extend_form_list as $key => $val)--><!--@if($val->is_active=='Y')-->
<tr>
<th>
{htmlspecialchars($val->column_title)}
<!--@if($val->required=='Y')--><span class="require">*</span><!--@end-->
</th>
<td>
<!--// 일반 text -->
<!--@if($val->column_type == 'text')-->
@ -156,7 +139,7 @@
<!--@elseif($val->column_type == 'kr_zip')-->
<div class="krZip">
<div id="zone_address_1_{$val->column_name}" style="display:<!--@if($val->value[0])-->inline<!--@else-->none<!--@end-->;">
<input type="text" name="{$val->column_name}" value="{$val->value[0]}" class="w400"/>
<input type="text" name="{$val->column_name}" value="{$val->value[0]}" class="inputTypeText w400"/>
<a href="#" onclick="doHideKrZipList('{$val->column_name}'); return false;" class="button"><span>{$lang->cmd_cancel}</span></a>
</div>
<div id="zone_address_list_{$val->column_name}" style="display:none">
@ -165,12 +148,12 @@
<a href="#" onclick="doHideKrZipList('{$val->column_name}'); return false;" class="button"><span>{$lang->cmd_cancel}</span></a>
</div>
<div id="zone_address_search_{$val->column_name}" style="display:<!--@if($val->value[0])-->none<!--@else-->inline<!--@end-->;">
<input type="text" name="_tmp_address_search_{$val->column_name}" class="w400" value="" />
<input type="text" name="_tmp_address_search_{$val->column_name}" class="inputTypeText w400" value="" />
<a href="#" onclick="doSearchKrZip('{$val->column_name}'); return false;" class="button"><span>{$lang->cmd_search}</span></a>
</div>
<div class="address2">
<input type="text" name="{$val->column_name}" value="{htmlspecialchars($val->value[1])}" class="w400" />
<input type="text" name="{$val->column_name}" value="{htmlspecialchars($val->value[1])}" class="inputTypeText w400" />
</div>
</div>
@ -181,25 +164,28 @@
<!--// 날짜 입력 -->
<!--@elseif($val->column_type == 'date')-->
<input type="hidden" name="{$val->column_name}" id="date_{$val->column_name}" value="{$val->value}" />
<input type="text" class="inputDate" value="{zdate($val->value,'Y-m-d')}" readonly="readonly" />
<input type="text" class="inputDate inputTypeText" value="{zdate($val->value,'Y-m-d')}" readonly="readonly" />
<!--@end-->
<div class="extendDesc">{$val->description}</div>
<p>{$val->description}</p>
<div class="publicItem">
<input type="checkbox" class="checkbox" name="open_{$val->column_name}" value="Y" id="open_{$val->column_name}" />
<label for="open_{$val->column_name}">{$lang->public}</label>
</div>
</td>
</tr>
<!--@end--><!--@end-->
</table>
<!--@end--><!--@end-->
<!--@end-->
<div class="tCenter">
<span class="button"><input type="submit" value="{$lang->cmd_registration}" accesskey="s" /></span>
<!--@if($popup)-->
<a href="#" class="button" onclick="window.close();return false;"><span>{$lang->cmd_close}</span></a>
<!--@else-->
<a href="{getUrl('act','','member_srl','')}" class="button"><span>{$lang->cmd_cancel}</span></a>
<!--@end-->
</div>
<tr>
<th class="button" colspan="2">
<span class="button black strong"><input type="submit" value="{$lang->cmd_registration}" accesskey="s" /></span>
<a href="{getUrl('act','','member_srl','')}" class="button"><span>{$lang->cmd_cancel}</span></a>
</th>
</tr>
</table>
</form>
<script type="text/javascript">
(function($){
$(function(){

View file

@ -56,7 +56,7 @@
</author>
<colorset>
<color name="white" src="screenshot/white.gif">
<color name="white">
<title xml:lang="ko">기본</title>
<title xml:lang="zh-CN">默认</title>
<title xml:lang="jp">デフォルト</title>
@ -65,50 +65,5 @@
<title xml:lang="ru">умолчанию</title>
<title xml:lang="zh-TW">預設</title>
</color>
<color name="cyan" src="screenshot/cyan.gif">
<title xml:lang="ko">청록색</title>
<title xml:lang="jp">青緑</title>
<title xml:lang="zh-CN">青绿色</title>
<title xml:lang="en">cyan</title>
<title xml:lang="es">Cian</title>
<title xml:lang="ru">бирюзовый</title>
<title xml:lang="zh-TW">青綠色</title>
</color>
<color name="green" src="screenshot/green.gif">
<title xml:lang="ko">초록색</title>
<title xml:lang="jp"></title>
<title xml:lang="zh-CN">绿色</title>
<title xml:lang="en">green</title>
<title xml:lang="es">Verde</title>
<title xml:lang="ru">зеленый</title>
<title xml:lang="zh-TW">綠色</title>
</color>
<color name="red" src="screenshot/red.gif">
<title xml:lang="ko">빨간색</title>
<title xml:lang="jp"></title>
<title xml:lang="zh-CN">红色</title>
<title xml:lang="en">red</title>
<title xml:lang="es">Roja</title>
<title xml:lang="ru">красный</title>
<title xml:lang="zh-TW">紅色</title>
</color>
<color name="purple" src="screenshot/purple.gif">
<title xml:lang="ko">보라색</title>
<title xml:lang="jp"></title>
<title xml:lang="zh-CN">紫色</title>
<title xml:lang="en">purple</title>
<title xml:lang="es">Púrpura</title>
<title xml:lang="ru">Лиловый</title>
<title xml:lang="zh-TW">紫色</title>
</color>
<color name="black" src="screenshot/black.gif">
<title xml:lang="ko">검은색</title>
<title xml:lang="jp"></title>
<title xml:lang="en">Black</title>
<title xml:lang="ru">Черного</title>
<title xml:lang="es">Negro</title>
<title xml:lang="zh-CN">黑色</title>
<title xml:lang="zh-TW">黑色</title>
</color>
</colorset>
</skin>

View file

@ -9,7 +9,7 @@
<label for="colorset_{$key}">{$val->title}</label>
<!--@if($val->screenshot)-->
<br />
<img src="{$val->screenshot}" alt="{$val->title}" style="border:1px solid #888888;padding:2px;margin:2px;"/>
<img src="../../../{$val->screenshot}" alt="{$val->title}" style="border:1px solid #888888;padding:2px;margin:2px;"/>
<!--@end-->
</div>
<!--@if($key%2==1)--><div class="clear"></div><!--@end-->

View file

@ -6,3 +6,8 @@
span.publicItem { display:inline; margin:0; font-weight:normal; color:#666666; }
.display_date { cursor:pointer; width:80px; float:left; border:1px solid; border-color:#a6a6a6 #d8d8d8 #d8d8d8 #a6a6a6; height:1em; padding:3px; }
.ui-sortable { list-style:none; margin:0; padding:0; }
.ui-sortable li { display:block; width:100%; border:1px solid #E5E5E5; background:#F6F6F6; padding:5px; margin:3px 0; }
.ui-sortable li.active { cursor:move; }

Some files were not shown because too many files have changed in this diff Show more