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

      (Beispiel Datei-Icons)

Auf das Icon klicken um den Quellcode anzuzeigen

pm.php

Zuletzt modifiziert: 09.10.2024, 12:54 - Dateigröße: 4.11 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  * Private message notifications class
 018  * This class handles notifications for private messages
 019  */
 020   
 021  class pm extends \phpbb\notification\type\base
 022  {
 023      /**
 024      * Get notification type name
 025      *
 026      * @return string
 027      */
 028      public function get_type()
 029      {
 030          return 'notification.type.pm';
 031      }
 032   
 033      /**
 034      * Notification option data (for outputting to the user)
 035      *
 036      * @var bool|array False if the service should use it's default data
 037      *                     Array of data (including keys 'id', 'lang', and 'group')
 038      */
 039      public static $notification_option = array(
 040          'lang'    => 'NOTIFICATION_TYPE_PM',
 041      );
 042   
 043      /**
 044      * Is available
 045      */
 046      public function is_available()
 047      {
 048          return ($this->config['allow_privmsg'] && $this->auth->acl_get('u_readpm'));
 049      }
 050   
 051      /**
 052      * Get the id of the
 053      *
 054      * @param array $pm The data from the private message
 055      */
 056      public static function get_item_id($pm)
 057      {
 058          return (int) $pm['msg_id'];
 059      }
 060   
 061      /**
 062      * Get the id of the parent
 063      *
 064      * @param array $pm The data from the pm
 065      */
 066      public static function get_item_parent_id($pm)
 067      {
 068          // No parent
 069          return 0;
 070      }
 071   
 072      /**
 073      * Find the users who want to receive notifications
 074      *
 075      * @param array $pm Data from submit_pm
 076      * @param array $options Options for finding users for notification
 077      *
 078      * @return array
 079      */
 080      public function find_users_for_notification($pm, $options = array())
 081      {
 082          $options = array_merge(array(
 083              'ignore_users'        => array(),
 084          ), $options);
 085   
 086          if (!sizeof($pm['recipients']))
 087          {
 088              return array();
 089          }
 090   
 091          unset($pm['recipients'][$pm['from_user_id']]);
 092   
 093          $this->user_loader->load_users(array_keys($pm['recipients']));
 094   
 095          return $this->check_user_notification_options(array_keys($pm['recipients']), $options);
 096      }
 097   
 098      /**
 099      * Get the user's avatar
 100      */
 101      public function get_avatar()
 102      {
 103          return $this->user_loader->get_avatar($this->get_data('from_user_id'));
 104      }
 105   
 106      /**
 107      * Get the HTML formatted title of this notification
 108      *
 109      * @return string
 110      */
 111      public function get_title()
 112      {
 113          $username = $this->user_loader->get_username($this->get_data('from_user_id'), 'no_profile');
 114   
 115          return $this->user->lang('NOTIFICATION_PM', $username);
 116      }
 117   
 118      /**
 119      * Get the HTML formatted reference of the notification
 120      *
 121      * @return string
 122      */
 123      public function get_reference()
 124      {
 125          return $this->user->lang(
 126              'NOTIFICATION_REFERENCE',
 127              $this->get_data('message_subject')
 128          );
 129      }
 130   
 131      /**
 132      * Get email template
 133      *
 134      * @return string|bool
 135      */
 136      public function get_email_template()
 137      {
 138          return 'privmsg_notify';
 139      }
 140   
 141      /**
 142      * Get email template variables
 143      *
 144      * @return array
 145      */
 146      public function get_email_template_variables()
 147      {
 148          $user_data = $this->user_loader->get_user($this->get_data('from_user_id'));
 149   
 150          return array(
 151              'AUTHOR_NAME'                => htmlspecialchars_decode($user_data['username']),
 152              'SUBJECT'                    => htmlspecialchars_decode(censor_text($this->get_data('message_subject'))),
 153   
 154              'U_VIEW_MESSAGE'            => generate_board_url() . '/ucp.' . $this->php_ext . "?i=pm&mode=view&p={$this->item_id}",
 155          );
 156      }
 157   
 158      /**
 159      * Get the url to this item
 160      *
 161      * @return string URL
 162      */
 163      public function get_url()
 164      {
 165          return append_sid($this->phpbb_root_path . 'ucp.' . $this->php_ext, "i=pm&amp;mode=view&amp;p={$this->item_id}");
 166      }
 167   
 168      /**
 169      * Users needed to query before this notification can be displayed
 170      *
 171      * @return array Array of user_ids
 172      */
 173      public function users_to_query()
 174      {
 175          return array($this->get_data('from_user_id'));
 176      }
 177   
 178      /**
 179      * Function for preparing the data for insertion in an SQL query
 180      * (The service handles insertion)
 181      *
 182      * @param array $pm Data from submit_post
 183      * @param array $pre_create_data Data from pre_create_insert_array()
 184      *
 185      * @return array Array of data ready to be inserted into the database
 186      */
 187      public function create_insert_array($pm, $pre_create_data = array())
 188      {
 189          $this->set_data('from_user_id', $pm['from_user_id']);
 190   
 191          $this->set_data('message_subject', $pm['message_subject']);
 192   
 193          return parent::create_insert_array($pm, $pre_create_data);
 194      }
 195  }
 196