Verzeichnisstruktur phpBB-3.2.0


Veröffentlicht
06.01.2017

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.
Auf den Verzeichnisnamen klicken, dies zeigt nur das Verzeichnis mit Inhalt an

(Beispiel Datei-Icons)

Auf das Icon klicken um den Quellcode anzuzeigen

admin_activate_user.php

Zuletzt modifiziert: 09.10.2024, 12:54 - Dateigröße: 3.73 KiB


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  /**
017  * Admin activation notifications class
018  * This class handles notifications for users requiring admin activation
019  */
020   
021  class admin_activate_user extends \phpbb\notification\type\base
022  {
023      /**
024      * {@inheritdoc}
025      */
026      public function get_type()
027      {
028          return 'notification.type.admin_activate_user';
029      }
030   
031      /**
032      * {@inheritdoc}
033      */
034      protected $language_key = 'NOTIFICATION_ADMIN_ACTIVATE_USER';
035   
036      /**
037      * {@inheritdoc}
038      */
039      static public $notification_option = array(
040          'lang'    => 'NOTIFICATION_TYPE_ADMIN_ACTIVATE_USER',
041          'group'    => 'NOTIFICATION_GROUP_ADMINISTRATION',
042      );
043   
044      /** @var \phpbb\user_loader */
045      protected $user_loader;
046   
047      /** @var \phpbb\config\config */
048      protected $config;
049   
050      public function set_config(\phpbb\config\config $config)
051      {
052          $this->config = $config;
053      }
054   
055      public function set_user_loader(\phpbb\user_loader $user_loader)
056      {
057          $this->user_loader = $user_loader;
058      }
059   
060      /**
061      * {@inheritdoc}
062      */
063      public function is_available()
064      {
065          return ($this->auth->acl_get('a_user') && $this->config['require_activation'] == USER_ACTIVATION_ADMIN);
066      }
067   
068      /**
069      * {@inheritdoc}
070      */
071      static public function get_item_id($user)
072      {
073          return (int) $user['user_id'];
074      }
075   
076      /**
077      * {@inheritdoc}
078      */
079      static public function get_item_parent_id($post)
080      {
081          return 0;
082      }
083   
084      /**
085      * {@inheritdoc}
086      */
087      public function find_users_for_notification($user, $options = array())
088      {
089          $options = array_merge(array(
090              'ignore_users'    => array(),
091          ), $options);
092   
093          // Grab admins that have permission to administer users.
094          $admin_ary = $this->auth->acl_get_list(false, 'a_user', false);
095          $users = (!empty($admin_ary[0]['a_user'])) ? $admin_ary[0]['a_user'] : array();
096   
097          // Grab founders
098          $sql = 'SELECT user_id
099              FROM ' . USERS_TABLE . '
100              WHERE user_type = ' . USER_FOUNDER;
101          $result = $this->db->sql_query($sql);
102   
103          while ($row = $this->db->sql_fetchrow($result))
104          {
105              $users[] = (int) $row['user_id'];
106          }
107          $this->db->sql_freeresult($result);
108   
109          if (empty($users))
110          {
111              return array();
112          }
113          $users = array_unique($users);
114   
115          return $this->check_user_notification_options($users, $options);
116      }
117   
118      /**
119      * {@inheritdoc}
120      */
121      public function get_avatar()
122      {
123          return $this->user_loader->get_avatar($this->item_id, false, true);
124      }
125   
126      /**
127      * {@inheritdoc}
128      */
129      public function get_title()
130      {
131          $username = $this->user_loader->get_username($this->item_id, 'no_profile');
132   
133          return $this->language->lang($this->language_key, $username);
134      }
135   
136      /**
137      * {@inheritdoc}
138      */
139      public function get_email_template()
140      {
141          return 'admin_activate';
142      }
143   
144      /**
145      * {@inheritdoc}
146      */
147      public function get_email_template_variables()
148      {
149          $board_url = generate_board_url();
150          $username = $this->user_loader->get_username($this->item_id, 'username');
151   
152          return array(
153              'USERNAME'            => htmlspecialchars_decode($username),
154              'U_USER_DETAILS'    => "{$board_url}/memberlist.{$this->php_ext}?mode=viewprofile&u={$this->item_id}",
155              'U_ACTIVATE'        => "{$board_url}/ucp.{$this->php_ext}?mode=activate&u={$this->item_id}&k={$this->get_data('user_actkey')}",
156          );
157      }
158   
159      /**
160      * {@inheritdoc}
161      */
162      public function get_url()
163      {
164          return $this->user_loader->get_username($this->item_id, 'profile');
165      }
166   
167      /**
168      * {@inheritdoc}
169      */
170      public function users_to_query()
171      {
172          return array($this->item_id);
173      }
174   
175      /**
176      * {@inheritdoc}
177      */
178      public function create_insert_array($user, $pre_create_data)
179      {
180          $this->set_data('user_actkey', $user['user_actkey']);
181          $this->notification_time = $user['user_regdate'];
182   
183          parent::create_insert_array($user, $pre_create_data);
184      }
185  }
186