Add admin screen to choose which member menu items to display

This commit is contained in:
Kijin Sung 2017-02-11 15:36:33 +09:00
parent 4b342a2d9c
commit 00850bc95d
8 changed files with 120 additions and 10 deletions

View file

@ -27,6 +27,7 @@
<action name="dispMemberAdminList" type="view" index="true" admin_index="true" menu_name="userList" menu_index="true"/>
<action name="dispMemberAdminConfig" type="view" menu_name="userSetting" menu_index="true" />
<action name="dispMemberAdminFeaturesConfig" type="view" menu_name="userSetting" />
<action name="dispMemberAdminSignUpConfig" type="view" menu_name="userSetting" />
<action name="dispMemberAdminLoginConfig" type="view" menu_name="userSetting" />
<action name="dispMemberAdminDesignConfig" type="view" menu_name="userSetting" />
@ -77,6 +78,7 @@
<action name="procMemberAdminInsert" type="controller" ruleset="insertAdminMember" />
<action name="procMemberAdminDelete" type="controller" />
<action name="procMemberAdminInsertDefaultConfig" type="controller" ruleset="insertDefaultConfig" />
<action name="procMemberAdminInsertFeaturesConfig" type="controller" />
<action name="procMemberAdminInsertSignupConfig" type="controller" />
<action name="procMemberAdminInsertLoginConfig" type="controller" />
<action name="procMemberAdminInsertDesignConfig" type="controller" />

View file

@ -1,6 +1,8 @@
<?php
$lang->member = 'Member';
$lang->site = 'Site';
$lang->member_default_config = 'Basic Settings';
$lang->member_features_config = 'Features';
$lang->member_default_info = 'Basic Info';
$lang->member_extend_info = 'Additional Info';
$lang->default_group_1 = 'Associate Member';

View file

@ -1,6 +1,8 @@
<?php
$lang->member = '회원';
$lang->site = '사이트';
$lang->member_default_config = '기본 설정';
$lang->member_features_config = '기능 설정';
$lang->member_default_info = '기본 정보';
$lang->member_extend_info = '추가 정보';
$lang->default_group_1 = '준회원';

View file

