mirror of
https://github.com/phpbb/phpbb.git
synced 2025-06-28 14:18:52 +00:00
[ticket/11745] Group request approved notification
PHPBB3-11745
This commit is contained in:
parent
b213be84a7
commit
46b4a405b1
5 changed files with 143 additions and 33 deletions
|
@ -121,6 +121,24 @@ services:
|
||||||
tags:
|
tags:
|
||||||
- { name: notification.type }
|
- { name: notification.type }
|
||||||
|
|
||||||
|
notification.type.group_request_approved:
|
||||||
|
class: phpbb_notification_type_group_request_approved
|
||||||
|
scope: prototype # scope MUST be prototype for this to work!
|
||||||
|
arguments:
|
||||||
|
- @user_loader
|
||||||
|
- @dbal.conn
|
||||||
|
- @cache.driver
|
||||||
|
- @user
|
||||||
|
- @auth
|
||||||
|
- @config
|
||||||
|
- %core.root_path%
|
||||||
|
- %core.php_ext%
|
||||||
|
- %tables.notification_types%
|
||||||
|
- %tables.notifications%
|
||||||
|
- %tables.user_notifications%
|
||||||
|
tags:
|
||||||
|
- { name: notification.type }
|
||||||
|
|
||||||
notification.type.pm:
|
notification.type.pm:
|
||||||
class: phpbb_notification_type_pm
|
class: phpbb_notification_type_pm
|
||||||
scope: prototype # scope MUST be prototype for this to work!
|
scope: prototype # scope MUST be prototype for this to work!
|
||||||
|
|
|
@ -2929,11 +2929,10 @@ function group_user_attributes($action, $group_id, $user_id_ary = false, $userna
|
||||||
AND ' . $db->sql_in_set('ug.user_id', $user_id_ary);
|
AND ' . $db->sql_in_set('ug.user_id', $user_id_ary);
|
||||||
$result = $db->sql_query($sql);
|
$result = $db->sql_query($sql);
|
||||||
|
|
||||||
$user_id_ary = $email_users = array();
|
$user_id_ary = array();
|
||||||
while ($row = $db->sql_fetchrow($result))
|
while ($row = $db->sql_fetchrow($result))
|
||||||
{
|
{
|
||||||
$user_id_ary[] = $row['user_id'];
|
$user_id_ary[] = $row['user_id'];
|
||||||
$email_users[] = $row;
|
|
||||||
}
|
}
|
||||||
$db->sql_freeresult($result);
|
$db->sql_freeresult($result);
|
||||||
|
|
||||||
|
@ -2948,29 +2947,13 @@ function group_user_attributes($action, $group_id, $user_id_ary = false, $userna
|
||||||
AND " . $db->sql_in_set('user_id', $user_id_ary);
|
AND " . $db->sql_in_set('user_id', $user_id_ary);
|
||||||
$db->sql_query($sql);
|
$db->sql_query($sql);
|
||||||
|
|
||||||
// Send approved email to users...
|
|
||||||
include_once($phpbb_root_path . 'includes/functions_messenger.' . $phpEx);
|
|
||||||
$messenger = new messenger();
|
|
||||||
|
|
||||||
foreach ($email_users as $row)
|
|
||||||
{
|
|
||||||
$messenger->template('group_approved', $row['user_lang']);
|
|
||||||
|
|
||||||
$messenger->set_addresses($row);
|
|
||||||
|
|
||||||
$messenger->assign_vars(array(
|
|
||||||
'USERNAME' => htmlspecialchars_decode($row['username']),
|
|
||||||
'GROUP_NAME' => htmlspecialchars_decode($group_name),
|
|
||||||
'U_GROUP' => generate_board_url() . "/ucp.$phpEx?i=groups&mode=membership")
|
|
||||||
);
|
|
||||||
|
|
||||||
$messenger->send($row['user_notify_type']);
|
|
||||||
}
|
|
||||||
|
|
||||||
$messenger->save_queue();
|
|
||||||
|
|
||||||
$phpbb_notifications = $phpbb_container->get('notification_manager');
|
$phpbb_notifications = $phpbb_container->get('notification_manager');
|
||||||
|
|
||||||
|
$phpbb_notifications->add_notifications('group_request_approved', array(
|
||||||
|
'user_ids' => $user_id_ary,
|
||||||
|
'group_id' => $group_id,
|
||||||
|
'group_name' => $group_name,
|
||||||
|
));
|
||||||
$phpbb_notifications->delete_notifications('group_request', $user_id_ary, $group_id);
|
$phpbb_notifications->delete_notifications('group_request', $user_id_ary, $group_id);
|
||||||
|
|
||||||
$log = 'LOG_USERS_APPROVED';
|
$log = 'LOG_USERS_APPROVED';
|
||||||
|
|
|
@ -415,6 +415,7 @@ $lang = array_merge($lang, array(
|
||||||
),
|
),
|
||||||
'NOTIFICATION_BOOKMARK' => '%1$s replied to the topic "%2$s" you have bookmarked.',
|
'NOTIFICATION_BOOKMARK' => '%1$s replied to the topic "%2$s" you have bookmarked.',
|
||||||
'NOTIFICATION_GROUP_REQUEST' => '%1$s is requesting to join the group %2$s.',
|
'NOTIFICATION_GROUP_REQUEST' => '%1$s is requesting to join the group %2$s.',
|
||||||
|
'NOTIFICATION_GROUP_REQUEST_APPROVED' => 'Your request to join the "%1$s" group on has been approved.',
|
||||||
'NOTIFICATION_PM' => '%1$s sent you a Private Message "%2$s".',
|
'NOTIFICATION_PM' => '%1$s sent you a Private Message "%2$s".',
|
||||||
'NOTIFICATION_POST' => '%1$s replied to the topic "%2$s".',
|
'NOTIFICATION_POST' => '%1$s replied to the topic "%2$s".',
|
||||||
'NOTIFICATION_POST_APPROVED' => 'Your post was approved "%2$s".',
|
'NOTIFICATION_POST_APPROVED' => 'Your post was approved "%2$s".',
|
||||||
|
|
|
@ -1,10 +0,0 @@
|
||||||
Subject: Your request has been approved
|
|
||||||
|
|
||||||
Congratulations,
|
|
||||||
|
|
||||||
Your request to join the "{GROUP_NAME}" group on "{SITENAME}" has been approved.
|
|
||||||
Click on the following link to see your group membership.
|
|
||||||
|
|
||||||
{U_GROUP}
|
|
||||||
|
|
||||||
{EMAIL_SIG}
|
|
118
phpBB/phpbb/notification/type/group_request_approved.php
Normal file
118
phpBB/phpbb/notification/type/group_request_approved.php
Normal file
|
@ -0,0 +1,118 @@
|
||||||
|
<?php
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @package notifications
|
||||||
|
* @copyright (c) 2013 phpBB Group
|
||||||
|
* @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License v2
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @ignore
|
||||||
|
*/
|
||||||
|
if (!defined('IN_PHPBB'))
|
||||||
|
{
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
|
||||||
|
class phpbb_notification_type_group_request_approved extends phpbb_notification_type_base
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* {@inheritdoc}
|
||||||
|
*/
|
||||||
|
public function get_type()
|
||||||
|
{
|
||||||
|
return 'group_request_approved';
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* {@inheritdoc}
|
||||||
|
*/
|
||||||
|
public function is_available()
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* {@inheritdoc}
|
||||||
|
*/
|
||||||
|
public static function get_item_id($group)
|
||||||
|
{
|
||||||
|
return (int) $group['group_id'];
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* {@inheritdoc}
|
||||||
|
*/
|
||||||
|
public static function get_item_parent_id($group)
|
||||||
|
{
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* {@inheritdoc}
|
||||||
|
*/
|
||||||
|
public function find_users_for_notification($group, $options = array())
|
||||||
|
{
|
||||||
|
$users = array();
|
||||||
|
|
||||||
|
$group['user_ids'] = (!is_array($group['user_ids'])) ? array($group['user_ids']) : $group['user_ids'];
|
||||||
|
|
||||||
|
foreach ($group['user_ids'] as $user_id)
|
||||||
|
{
|
||||||
|
$users[$user_id] = array('');
|
||||||
|
}
|
||||||
|
|
||||||
|
return $users;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* {@inheritdoc}
|
||||||
|
*/
|
||||||
|
public function get_title()
|
||||||
|
{
|
||||||
|
return $this->user->lang('NOTIFICATION_GROUP_REQUEST_APPROVED', $this->get_data('group_name'));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* {@inheritdoc}
|
||||||
|
*/
|
||||||
|
public function get_url()
|
||||||
|
{
|
||||||
|
return append_sid($this->phpbb_root_path . 'memberlist.' . $this->php_ext, "mode=group&g={$this->item_id}");
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* {@inheritdoc}
|
||||||
|
*/
|
||||||
|
public function create_insert_array($group, $pre_create_data = array())
|
||||||
|
{
|
||||||
|
$this->set_data('group_name', $group['group_name']);
|
||||||
|
|
||||||
|
return parent::create_insert_array($group, $pre_create_data);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* {@inheritdoc}
|
||||||
|
*/
|
||||||
|
public function users_to_query()
|
||||||
|
{
|
||||||
|
return array();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* {@inheritdoc}
|
||||||
|
*/
|
||||||
|
public function get_email_template()
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* {@inheritdoc}
|
||||||
|
*/
|
||||||
|
public function get_email_template_variables()
|
||||||
|
{
|
||||||
|
return array();
|
||||||
|
}
|
||||||
|
}
|
Loading…
Add table
Reference in a new issue