Skip to content

Commit 72413ac

Browse files
SajakiSajaki
authored andcommitted
set default values on new registration
1 parent 05dcc8a commit 72413ac

6 files changed

Lines changed: 43 additions & 25 deletions

File tree

‎CHANGELOG.md‎

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,9 @@
1-
21
### Changelog
32

3+
4+
- 2.2.8 (10/06/2018)
5+
- [FIX] #82 RT FIX
6+
47
- 2.2.7 (25/02/2018)
58
- [NEW] #82 recent topics is now available on a special page http://url/app.php/rt
69
- [CHG] now uses phpbb 3.2 language class

‎README.md‎

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,6 @@ Based on NV Recent Topics for phpBB 3.0, by Joas Schilling ([nickvergessen](http
88
v2.2.7 (25/02/2018)
99
[![Build Status](https://api.travis-ci.org/Sajaki/RecentTopics.svg)](https://travis-ci.org/Sajaki/RecentTopics)
1010

11-
- [download](https://www.avathar.be/bbdkp/app.php/dlext/?view=detail&df_id=35)
12-
1311
#### Support
1412
- [Support forum](https://www.avathar.be/bbdkp/viewforum.php?f=65)
1513

‎config/services.yml‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,5 +52,6 @@ services:
5252
- '@template'
5353
- '@user'
5454
- '@language'
55+
- '@dbal.conn'
5556
tags:
5657
- { name: event.listener }

‎event/ucp_listener.php‎

Lines changed: 30 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,9 @@ class ucp_listener implements EventSubscriberInterface
5656
*/
5757
protected $language;
5858

59+
/* @var \phpbb\db\driver\driver_interface */
60+
protected $db;
61+
5962
/**
6063
* ucp_listener constructor.
6164
*
@@ -65,20 +68,24 @@ class ucp_listener implements EventSubscriberInterface
6568
* @param \phpbb\template\template $template
6669
* @param \phpbb\user $user
6770
* @param \phpbb\language\language $language
71+
* @param \phpbb\db\driver\driver_interface $db
6872
*/
6973
public function __construct(\phpbb\auth\auth $auth,
7074
\phpbb\config\config $config,
7175
\phpbb\request\request $request,
7276
\phpbb\template\template $template,
7377
\phpbb\user $user,
74-
\phpbb\language\language $language)
78+
\phpbb\language\language $language,
79+
\phpbb\db\driver\driver_interface $db
80+
)
7581
{
7682
$this->auth = $auth;
7783
$this->config = $config;
7884
$this->request = $request;
7985
$this->template = $template;
8086
$this->user = $user;
8187
$this->language = $language;
88+
$this->db = $db;
8289
}
8390

8491
/**
@@ -89,6 +96,7 @@ static public function getSubscribedEvents()
8996
return array(
9097
'core.ucp_prefs_view_data' => 'ucp_prefs_get_data',
9198
'core.ucp_prefs_view_update_data' => 'ucp_prefs_set_data',
99+
'core.ucp_register_data_after' => 'ucp_register_set_data'
92100
);
93101
}
94102

@@ -115,6 +123,7 @@ public function ucp_prefs_get_data($event)
115123

116124
$template_vars = array();
117125

126+
// if authorised for one of these then set ucp master template variable to true
118127
if ($this->auth->acl_get('u_rt_enable') || $this->auth->acl_get('u_rt_location') || $this->auth->acl_get('u_rt_sort_start_time') || $this->auth->acl_get('u_rt_unread_only'))
119128
{
120129
$template_vars += array(
@@ -199,4 +208,24 @@ public function ucp_prefs_set_data($event)
199208
)
200209
);
201210
}
211+
212+
/**
213+
* After new user registration, set rt user parameters to default;
214+
* @param $event
215+
*/
216+
public function ucp_register_set_data($event)
217+
{
218+
$sql = ' UPDATE ' . USERS_TABLE . ' SET ';
219+
$sql .= " user_rt_enable = '" . $this->config['rt_index'] . "' ";
220+
$sql .= ", user_rt_sort_start_time = '" . $this->config['rt_sort_start_time'] . "' ";
221+
$sql .= ", user_rt_unread_only = '" . $this->config['rt_unread_only'] . "' ";
222+
$sql .= ", user_rt_location = '" . $this->config['rt_location'] . "' ";
223+
$sql .= ', user_rt_number = ' . ((int) $this->config['rt_number'] > 0 ? (int) $this->config['rt_number'] : 5 ) . ' ';
224+
$sql .= ' WHERE 1=1 ';
225+
$sql .= ' AND user_id = ' . $this->user->data['user_id'];
226+
227+
$this->db->sql_query($sql);
228+
}
229+
230+
202231
}

‎migrations/release_2_2_7.php‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,4 +64,4 @@ public function revert_schema()
6464
),
6565
);
6666
}
67-
}
67+
}

‎migrations/release_2_2_8.php‎

Lines changed: 7 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -29,31 +29,18 @@ public function update_data()
2929
{
3030
return array(
3131
array('config.update', array('rt_version', '2.2.8')),
32-
32+
array('custom', array(array($this, 'fix_rt_number')))
3333
);
34-
}
35-
36-
public function update_schema()
37-
{
38-
return array(
39-
'drop_columns' => array(
40-
$this->table_prefix . 'users' => array(
41-
'user_rt_number',
42-
),
43-
),
44-
45-
'add_columns' => array(
46-
$this->table_prefix . 'users' => array(
47-
'user_rt_number' => array('UINT', $this->config['rt_number']),
48-
),
49-
),
5034

51-
);
5235
}
5336

54-
public function revert_schema()
37+
/**
38+
* in 2.7 the column was created with a wrong default value so we need to reset it.
39+
*/
40+
public function fix_rt_number()
5541
{
56-
//no action needed on uninstall
42+
$sql = 'UPDATE ' . $this->table_prefix . 'users' . " SET user_rt_number = '" . ((int) $this->config['rt_number'] > 0 ? (int) $this->config['rt_number'] : 5 ) . "' ";
43+
$this->db->sql_query($sql);
5744
}
5845

5946
}

0 commit comments

Comments
 (0)