@ -205,6 +205,33 @@ class memberAdminController extends member
$this->setRedirectUrl($returnUrl);
}
public function procMemberAdminInsertFeaturesConfig()
{
$config = getModel('member')->getMemberConfig();
$config->features = array();
$args = Context::gets(
'scrapped_documents',
'saved_documents',
'my_documents',
'my_comments',
'active_logins'
);
foreach ($args as $key => $value)
{
$config->features[$key] = toBool($value);
}
$oModuleController = getController('module');
$output = $oModuleController->updateModuleConfig('member', $config);
// default setting end
$this->setMessage('success_updated');
$returnUrl = Context::get('success_return_url') ? Context::get('success_return_url') : getNotEncodedUrl('', 'module', 'admin', 'act', 'dispMemberAdminFeaturesConfig');
$this->setRedirectUrl($returnUrl);
}
public function procMemberAdminInsertSignupConfig()
{
$oMemberModel = getModel('member');

View file

@ -135,6 +135,16 @@ class memberAdminView extends member
$this->setTemplateFile('default_config');
}
/**
* Set the features config.
*
* @return void
*/
public function dispMemberAdminFeaturesConfig()
{
$this->setTemplateFile('features_config');
}
public function dispMemberAdminSignUpConfig()
{
$config = $this->memberConfig;

View file

@ -1912,9 +1912,6 @@ class memberController extends member
*/
function setSessionInfo()
{
$oMemberModel = getModel('member');
$config = $oMemberModel->getMemberConfig();
// If your information came through the current session information to extract information from the users
if(!$this->memberInfo && Rhymix\Framework\Session::getMemberSrl())
{
@ -1950,13 +1947,29 @@ class memberController extends member
Context::set('logged_info', $this->memberInfo);
// Only the menu configuration of the user (such as an add-on to the menu can be changed)
$config = getModel('member')->getMemberConfig();
$this->addMemberMenu( 'dispMemberInfo', 'cmd_view_member_info');
$this->addMemberMenu( 'dispMemberScrappedDocument', 'cmd_view_scrapped_document');
$this->addMemberMenu( 'dispMemberSavedDocument', 'cmd_view_saved_document');
$this->addMemberMenu( 'dispMemberOwnDocument', 'cmd_view_own_document');
$this->addMemberMenu( 'dispMemberOwnComment', 'cmd_view_own_comment');
$this->addMemberMenu( 'dispMemberActiveLogins', 'cmd_view_active_logins');
if($config->update_nickname_log == 'Y')
if ($config->features['scrapped_documents'] !== false)
{
$this->addMemberMenu( 'dispMemberScrappedDocument', 'cmd_view_scrapped_document');
}
if ($config->features['saved_documents'] !== false)
{
$this->addMemberMenu( 'dispMemberSavedDocument', 'cmd_view_saved_document');
}
if ($config->features['my_documents'] !== false)
{
$this->addMemberMenu( 'dispMemberOwnDocument', 'cmd_view_own_document');
}
if ($config->features['my_comments'] !== false)
{
$this->addMemberMenu( 'dispMemberOwnComment', 'cmd_view_own_comment');
}
if ($config->features['active_logins'] !== false)
{
$this->addMemberMenu( 'dispMemberActiveLogins', 'cmd_view_active_logins');
}
if ($config->features['nickname_log'] !== false && $config->update_nickname_log == 'Y')
{
$this->addMemberMenu( 'dispMemberModifyNicknameLog', 'cmd_modify_nickname_log');
}

View file

@ -0,0 +1,53 @@
<include target="header.html" />
<load target="js/default_config.js" />
<form action="./" class="x_form-horizontal" method="post">
<input type="hidden" name="module" value="member" />
<input type="hidden" name="act" value="procMemberAdminInsertFeaturesConfig" />
<input type="hidden" name="success_return_url" value="{getUrl('', 'module', 'admin', 'act', $act)}" />
<input type="hidden" name="xe_validator_id" value="modules/member/tpl/1" />
<div class="x_control-group">
<div class="x_control-label">{$lang->cmd_view_scrapped_document}</div>
<div class="x_controls">
<label class="x_inline" for="scrapped_documents_Y"><input type="radio" name="scrapped_documents" id="scrapped_documents_Y" value="Y" checked="checked"|cond="$config->features['scrapped_documents'] !== false" /> {$lang->cmd_yes}</label>
<label class="x_inline" for="scrapped_documents_N"><input type="radio" name="scrapped_documents" id="scrapped_documents_N" value="N" checked="checked"|cond="$config->features['scrapped_documents'] === false" /> {$lang->cmd_no}</label>
</div>
</div>
<div class="x_control-group">
<div class="x_control-label">{$lang->cmd_view_saved_document}</div>
<div class="x_controls">
<label class="x_inline" for="saved_documents_Y"><input type="radio" name="saved_documents" id="saved_documents_Y" value="Y" checked="checked"|cond="$config->features['saved_documents'] !== false" /> {$lang->cmd_yes}</label>
<label class="x_inline" for="saved_documents_N"><input type="radio" name="saved_documents" id="saved_documents_N" value="N" checked="checked"|cond="$config->features['saved_documents'] === false" /> {$lang->cmd_no}</label>
</div>
</div>
<div class="x_control-group">
<div class="x_control-label">{$lang->cmd_view_own_document}</div>
<div class="x_controls">
<label class="x_inline" for="my_documents_Y"><input type="radio" name="my_documents" id="my_documents_Y" value="Y" checked="checked"|cond="$config->features['my_documents'] !== false" /> {$lang->cmd_yes}</label>
<label class="x_inline" for="my_documents_N"><input type="radio" name="my_documents" id="my_documents_N" value="N" checked="checked"|cond="$config->features['my_documents'] === false" /> {$lang->cmd_no}</label>
</div>
</div>
<div class="x_control-group">
<div class="x_control-label">{$lang->cmd_view_own_comment}</div>
<div class="x_controls">
<label class="x_inline" for="my_comments_Y"><input type="radio" name="my_comments" id="my_comments_Y" value="Y" checked="checked"|cond="$config->features['my_comments'] !== false" /> {$lang->cmd_yes}</label>
<label class="x_inline" for="my_comments_N"><input type="radio" name="my_comments" id="my_comments_N" value="N" checked="checked"|cond="$config->features['my_comments'] === false" /> {$lang->cmd_no}</label>
</div>
</div>
<div class="x_control-group">
<div class="x_control-label">{$lang->cmd_view_active_logins}</div>
<div class="x_controls">
<label class="x_inline" for="active_logins_Y"><input type="radio" name="active_logins" id="active_logins_Y" value="Y" checked="checked"|cond="$config->features['active_logins'] !== false" /> {$lang->cmd_yes}</label>
<label class="x_inline" for="active_logins_N"><input type="radio" name="active_logins" id="active_logins_N" value="N" checked="checked"|cond="$config->features['active_logins'] === false" /> {$lang->cmd_no}</label>
</div>
</div>
<div class="x_control-group">
<div class="x_control-label">{$lang->cmd_modify_nickname_log}</div>
<div class="x_controls">
<label class="x_inline" for="nickname_log_Y"><input type="radio" name="nickname_log" id="nickname_log_Y" value="Y" checked="checked"|cond="$config->update_nickname_log === 'Y' && $config->features['nickname_log'] !== false" disabled="disabled"|cond="$config->update_nickname_log !== 'Y'" /> {$lang->cmd_yes}</label>
<label class="x_inline" for="nickname_log_N"><input type="radio" name="nickname_log" id="nickname_log_N" value="N" checked="checked"|cond="$config->update_nickname_log !== 'Y' || $config->features['nickname_log'] === false" disabled="disabled"|cond="$config->update_nickname_log !== 'Y'" /> {$lang->cmd_no}</label>
</div>
</div>
<div class="btnArea x_clearfix">
<span class="x_pull-right"><input class="x_btn x_btn-primary" type="submit" value="{$lang->cmd_save}" /></span>
</div>
</form>

View file

@ -6,7 +6,8 @@
<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 class="x_active"|cond="$act == 'dispMemberAdminConfig'"><a href="{getUrl('', 'module', 'admin', 'act', 'dispMemberAdminConfig')}">{$lang->member_default_config}</a></li>
<li class="x_active"|cond="$act == 'dispMemberAdminFeaturesConfig'"><a href="{getUrl('', 'module', 'admin', 'act', 'dispMemberAdminFeaturesConfig')}">{$lang->member_features_config}</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>