[ Index ] |
PHP Cross Reference of phpBB-3.2.11-deutsch |
[Summary view] [Print] [Text view]
1 <?php 2 /** 3 * 4 * This file is part of the phpBB Forum Software package. 5 * 6 * @copyright (c) phpBB Limited <https://www.phpbb.com> 7 * @license GNU General Public License, version 2 (GPL-2.0) 8 * 9 * For full copyright and license information, please see 10 * the docs/CREDITS.txt file. 11 * 12 */ 13 14 namespace phpbb\notification\type; 15 16 class group_request extends \phpbb\notification\type\base 17 { 18 /** 19 * {@inheritdoc} 20 */ 21 public function get_type() 22 { 23 return 'notification.type.group_request'; 24 } 25 26 /** 27 * {@inheritdoc} 28 */ 29 static public $notification_option = array( 30 'lang' => 'NOTIFICATION_TYPE_GROUP_REQUEST', 31 ); 32 33 /** @var \phpbb\user_loader */ 34 protected $user_loader; 35 36 public function set_user_loader(\phpbb\user_loader $user_loader) 37 { 38 $this->user_loader = $user_loader; 39 } 40 41 /** 42 * {@inheritdoc} 43 */ 44 public function is_available() 45 { 46 // Leader of any groups? 47 $sql = 'SELECT group_id 48 FROM ' . USER_GROUP_TABLE . ' 49 WHERE user_id = ' . (int) $this->user->data['user_id'] . ' 50 AND group_leader = 1'; 51 $result = $this->db->sql_query_limit($sql, 1); 52 $row = $this->db->sql_fetchrow($result); 53 $this->db->sql_freeresult($result); 54 55 return (!empty($row)) ? true : false; 56 } 57 58 /** 59 * {@inheritdoc} 60 */ 61 static public function get_item_id($group) 62 { 63 return (int) $group['user_id']; 64 } 65 66 /** 67 * {@inheritdoc} 68 */ 69 static public function get_item_parent_id($group) 70 { 71 // Group id is the parent 72 return (int) $group['group_id']; 73 } 74 75 /** 76 * {@inheritdoc} 77 */ 78 public function find_users_for_notification($group, $options = array()) 79 { 80 $options = array_merge(array( 81 'ignore_users' => array(), 82 ), $options); 83 84 $sql = 'SELECT user_id 85 FROM ' . USER_GROUP_TABLE . ' 86 WHERE group_leader = 1 87 AND group_id = ' . (int) $group['group_id']; 88 $result = $this->db->sql_query($sql); 89 90 $user_ids = array(); 91 while ($row = $this->db->sql_fetchrow($result)) 92 { 93 $user_ids[] = (int) $row['user_id']; 94 } 95 $this->db->sql_freeresult($result); 96 97 $this->user_loader->load_users($user_ids); 98 99 return $this->check_user_notification_options($user_ids, $options); 100 } 101 102 /** 103 * {@inheritdoc} 104 */ 105 public function get_avatar() 106 { 107 return $this->user_loader->get_avatar($this->item_id, false, true); 108 } 109 110 /** 111 * {@inheritdoc} 112 */ 113 public function get_title() 114 { 115 $username = $this->user_loader->get_username($this->item_id, 'no_profile'); 116 117 return $this->language->lang('NOTIFICATION_GROUP_REQUEST', $username, $this->get_data('group_name')); 118 } 119 120 /** 121 * {@inheritdoc} 122 */ 123 public function get_email_template() 124 { 125 return 'group_request'; 126 } 127 128 /** 129 * {@inheritdoc} 130 */ 131 public function get_email_template_variables() 132 { 133 $user_data = $this->user_loader->get_user($this->item_id); 134 135 return array( 136 'GROUP_NAME' => htmlspecialchars_decode($this->get_data('group_name')), 137 'REQUEST_USERNAME' => htmlspecialchars_decode($user_data['username']), 138 139 'U_PENDING' => generate_board_url() . "/ucp.{$this->php_ext}?i=groups&mode=manage&action=list&g={$this->item_parent_id}", 140 'U_GROUP' => generate_board_url() . "/memberlist.{$this->php_ext}?mode=group&g={$this->item_parent_id}", 141 ); 142 } 143 144 /** 145 * {@inheritdoc} 146 */ 147 public function get_url() 148 { 149 return append_sid($this->phpbb_root_path . 'ucp.' . $this->php_ext, "i=groups&mode=manage&action=list&g={$this->item_parent_id}"); 150 } 151 152 /** 153 * {@inheritdoc} 154 */ 155 public function users_to_query() 156 { 157 return array($this->item_id); 158 } 159 160 /** 161 * {@inheritdoc} 162 */ 163 public function create_insert_array($group, $pre_create_data = array()) 164 { 165 $this->set_data('group_name', $group['group_name']); 166 167 parent::create_insert_array($group, $pre_create_data); 168 } 169 }
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
Generated: Wed Nov 11 20:33:01 2020 | Cross-referenced by PHPXref 0.7.1 |