issue 2590 improve member config.

git-svn-id: http://xe-core.googlecode.com/svn/branches/maserati@11742 201d5d3c-b55e-5fd7-737f-ddc643e51545
This commit is contained in:
devjin 2012-10-16 11:55:42 +00:00
parent e26413fe4e
commit ab79cd53c7
29 changed files with 718 additions and 1156 deletions

View file

@ -22,16 +22,15 @@
<action name="dispSavedDocumentList" type="view" standalone="true" />
<action name="dispMemberAdminList" type="view" standalone="true" index="true" admin_index="true" menu_name="userList" menu_index="true"/>
<!--action name="dispMemberAdminConfig" type="view" menu_name="userSetting" menu_index="true" /-->
<action name="dispMemberAdminConfig" type="view" menu_name="userSetting" menu_index="true" />
<action name="dispMemberAdminSignUpConfig" type="view" menu_name="userSetting" />
<action name="dispMemberAdminLoginConfig" type="view" menu_name="userSetting" />
<action name="dispMemberAdminDesignConfig" type="view" menu_name="userSetting" />
<action name="dispMemberAdminInsert" type="view" menu_name="userList" />
<action name="dispMemberAdminDeleteForm" type="view" standalone="true" />
<action name="dispMemberAdminGroupList" type="view" menu_name="userGroup" menu_index="true" />
<action name="dispMemberAdminJoinFormList" type="view" standalone="true" />
<action name="dispMemberAdminInfo" type="view" menu_name="userList" />
<action name="dispMemberAdminInsertJoinForm" type="view" standalone="true" />
<action name="dispMemberAdminDeniedIDList" type="view" standalone="true" />
<action name="dispMemberAdminManageGroup" type="view" standalone="true" />
<action name="dispMemberAdminDeleteMembers" type="view" standalone="true" />
<action name="getMemberMenu" type="model" standalone="true" />
<action name="getMemberAdminColorset" type="model" standalone="true" />
@ -72,7 +71,10 @@
<action name="procMemberAdminInsert" type="controller" standalone="true" ruleset="insertAdminMember" />
<action name="procMemberAdminDelete" type="controller" standalone="true" />
<action name="procMemberAdminInsertConfig" type="controller" standalone="true" ruleset="insertConfig" />
<action name="procMemberAdminInsertDefaultConfig" type="controller" ruleset="insertDefaultConfig" />
<action name="procMemberAdminInsertSignupConfig" type="controller" />
<action name="procMemberAdminInsertLoginConfig" type="controller" />
<action name="procMemberAdminInsertDesignConfig" type="controller" />
<action name="procMemberAdminInsertGroup" type="controller" standalone="true" ruleset="insertGroup" />
<action name="procMemberAdminUpdateGroup" type="controller" standalone="true" ruleset="updateGroup" />
<action name="procMemberAdminDeleteGroup" type="controller" standalone="true" ruleset="deleteGroup" />

View file

