diff --git a/upload/source/admincp/admincp_admingroup.php b/upload/source/admincp/admincp_admingroup.php
index e3beb816..bfaec9ad 100644
--- a/upload/source/admincp/admincp_admingroup.php
+++ b/upload/source/admincp/admincp_admingroup.php
@@ -59,7 +59,7 @@
$group['type'] == 'system' ? cplang('inbuilt') : cplang('custom'),
$group['type'] == 'system' ? $lang['usergroups_system_'.$group['radminid']] : $adminidselect,
"",
- "",
+ "",
"$lang[admingroup_setting_user]",
"$lang[admingroup_setting_admin]"
));
diff --git a/upload/source/admincp/admincp_cloudaddons.php b/upload/source/admincp/admincp_cloudaddons.php
index 83df144f..e5726a6e 100644
--- a/upload/source/admincp/admincp_cloudaddons.php
+++ b/upload/source/admincp/admincp_cloudaddons.php
@@ -182,24 +182,106 @@
$addoni++;
cpmsg('cloudaddons_downloading', "action=cloudaddons&operation=download&addonids=$_GET[addonids]&i=$addoni&step=1&md5hash=".$_GET['md5hash'].'×tamp='.$_GET['timestamp'], 'loading', array('addonid' => $_GET['key'].'.'.$_GET['type']), FALSE);
}
- list($_GET['key'], $_GET['type'], $_GET['rid']) = explode('.', $addonids[0]);
- cloudaddons_downloadlog($_GET['key'].'.'.$_GET['type']);
- if($_GET['type'] == 'plugin') {
- $plugin = C::t('common_plugin')->fetch_by_identifier($_GET['key']);
- if(!$plugin['pluginid']) {
- dheader('location: '.ADMINSCRIPT.'?action=plugins&operation=import&dir='.$_GET['key']);
- } else {
- dheader('location: '.ADMINSCRIPT.'?action=plugins&operation=upgrade&pluginid='.$plugin['pluginid']);
+
+ $extra = currentlang();
+ $extra = $extra ? '_'.$extra : '';
+ $batch = array();
+ foreach ($addonids as $addonid) {
+ list($key, $type, $rid) = explode('.', $addonid);
+ cloudaddons_downloadlog($key.'.'.$type);
+ if(empty($batch[$key.'.'.$type][1])) {
+ if($type == 'plugin') {
+ $entrytitle = $importtxt = '';
+ $plugindir = DISCUZ_ROOT.'./source/plugin/'.$key;
+ if(file_exists($plugindir.'/discuz_plugin_'.$key.$extra.'.xml')) {
+ $importtxt = @implode('', file($plugindir.'/discuz_plugin_'.$key.$extra.'.xml'));
+ } elseif(file_exists($plugindir.'/discuz_plugin_'.$key.'.xml')) {
+ $importtxt = @implode('', file($plugindir.'/discuz_plugin_'.$key.'.xml'));
+ }
+ if(!empty($importtxt)) {
+ $pluginarray = getimportdata('Discuz! Plugin', 0, 1);
+ if(!empty($pluginarray['plugin']['name'])) {
+ $entrytitle = dhtmlspecialchars($pluginarray['plugin']['name'].' '.$pluginarray['plugin']['version']);
+ }
+ }
+ $plugin = C::t('common_plugin')->fetch_by_identifier($key);
+ if(!$plugin['pluginid']) {
+ $batch[$key.'.'.$type] = array(
+ ADMINSCRIPT.'?action=plugins&operation=import&dir='.$key,
+ $lang['plugins_config_install'].' '.$entrytitle,
+ );
+ } else {
+ if ($pluginarray['plugin']['version'] != $plugin['version']) {
+ $batch[$key.'.'.$type] = array(
+ ADMINSCRIPT.'?action=plugins&operation=upgrade&pluginid='.$plugin['pluginid'],
+ $lang['plugins_config_upgrade'].' '.$entrytitle,
+ );
+ }
+ }
+ } elseif($type == 'template') {
+ $pluginarray = array();
+ $entrytitle = $importtxt = '';
+ $templatedir = DISCUZ_ROOT.'./template/'.$key;
+ $searchdir = dir($templatedir);
+ while($searchentry = $searchdir->read()) {
+ if(substr($searchentry, 0, 13) == 'discuz_style_' && fileext($searchentry) == 'xml') {
+ $importtxt = @implode('', file($templatedir.'/'.$searchentry));
+ if(!empty($importtxt)) {
+ break;
+ }
+ }
+ }
+ if(!empty($importtxt)) {
+ $stylearray = getimportdata('Discuz! Style');
+ if(!empty($stylearray['tplname'])) {
+ $entrytitle = dhtmlspecialchars($stylearray['tplname']);
+ }
+ }
+ $batch[$key.'.'.$type] = array(
+ ADMINSCRIPT.'?action=styles&operation=import&dir='.$key,
+ $entrytitle,
+ );
+ } else {
+ cloudaddons_validator($key.'.pack');
+ cloudaddons_installlog($key.'.pack');
+ if(file_exists(DISCUZ_ROOT.'./data/addonpack/'.$key.'.php')) {
+ $batch[$key.'.'.$type] = array(
+ $_G['siteurl'].'data/addonpack/'.$key.'.php',
+ $key.'.'.$type,
+ );
+ }
+ }
+ }
+ }
+
+ if(count($batch) > 1) {
+ $message = '';
+ foreach ($batch as $k => $v) {
+ $message .= '
'.($v[1] ? $v[1] : $k).'
';
+ }
+ echo ''.cplang('cloudaddons_batch_succeed').'
'.$message.'
+
+ ';
+ exit;
+ } elseif(count($batch) == 1) {
+ $v = reset($batch);
+ dheader('location: '.$v[0]);
} else {
- cloudaddons_validator($_GET['key'].'.pack');
- cloudaddons_installlog($_GET['key'].'.pack');
- if(file_exists(DISCUZ_ROOT.'./data/addonpack/'.$_GET['key'].'.php')) {
- dheader('location: '.$_G['siteurl'].'data/addonpack/'.$_GET['key'].'.php');
+ list($_GET['key'], $_GET['type'], $_GET['rid']) = explode('.', $addonids[0]);
+ if($_GET['type'] == 'plugin') {
+ dheader('location: '.ADMINSCRIPT.'?action=plugins&operation=upgrade&pluginid='.$plugin['pluginid']);
+ } else {
+ cpmsg('cloudaddons_pack_installed', '', 'succeed');
}
- cpmsg('cloudaddons_pack_installed', '', 'succeed');
}
}
}
diff --git a/upload/source/admincp/admincp_members.php b/upload/source/admincp/admincp_members.php
index 3965eded..df04942e 100644
--- a/upload/source/admincp/admincp_members.php
+++ b/upload/source/admincp/admincp_members.php
@@ -1510,7 +1510,18 @@ function getcrimerecord() {
$_GET['banexpirynew'] = !empty($_GET['banexpirynew']) ? TIMESTAMP + $_GET['banexpirynew'] * 86400 : 0;
$_GET['banexpirynew'] = $_GET['banexpirynew'] > TIMESTAMP ? $_GET['banexpirynew'] : 0;
if($_GET['banexpirynew']) {
- $member['groupterms']['main'] = array('time' => $_GET['banexpirynew'], 'adminid' => $member['adminid'], 'groupid' => $member['groupid']);
+ if($member['groupid'] == 4 || $member['groupid'] == 5) {
+ $member['groupterms']['main']['time'] = $_GET['banexpirynew'];
+ if (empty($member['groupterms']['main']['groupid'])) {
+ $groupnew = C::t('common_usergroup')->fetch_by_credits($member['credits']);
+ $member['groupterms']['main']['groupid'] = $groupnew['groupid'];
+ }
+ if (!isset($member['groupterms']['main']['adminid'])) {
+ $member['groupterms']['main']['adminid'] = $member['adminid'];
+ }
+ }else{
+ $member['groupterms']['main'] = array('time' => $_GET['banexpirynew'], 'adminid' => $member['adminid'], 'groupid' => $member['groupid']);
+ }
$member['groupterms']['ext'][$groupidnew] = $_GET['banexpirynew'];
$setarr['groupexpiry'] = groupexpiry($member['groupterms']);
} else {
diff --git a/upload/source/admincp/admincp_plugins.php b/upload/source/admincp/admincp_plugins.php
index 71a28971..eb53f910 100644
--- a/upload/source/admincp/admincp_plugins.php
+++ b/upload/source/admincp/admincp_plugins.php
@@ -1077,7 +1077,7 @@
''.
''.
''.
- ''.
+ ''.
''.
'