Verzeichnisstruktur phpBB-3.1.0
- Veröffentlicht
- 27.10.2014
So funktioniert es
|
Auf das letzte Element klicken. Dies geht jeweils ein Schritt zurück |
Auf das Icon klicken, dies öffnet das Verzeichnis. Nochmal klicken schließt das Verzeichnis. |
|
(Beispiel Datei-Icons)
|
Auf das Icon klicken um den Quellcode anzuzeigen |
group_request.php
001 <?php
002 /**
003 *
004 * This file is part of the phpBB Forum Software package.
005 *
006 * @copyright (c) phpBB Limited <https://www.phpbb.com>
007 * @license GNU General Public License, version 2 (GPL-2.0)
008 *
009 * For full copyright and license information, please see
010 * the docs/CREDITS.txt file.
011 *
012 */
013
014 namespace phpbb\notification\type;
015
016 class group_request extends \phpbb\notification\type\base
017 {
018 /**
019 * {@inheritdoc}
020 */
021 public function get_type()
022 {
023 return 'notification.type.group_request';
024 }
025
026 /**
027 * {@inheritdoc}
028 */
029 public static $notification_option = array(
030 'lang' => 'NOTIFICATION_TYPE_GROUP_REQUEST',
031 );
032
033 /**
034 * {@inheritdoc}
035 */
036 public function is_available()
037 {
038 // Leader of any groups?
039 $sql = 'SELECT group_id
040 FROM ' . USER_GROUP_TABLE . '
041 WHERE user_id = ' . (int) $this->user->data['user_id'] . '
042 AND group_leader = 1';
043 $result = $this->db->sql_query_limit($sql, 1);
044 $row = $this->db->sql_fetchrow($result);
045 $this->db->sql_freeresult($result);
046
047 return (!empty($row)) ? true : false;
048 }
049
050 /**
051 * {@inheritdoc}
052 */
053 public static function get_item_id($group)
054 {
055 return (int) $group['user_id'];
056 }
057
058 /**
059 * {@inheritdoc}
060 */
061 public static function get_item_parent_id($group)
062 {
063 // Group id is the parent
064 return (int) $group['group_id'];
065 }
066
067 /**
068 * {@inheritdoc}
069 */
070 public function find_users_for_notification($group, $options = array())
071 {
072 $options = array_merge(array(
073 'ignore_users' => array(),
074 ), $options);
075
076 $sql = 'SELECT user_id
077 FROM ' . USER_GROUP_TABLE . '
078 WHERE group_leader = 1
079 AND group_id = ' . (int) $group['group_id'];
080 $result = $this->db->sql_query($sql);
081
082 $user_ids = array();
083 while ($row = $this->db->sql_fetchrow($result))
084 {
085 $user_ids[] = (int) $row['user_id'];
086 }
087 $this->db->sql_freeresult($result);
088
089 $this->user_loader->load_users($user_ids);
090
091 return $this->check_user_notification_options($user_ids, $options);
092 }
093
094 /**
095 * {@inheritdoc}
096 */
097 public function get_avatar()
098 {
099 return $this->user_loader->get_avatar($this->item_id);
100 }
101
102 /**
103 * {@inheritdoc}
104 */
105 public function get_title()
106 {
107 $username = $this->user_loader->get_username($this->item_id, 'no_profile');
108
109 return $this->user->lang('NOTIFICATION_GROUP_REQUEST', $username, $this->get_data('group_name'));
110 }
111
112 /**
113 * {@inheritdoc}
114 */
115 public function get_email_template()
116 {
117 return 'group_request';
118 }
119
120 /**
121 * {@inheritdoc}
122 */
123 public function get_email_template_variables()
124 {
125 $user_data = $this->user_loader->get_user($this->item_id);
126
127 return array(
128 'GROUP_NAME' => htmlspecialchars_decode($this->get_data('group_name')),
129 'REQUEST_USERNAME' => htmlspecialchars_decode($user_data['username']),
130
131 'U_PENDING' => generate_board_url() . "/ucp.{$this->php_ext}?i=groups&mode=manage&action=list&g={$this->item_parent_id}",
132 'U_GROUP' => generate_board_url() . "/memberlist.{$this->php_ext}?mode=group&g={$this->item_parent_id}",
133 );
134 }
135
136 /**
137 * {@inheritdoc}
138 */
139 public function get_url()
140 {
141 return append_sid($this->phpbb_root_path . 'ucp.' . $this->php_ext, "i=groups&mode=manage&action=list&g={$this->item_parent_id}");
142 }
143
144 /**
145 * {@inheritdoc}
146 */
147 public function users_to_query()
148 {
149 return array($this->item_id);
150 }
151
152 /**
153 * {@inheritdoc}
154 */
155 public function create_insert_array($group, $pre_create_data = array())
156 {
157 $this->set_data('group_name', $group['group_name']);
158
159 return parent::create_insert_array($group, $pre_create_data);
160 }
161 }
162