@ -729,7 +729,7 @@
<value xml:lang="vi"><![CDATA[Xin hãy nhập tên của Webmaster để nhận Email và quản lý. (Mặc định: webmaster)]]></value>
</item>
<item name="about_webmaster_email">
<value xml:lang="ko"><![CDATA[웹마스터의 메일 주소를 입력해주세요.]]></value>
<value xml:lang="ko"><![CDATA[인증 메일이나 기타 사이트 관리 시 사용될 웹마스터의 메일 주소를 입력해주세요.]]></value>
<value xml:lang="en"><![CDATA[Please enter webmaster's email address.]]></value>
<value xml:lang="jp"><![CDATA[ウェブマスターのメールアドレスを入力してください。]]></value>
<value xml:lang="zh-CN"><![CDATA[请输入网站管理员的电子邮件地址。]]></value>
@ -1851,7 +1851,7 @@
<value xml:lang="vi"><![CDATA[Cho phép thành viên đăng kí.]]></value>
</item>
<item name="about_enable_confirm">
<value xml:lang="ko"><![CDATA[입력된 메일 주소로 인증 메일을 보내 회원 가입을 확인합니다.]]></value>
<value xml:lang="ko"><![CDATA[입력된 메일 주소로 인증 메일을 보내 회원 가입을 확인합니다. 가입자가 인증메일을 통해 인증절차를 완료해야만 정상적으로 로그인이 가능해집니다.]]></value>
<value xml:lang="en"><![CDATA[Please check if you want new members to activate their accounts via their emails.]]></value>
<value xml:lang="jp"><![CDATA[登録されたメールアドレスに確認メールを送信し、会員登録を確認します。]]></value>
<value xml:lang="zh-CN"><![CDATA[为激活会员注册信息,将向会员输入的邮件地址发送注册认证邮件。]]></value>
@ -1898,7 +1898,7 @@
<value xml:lang="vi"><![CDATA[Thành viên không thể đăng nhập nếu quá hạn xác nhận đăng kí.]]></value>
</item>
<item name="about_after_login_url">
<value xml:lang="ko"><![CDATA[로그인 후 이동할 URL을 정하실 수 있습니다. 비어 있으면 해당 페이지가 유지됩니다.]]></value>
<value xml:lang="ko"><![CDATA[로그인 후 이동할 URL을 정하실 수 있습니다. 입력 URL이 없는 경우 해당 페이지가 유지됩니다.]]></value>
<value xml:lang="en"><![CDATA[You can set a URL after login. Blank means the current page.]]></value>
<value xml:lang="jp"><![CDATA[ログイン後表示されるページのURLを指定できます。指定のない場合、現在のページが維持されます。]]></value>
<value xml:lang="zh-CN"><![CDATA[可以指定登录后的页面转向url(留空为当前页面)。]]></value>
@ -1909,7 +1909,7 @@
<value xml:lang="vi"><![CDATA[Bạn có thể thiết đặt địa chỉ nào đó sẽ hiển thị sau khi đăng nhập. Để trống nếu không sử dụng.]]></value>
</item>
<item name="about_after_logout_url">
<value xml:lang="ko"><![CDATA[로그아웃 후 이동할 URL을 정하실 수 있습니다. 비어 있으면 해당 페이지가 유지됩니다.]]></value>
<value xml:lang="ko"><![CDATA[로그아웃 후 이동할 URL을 정하실 수 있습니다. 입력 URL이 없는 경우 해당 페이지가 유지됩니다.]]></value>
<value xml:lang="en"><![CDATA[You can set a URL after logout. Blank means the current page.]]></value>
<value xml:lang="jp"><![CDATA[ログアウト後表示されるページのURLを指定できます。指定のない場合、現在のページが維持されます。]]></value>
<value xml:lang="zh-CN"><![CDATA[可以指定退出登录后的页面转向url(留空为当前页面)。]]></value>
@ -1920,7 +1920,7 @@
<value xml:lang="vi"><![CDATA[Bạn có thể thiết đặt địa chỉ nào đó sẽ hiển thị sau khi thoát. Để trống nếu không sử dụng.]]></value>
</item>
<item name="about_redirect_url">
<value xml:lang="ko"><![CDATA[회원 가입 후 이동할 url을 입력해 주세요. 비어 있으면 가입 이전 페이지로 돌아갑니다.]]></value>
<value xml:lang="ko"><![CDATA[회원 가입 후 이동할 url을 입력해 주세요. 입력 url이 없는 경우 이전 페이지로 돌아갑니다.]]></value>
<value xml:lang="en"><![CDATA[Please enter a URL where users will go after sign up. When this is empty, it will be set as the previous page of the sign up page.]]></value>
<value xml:lang="jp"><![CDATA[会員登録後、表示されるページのURLを指定できます。指定のない場合は会員登録する前のページに戻ります。]]></value>
<value xml:lang="zh-CN"><![CDATA[请输入注册会员后的页面转向 url。(留空为返回前页)]]></value>
@ -2039,28 +2039,6 @@
<value xml:lang="ko"><![CDATA[임시 비밀번호가 정상적으로 발급되었습니다.<br />로그인 후 반드시 비밀번호를 변경하시기 바랍니다.<br/>]]></value>
<value xml:lang="zh-TW"><![CDATA[已發送臨時密碼。<br />請登入後修改密碼。<br/>]]></value>
</item>
<item name="about_member">
<value xml:lang="ko"><![CDATA[회원을 생성/수정/삭제 할 수 있고 그룹관리나 가입 폼 관리 등을 할 수 있는 회원 관리 모듈입니다.
기본으로 생성된 그룹외의 그룹을 생성하여 회원 관리가 가능하고 가입 폼 관리를 통한 기본 정보외의 추가 정보를 요구할 수도 있습니다.]]></value>
<value xml:lang="en"><![CDATA[Member module will help you create, modify and remove members and manage groups or the sign up form.
You can add a custom group to manage members, and also get additional information by modifying the sign up form.]]></value>
<value xml:lang="jp"><![CDATA[会員の作成・修正・削除することができ、グループの管理、登録フォームの管理などが行える会員管理モジュールです。
デフォルトで作成されたグループにグループを追加作成して会員管理ができるようにし、会員登録フォーム管理では基本情報の他、フォームの入力情報を追加することができます。]]></value>
<value xml:lang="zh-CN"><![CDATA[可以添加/修改/删除会员及管理用户组或注册表单的会员管理模块。
此模块不仅可以生成缺省用户组以外的其他用户组来管理会员,并且通过注册表单的管理获得除会员基本信息以外的扩展信息。]]></value>
<value xml:lang="zh-TW"><![CDATA[可以新增/修改/刪除會員及管理群組或註冊表單的會員管理模組。
此模組不僅可以建立預設群組以外的其他群組來管理會員,並且通過註冊表單的管理獲得會員基本資料以外的延伸資料。]]></value>
<value xml:lang="fr"><![CDATA[C'est le module pour administrer des membres avec lequel vous pouvez créer/modifier/supprimer des membres ou administrer les groupes et la formule d'inscription.
Vous pouvez administrer membres par création un nouveau groupe, ou gagner les informations additionnelles par l'administration la formule d'inscrioption.]]></value>
<value xml:lang="ru"><![CDATA[Этот модуль служит для создания/изменения/удаления пользователей, управления их группами и формой регистрации.
Вы можете управлять пользователями посредством создания новых групп, и получить дополнительную информацию, управляя формой регистрации]]></value>
<value xml:lang="es"><![CDATA[Esto es un módulo para crear/modificar/eliminar usuarios y manejar grupos o el formato del registro.
Usted puede manejar usuarios creando nuevos grupos, y obtener información adicional manejando el formato del registro]]></value>
<value xml:lang="tr"><![CDATA[Üye modülü size; üyeleri oluşturmada, düzenlemede, silmede ve kayıt formunu ya da grupları düzenlemede yardımcı olur.
Üyeleri yönetmek için özel gruplar ekleyebilir ve aynı zamanda kayıt formunu değiştirerek üyeler hakkında ek bilgi alabilirsiniz.]]></value>
<value xml:lang="vi"><![CDATA[Chức năng của Module này sẽ cho phép bạn tạo, sửa, xóa thành viên và quản lý nhóm hay Form đăng kí.
Bạn có thể quản lý thành viên bằng cách tạo những nhóm mới, và thêm những thông tin trong Form đăng kí.]]></value>
</item>
<item name="about_ssl_port">
<value xml:lang="ko"><![CDATA[기본 포트 이외의 보안접속(SSL) 포트를 사용하는 경우 포트번호를 입력해주세요.]]></value>
<value xml:lang="en"><![CDATA[Please enter if you are using non-default SSL port]]></value>
@ -2497,7 +2475,7 @@ Bạn có thể quản lý thành viên bằng cách tạo những nhóm mới,
<value xml:lang="ko"><![CDATA[회원정보 동기화]]></value>
</item>
<item name="about_member_sync">
<value xml:lang="ko"><![CDATA[회원정보와 게시물댓글 정보를 동기화 합니다. 데이터가 많은 경우 시간이 오래 소요될 수 있습니다. 이용자가 많은 경우 반드시 서비스를 중단하시고 진행하시기 바랍니다.]]></value>
<value xml:lang="ko"><![CDATA[회원정보와 게시물/댓글 정보를 동기화 합니다. 데이터가 많은 경우 시간이 오래 소요될 수 있습니다. <strong>이용자가 많은 경우 반드시 서비스를 중단하시고 진행하시기 바랍니다.</strong>]]></value>
</item>
<item name="msg_success_modify_email_address">
<value xml:lang="ko"><![CDATA[이메일 주소가 정상적으로 변경되었습니다. 변경된 이메일 주소로 로그인 가능합니다.]]></value>

View file

@ -126,28 +126,35 @@
$this->setMessage("success_deleted");
}
/**
* Set config of member
* @return void|Object (void : success, Object : fail)
**/
function procMemberAdminInsertConfig(){
$input_args = Context::gets(
public function procMemberAdminInsertDefaultConfig()
{
$args = Context::gets(
'enable_join',
'enable_confirm',
'webmaster_name',
'webmaster_email',
'webmaster_email'
);
$oModuleController = getController('module');
$output = $oModuleController->updateModuleConfig('member', $args);
// default setting end
$this->setMessage('success_updated');
$returnUrl = Context::get('success_return_url') ? Context::get('success_return_url') : getNotEncodedUrl('', 'module', 'admin', 'act', 'dispMemberAdminDefaultConfig');
$this->setRedirectUrl($returnUrl);
}
public function procMemberAdminInsertSignupConfig()
{
$oMemberModel = getModel('member');
$oModuleController = getController('module');
$args = Context::gets(
'enable_confirm',
'limit_day',
'change_password_date',
'max_error_count','max_error_count_time',
'agreement',
'after_login_url',
'after_logout_url',
'redirect_url',
'layout_srl',
'skin',
'colorset',
'mlayout_srl',
'mskin',
'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',
@ -158,99 +165,87 @@
$usable_list = Context::get('usable_list');
$all_args = Context::getRequestVars();
$oModuleController = &getController('module');
$oMemberModel = &getModel('member');
// default setting start
if($input_args->enable_join != 'Y'){
$args->enable_join = 'N';
}else{
$args = $input_args;
$args->enable_join = 'Y';
if($args->enable_confirm !='Y') $args->enable_confirm = 'N';
$args->limit_day = (int)$args->limit_day;
if(!$args->change_password_date) $args->change_password_date = 0;
if(!trim(strip_tags($args->agreement)))
{
$agreement_file = _XE_PATH_.'files/member_extra_info/agreement_' . Context::get('lang_type') . '.txt';
FileHandler::removeFile($agreement_file);
$args->agreement = null;
}
if(!trim(strip_tags($args->after_login_url))) $args->after_login_url = null;
if(!trim(strip_tags($args->after_logout_url))) $args->after_logout_url = null;
if(!trim(strip_tags($args->redirect_url))) $args->redirect_url = null;
if(!$args->skin) $args->skin = 'default';
if(!$args->colorset) $args->colorset = 'white';
if(!$args->mskin) $args->mskin = 'default';
$args->profile_image = $args->profile_image?'Y':'N';
$args->image_name = $args->image_name?'Y':'N';
$args->image_mark = $args->image_mark?'Y':'N';
if($args->signature!='Y') $args->signature = 'N';
$args->identifier = $all_args->identifier;
$args->layout_srl = $args->layout_srl ? $args->layout_srl : null;
$args->mlayout_srl = $args->mlayout_srl ? $args->mlayout_srl : null;
// set default
$all_args->is_nick_name_public = 'Y';
$all_args->is_find_account_question_public = 'N';
// signupForm
global $lang;
$signupForm = array();
$items = array('user_id', 'password', 'user_name', 'nick_name', 'email_address', 'find_account_question', 'homepage', 'blog', 'birthday', 'signature', 'profile_image', 'image_name', 'image_mark', 'profile_image_max_width', 'profile_image_max_height', 'image_name_max_width', 'image_name_max_height', 'image_mark_max_width', 'image_mark_max_height');
$mustRequireds = array('email_address', 'nick_name', 'password', 'find_account_question');
$extendItems = $oMemberModel->getJoinFormList();
foreach($list_order as $key){
unset($signupItem);
$signupItem->isIdentifier = ($key == $all_args->identifier);
$signupItem->isDefaultForm = in_array($key, $items);
$signupItem->name = $key;
if(!in_array($key, $items)) $signupItem->title = $key;
else $signupItem->title = $lang->{$key};
$signupItem->mustRequired = in_array($key, $mustRequireds);
$signupItem->imageType = (strpos($key, 'image') !== false);
$signupItem->required = ($all_args->{$key} == 'required') || $signupItem->mustRequired || $signupItem->isIdentifier;
$signupItem->isUse = in_array($key, $usable_list) || $signupItem->required;
$signupItem->isPublic = ($all_args->{'is_'.$key.'_public'} == 'Y' && $signupItem->isUse) ? 'Y' : 'N';
if ($signupItem->imageType){
$signupItem->max_width = $all_args->{$key.'_max_width'};
$signupItem->max_height = $all_args->{$key.'_max_height'};
}
// set extends form
if (!$signupItem->isDefaultForm){
$extendItem = $extendItems[$all_args->{$key.'_member_join_form_srl'}];
$signupItem->type = $extendItem->column_type;
$signupItem->member_join_form_srl = $extendItem->member_join_form_srl;
$signupItem->title = $extendItem->column_title;
$signupItem->description = $extendItem->description;
// check usable value change, required/option
if ($signupItem->isUse != ($extendItem->is_active == 'Y') || $signupItem->required != ($extendItem->required == 'Y')){
unset($update_args);
$update_args->member_join_form_srl = $extendItem->member_join_form_srl;
$update_args->is_active = $signupItem->isUse?'Y':'N';
$update_args->required = $signupItem->required?'Y':'N';
$update_output = executeQuery('member.updateJoinForm', $update_args);
}
unset($extendItem);
}
$signupForm[] = $signupItem;
}
$args->signupForm = $signupForm;
// create Ruleset
$this->_createSignupRuleset($signupForm, $args->agreement);
$this->_createLoginRuleset($args->identifier);
$this->_createFindAccountByQuestion($args->identifier);
if($args->enable_confirm !='Y')
{
$args->enable_confirm = 'N';
}
$args->limit_day = (int)$args->limit_day;
if(!trim(strip_tags($args->agreement)))
{
$agreement_file = _XE_PATH_.'files/member_extra_info/agreement_' . Context::get('lang_type') . '.txt';
FileHandler::removeFile($agreement_file);
$args->agreement = NULL;
}
if(!trim(strip_tags($args->redirect_url)))
{
$args->redirect_url = NULL;
}
$args->profile_image = $args->profile_image ? 'Y' : 'N';
$args->image_name = $args->image_name ? 'Y' : 'N';
$args->image_mark = $args->image_mark ? 'Y' : 'N';
$args->signature = $args->signature != 'Y' ? 'N' : 'Y';
$args->identifier = $all_args->identifier;
// set default
$all_args->is_nick_name_public = 'Y';
$all_args->is_find_account_question_public = 'N';
// signupForm
global $lang;
$signupForm = array();
$items = array('user_id', 'password', 'user_name', 'nick_name', 'email_address', 'find_account_question', 'homepage', 'blog', 'birthday', 'signature', 'profile_image', 'image_name', 'image_mark', 'profile_image_max_width', 'profile_image_max_height', 'image_name_max_width', 'image_name_max_height', 'image_mark_max_width', 'image_mark_max_height');
$mustRequireds = array('email_address', 'nick_name', 'password', 'find_account_question');
$extendItems = $oMemberModel->getJoinFormList();
foreach($list_order as $key)
{
unset($signupItem);
$signupItem->isIdentifier = ($key == $all_args->identifier);
$signupItem->isDefaultForm = in_array($key, $items);
$signupItem->name = $key;
if(!in_array($key, $items)) $signupItem->title = $key;
else $signupItem->title = $lang->{$key};
$signupItem->mustRequired = in_array($key, $mustRequireds);
$signupItem->imageType = (strpos($key, 'image') !== false);
$signupItem->required = ($all_args->{$key} == 'required') || $signupItem->mustRequired || $signupItem->isIdentifier;
$signupItem->isUse = in_array($key, $usable_list) || $signupItem->required;
$signupItem->isPublic = ($all_args->{'is_'.$key.'_public'} == 'Y' && $signupItem->isUse) ? 'Y' : 'N';
if ($signupItem->imageType){
$signupItem->max_width = $all_args->{$key.'_max_width'};
$signupItem->max_height = $all_args->{$key.'_max_height'};
}
// set extends form
if (!$signupItem->isDefaultForm)
{
$extendItem = $extendItems[$all_args->{$key.'_member_join_form_srl'}];
$signupItem->type = $extendItem->column_type;
$signupItem->member_join_form_srl = $extendItem->member_join_form_srl;
$signupItem->title = $extendItem->column_title;
$signupItem->description = $extendItem->description;
// check usable value change, required/option
if ($signupItem->isUse != ($extendItem->is_active == 'Y') || $signupItem->required != ($extendItem->required == 'Y')){
unset($update_args);
$update_args->member_join_form_srl = $extendItem->member_join_form_srl;
$update_args->is_active = $signupItem->isUse?'Y':'N';
$update_args->required = $signupItem->required?'Y':'N';
$update_output = executeQuery('member.updateJoinForm', $update_args);
}
unset($extendItem);
}
$signupForm[] = $signupItem;
}
$args->signupForm = $signupForm;
// create Ruleset
$this->_createSignupRuleset($signupForm, $args->agreement);
$this->_createLoginRuleset($args->identifier);
$this->_createFindAccountByQuestion($args->identifier);
// check agreement value exist
if($args->agreement)
@ -265,7 +260,80 @@
// default setting end
$this->setMessage('success_updated');
$returnUrl = Context::get('success_return_url') ? Context::get('success_return_url') : getNotEncodedUrl('', 'module', 'admin', 'act', 'dispMemberAdminConfig');
$returnUrl = Context::get('success_return_url') ? Context::get('success_return_url') : getNotEncodedUrl('', 'module', 'admin', 'act', 'dispMemberAdminSignUpConfig');
$this->setRedirectUrl($returnUrl);
}
public function procMemberAdminInsertLoginConfig()
{
$oModuleController = getController('module');
$args = Context::gets(
'change_password_date',
'enable_login_fail_report',
'max_error_count',
'max_error_count_time',
'after_login_url',
'after_logout_url'
);
if(!$args->change_password_date)
{
$args->change_password_date = 0;
}
if(!trim(strip_tags($args->after_login_url)))
{
$args->after_login_url = NULL;
}
if(!trim(strip_tags($args->after_logout_url)))
{
$args->after_logout_url = NULL;
}
$output = $oModuleController->updateModuleConfig('member', $args);
// default setting end
$this->setMessage('success_updated');
$returnUrl = Context::get('success_return_url') ? Context::get('success_return_url') : getNotEncodedUrl('', 'module', 'admin', 'act', 'dispMemberAdminLoginConfig');
$this->setRedirectUrl($returnUrl);
}
public function procMemberAdminInsertDesignConfig()
{
$oModuleController = getController('module');
$args = Context::gets(
'layout_srl',
'skin',
'colorset',
'mlayout_srl',
'mskin'
);
$args->layout_srl = $args->layout_srl ? $args->layout_srl : NULL;
if(!$args->skin)
{
$args->skin = 'default';
}
if(!$args->colorset)
{
$args->colorset = 'white';
}
$args->mlayout_srl = $args->mlayout_srl ? $args->mlayout_srl : NULL;
if(!$args->mskin)
{
$args->mskin = 'default';
}
$output = $oModuleController->updateModuleConfig('member', $args);
// default setting end
$this->setMessage('success_updated');
$returnUrl = Context::get('success_return_url') ? Context::get('success_return_url') : getNotEncodedUrl('', 'module', 'admin', 'act', 'dispMemberAdminDesignConfig');
$this->setRedirectUrl($returnUrl);
}

View file

@ -21,25 +21,45 @@
**/
var $memberInfo = NULL;
/**
* Member module config.
*
* @var Object
**/
var $memberConfig = NULL;
/**
* initialization
*
* @return void
**/
function init() {
function init()
{
$oMemberModel = &getModel('member');
$this->memberConfig = $oMemberModel->getMemberConfig();
Context::set('config', $this->memberConfig);
// if member_srl exists, set memberInfo
$member_srl = Context::get('member_srl');
if($member_srl) {
$this->memberInfo = $oMemberModel->getMemberInfoByMemberSrl($member_srl); if(!$this->memberInfo) Context::set('member_srl',''); else Context::set('member_info',$this->memberInfo); }
if($member_srl)
{
$this->memberInfo = $oMemberModel->getMemberInfoByMemberSrl($member_srl);
if(!$this->memberInfo)
{
Context::set('member_srl','');
}
else
{
Context::set('member_info',$this->memberInfo);
}
}
// retrieve group list
$this->group_list = $oMemberModel->getGroups();
Context::set('group_list', $this->group_list);
$security = new Security();
$security->encodeHTML('group_list..');
$security->encodeHTML('group_list..', 'config..');
$this->setTemplatePath($this->module_path.'tpl');
}
@ -70,7 +90,7 @@
$output->data[$key]->group_list = $oMemberModel->getMemberGroups($member->member_srl,0);
}
}
$config = $oMemberModel->getMemberConfig();
$config = $this->memberConfig;
$memberIdentifiers = array('user_id'=>'user_id', 'user_name'=>'user_name', 'nick_name'=>'nick_name');
$usedIdentifiers = array();
@ -96,18 +116,100 @@
$this->setTemplateFile('member_list');
}
/**
* Set the default config.
*
* @return void
*/
public function dispMemberAdminConfig()
{
$this->setTemplateFile('default_config');
}
public function dispMemberAdminSignUpConfig()
{
$config = $this->memberConfig;
$oMemberModel = getModel('member');
// retrieve skins of editor
$oEditorModel = getModel('editor');
Context::set('editor_skin_list', $oEditorModel->getEditorSkinList());
// get an editor
$option->primary_key_name = 'temp_srl';
$option->content_key_name = 'agreement';
$option->allow_fileupload = false;
$option->enable_autosave = false;
$option->enable_default_component = true;
$option->enable_component = true;
$option->resizable = true;
$option->height = 300;
$editor = $oEditorModel->getEditor(0, $option);
Context::set('editor', $editor);
$signupForm = $config->signupForm;
foreach($signupForm as $val)
{
if($val->name == 'user_id')
{
$userIdInfo = $val;
break;
}
}
if($userIdInfo->isUse)
{
// get denied ID list
Context::set('useUserID', 1);
$denied_list = $oMemberModel->getDeniedIDs();
Context::set('deniedIDs', $denied_list);
}
// get denied NickName List
$deniedNickNames = $oMemberModel->getDeniedNickNames();
Context::set('deniedNickNames', $deniedNickNames);
$this->setTemplateFile('signup_config');
}
public function dispMemberAdminLoginConfig()
{
$this->setTemplateFile('login_config');
}
public function dispMemberAdminDesignConfig()
{
$oModuleModel = getModel('module');
// Get a layout list
$oLayoutModel = &getModel('layout');
$layout_list = $oLayoutModel->getLayoutList();
Context::set('layout_list', $layout_list);
$mlayout_list = $oLayoutModel->getLayoutList(0, 'M');
Context::set('mlayout_list', $mlayout_list);
// list of skins for member module
$skin_list = $oModuleModel->getSkins($this->module_path);
Context::set('skin_list', $skin_list);
// list of skins for member module
$mskin_list = $oModuleModel->getSkins($this->module_path, 'm.skins');
Context::set('mskin_list', $mskin_list);
$this->setTemplateFile('design_config');
}
/**
* default configuration for member management
*
* @return void
**/
function dispMemberAdminConfig()
function dispMemberAdminConfigOLD()
{
$oModuleModel = &getModel('module');
$oMemberModel = &getModel('member');
$config = $oMemberModel->getMemberConfig();
Context::set('config',$config);
// Get a layout list
$oLayoutModel = &getModel('layout');
@ -236,7 +338,7 @@
$formTags = $this->_getMemberInputTag($memberInfo, true);
Context::set('formTags', $formTags);
$member_config = $oMemberModel->getMemberConfig();
$member_config = $this->memberConfig;
global $lang;
$identifierForm->title = $lang->{$member_config->identifier};
@ -260,7 +362,7 @@
if ($memberInfo)
$memberInfo = get_object_vars($memberInfo);
$member_config = $oMemberModel->getMemberConfig();
$member_config = $this->memberConfig;
$formTags = array();
global $lang;
@ -442,55 +544,19 @@ EOD;
return $formTags;
}
/**
* display member delete form
*
* @return void
**/
function dispMemberAdminDeleteForm() {
if(!Context::get('member_srl')) return $this->dispMemberAdminList();
$this->setTemplateFile('delete_form');
}
/**
* display group list
*
* @return void
**/
function dispMemberAdminGroupList() {
function dispMemberAdminGroupList()
{
$oModuleModel = &getModel('module');
$config = $oModuleModel->getModuleConfig('member');
Context::set('config', $config);
$group_srl = Context::get('group_srl');
if($group_srl && $this->group_list[$group_srl]) {
Context::set('selected_group', $this->group_list[$group_srl]);
$this->setTemplateFile('group_update_form');
} else {
$this->setTemplateFile('group_list');
}
$output = $oModuleModel->getModuleFileBoxList();
Context::set('fileBoxList', $output->data);
}
/**
* Display a list of member join form
*
* @return void
**/
function dispMemberAdminJoinFormList() {
// Create a member model object
$oMemberModel = &getModel('member');
// Get join form list which is additionally set
$form_list = $oMemberModel->getJoinFormList();
Context::set('form_list', $form_list);
$security = new Security($form_list);
$security->encodeHTML('form_list..');
$this->setTemplateFile('join_form_list');
}
$this->setTemplateFile('group_list');
}
/**
* Display an admin page for memebr join forms
@ -515,62 +581,5 @@ EOD;
$this->setTemplateFile('insert_join_form');
}
/**
* Display denied ID list
*
* @return void
**/
function dispMemberAdminDeniedIDList() {
// Create a member model object
$oMemberModel = &getModel('member');
// Get a denied ID list
$output = $oMemberModel->getDeniedIDList();
Context::set('total_count', $output->total_count);
Context::set('total_page', $output->total_page);
Context::set('page', $output->page);
Context::set('member_list', $output->data);
Context::set('page_navigation', $output->page_navigation);
$security = new Security();
$security->encodeHTML('member_list..');
$this->setTemplateFile('denied_id_list');
}
/**
* Update all the member groups
*
* @return void
**/
function dispMemberAdminManageGroup() {
// Get a list of the selected member
$args->member_srl = trim(Context::get('member_srls'));
$output = executeQueryArray('member.getMembers', $args);
Context::set('member_list', $output->data);
// Get a list of the selected member
$oMemberModel = &getModel('member');
Context::set('member_groups', $oMemberModel->getGroups());
$security = new Security();
$security->encodeHTML('member_list..');
$this->setLayoutFile('popup_layout');
$this->setTemplateFile('manage_member_group');
}
/**
* Delete members
*
* @return void
**/
function dispMemberAdminDeleteMembers() {
// Get a list of the selected member
$args->member_srl = trim(Context::get('member_srls'));
$output = executeQueryArray('member.getMembers', $args);
Context::set('member_list', $output->data);
$this->setLayoutFile('popup_layout');
$this->setTemplateFile('delete_members');
}
}
?>

View file

@ -0,0 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<ruleset version="1.5.0">
<customrules>
</customrules>
<fields>
<field name="enable_join" required="true" />
<field name="webmaster_name" required="true" length="2:40" />
<field name="webmaster_email" length="1:200" rule="email" />
</fields>
</ruleset>

View file

@ -3,8 +3,6 @@
<customrules>
</customrules>
<fields>
<field name="webmaster_name" required="true" length="2:40" />
<field name="webmaster_email" length="1:200" rule="email" />
<field name="max_error_count" length="1:20" rule="number" />
<field name="max_error_count_time" length="1:20" rule="number" />
</fields>

View file

@ -0,0 +1,38 @@
<include target="header.html" />
<load target="js/default_config.js" />
<form action="./" class="x_form-horizontal" ruleset="insertDefaultConfig" method="post">
<input type="hidden" name="module" value="member" />
<input type="hidden" name="act" value="procMemberAdminInsertDefaultConfig" />
<input type="hidden" name="success_return_url" value="{getUrl('', 'module', 'admin', 'act', $act)}" />
<div class="x_control-group">
<p class="x_control-label">{$lang->enable_join}</p>
<div class="x_controls">
<label class="x_inline" for="enable_join_yes"><input type="radio" name="enable_join" id="enable_join_yes" value="Y" checked="checked"|cond="$config->enable_join == 'Y'" /> {$lang->cmd_yes}</label>
<label class="x_inline" for="enable_join_no"><input type="radio" name="enable_join" id="enable_join_no" value="N" checked="checked"|cond="$config->enable_join != 'Y'" /> {$lang->cmd_no}</label>
</div>
</div>
<div class="x_control-group">
<label class="x_control-label" for="webmaster_name">{$lang->webmaster_name}</label>
<div class="x_controls">
<input type="text" id="webmaster_name" name="webmaster_name" value="{$config->webmaster_name}" size="20" />
<p class="desc">{$lang->about_webmaster_name}</p>
</div>
</div>
<div class="x_control-group">
<label class="x_control-label" for="webmaster_email">{$lang->webmaster_email}</label>
<div class="x_controls">
<input type="text" id="webmaster_email" name="webmaster_email" value="{$config->webmaster_email}" size="40" />
<p class="desc">{$lang->about_webmaster_email}</p>
</div>
</div>
<div class="x_control-group">
<label class="x_control-label" for="member_sync">{$lang->cmd_member_sync}</label>
<div class="x_controls">
<input id="member_sync" type="button" value="{$lang->cmd_member_sync}" class="__sync x_btn x_btn-warning" />
<p class="description">{$lang->about_member_sync}</p>
</div>
</div>
<div class="x_clearfix">
<span class="x_pull-right"><input class="x_btn x_btn-large x_btn-primary" type="submit" value="{$lang->cmd_save}" /></span>
</div>
</form>

View file

@ -1,29 +0,0 @@
<!--%import("filter/delete_member.xml")-->
<load target="js/member_admin.js" usecdn="true" />
<!--#include("header.html")-->
<form action="./" method="get" onsubmit="return procFilter(this, delete_member)">
<input type="hidden" name="page" value="{$page}" />
<input type="hidden" name="member_srl" value="{$member_info->member_srl}" />
<h3 class="h3">{$lang->confirm_delete}</h3>
<div class="table">
<table width="100%" border="1" cellspacing="0">
<tr>
<th scope="row">{$lang->user_id}</th>
<td>{$member_info->user_id}</td>
</tr>
<tr>
<th scope="row">{$lang->nick_name}</th>
<td>{$member_info->nick_name}</td>
</tr>
<tr>
<th scope="row">{$lang->email_address}</th>
<td>{$member_info->email_address}</td>
</tr>
</table>
</div>
<div class="btnArea">
<span class="btn"><input type="submit" value="{$lang->cmd_delete}" /></span>
</div>
</form>

View file

@ -1,32 +0,0 @@
<!--%import("filter/delete_members.xml")-->
<load target="js/member_admin.js" usecdn="true" />
<h1 class="h1">{$lang->cmd_delete} ({$lang->target} : {count($member_list)})</h1>
<form action="./" method="get" id="fo_management" onsubmit="return procFilter(this, delete_members);">
<input type="hidden" name="target_member_srls" value="{$member_srls}" />
<div class="table">
<table width="100%" border="1" cellspacing="0">
<tr>
<th scope="col">{$lang->user_id}</th>
<th scope="col">{$lang->nick_name}</th>
<th scope="col">{$lang->signup_date}</th>
</tr>
<!--@foreach($member_list as $key => $val)-->
<tr>
<td>{$val->user_id}</td>
<td><a href="#popup_menu_area" class="member_{$val->member_srl}">{$val->nick_name}</a></td>
<td>{zdate($val->regdate, "Y-m-d H:i")}</td>
</tr>
<!--@end-->
</table>
</div>
<!--@if(count($member_list))-->
<div class="btnArea">
<span class="btn"><input type="submit" value="{$lang->cmd_delete}" /></span>
</div>
<!--@end-->
</form>

View file

@ -1,73 +0,0 @@
<!--#include("header.html")-->
<!--%import("filter/update_denied_id.xml")-->
<!-- 금지아이디의 삭제와 관련된 form -->
<form id="fo_denied_id_info" action="./" method="get">
<input type="hidden" name="user_id" value="" />
<input type="hidden" name="mode" value="" />
</form>
<!-- 목록 -->
<div class="table">
<table width="100%" border="1" cellspacing="0">
<thead>
<tr>
<th scope="col">{$lang->no}</th>
<th scope="col">{$lang->user_id}</th>
<th scope="col">{$lang->description}</th>
<th scope="col">{$lang->regdate}</th>
<th scope="col">&nbsp;</th>
</tr>
</thead>
<tbody>
<!--@foreach($member_list as $no => $val)-->
<tr class="row{$cycle_idx}">
<td>{$no}</td>
<td>{$val->user_id}</td>
<td>{$val->description}&nbsp;</td>
<td>{zdate($val->regdate,"Y-m-d")}</td>
<td><a href="#" onclick="doUpdateDeniedID('{$val->user_id}','delete','{$lang->confirm_delete}');return false;" title="{$lang->cmd_delete}" class="buttonSet buttonDelete"><span>{$lang->cmd_delete}</span></a></td>
</tr>
<!--@end-->
</tbody>
</table>
</div>
<!-- 페이지 네비게이션 -->
<div class="pagination">
<a href="{getUrl('page','','module_srl','')}" class="direction">&lsaquo; {$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="direction">{$lang->last_page} &rsaquo;</a>
</div>
<!-- 금지 아이디 추가 -->
<div cond="$XE_VALIDATOR_MESSAGE" class="message {$XE_VALIDATOR_MESSAGE_TYPE}">
<p>{$XE_VALIDATOR_MESSAGE}</p>
</div>
<form ruleset="insertDeniedId" action="./" method="post">
<input type="hidden" name="module" value="member" />
<input type="hidden" name="act" value="procMemberAdminInsertDeniedID" />
<input type="hidden" name="page" value="{$page}" />
<div class="table">
<table width="100%" border="1" cellspacing="0">
<tr>
<th scope="row">{$lang->user_id}</th>
<td ><input type="text" name="user_id" /></td>
</tr>
<tr>
<th scope="row">{$lang->description}</th>
<td ><textarea name="description" rows="8" cols="42"></textarea></td>
</tr>
</table>
</div>
<div class="btnArea">
<span class="btn"><input type="submit" value="{$lang->cmd_registration}" /></span>
</div>
</form>

View file

@ -0,0 +1,51 @@
<include target="header.html" />
<load target="js/design_config.js" />
<form action="./" class="x_form-horizontal" method="post">
<input type="hidden" name="module" value="member" />
<input type="hidden" name="act" value="procMemberAdminInsertDesignConfig" />
<input type="hidden" name="success_return_url" value="{getUrl('', 'module', 'admin', 'act', $act)}" />
<div class="x_control-group">
<label class="x_control-label" for="layout">{$lang->layout}</label>
<div class="x_controls">
<select id="layout" name="layout_srl">
<option value="0">{$lang->notuse}</option>
<option loop="$layout_list => $key,$val" value="{$val->layout_srl}" selected="selected"|cond="$val->layout_srl == $config->layout_srl">{$val->title} ({$val->layout})</option>
</select>
</div>
</div>
<div class="x_control-group">
<label class="x_control-label" for="skin">{$lang->skin}</label>
<div class="x_controls">
<select id="skin" name="skin" onchange="doGetSkinColorset(this.options[this.selectedIndex].value)">
<option loop="$skin_list=>$key,$val" value="{$key}" selected="selected"|cond="$config->skin==$key">{$val->title} ({$key})</option>
</select>
</div>
</div>
<div id="colorset" class="x_control-group" style="display:none"|cond="!$config->colorset">
<label class="x_control-label" for="member_colorset">{$lang->colorset}</label>
<div class="x_controls"><div id="member_colorset"></div></div>
</div>
<div class="x_control-group">
<label class="x_control-label" for="mlayout">{$lang->mobile_layout}</label>
<div class="x_controls">
<select id="mlayout" name="mlayout_srl">
<option value="0">{$lang->notuse}</option>
<option loop="$mlayout_list => $key,$val" value="{$val->layout_srl}" selected="selected"|cond="$val->layout_srl == $config->mlayout_srl">{$val->title} ({$val->layout})</option>
</select>
</div>
</div>
<div class="x_control-group">
<label class="x_control-label" for="mskin">{$lang->mobile_skin}</label>
<div class="x_controls">
<select id="mskin" name="mskin">
<option loop="$mskin_list=>$key,$val" value="{$key}" selected="selected"|cond="$config->mskin==$key">{$val->title} ({$key})</option>
</select>
</div>
</div>
<div class="x_clearfix">
<span class="x_pull-right"><input class="x_btn x_btn-large x_btn-primary" type="submit" value="{$lang->cmd_save}" /></span>
</div>
</form>
<script>
jQuery(function() { doGetSkinColorset("{$config->skin}"); });
</script>

View file

@ -1,49 +0,0 @@
<!--#include("header.html")-->
<!--%load_js_plugin("filebox")-->
<!-- 그룹 수정 -->
<!--@if($selected_group)-->
<div cond="$XE_VALIDATOR_MESSAGE" class="message {$XE_VALIDATOR_MESSAGE_TYPE}">
<p>{$XE_VALIDATOR_MESSAGE}</p>
</div>
<form ruleset="updateGroup" action="./" method="post">
<input type="hidden" name="module" value="member" />
<input type="hidden" name="act" value="procMemberAdminUpdateGroup" />
<input type="hidden" name="group_srl" value="{$selected_group->group_srl}" />
<input type="hidden" name="mode" value="update" />
<!--@if($selected_group->is_default=='Y')--><input type="hidden" name="is_default" value="Y" /><!--@end-->
<div class="table">
<table width="100%" border="1" cellspacing="0">
<tr>
<th scope="row">{$lang->group_title}</th>
<td ><input type="text" name="title" id="title" value="{$selected_group->title}"/></td>
</tr>
<!--@if($selected_group->is_default!='Y' && $selected_group->is_admin!='Y')-->
<tr>
<th scope="row">{$lang->is_default}</th>
<td ><input type="checkbox" name="is_default" value="Y" class="checkbox" /> {$lang->about_member_default}</td>
</tr>
<!--@end-->
<tr>
<th scope="row">{$lang->description}</th>
<td ><textarea name="description" rows="8" cols="42">{$selected_group->description}</textarea></td>
</tr>
<tr>
<th scope="row">{$lang->group_image_mark}</th>
<td >
<div id="filebox_preview_image_mark" style="width:100px;height:100px;<!--@if(!$selected_group->image_mark)-->display:none<!--@endif-->"></div>
<input type="hidden" name="image_mark" value="{$selected_group->image_mark}" />
<span class="button black"><button type="button" onclick="XE.filebox.open(jQuery('[name=image_mark]').get(0), 'jpg,jpeg,gif,png')">{$lang->cmd_select}</button></span>
<span id="filebox_cancel_image_mark" class="button red"<!--@if(!$selected_group->image_mark)--> style="display:none" <!--@endif-->><button type="button" onclick="XE.filebox.cancel('image_mark')">{$lang->cmd_delete}</button></span>
<script>//<![CDATA[
XE.filebox.init('image_mark');
//]]></script>
</td>
</tr>
</table>
</div>
<div class="btnArea">
<span class="btn"><input type="submit" value="{$lang->cmd_modify}" /></span>
</div>
</form>
<!--@end-->

View file

@ -1,17 +1,19 @@
<load target="js/member_admin.js" usecdn="true" />
<load target="css/member_admin.css" usecdn="true" />
<!--%load_js_plugin("ui")-->
<h3 class="xeAdmin">{$lang->member} <span class="gray">{$lang->cmd_management}</span></h3>
<div class="infoText">{nl2br($lang->about_member)}</div>
<div class="header4">
<ul class="localNavigation">
<li <!--@if($act=='dispMemberAdminList')-->class="on"<!--@end-->><a href="{getUrl('', 'module', 'admin', 'act','dispMemberAdminList','member_srl','')}">{$lang->cmd_member_list}</a></li>
<li <!--@if($act=='dispMemberAdminConfig')-->class="on"<!--@end-->><a href="{getUrl('', 'module', 'admin', 'act','dispMemberAdminConfig')}">{$lang->cmd_module_config}</a></li>
<li <!--@if($act=='dispMemberAdminGroupList')-->class="on"<!--@end-->><a href="{getUrl('', 'module', 'admin', 'act','dispMemberAdminGroupList')}">{$lang->cmd_member_group}</a></li>
<li <!--@if($act=='dispMemberAdminJoinFormList')-->class="on"<!--@end-->><a href="{getUrl('', 'module', 'admin', 'act','dispMemberAdminJoinFormList')}">{$lang->cmd_manage_form}</a></li>
<li <!--@if($act=='dispMemberAdminDeniedIDList')-->class="on"<!--@end-->><a href="{getUrl('', 'module', 'admin', 'act','dispMemberAdminDeniedIDList')}">{$lang->cmd_manage_id}</a></li>
</ul>
<load target="js/config.js" />
<div class="x_page-header">
<h1>{$lang->cmd_member_config}</h1>
</div>
<div cond="$XE_VALIDATOR_MESSAGE" class="message {$XE_VALIDATOR_MESSAGE_TYPE}">
<p>{$XE_VALIDATOR_MESSAGE}</p>
</div>
<ul class="x_nav x_nav-tabs">
<li class="x_active"|cond="$act == 'dispMemberAdminConfig'"><a href="{getUrl('', 'module', 'admin', 'act', 'dispMemberAdminConfig')}">{$lang->member_default_info}</a></li>
<li id="signupTab" class="x_active"|cond="$act == 'dispMemberAdminSignUpConfig'"><a href="{getUrl('', 'module', 'admin', 'act', 'dispMemberAdminSignUpConfig')}">{$lang->cmd_signup}</a></li>
<li class="x_active"|cond="$act == 'dispMemberAdminLoginConfig'"><a href="{getUrl('', 'module', 'admin', 'act', 'dispMemberAdminLoginConfig')}">{$lang->cmd_login}</a></li>
<li class="x_active"|cond="$act == 'dispMemberAdminDesignConfig'"><a href="{getUrl('', 'module', 'admin', 'act', 'dispMemberAdminDesignConfig')}">{$lang->cmd_set_design_info}</a></li>
</ul>
<script>
enableSignUpTab({$config->enable_join == 'Y' ? 'true' : 'false'});
</script>

View file

@ -1,4 +1,3 @@
<load target="js/member_admin.js" usecdn="true" />
<load target="js/krzip_search.js" usecdn="true" />
<!--%load_js_plugin("ui.datepicker")-->
<script>

View file

@ -1,46 +0,0 @@
<!--#include("header.html")-->
<!--%import("filter/update_join_form.xml")-->
<!-- 가입폼의 위/아래, 삭제와 관련된 form -->
<form id="fo_join_form_info" action="./" method="get">
<input type="hidden" name="member_join_form_srl" value="" />
<input type="hidden" name="mode" value="" />
</form>
<!-- 목록 -->
<div class="table even">
<table width="100%" border="1" cellspacing="0">
<thead>
<tr>
<th scope="col">{$lang->column_title}</th>
<th scope="col">{$lang->column_name}</th>
<th scope="col">{$lang->column_type}</th>
<th scope="col">{$lang->is_active}</th>
<th scope="col">{$lang->is_required}</th>
<th scope="col">{$lang->regdate}</th>
<th scope="col" colspan="4">&nbsp;</th>
</tr>
</thead>
<tbody>
<!--@foreach($form_list as $no => $val)-->
<tr>
<td>{$val->column_title}</td>
<td>{$val->column_name}</td>
<td>{$lang->column_type_list[$val->column_type]}</td>
<td>{$val->is_active}</td>
<td>{$val->required}</td>
<td>{zdate($val->regdate,"Y-m-d")}</td>
<td>
<button type="button" class="text" onclick="doUpdateJoinForm('{$val->member_join_form_srl}','up');return false;">{$lang->cmd_move_up}</button>
<button type="button" class="text" onclick="doUpdateJoinForm('{$val->member_join_form_srl}','down');return false;">{$lang->cmd_move_down}</button>
<a href="{getUrl('member_join_form_srl',$val->member_join_form_srl,'act','dispMemberAdminInsertJoinForm')}">{$lang->cmd_modify}...</a>
<button type="button" class="text" onclick="doUpdateJoinForm('{$val->member_join_form_srl}','delete','{$lang->confirm_delete}');return false;">{$lang->cmd_delete}</button>
</td>
</tr>
<!--@end-->
</tbody>
</table>
</div>
<div class="btnArea">
<span class="btn"><a href="{getUrl('act','dispMemberAdminInsertJoinForm','member_join_form_srl','')}">{$lang->cmd_make}</a></span>
</div>

View file

@ -0,0 +1,5 @@
function enableSignUpTab(isEnable)
{
var $ = jQuery;
$('#signupTab').toggle(isEnable);
}

View file

@ -0,0 +1,16 @@
jQuery(function($){
$('input[name=enable_join]').click(function(){
var checked = $('input[name=enable_join]:checked').val();
enableSignUpTab(checked == 'Y');
});
$('.__sync').click(function (){
exec_xml(
'importer', // module
'procImporterAdminSync', // act
null,
function(ret){if(ret && (!ret.error || ret.error == '0'))alert(ret.message);}, // callback
resp = ['error','message'] // response tags
);
});
});

View file

@ -0,0 +1,24 @@
/* 멤버 스킨 컬러셋 구해옴 */
function doGetSkinColorset(skin) {
var params = {skin:skin};
var response_tags = ['error','message','tpl'];
function on_complete(ret) {
jQuery('#colorset').show();
var $colorset = jQuery('#member_colorset'), old_h, new_h;
old_h = $colorset.height();
$colorset.html(ret.tpl);
new_h = $colorset.height();
try{ fixAdminLayoutFooter(new_h - old_h) }catch(e){ };
}
exec_xml(
'member',
'getMemberAdminColorset',
{skin:skin},
on_complete,
['error','message','tpl']
);
}

View file

@ -1,3 +1,7 @@
/**
* Deprecate this file.
*
*/
/* 사용자 추가 */
function completeInsert(ret_obj) {
var error = ret_obj['error'];

View file

@ -1,28 +1,3 @@
/* 멤버 스킨 컬러셋 구해옴 */
function doGetSkinColorset(skin) {
var params = {skin:skin};
var response_tags = ['error','message','tpl'];
function on_complete(ret) {
jQuery('#colorset').show();
var $colorset = jQuery('#member_colorset'), old_h, new_h;
old_h = $colorset.height();
$colorset.html(ret.tpl);
new_h = $colorset.height();
try{ fixAdminLayoutFooter(new_h - old_h) }catch(e){ };
}
exec_xml(
'member',
'getMemberAdminColorset',
{skin:skin},
on_complete,
['error','message','tpl']
);
}
/* 금지아이디 관련 작업들 */
function doUpdateDeniedID(user_id, mode, message) {
if(typeof(message)!='undefined'&&!confirm(message)) return;
@ -62,25 +37,8 @@ function doUpdateDeniedNickName(nick_name, mode, message)
jQuery(function($){
// hide form if enable_join is setted "No"
var suSetting = $('fieldset.suSetting'); // 회원가입 설정
var suForm = $('fieldset.suForm'); // 회원가입 양식
var isEnable = suSetting.find(':radio[name=enable_join]:checked').val();
if (isEnable == 'N'){
suSetting.find('>ul>li:gt(0)').hide();
suForm.hide();
}
var suForm = $('table.__join_form'); // 회원가입 양식
suSetting.find(':radio[name=enable_join]').change(function(){
if($('#enable_join_yes').is(':checked')){
// 회원 가입을 허용하지 않는 경우 불필요한 항목을 모두 감춘다
suSetting.find('>ul>li:gt(0)').slideDown(200);
suForm.slideDown(200);
} else {
// 회원 가입을 허용하는 경우 필요한 항목을 모두 펼친다
suSetting.find('>ul>li:gt(0)').slideUp(200);
suForm.slideUp(200);
}
});
suForm.find(':checkbox[name="usable_list[]"]').each(function(){
var $i = $(this);
$i.change(function(){
@ -232,13 +190,4 @@ jQuery(function($){
}
});
$('.__sync').click(function (){
exec_xml(
'importer', // module
'procImporterAdminSync', // act
null,
function(ret){if(ret && (!ret.error || ret.error == '0'))alert(ret.message);}, // callback
resp = ['error','message'] // response tags
);
});
});

View file

@ -0,0 +1,51 @@
<include target="header.html" />
<form action="./" class="x_form-horizontal" ruleset="insertLoginConfig" method="post">
<input type="hidden" name="module" value="member" />
<input type="hidden" name="act" value="procMemberAdminInsertLoginConfig" />
<input type="hidden" name="success_return_url" value="{getUrl('', 'module', 'admin', 'act', $act)}" />
<div class="x_control-group">
<label class="x_control-label" for="change_password_date">{$lang->change_password_date}</label>
<div class="x_controls">
<input type="text" id="change_password_date" name="change_password_date" value="{$config->change_password_date}" style="width:30px" /> {$lang->unit_day}
<p class="desc">{$lang->about_change_password_date}</p>
</div>
</div>
<div class="x_control-group">
<p class="x_control-label">{$lang->enable_login_fail_report}</p>
<div class="x_controls">
<label class="x_inline" for="enable_login_fail_report_yes"><input type="radio" name="enable_login_fail_report" id="enable_login_fail_report_yes" value="Y" checked="checked"|cond="$config->enable_login_fail_report != 'N'" /> {$lang->cmd_yes}</label>
<label class="x_inline" for="enable_join_no"><input type="radio" name="enable_login_fail_report" id="enable_login_fail_report_no" value="N" checked="checked"|cond="$config->enable_login_fail_report == 'N'" /> {$lang->cmd_no}</label>
</div>
</div>
<div class="x_control-group">
<label class="x_control-label" for="max_error_count">{$lang->login_trial_limit1}</label>
<div class="x_controls">
<input type="text" id="max_error_count" name="max_error_count" value="{$config->max_error_count}" style="width:30px" /> {$lang->unit_count}
<p class="desc">{$lang->about_login_trial_limit1}</p>
</div>
</div>
<div class="x_control-group">
<label class="x_control-label" for="max_error_count_time">{$lang->login_trial_limit2}</label>
<div class="x_controls">
<input type="text" id="max_error_count_time" name="max_error_count_time" value="{$config->max_error_count_time}" style="width:30px" /> {$lang->unit_sec}
<p class="desc">{$lang->about_login_trial_limit2}</p>
</div>
</div>
<div class="x_control-group">
<label class="x_control-label" for="after_login_url">{$lang->after_login_url}</label>
<div class="x_controls">
<input type="text" id="after_login_url" name="after_login_url" value="{$config->after_login_url}" />
<p class="desc">{$lang->about_after_login_url}</p>
</div>
</div>
<div class="x_control-group">
<label class="x_control-label" for="after_logout_url">{$lang->after_logout_url}</label>
<div class="x_controls">
<input type="text" id="after_logout_url" name="after_logout_url" value="{$config->after_logout_url}" />
<p class="desc">{$lang->about_after_logout_url}</p>
</div>
</div>
<div class="x_clearfix">
<span class="x_pull-right"><input class="x_btn x_btn-large x_btn-primary" type="submit" value="{$lang->cmd_save}" /></span>
</div>
</form>

View file

@ -1,44 +0,0 @@
<load target="./../../../common/js/jquery.min.js" usecdn="true" index="-1000000" />
<load target="css/mlogin.css" usecdn="true" />
<div class="bd">
<div cond="$XE_VALIDATOR_MESSAGE" class="message {$XE_VALIDATOR_MESSAGE_TYPE}">
<p>{$XE_VALIDATOR_MESSAGE}</p>
</div>
<div class="hx h2">
<h2>{$lang->cmd_login}</h2>
</div>
<form action="./" method="POST" class="ff">
<input type="hidden" name="module" value="member" />
<input type="hidden" name="act" value="procMemberLogin" />
<input type="hidden" name="redirect_url" value="{getUrl('act','')}" />
<ul>
<li><label for="id"><!--@if($identifier == 'user_id')-->{$lang->user_id}<!--@else-->{$lang->email_address}<!--@end--></label><input name="user_id" type="text" id="id" value="" /></li>
<li><label for="pw">{$lang->password}</label><input name="password" type="password" id="pw" value="" /></li>
</ul>
<div class="message info" id="keep_msg" style="display:none;">
<p>{$lang->about_keep_warning}</p>
</div>
<div class="bna">
<div class="fl"><input name="keep_signed" type="checkbox" value="Y" id="autoLogin" /> <label for="autoLogin">{$lang->keep_signed}</label></div>
<div class="fr"><button type="submit" class="bn dark">{$lang->cmd_login}</button></div>
</div>
<ul class="hp">
<li><a href="{getUrl('','act','dispMemberFindAccount')}"><span>{$lang->cmd_find_member_account}</span></a></li>
<li><a href="{getUrl('','act','dispMemberSignUpForm')}"><span>{$lang->cmd_signup}</span></a></li>
</ul>
</form>
</div>
<script>
jQuery(function($){
var keep_msg = $('#keep_msg');
keep_msg.hide();
$('#autoLogin').change(function(){
if($(this).is(':checked')){
keep_msg.slideDown(200);
} else {
keep_msg.slideUp(200);
}
});
});
</script>

View file

@ -1,7 +0,0 @@
<script>
<!--@if($redirect_url)-->
location.href = "{$redirect_url}";
<!--@else-->
location.href = current_url.setQuery('act','');
<!--@end-->
</script>

View file

@ -1,45 +0,0 @@
<load target="js/member_admin.js" usecdn="true" />
<h1 class="h1">{$lang->cmd_member_group} ({$lang->target} : {count($member_list)})</h1>
<div cond="$XE_VALIDATOR_MESSAGE" class="message {$XE_VALIDATOR_MESSAGE_TYPE}">
<p>{$XE_VALIDATOR_MESSAGE}</p>
</div>
<form ruleset="manageMemberGroup" action="./" method="post" id="fo_management">
<input type="hidden" name="module" value="member" />
<input type="hidden" name="act" value="procMemberAdminUpdateMembersGroup" />
<input type="hidden" name="member_srl" value="{$member_srls}" />
<div class="table">
<table width="100%" border="1" cellspacing="0">
<tr>
<td>
<!--@foreach($group_list as $key => $val)-->
<!--@if($val->is_admin != 'Y')-->
<input type="checkbox" value="{$key}" name="group_srls[]" id="member_group_{$key}"/> <label for="member_group_{$key}">{$val->title}</label> &nbsp;<br/>
<!--@end-->
<!--@end-->
</td>
</tr>
</table>
</div>
<div class="btnArea" cond="count($member_list)">
<span class="btn"><input type="submit" value="{$lang->cmd_apply}" /></span>
</div>
<div class="table">
<table width="100%" border="1" cellspacing="0">
<thead>
<tr>
<th scope="col">{$lang->user_id}</th>
<th scope="col">{$lang->nick_name}</th>
<th scope="col">{$lang->signup_date}</th>
</tr>
</thead>
<!--@foreach($member_list as $key => $val)-->
<tr>
<td>{$val->user_id}</td>
<td><a href="#popup_menu_area" class="member_{$val->member_srl}">{$val->nick_name}</a></td>
<td>{zdate($val->regdate, "Y-m-d H:i")}</td>
</tr>
<!--@end-->
</table>
</div>
</form>

View file

@ -1,312 +0,0 @@
<load target="js/member_admin_config.js" usecdn="true" />
<load target="../../editor/tpl/js/editor_module_config.js" usecdn="true" />
<script>
xe.lang.msg_delete_extend_form = '{$lang->msg_delete_extend_form}';
xe.lang.confirm_delete = '{$lang->confirm_delete}';
xe.lang.cmd_delete = '{$lang->cmd_delete}';
xe.lang.msg_null_prohibited_id = '{$lang->msg_null_prohibited_id}';
xe.lang.msg_null_prohibited_nick_name = '{$lang->msg_null_prohibited_nick_name}';
</script>
<div cond="$XE_VALIDATOR_MESSAGE" class="message {$XE_VALIDATOR_MESSAGE_TYPE}">
<p>{$XE_VALIDATOR_MESSAGE}</p>
</div>
<div class="x_page-header">
<h1>{$lang->cmd_member_config}</h1>
</div>
<form action="./" class="form" ruleset="insertConfig" method="post">
<input type="hidden" name="module" value="member" />
<input type="hidden" name="act" value="procMemberAdminInsertConfig" />
<input type="hidden" name="success_return_url" value="{getUrl('act', $act)}" />
<input type="hidden" name="agreement" value="{$config->agreement}" />
<section class="section">
<h1>{$lang->cmd_module_config}</h1>
<div>
<div class="x_control-group">
<p>{$lang->enable_join}</p>
<div class="x_controls">
<label class="x_inline" for="enable_join_yes"><input type="radio" name="enable_join" id="enable_join_yes" value="Y" checked="checked"|cond="$config->enable_join == 'Y'" /> {$lang->cmd_yes}</label>
<label class="x_inline" for="enable_join_no"><input type="radio" name="enable_join" id="enable_join_no" value="N" checked="checked"|cond="$config->enable_join != 'Y'" /> {$lang->cmd_no}</label>
</div>
</div>
<div class="x_control-group">
<p>{$lang->enable_confirm}</p>
<div class="x_controls">
<label class="x_inline" for="enable_confirm_yes"><input type="radio" name="enable_confirm" id="enable_confirm_yes" value="Y" checked="checked"|cond="$config->enable_confirm == 'Y'" /> {$lang->cmd_yes}</label>
<label class="x_inline" for="enable_confirm_no"><input type="radio" name="enable_confirm" id="enable_confirm_no" value="N" checked="checked"|cond="$config->enable_confirm != 'Y'"/> {$lang->cmd_no}</label>
</div>
</div>
<div class="x_control-group">
<label for="webmaster_name">{$lang->webmaster_name}</label>
<div class="x_controls">
<input type="text" id="webmaster_name" name="webmaster_name" value="{$config->webmaster_name}" size="20" />
<p class="desc">{$lang->about_webmaster_name}</p>
</div>
</div>
<div class="x_control-group">
<label for="webmaster_email">{$lang->webmaster_email}</label>
<div class="x_controls">
<input type="text" id="webmaster_email" name="webmaster_email" value="{$config->webmaster_email}" size="40" />
<p class="desc">{$lang->about_webmaster_email}</p>
</div>
</div>
<div class="x_control-group">
<label for="limit_day">{$lang->limit_day}</label>
<div class="x_controls">
<input type="text" id="limit_day" name="limit_day" value="{$config->limit_day}" style="width:30px" /><span class="desc">{$lang->unit_day}({$lang->about_limit_day})</span>
</div>
</div>
<div class="x_control-group">
<label for="change_password_date">{$lang->change_password_date}</label>
<div class="x_controls">
<input type="text" id="change_password_date" name="change_password_date" value="{$config->change_password_date}" style="width:30px" /><span class="desc">{$lang->unit_day}({$lang->about_change_password_date})</span>
</div>
</div>
<div class="x_control-group">
<p>{$lang->enable_login_fail_report}</p>
<div class="x_controls">
<label class="x_inline" for="enable_login_fail_report_yes"><input type="radio" name="enable_login_fail_report" id="enable_login_fail_report_yes" value="Y" checked="checked"|cond="$config->enable_login_fail_report != 'N'" /> {$lang->cmd_yes}</label>
<label class="x_inline" for="enable_join_no"><input type="radio" name="enable_login_fail_report" id="enable_login_fail_report_no" value="N" checked="checked"|cond="$config->enable_login_fail_report == 'N'" /> {$lang->cmd_no}</label>
</div>
</div>
<div class="x_control-group">
<label for="max_error_count">{$lang->login_trial_limit1}</label>
<div class="x_controls">
<input type="text" id="max_error_count" name="max_error_count" value="{$config->max_error_count}" style="width:30px" /><span class="desc">{$lang->about_login_trial_limit1}</span>
</div>
</div>
<div class="x_control-group">
<label for="max_error_count_time">{$lang->login_trial_limit2}</label>
<div class="x_controls">
<input type="text" id="max_error_count_time" name="max_error_count_time" value="{$config->max_error_count_time}" style="width:30px" /><span class="desc">{$lang->unit_sec}({$lang->about_login_trial_limit2})</span>
</div>
</div>
<div class="x_control-group">
<label for="agreement">{$lang->agreement}</label>
<div class="x_controls">{$editor}</div>
</div>
<div class="x_control-group">
<label for="after_login_url">{$lang->after_login_url}</label>
<div class="x_controls">
<input type="text" id="after_login_url" name="after_login_url" value="{$config->after_login_url}" />
<p class="desc">{$lang->about_after_login_url}</p>
</div>
</div>
<div class="x_control-group">
<label for="after_logout_url">{$lang->after_logout_url}</label>
<div class="x_controls">
<input type="text" id="after_logout_url" name="after_logout_url" value="{$config->after_logout_url}" />
<p class="desc">{$lang->about_after_logout_url}</p>
</div>
</div>
<div class="x_control-group">
<label for="redirect_url">{$lang->redirect_url}</label>
<div class="x_controls">
<input type="text" id="redirect_url" name="redirect_url" value="{$config->redirect_url}" />
<p class="desc">{$lang->about_redirect_url}</p>
</div>
</div>
<div class="x_control-group">
<label for="prohibited_nick_name">{$lang->cmd_manage_nick_name}({sprintf($lang->count_manage_nick_name, count($deniedNickNames))})</label>
<div class="x_controls">
<ul class="textList" id="deniedNickNameList">
<li loop="$deniedNickNames=>$nicknameInfo" id="denied_{$nicknameInfo->nick_name}">{$nicknameInfo->nick_name} <a href="#" class="side" onclick="doUpdateDeniedNickName('{$nicknameInfo->nick_name}','delete','{$lang->confirm_delete}');return false;">{$lang->delete}</a></li>
</ul>
<textarea rows="8" cols="42" id="prohibited_nick_name" title="{$lang->add_prohibited_id}"></textarea>
<span class="btn"><button type="button" class="_addDeniedNickName">{$lang->add}</button></span>
<span class="desc">{$lang->multi_line_input}</span>
</div>
</div>
<div class="x_control-group" cond="$useUserID">
<label for="prohibited_id">{$lang->cmd_manage_id}({sprintf($lang->count_manage_id, count($deniedIDs))})</label>
<div class="x_controls">
<ul class="textList" id="deniedList">
<li loop="$deniedIDs=>$denied_info" id="denied_{$denied_info->user_id}">{$denied_info->user_id} <a href="#" class="side" onclick="doUpdateDeniedID('{$denied_info->user_id}','delete','{$lang->confirm_delete}');return false;">{$lang->delete}</a></li>
</ul>
<textarea rows="8" cols="42" id="prohibited_id" title="{$lang->add_prohibited_id}"></textarea>
<span class="btn"><button type="button" class="_addDeniedID">{$lang->add}</button></span>
<span class="desc">{$lang->multi_line_input}</span>
</div>
</div>
</div>
</section>
<section class="section">
<h1>{$lang->cmd_set_design_info}</h1>
<div>
<div class="x_control-group">
<label for="layout">{$lang->layout}</label>
<div class="x_controls">
<select id="layout" name="layout_srl">
<option value="0">{$lang->notuse}</option>
<option loop="$layout_list => $key,$val" value="{$val->layout_srl}" selected="selected"|cond="$val->layout_srl == $config->layout_srl">{$val->title} ({$val->layout})</option>
</select>
</div>
</div>
<div class="x_control-group">
<label for="skin">{$lang->skin}</label>
<div class="x_controls">
<select id="skin" name="skin" onchange="doGetSkinColorset(this.options[this.selectedIndex].value)">
<option loop="$skin_list=>$key,$val" value="{$key}" selected="selected"|cond="$config->skin==$key">{$val->title} ({$key})</option>
</select>
</div>
</div>
<div id="colorset" class="x_control-group" style="display:none"|cond="!$config->colorset">
<label for="member_colorset">{$lang->colorset}</label>
<div class="x_controls"><div id="member_colorset"></div></div>
</div>
<div class="x_control-group">
<label for="mlayout">{$lang->mobile_layout}</label>
<div class="x_controls">
<select id="mlayout" name="mlayout_srl">
<option value="0">{$lang->notuse}</option>
<option loop="$mlayout_list => $key,$val" value="{$val->layout_srl}" selected="selected"|cond="$val->layout_srl == $config->mlayout_srl">{$val->title} ({$val->layout})</option>
</select>
</div>
</div>
<div class="x_control-group">
<label for="mskin">{$lang->mobile_skin}</label>
<div class="x_controls">
<select id="mskin" name="mskin">
<option loop="$mskin_list=>$key,$val" value="{$key}" selected="selected"|cond="$config->mskin==$key">{$val->title} ({$key})</option>
</select>
</div>
</div>
</div>
</section>
<section class="section">
<h1>{$lang->cmd_manage_form}</h1>
<div>
<table class="sortable x_table x_table-striped x_table-hover">
<thead>
<tr>
<th scope="col">{$lang->target}</th>
<th scope="col">{$lang->identifier}
[<a href="#helpDefault" class="tgAnchor">?</a>]
<div class="tgContent layer" id="helpDefault" style="right:0">
<p>{$lang->about_identifier}</p>
</div>
</th>
<th scope="col">{$lang->use}</th>
<th scope="col">{$lang->cmd_required}/{$lang->cmd_optional}</th>
<th scope="col">{$lang->public}
[<a href="#helpPublic" class="tgAnchor">?</a>]
<div class="tgContent layer" id="helpPublic" style="right:0">
<p>{$lang->about_public_item}</p>
</div>
</th>
<th scope="col" class="text">{$lang->description}</th>
<th scope="col">{$lang->cmd_edit}</th>
</thead>
<tbody class="uDrag">
{@$fixed_public_list = array('nick_name', 'find_account_question', 'password')}
<!--@foreach($config->signupForm as $item)-->
<!--@if($item->isIdentifier)-->
<tr class="sticky">
<input type="hidden" name="list_order[]" value="{$item->name}" />
<input type="hidden" name="usable_list[]" value="{$item->name}"/>
<input type="hidden" name="{$item->name}" value="requierd"/>
<th scope="row">
<span class="_title" style="padding-left:20px">{$item->title}</span>
</th>
<td><input type="radio" name="identifier" value="{$item->name}" checked="checked" /></td>
<td><input type="checkbox" name="usable_list[]" value="{$item->name}" title="{$lang->use}" checked="checked" disabled="disabled" /></td>
<td class="nowr">
<label for="{$item->name}_re" class="x_inline"><input type="radio" id="{$item->name}_re" name="{$item->name}" value="requierd" checked="checked" disabled="disabled" /> {$lang->cmd_required}</label>
<label for="{$item->name}_op" class="x_inline"><input type="radio" id="{$item->name}_op" name="{$item->name}" value="option" disabled="disabled" /> {$lang->cmd_optional}</label>
</td>
<td><input type="checkbox" name="is_{$item->name}_public" value="Y" checked="checked"|cond="$item->isPublic == 'Y'"/></td>
<td class="text">&nbsp;</td>
<td>&nbsp;</td>
</tr>
<!--@elseif($item->isDefaultForm)-->
<tr class="_imageType"|cond="$item->imageType">
<input type="hidden" name="list_order[]" value="{$item->name}" />
<input type="hidden" name="usable_list[]" value="{$item->name}" cond="$item->mustRequired"/>
<input type="hidden" name="{$item->name}" value="requierd" cond="$item->mustRequired"/>
<th scope="row">
<div class="wrap">
<button type="button" class="dragBtn">Move to</button>
<span class="_title">{$item->title}</span>
</div>
</th>
<td><input type="radio" name="identifier" value="{$item->name}" cond="$item->name== 'email_address' || $item->name=='user_id'" /></td>
<td><input type="checkbox" name="usable_list[]" value="{$item->name}" title="{$lang->use}" checked="checked"|cond="$item->mustRequired || $item->isUse" disabled="disabled"|cond="$item->mustRequired" /></td>
<td class="nowr">
<label for="{$item->name}_re" class="x_inline"><input type="radio" id="{$item->name}_re" name="{$item->name}" value="required" checked="checked"|cond="$item->mustRequired || $item->required" disabled="disabled"|cond="$item->mustRequired || !$item->isUse" /> {$lang->cmd_required}</label>
<label for="{$item->name}_op" class="x_inline"><input type="radio" id="{$item->name}_op" name="{$item->name}" value="option" checked="checked"|cond="!$item->mustRequired && ($item->isUse && !$item->required)" disabled="disabled"|cond="$item->mustRequired || !$item->isUse" /> {$lang->cmd_optional}</label>
<div cond="$item->imageType" class="_subItem">
<label for="{$item->name}_max_width" class="x_inline">{$lang->cmd_image_max_width}<input type="text" name="{$item->name}_max_width" id="{$item->name}_max_width" value="{$item->max_width}" style="width:30px" /> px</label>
/
<label for="{$item->name}_max_height" class="x_inline">{$lang->cmd_image_max_height}<input type="text" name="{$item->name}_max_height" id="{$item->name}_max_height" value="{$item->max_height}" style="width:30px" /> px</label>
</div>
<div cond="$item->name == 'signature'" style="padding-top:10px">
<select id="signature_editor" name="signature_editor_skin" onchange="getEditorSkinColorList(this.value)">
<!--@foreach($editor_skin_list as $editor_skin)-->
<option value="{$editor_skin}" selected="selected"|cond="$editor_skin==$config->signature_editor_skin">{$editor_skin}</option>
<!--@end-->
</select>
<select name="sel_editor_colorset" id="sel_editor_colorset" style="display:none">
</select>
<script>//<![CDATA[
getEditorSkinColorList('{$config->signature_editor_skin}','{$config->sel_editor_colorset}');
//]]></script>
</div>
</td>
<td><input type="checkbox" name="is_{$item->name}_public" value="Y" checked="checked"|cond="$item->isPublic == 'Y'" disabled="disabled"|cond="in_array($item->name, $fixed_public_list) || !$item->isUse" /></td>
<td class="text">&nbsp;</td>
<td>&nbsp;</td>
</tr>
<!--@else-->
<tr>
<input type="hidden" name="list_order[]" value="{$item->name}" />
<input type="hidden" name="{$item->name}_member_join_form_srl" value="{$item->member_join_form_srl}" />
<th scope="row">
<div class="wrap">
<button type="button" class="dragBtn">Move to</button>
<span class="_title">{$item->title}</span>
</div>
</th>
<td></td>
<td><input type="checkbox" name="usable_list[]" value="{$item->name}" title="{$lang->use}" checked="checked"|cond="$item->isUse" /></td>
<td class="nowr">
<label for="{$item->name}_re" class="x_inline"><input type="radio" id="{$item->name}_re" name="{$item->name}" value="required" checked="checked"|cond="$item->required" disabled="disabled"|cond="!$item->isUse"/> {$lang->cmd_required}</label>
<label for="{$item->name}_op" class="x_inline"><input type="radio" id="{$item->name}_op" name="{$item->name}" value="option" checked="checked"|cond="$item->isUse && !$item->required" disabled="disabled"|cond="!$item->isUse" /> {$lang->cmd_optional}</label>
</td>
<td><input type="checkbox" name="is_{$item->name}_public" value="Y" checked="checked"|cond="$item->isPublic == 'Y'" disabled="disabled"|cond="!$item->isUse" /></td>
<td class="text">{$item->description}</td>
<td id="{$item->member_join_form_srl}" class="nowr"><a href="#userDefine" class="modalAnchor _extendFormEdit">{$lang->cmd_edit}</a> | <a href="#" class="_extendFormDelete">{$lang->cmd_delete}</a></td>
</tr>
<!--@end-->
<!--@end-->
</tbody>
</table>
<div class="x_clearfix">
<span class="x_pull-right"><a href="#userDefine" class="modalAnchor _extendFormEdit x_btn">{$lang->add_extend_form}...</a></span>
</div>
</div>
</section>
<div class="x_clearfix">
<span class="x_pull-right"><input class="x_btn x_btn-large x_btn-primary" type="submit" value="{$lang->cmd_save}" /></span>
</div>
</form>
<section class="section">
<h1>{$lang->cmd_member_sync}</h1>
<div>
<input type="button" value="{$lang->cmd_member_sync}" class="__sync x_btn x_btn-warning" />
<p class="description">{$lang->about_member_sync}</p>
</div>
</section>
<div class="x_modal" id="userDefine">
<form action="./" class="x_form-horizontal" ruleset="insertJoinForm" method="post">
<input type="hidden" name="module" value="member" />
<input type="hidden" name="act" value="procMemberAdminInsertJoinForm" />
<input type="hidden" name="success_return_url" value="{getUrl('act', $act)}" />
<div id="extendForm">
</div>
</form>
</div>
<script>
jQuery(function() { doGetSkinColorset("{$config->skin}"); });
</script>

View file

@ -1,80 +0,0 @@
{@ Context::loadFile(array("./common/js/jquery.js", 'head', '', -100000), true) }
{@ Context::loadFile(array("./common/js/js_app.js", 'head', '', -100000), true) }
{@ Context::loadFile(array("./common/js/common.js", 'head', '', -100000), true) }
{@ Context::loadFile(array("./common/js/xml_handler.js", 'head', '', -100000), true) }
{@ Context::loadFile(array("./common/js/xml_js_filter.js", 'head', '', -100000), true) }
<load target="css/msignup.css" usecdn="true" />
<div class="bd">
<h2 class="h2">{$lang->cmd_view_member_info}</h2>
<h3 class="h3">{$lang->member_default_info}</h3>
<form action="" method="post">
<fieldset class="sn">
<ul>
<li><label for="uname" class="db fb al">{$lang->user_name}</label><div id="uname">{htmlspecialchars($member_info->user_name)}</div></li>
<li><label for="nname" class="db fb al">{$lang->nick_name}</label><div id="nname">{htmlspecialchars($member_info->nick_name)}</div></li>
<!--@if($member_info->profile_image->src)-->
<li><label for="pimage" class="db fb al">{$lang->profile_image}</label><div id="pimage"><img src="{$member_info->profile_image->src}" border="0" alt="profile_image" /></div></li>
<!--@end-->
<!--@if($member_info->image_name->src)-->
<li><label for="image_name" class="db fb al">{$lang->image_name}</label><div id="image_name"><img src="{$member_info->image_name->src}" border="0" alt="image_name" /></div></li>
<!--@end-->
<!--@if($member_info->image_mark->src)-->
<li><label for="image_mark" class="db fb al">{$lang->image_mark}</label><div id="image_mark"><img src="{$member_info->image_mark->src}" border="0" alt="image_mark" /></div></li>
<!--@end-->
<li><label for="hpage" class="db fb al">{$lang->homepage}</label><div id="hpage">{htmlspecialchars($member_info->homepage)}</div></li>
<li><label for="bpage" class="db fb al">{$lang->blog}</label><div id="bpage">{htmlspecialchars($member_info->blog)}</div></li>
<li><label for="bday" class="db fb al">{$lang->birthday}</label><div id="bday"><!--@if($member_info->birthday)-->{zdate($member_info->birthday,"Y-m-d")}<!--@end--></div></li>
<!--@if($member_info->signature)-->
<li><label for="sign" class="db fb al">{$lang->signature}</label><div>{$member_info->signature}</div></li>
<!--@end-->
<li><label for="group" class="db fb al">{$lang->member_group}</label><div><!--@foreach($member_info->group_list as $key => $val)-->{$val} <!--@end--></div></li>
<li><label for="sdate" class="db fb al">{$lang->signup_date}</label><div id="sdate">{zdate($member_info->regdate,"Y-m-d H:i")}</div></li>
<!--@if($member_info->member_srl == $logged_info->member_srl || $logged_info->is_admin == 'Y' )-->
<li><label for="llogin" class="db fb al">{$lang->last_login}</label><div>{zdate($member_info->last_login,"Y-m-d H:i")}</div></li>
<!--@end-->
</ul>
</fieldset>
<!--@if($extend_form_list)-->
<h3 class="h3">{$lang->member_extend_info}</h3>
<fieldset class="sn">
<ul>
<!--@foreach($extend_form_list as $key => $val)-->
<li><label class="db fb al">{htmlspecialchars($val->column_title)}</label>
<!--@if($val->is_private)-->
<span class="privateItem">{$lang->private}</span>
<!--@else-->
<!--@if($val->column_type=='tel' && $val->value[0] && $val->value[1] && $val->value[2])-->
{htmlspecialchars($val->value[0])}
<!--@if($val->value[1])-->-<!--@end-->
{htmlspecialchars($val->value[1])}
<!--@if($val->value[2])-->-<!--@end-->
{htmlspecialchars($val->value[2])}
<!--@elseif($val->column_type=='kr_zip')-->
{htmlspecialchars($val->value[0])}<!--@if($val->value[1]&&$val->value[0])--><br /><!--@end-->{htmlspecialchars($val->value[1])}
<!--@elseif($val->column_type=='checkbox' && is_array($val->value))-->
{htmlspecialchars(implode(", ",$val->value))}&nbsp;
<!--@elseif($val->column_type=='date' && $val->value)-->
{zdate($val->value, "Y-m-d")}&nbsp;
<!--@else-->
{nl2br(htmlspecialchars($val->value))}&nbsp;
<!--@end-->
</li>
<!--@end-->
<!--@end-->
</ul>
</fieldset>
<!--@end-->
<div class="cm">
<li>
<!--@if($member_info->member_srl == $logged_info->member_srl)-->
<a href="{getUrl('act','dispMemberModifyInfo','member_srl','')}" class="bn"><span>{$lang->cmd_modify_member_info}</span></a>
<a href="{getUrl('act','dispMemberModifyPassword','member_srl','')}" class="bn"><span>{$lang->cmd_modify_member_password}</span></a>
<a href="{getUrl('act','dispMemberLeave','member_srl','')}" class="bn"><span>{$lang->cmd_leave}</span></a>
<!--@end-->
<a href="{getUrl('act','','member_srl','')}" class="bn"><span>{$lang->cmd_back}</span></a>
</li>
</div>
</form>
</div>

View file

@ -1,38 +0,0 @@
<load target="css/msignup.css" usecdn="true" />
<load target="./../../../common/js/jquery.min.js" usecdn="true" index="-1000000" />
<load target="./../../../common/js/xe.min.js" usecdn="true" index="-1000000" />
<load target="../skins/default/js/member.js" usecdn="true" />
<div class="bd">
<div cond="$XE_VALIDATOR_MESSAGE" class="message {$XE_VALIDATOR_MESSAGE_TYPE}">
<p>{$XE_VALIDATOR_MESSAGE}</p>
</div>
<h2 class="h2">{$member_title = $lang->cmd_modify_member_password}</h2>
<form id="fo_insert_member" action="./" method="post" class="ff" ruleset="modifyPassword">
<input type="hidden" name="module" value="member" />
<input type="hidden" name="act" value="procMemberModifyPassword" />
<input type="hidden" name="mid" value="{$mid}" />
<input type="hidden" name="document_srl" value="{$document_srl}" />
<input type="hidden" name="page" value="{$page}" />
<fieldset class="sn">
<ul>
<li>
<label for="uid" class="db fb al"><!--@if($identifier == 'user_id')-->{$lang->user_id}<!--@else-->{$lang->email_address}<!--@end--></label>
<div id="uid"><!--@if($identifier == 'user_id')-->{htmlspecialchars($member_info->user_id)}<!--@else-->{htmlspecialchars($member_info->email_address)}<!--@end--></div>
</li>
<li>
<label for="cpw" class="db fb al">{$lang->current_password}</label>
<input type="password" name="current_password" id="cpw" class="itx" />
</li>
<li>
<div><label for="npw1" class="db fb al">{$lang->password1}</label><input type="password" name="password1" id="npw1" class="itx" /></div>
<div><label for="npw1" class="db fb al">{$lang->password2}</label><input type="password" name="password2" id="npw2" class="itx" /></div>
<p style="color:#666">{$lang->about_password}</p>
</li>
</ul>
</fieldset>
<div class="cm">
<input type="submit" value="{$lang->cmd_registration}" class="bn dark" />
</div>
</form>
</div>

View file

@ -0,0 +1,191 @@
<include target="header.html" />
<load target="js/signup_config.js" />
<load target="../../editor/tpl/js/editor_module_config.js" usecdn="true" />
<script>
xe.lang.msg_delete_extend_form = '{$lang->msg_delete_extend_form}';
xe.lang.confirm_delete = '{$lang->confirm_delete}';
xe.lang.cmd_delete = '{$lang->cmd_delete}';
xe.lang.msg_null_prohibited_id = '{$lang->msg_null_prohibited_id}';
xe.lang.msg_null_prohibited_nick_name = '{$lang->msg_null_prohibited_nick_name}';
</script>
<form action="./" class="x_form-horizontal" method="post">
<input type="hidden" name="module" value="member" />
<input type="hidden" name="act" value="procMemberAdminInsertSignupConfig" />
<input type="hidden" name="success_return_url" value="{getUrl('act', $act)}" />
<input type="hidden" name="agreement" value="{$config->agreement}" />
<div class="x_control-group">
<p class="x_control-label">{$lang->enable_confirm}</p>
<div class="x_controls">
<label class="x_inline" for="enable_confirm_yes"><input type="radio" name="enable_confirm" id="enable_confirm_yes" value="Y" checked="checked"|cond="$config->enable_confirm == 'Y'" /> {$lang->cmd_yes}</label>
<label class="x_inline" for="enable_confirm_no"><input type="radio" name="enable_confirm" id="enable_confirm_no" value="N" checked="checked"|cond="$config->enable_confirm != 'Y'"/> {$lang->cmd_no}</label>
<p class="desc">{$lang->about_enable_confirm}</p>
</div>
</div>
<div class="x_control-group">
<label class="x_control-label" for="limit_day">{$lang->limit_day}</label>
<div class="x_controls">
<input type="text" id="limit_day" name="limit_day" value="{$config->limit_day}" style="width:30px" /> {$lang->unit_day}
<p class="desc">{$lang->about_limit_day}</p>
</div>
</div>
<div class="x_control-group">
<label class="x_control-label" for="prohibited_nick_name">{$lang->cmd_manage_nick_name}</label>
<div class="x_controls">
<p>{sprintf($lang->count_manage_nick_name, count($deniedNickNames))}</p>
<ul class="textList" id="deniedNickNameList" style="margin-left:0">
<li loop="$deniedNickNames=>$nicknameInfo" id="denied_{$nicknameInfo->nick_name}">{$nicknameInfo->nick_name} <a href="#" class="side" onclick="doUpdateDeniedNickName('{$nicknameInfo->nick_name}','delete','{$lang->confirm_delete}');return false;">{$lang->delete}</a></li>
</ul>
<textarea rows="5" cols="42" id="prohibited_nick_name" title="{$lang->add_prohibited_id}"></textarea>
<span class="btn"><button type="button" class="_addDeniedNickName x_btn">{$lang->add}</button></span>
<p class="desc">{$lang->multi_line_input}</p>
</div>
</div>
<div class="x_control-group" cond="$useUserID">
<label class="x_control-label" for="prohibited_id">{$lang->cmd_manage_id}</label>
<div class="x_controls">
<p>{sprintf($lang->count_manage_id, count($deniedIDs))}</p>
<ul class="textList" id="deniedList" style="margin-left:0">
<li loop="$deniedIDs=>$denied_info" id="denied_{$denied_info->user_id}">{$denied_info->user_id} <a href="#" class="side" onclick="doUpdateDeniedID('{$denied_info->user_id}','delete','{$lang->confirm_delete}');return false;">{$lang->delete}</a></li>
</ul>
<textarea rows="5" cols="42" id="prohibited_id" title="{$lang->add_prohibited_id}"></textarea>
<span class="btn"><button type="button" class="_addDeniedID x_btn">{$lang->add}</button></span>
<p class="desc">{$lang->multi_line_input}</p>
</div>
</div>
<div class="x_control-group">
<label class="x_control-label" for="redirect_url">{$lang->redirect_url}</label>
<div class="x_controls">
<input type="text" id="redirect_url" name="redirect_url" value="{$config->redirect_url}" />
<p class="desc">{$lang->about_redirect_url}</p>
</div>
</div>
<div class="x_control-group">
<label class="x_control-label" for="agreement">{$lang->agreement}</label>
<div class="x_controls">{$editor}</div>
</div>
<div class="x_control-group">
<p class="x_control-label">{$lang->cmd_manage_form}</p>
<div class="x_controls">
<table class="__join_form sortable x_table x_table-striped x_table-hover">
<thead>
<tr>
<th scope="col">{$lang->target}</th>
<th scope="col">{$lang->identifier}
[<a href="#helpDefault" class="tgAnchor">?</a>]
<div class="tgContent layer" id="helpDefault" style="right:0">
<p>{$lang->about_identifier}</p>
</div>
</th>
<th scope="col">{$lang->use}</th>
<th scope="col">{$lang->cmd_required}/{$lang->cmd_optional}</th>
<th scope="col">{$lang->public}
[<a href="#helpPublic" class="tgAnchor">?</a>]
<div class="tgContent layer" id="helpPublic" style="right:0">
<p>{$lang->about_public_item}</p>
</div>
</th>
<th scope="col" class="text">{$lang->description}</th>
<th scope="col">{$lang->cmd_edit}</th>
</thead>
<tbody class="uDrag">
{@$fixed_public_list = array('nick_name', 'find_account_question', 'password')}
<!--@foreach($config->signupForm as $item)-->
<!--@if($item->isIdentifier)-->
<tr class="sticky">
<input type="hidden" name="list_order[]" value="{$item->name}" />
<input type="hidden" name="usable_list[]" value="{$item->name}"/>
<input type="hidden" name="{$item->name}" value="requierd"/>
<th scope="row">
<span class="_title" style="padding-left:20px">{$item->title}</span>
</th>
<td><input type="radio" name="identifier" value="{$item->name}" checked="checked" /></td>
<td><input type="checkbox" name="usable_list[]" value="{$item->name}" title="{$lang->use}" checked="checked" disabled="disabled" /></td>
<td class="nowr">
<label for="{$item->name}_re" class="x_inline"><input type="radio" id="{$item->name}_re" name="{$item->name}" value="requierd" checked="checked" disabled="disabled" /> {$lang->cmd_required}</label>
<label for="{$item->name}_op" class="x_inline"><input type="radio" id="{$item->name}_op" name="{$item->name}" value="option" disabled="disabled" /> {$lang->cmd_optional}</label>
</td>
<td><input type="checkbox" name="is_{$item->name}_public" value="Y" checked="checked"|cond="$item->isPublic == 'Y'"/></td>
<td class="text">&nbsp;</td>
<td>&nbsp;</td>
</tr>
<!--@elseif($item->isDefaultForm)-->
<tr class="_imageType"|cond="$item->imageType">
<input type="hidden" name="list_order[]" value="{$item->name}" />
<input type="hidden" name="usable_list[]" value="{$item->name}" cond="$item->mustRequired"/>
<input type="hidden" name="{$item->name}" value="requierd" cond="$item->mustRequired"/>
<th scope="row">
<div class="wrap">
<button type="button" class="dragBtn">Move to</button>
<span class="_title">{$item->title}</span>
</div>
</th>
<td><input type="radio" name="identifier" value="{$item->name}" cond="$item->name== 'email_address' || $item->name=='user_id'" /></td>
<td><input type="checkbox" name="usable_list[]" value="{$item->name}" title="{$lang->use}" checked="checked"|cond="$item->mustRequired || $item->isUse" disabled="disabled"|cond="$item->mustRequired" /></td>
<td class="nowr">
<label for="{$item->name}_re" class="x_inline"><input type="radio" id="{$item->name}_re" name="{$item->name}" value="required" checked="checked"|cond="$item->mustRequired || $item->required" disabled="disabled"|cond="$item->mustRequired || !$item->isUse" /> {$lang->cmd_required}</label>
<label for="{$item->name}_op" class="x_inline"><input type="radio" id="{$item->name}_op" name="{$item->name}" value="option" checked="checked"|cond="!$item->mustRequired && ($item->isUse && !$item->required)" disabled="disabled"|cond="$item->mustRequired || !$item->isUse" /> {$lang->cmd_optional}</label>
<div cond="$item->imageType" class="_subItem">
<label for="{$item->name}_max_width" class="x_inline">{$lang->cmd_image_max_width}<input type="text" name="{$item->name}_max_width" id="{$item->name}_max_width" value="{$item->max_width}" style="width:30px" /> px</label>
/
<label for="{$item->name}_max_height" class="x_inline">{$lang->cmd_image_max_height}<input type="text" name="{$item->name}_max_height" id="{$item->name}_max_height" value="{$item->max_height}" style="width:30px" /> px</label>
</div>
<div cond="$item->name == 'signature'" style="padding-top:10px">
<select id="signature_editor" name="signature_editor_skin" onchange="getEditorSkinColorList(this.value)">
<!--@foreach($editor_skin_list as $editor_skin)-->
<option value="{$editor_skin}" selected="selected"|cond="$editor_skin==$config->signature_editor_skin">{$editor_skin}</option>
<!--@end-->
</select>
<select name="sel_editor_colorset" id="sel_editor_colorset" style="display:none">
</select>
<script>//<![CDATA[
getEditorSkinColorList('{$config->signature_editor_skin}','{$config->sel_editor_colorset}');
//]]></script>
</div>
</td>
<td><input type="checkbox" name="is_{$item->name}_public" value="Y" checked="checked"|cond="$item->isPublic == 'Y'" disabled="disabled"|cond="in_array($item->name, $fixed_public_list) || !$item->isUse" /></td>
<td class="text">&nbsp;</td>
<td>&nbsp;</td>
</tr>
<!--@else-->
<tr>
<input type="hidden" name="list_order[]" value="{$item->name}" />
<input type="hidden" name="{$item->name}_member_join_form_srl" value="{$item->member_join_form_srl}" />
<th scope="row">
<div class="wrap">
<button type="button" class="dragBtn">Move to</button>
<span class="_title">{$item->title}</span>
</div>
</th>
<td></td>
<td><input type="checkbox" name="usable_list[]" value="{$item->name}" title="{$lang->use}" checked="checked"|cond="$item->isUse" /></td>
<td class="nowr">
<label for="{$item->name}_re" class="x_inline"><input type="radio" id="{$item->name}_re" name="{$item->name}" value="required" checked="checked"|cond="$item->required" disabled="disabled"|cond="!$item->isUse"/> {$lang->cmd_required}</label>
<label for="{$item->name}_op" class="x_inline"><input type="radio" id="{$item->name}_op" name="{$item->name}" value="option" checked="checked"|cond="$item->isUse && !$item->required" disabled="disabled"|cond="!$item->isUse" /> {$lang->cmd_optional}</label>
</td>
<td><input type="checkbox" name="is_{$item->name}_public" value="Y" checked="checked"|cond="$item->isPublic == 'Y'" disabled="disabled"|cond="!$item->isUse" /></td>
<td class="text">{$item->description}</td>
<td id="{$item->member_join_form_srl}" class="nowr"><a href="#userDefine" class="modalAnchor _extendFormEdit">{$lang->cmd_edit}</a> | <a href="#" class="_extendFormDelete">{$lang->cmd_delete}</a></td>
</tr>
<!--@end-->
<!--@end-->
</tbody>
</table>
</div>
<div class="x_clearfix">
<span class="x_pull-right"><a href="#userDefine" class="modalAnchor _extendFormEdit x_btn">{$lang->add_extend_form}...</a></span>
</div>
</div>
</section>
<div class="x_clearfix">
<span class="x_pull-right"><input class="x_btn x_btn-large x_btn-primary" type="submit" value="{$lang->cmd_save}" /></span>
</div>
</form>
<div class="x_modal" id="userDefine">
<form action="./" class="x_form-horizontal" ruleset="insertJoinForm" method="post">
<input type="hidden" name="module" value="member" />
<input type="hidden" name="act" value="procMemberAdminInsertJoinForm" />
<input type="hidden" name="success_return_url" value="{getUrl('act', $act)}" />
<div id="extendForm">
</div>
</form>
</div>

View file

@ -1,78 +0,0 @@
<load target="./../../../common/js/jquery.min.js" usecdn="true" index="-1000000" />
<load target="./../../../common/js/xe.min.js" usecdn="true" index="-1000000" />
<load target="css/msignup.css" usecdn="true" />
<load target="js/signup_check.js" usecdn="true" />
<!--%load_js_plugin("ui")-->
<!--%load_js_plugin("ui.datepicker")-->
<div class="bd">
<div class="hx h2">
<h2>{$lang->cmd_signup}</h2>
</div>
<div cond="$XE_VALIDATOR_MESSAGE" class="message {$XE_VALIDATOR_MESSAGE_TYPE}">
<p>{$XE_VALIDATOR_MESSAGE}</p>
</div>
<form ruleset="@insertMember" id="fo_insert_member" class="ff" action="./" method="post" enctype="multipart/form-data">
<input type="hidden" name="module" value="member" />
<input type="hidden" name="act" value="procMemberInsert" />
<!--@if(!$is_logged && $member_config->agreement)-->
<div class="agreement">
<div class="text">
{$member_config->agreement}
</div>
<div class="confirm">
<input type="checkbox" name="accept_agreement" value="Y" id="accept_agree" />
<label for="accept_agree">{$lang->about_accept_agreement}</label>
</div>
</div>
<!--@end-->
<ul>
<li>
<label for="{$identifierForm->name}">{$identifierForm->title} <em style="color:red">*</em></label>
<input type="text" name="{$identifierForm->name}" id="{$identifierForm->name}" value="{$identifierForm->value}" />
</li>
<li>
<label for="password">{$lang->password} <em style="color:red">*</em></label>
<input type="password" name="password" id="password" value=""/>
</li>
<li>
<label for="password2">{$lang->password3} <em style="color:red">*</em></label>
<input type="password" name="password2" id="password2" value=""/>
</li>
<block loop="$formTags=>$formTag" cond="$formTag->name != 'signature'">
<li>
<label>{$formTag->title}</label>
{$formTag->inputTag}
</li>
</block>
<li>
<label>{$lang->allow_mailing}</label>
<input type="radio" name="allow_mailing" id="mailingYes" value="Y" checked="checked"|cond="$member_info->allow_mailing == 'Y'" /> <label for="mailingYes">{$lang->cmd_yes}</label>
<input type="radio" name="allow_mailing" id="mailingNo" value="N" checked="checked"|cond="$member_info->allow_mailing != 'Y'" /> <label for="mailingNo">{$lang->cmd_no}</label>
</li>
<li>
<label>{$lang->allow_message}</label>
<block loop="$lang->allow_message_type=>$key,$val">
<input type="radio" name="allow_message" value="{$key}" checked="checked"|cond="$member_info->allow_message == $key || (!$member_info && $key == 'Y')" id="allow_{$key}" /> <label for="allow_{$key}">{$val}</label>
</block>
</li>
</ul>
<div class="bna">
<input type="submit" class="bn dark" value="{$lang->cmd_registration}" />
</div>
</form>
</div>
<script>
(function($){
$(function(){
var option = { changeMonth: true, changeYear: true, gotoCurrent: false,yearRange:'-100:+10', dateFormat:'yy-mm-dd', onSelect:function(){
$(this).prev('input[type="hidden"]').val(this.value.replace(/-/g,""))}
};
$.extend(option,$.datepicker.regional['{$lang_type}']);
$(".inputDate").datepicker(option);
$(".dateRemover").click(function() {
$(this).parent().prevAll('input').val('');
return false;});
});
})(jQuery);
</script>