Merge branch '3.3.x'

This commit is contained in:
Marc Alexander 2020-04-29 22:21:23 +02:00
commit d56597b02f
No known key found for this signature in database
GPG key ID: 50E0D2423696F995
5 changed files with 16 additions and 3 deletions

View file

@ -62,6 +62,7 @@ class ucp_notifications
foreach ($notification_methods as $method => $method_data) foreach ($notification_methods as $method => $method_data)
{ {
$is_set_notify = $request->is_set_post(str_replace('.', '_', $type . '_' . $method_data['id'])); $is_set_notify = $request->is_set_post(str_replace('.', '_', $type . '_' . $method_data['id']));
$is_available = $method_data['method']->is_available($type_data['type']);
/** /**
* Event to perform additional actions before ucp_notifications is submitted * Event to perform additional actions before ucp_notifications is submitted
@ -70,21 +71,26 @@ class ucp_notifications
* @var array type_data The notification type data * @var array type_data The notification type data
* @var array method_data The notification method data * @var array method_data The notification method data
* @var bool is_set_notify The notification is set or not * @var bool is_set_notify The notification is set or not
* @var bool is_available The notification is available or not
* @var array subscriptions The subscriptions data
* *
* @since 3.2.10-RC1 * @since 3.2.10-RC1
* @since 3.3.1-RC1
*/ */
$vars = [ $vars = [
'type_data', 'type_data',
'method_data', 'method_data',
'is_set_notify', 'is_set_notify',
'is_available',
'subscriptions',
]; ];
extract($phpbb_dispatcher->trigger_event('core.ucp_notifications_submit_notification_is_set', compact($vars))); extract($phpbb_dispatcher->trigger_event('core.ucp_notifications_submit_notification_is_set', compact($vars)));
if ($is_set_notify && (!isset($subscriptions[$type]) || !in_array($method_data['id'], $subscriptions[$type]))) if ($is_set_notify && $is_available && (!isset($subscriptions[$type]) || !in_array($method_data['id'], $subscriptions[$type])))
{ {
$phpbb_notifications->add_subscription($type, 0, $method_data['id']); $phpbb_notifications->add_subscription($type, 0, $method_data['id']);
} }
else if (!$is_set_notify && isset($subscriptions[$type]) && in_array($method_data['id'], $subscriptions[$type])) else if ((!$is_set_notify || !$is_available) && isset($subscriptions[$type]) && in_array($method_data['id'], $subscriptions[$type]))
{ {
$phpbb_notifications->delete_subscription($type, 0, $method_data['id']); $phpbb_notifications->delete_subscription($type, 0, $method_data['id']);
} }
@ -225,13 +231,16 @@ class ucp_notifications
* @var array type_data The notification type data * @var array type_data The notification type data
* @var array method_data The notification method data * @var array method_data The notification method data
* @var array tpl_ary The template variables * @var array tpl_ary The template variables
* @var array subscriptions The subscriptions data
* *
* @since 3.2.10-RC1 * @since 3.2.10-RC1
* @since 3.3.1-RC1
*/ */
$vars = [ $vars = [
'type_data', 'type_data',
'method_data', 'method_data',
'tpl_ary', 'tpl_ary',
'subscriptions',
]; ];
extract($phpbb_dispatcher->trigger_event('core.ucp_notifications_output_notification_types_modify_template_vars', compact($vars))); extract($phpbb_dispatcher->trigger_event('core.ucp_notifications_output_notification_types_modify_template_vars', compact($vars)));

View file

@ -350,6 +350,7 @@ class manager
* @var array notify_users User list to notify * @var array notify_users User list to notify
* *
* @since 3.2.10-RC1 * @since 3.2.10-RC1
* @since 3.3.1-RC1
*/ */
$vars = [ $vars = [
'notification_type_name', 'notification_type_name',

View file

@ -31,7 +31,7 @@
<!-- IF notification_types.EXPLAIN --><br />&nbsp; &nbsp;{notification_types.EXPLAIN}<!-- ENDIF --> <!-- IF notification_types.EXPLAIN --><br />&nbsp; &nbsp;{notification_types.EXPLAIN}<!-- ENDIF -->
</td> </td>
<!-- BEGIN notification_methods --> <!-- BEGIN notification_methods -->
<td class="mark"><input type="checkbox" name="{notification_types.TYPE}_{notification_types.notification_methods.METHOD}"<!-- IF notification_types.notification_methods.AVAILABLE and notification_types.notification_methods.SUBSCRIBED --> checked="checked"<!-- ENDIF --><!-- IF not notification_types.notification_methods.AVAILABLE --> disabled="disabled"<!-- ENDIF --> /></td> <td class="mark"><input type="checkbox" name="{notification_types.TYPE}_{notification_types.notification_methods.METHOD}"<!-- IF notification_types.notification_methods.SUBSCRIBED --> checked="checked"<!-- ENDIF --><!-- IF not notification_types.notification_methods.AVAILABLE --> disabled="disabled"<!-- ENDIF --> /></td>
<!-- END notification_methods --> <!-- END notification_methods -->
</tr> </tr>
<!-- ENDIF --> <!-- ENDIF -->

View file

@ -365,6 +365,7 @@ if ($module->is_active('zebra', 'friends'))
* @var array sql_ary SQL query array for listing of friends * @var array sql_ary SQL query array for listing of friends
* *
* @since 3.2.10-RC1 * @since 3.2.10-RC1
* @since 3.3.1-RC1
*/ */
$vars = [ $vars = [
'sql_ary', 'sql_ary',
@ -395,6 +396,7 @@ if ($module->is_active('zebra', 'friends'))
* @var string which friend is 'online' or 'offline' * @var string which friend is 'online' or 'offline'
* *
* @since 3.2.10-RC1 * @since 3.2.10-RC1
* @since 3.3.1-RC1
*/ */
$vars = [ $vars = [
'row', 'row',

View file

@ -723,6 +723,7 @@ if (count($topic_list))
* @var array sql_array SQL query array for obtaining topics/stickies * @var array sql_array SQL query array for obtaining topics/stickies
* *
* @since 3.2.10-RC1 * @since 3.2.10-RC1
* @since 3.3.1-RC1
*/ */
$vars = [ $vars = [
'forum_id', 'forum_id',