Skip to content

Commit d8316a3

Browse files
committed
Migrate g_promote_min_posts and g_promote_next_group
1 parent c2a2b1d commit d8316a3

File tree

8 files changed

+20
-21
lines changed

8 files changed

+20
-21
lines changed

featherbb/Controller/Install.php

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -218,6 +218,7 @@ public function create_db(array $data)
218218
Container::get('perms')->allowGroup(3, array('board.read', 'users.view', 'search.topics', 'search.users'));
219219
Container::get('perms')->allowGroup(4, array('board.read', 'users.view', 'search.topics', 'search.users', 'topic.reply', 'topic.post', 'topic.delete', 'post.delete', 'post.edit', 'post.links', 'email.send'));
220220
Container::get('perms')->allowGroup(2, array('board.read', 'users.view', 'user.set_title', 'search.topics', 'search.users', 'topic.reply', 'topic.post', 'topic.delete', 'post.delete', 'post.edit', 'post.links', 'email.send', 'mod.edit_users', 'mod.rename_users', 'mod.change_passwords', 'mod.promote_users', 'mod.ban_users'));
221+
Container::get('perms')->allowGroup(1, array('*'));
221222
Container::get('cache')->store('permissions', \FeatherBB\Model\Cache::get_permissions());
222223
// Init preferences
223224
Container::get('prefs')->set(array(
@@ -227,6 +228,8 @@ public function create_db(array $data)
227228
'search.min_interval' => 30,
228229
'email.min_interval' => 60,
229230
'report.min_interval' => 60,
231+
'promote.min_posts' => 0,
232+
'promote.next_group' => 0,
230233
'timezone' => 0,
231234
'dst' => 0,
232235
'time_format' => 'H:i:s',

featherbb/Core/Preferences.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -269,7 +269,7 @@ public function getGroupPreferences($group_id)
269269
{
270270
$result = DB::for_table('preferences')
271271
->select_many('preference_name', 'preference_value')
272-
->where_in('preference_name', array('post.min_interval', 'search.min_interval', 'email.min_interval', 'report.min_interval'))
272+
->where_in('preference_name', array('post.min_interval', 'search.min_interval', 'email.min_interval', 'report.min_interval', 'promote.min_posts', 'promote.next_group'))
273273
->where_any_is(array(
274274
array('group' => $group_id),
275275
array('default' => 1),

featherbb/Model/Admin/Groups.php

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ class Groups
2020
public function fetch_groups()
2121
{
2222
// $result = DB::for_table('groups')->order_by('g_id')->find_many();
23-
$result = DB::for_table('groups')->select_many('g_id', 'g_user_title', 'g_title', 'g_promote_min_posts', 'g_promote_next_group', 'g_moderator')->order_by('g_id')->find_many();
23+
$result = DB::for_table('groups')->select_many('g_id', 'g_user_title', 'g_title', 'g_moderator')->order_by('g_id')->find_many();
2424
Container::get('hooks')->fireDB('model.admin.groups.fetch_groups_query', $result);
2525
$groups = array();
2626
foreach ($result as $cur_group) {
@@ -65,7 +65,7 @@ public function get_group_list($groups, $group)
6565

6666
foreach ($groups as $cur_group) {
6767
if (($cur_group['g_id'] != $group['info']['g_id'] || $group['mode'] == 'add') && $cur_group['g_id'] != ForumEnv::get('FEATHER_ADMIN') && $cur_group['g_id'] != ForumEnv::get('FEATHER_GUEST')) {
68-
if ($cur_group['g_id'] == $group['info']['g_promote_next_group']) {
68+
if ($cur_group['g_id'] == $group['prefs']['promote.next_group']) {
6969
$output .= "\t\t\t\t\t\t\t\t\t\t\t".'<option value="'.$cur_group['g_id'].'" selected="selected">'.Utils::escape($cur_group['g_title']).'</option>'."\n";
7070
} else {
7171
$output .= "\t\t\t\t\t\t\t\t\t\t\t".'<option value="'.$cur_group['g_id'].'">'.Utils::escape($cur_group['g_title']).'</option>'."\n";
@@ -166,15 +166,15 @@ public function add_edit_group($groups)
166166
$insert_update_group = array(
167167
'g_title' => $title,
168168
'g_user_title' => $user_title,
169-
'g_promote_min_posts' => $promote_min_posts,
170-
'g_promote_next_group' => $promote_next_group,
171169
'g_moderator' => $moderator,
172170
);
173171
$group_preferences = array(
174172
'post.min_interval' => (int) $post_flood,
175173
'search.min_interval' => (int) $search_flood,
176174
'email.min_interval' => (int) $email_flood,
177-
'report.min_interval' => (int) $report_flood
175+
'report.min_interval' => (int) $report_flood,
176+
'promote.min_posts' => (int) $promote_min_posts,
177+
'promote.next_group' => (int) $promote_next_group,
178178
);
179179
$group_permissions = array(
180180
'mod.edit_users' => (int) $mod_edit_users,
@@ -342,10 +342,12 @@ public function delete_group($group_id)
342342
DB::for_table('permissions')
343343
->where('group', $group_id)
344344
->delete_many();
345+
DB::for_table('preferences')
346+
->where('group', $group_id)
347+
->delete_many();
345348

346349
// Don't let users be promoted to this group
347-
DB::for_table('groups')->where('g_promote_next_group', $group_id)
348-
->update_many('g_promote_next_group', 0);
350+
DB::for_table('preferences')->where('promote.next_group', $group_id)->delete_many();
349351

350352
return Router::redirect(Router::pathFor('adminGroups'), __('Group removed redirect'));
351353
}

featherbb/Model/Install.php

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -77,8 +77,6 @@ class Install
7777
`g_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
7878
`g_title` varchar(50) NOT NULL DEFAULT '',
7979
`g_user_title` varchar(50) DEFAULT NULL,
80-
`g_promote_min_posts` int(10) unsigned NOT NULL DEFAULT '0',
81-
`g_promote_next_group` int(10) unsigned NOT NULL DEFAULT '0',
8280
`g_moderator` tinyint(1) NOT NULL DEFAULT '0',
8381
`inherit` text,
8482
PRIMARY KEY (`g_id`)

featherbb/Model/Post.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1128,8 +1128,8 @@ public function increment_post_count($post, $new_tid)
11281128
$increment = $increment->save();
11291129

11301130
// Promote this user to a new group if enabled
1131-
if (User::get()->g_promote_next_group != 0 && User::get()->num_posts + 1 >= User::get()->g_promote_min_posts) {
1132-
$new_group_id = User::get()->g_promote_next_group;
1131+
if (User::getPref('promote.next_group') && User::get()->num_posts + 1 >= User::getPref('promote.min_posts')) {
1132+
$new_group_id = User::getPref('promote.next_group');
11331133
$promote = DB::for_table('users')
11341134
->where('id', User::get()->id)
11351135
->find_one()

featherbb/Model/Profile.php

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -491,12 +491,7 @@ public function promote_user($id, $pid)
491491
$pid = Container::get('hooks')->fire('model.profile.promote_user.post_id', $pid);
492492

493493
// Find the group ID to promote the user to
494-
$next_group_id = DB::for_table('groups')
495-
->table_alias('g')
496-
->inner_join('users', array('u.group_id', '=', 'g.g_id'), 'u')
497-
->where('u.id', $id);
498-
$next_group_id = Container::get('hooks')->fireDB('model.profile.promote_user.next_group_id', $next_group_id);
499-
$next_group_id = $next_group_id->find_one_col('g_promote_next_group');
494+
$next_group_id = Container::get('hooks')->fire('model.profile.promote_user.next_group_id', User::getPref('promote.next_group', $id));
500495

501496
if (!$next_group_id) {
502497
throw new Error(__('Bad request'), 404);

featherbb/Model/Topic.php

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -839,7 +839,7 @@ public function print_posts($topic_id, $start_from, $cur_topic, $is_admmod)
839839
}
840840

841841
// Retrieve the posts (and their respective poster/online status)
842-
$result['select'] = array('u.email', 'u.title', 'u.url', 'u.location', 'u.signature', 'email_setting' => 'pr.preference_value', 'u.num_posts', 'u.registered', 'u.admin_note', 'p.id','username' => 'p.poster', 'p.poster_id', 'p.poster_ip', 'p.poster_email', 'p.message', 'p.hide_smilies', 'p.posted', 'p.edited', 'p.edited_by', 'g.g_id', 'g.g_user_title', 'g.g_promote_next_group', 'is_online' => 'o.user_id');
842+
$result['select'] = array('u.email', 'u.title', 'u.url', 'u.location', 'u.signature', 'email_setting' => 'pr.preference_value', 'u.num_posts', 'u.registered', 'u.admin_note', 'p.id','username' => 'p.poster', 'p.poster_id', 'p.poster_ip', 'p.poster_email', 'p.message', 'p.hide_smilies', 'p.posted', 'p.edited', 'p.edited_by', 'g.g_id', 'g.g_user_title', 'is_online' => 'o.user_id');
843843

844844
$result = DB::for_table('posts')
845845
->table_alias('p')
@@ -861,6 +861,7 @@ public function print_posts($topic_id, $start_from, $cur_topic, $is_admmod)
861861
$cur_post['post_actions'] = array();
862862
$cur_post['is_online_formatted'] = '';
863863
$cur_post['signature_formatted'] = '';
864+
$cur_post['promote.next_group'] = Container::get('prefs')->getGroupPreferences($cur_post['g_id'])['promote.next_group'];
864865

865866
// If the poster is a registered user
866867
if ($cur_post['poster_id'] > 1) {
@@ -923,7 +924,7 @@ public function print_posts($topic_id, $start_from, $cur_topic, $is_admmod)
923924
}
924925

925926
if (User::isAdmin() || (User::isAdminMod() && User::can('mod.promote_users'))) {
926-
if ($cur_post['g_promote_next_group']) {
927+
if ($cur_post['promote.next_group']) {
927928
$cur_post['user_info'][] = '<dd><span><a href="'.Router::pathFor('profileAction', ['id' => $cur_post['poster_id'], 'action' => 'promote', 'pid' => $cur_post['id']]).'">'.__('Promote user').'</a></span></dd>';
928929
}
929930
}

featherbb/View/admin/groups/add_edit_group.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@
5353
<option value="0"><?php _e('Disable promotion') ?></option>
5454
<?= $group_list ?>
5555
</select>
56-
<input type="text" name="promote_min_posts" size="5" maxlength="10" value="<?= Utils::escape($group['info']['g_promote_min_posts']) ?>" tabindex="4" />
56+
<input type="text" name="promote_min_posts" size="5" maxlength="10" value="<?= Utils::escape($group['prefs']['promote.min_posts']) ?>" tabindex="4" />
5757
<span><?php printf(__('Promote users help'), __('Disable promotion')) ?></span>
5858
</td>
5959
</tr>

0 commit comments

Comments
 (0)