[ Index ] |
PHP Cross Reference of phpBB-3.3.14-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 /** 17 * Post in queue notifications class 18 * This class handles notifications for posts that are put in the moderation queue (for moderators) 19 */ 20 21 class post_in_queue extends \phpbb\notification\type\post 22 { 23 /** 24 * Get notification type name 25 * 26 * @return string 27 */ 28 public function get_type() 29 { 30 return 'notification.type.post_in_queue'; 31 } 32 33 /** 34 * Language key used to output the text 35 * 36 * @var string 37 */ 38 protected $language_key = 'NOTIFICATION_POST_IN_QUEUE'; 39 40 /** 41 * Notification option data (for outputting to the user) 42 * 43 * @var bool|array False if the service should use it's default data 44 * Array of data (including keys 'id', 'lang', and 'group') 45 */ 46 static public $notification_option = array( 47 'id' => 'notification.type.needs_approval', 48 'lang' => 'NOTIFICATION_TYPE_IN_MODERATION_QUEUE', 49 'group' => 'NOTIFICATION_GROUP_MODERATION', 50 ); 51 52 /** 53 * Permission to check for (in find_users_for_notification) 54 * 55 * @var string Permission name 56 */ 57 protected $permission = 'm_approve'; 58 59 /** 60 * Is available 61 */ 62 public function is_available() 63 { 64 $has_permission = $this->auth->acl_getf($this->permission, true); 65 66 return (!empty($has_permission)); 67 } 68 69 /** 70 * Find the users who want to receive notifications 71 * 72 * @param array $post Data from the post 73 * @param array $options Options for finding users for notification 74 * 75 * @return array 76 */ 77 public function find_users_for_notification($post, $options = array()) 78 { 79 $options = array_merge(array( 80 'ignore_users' => array(), 81 ), $options); 82 83 // 0 is for global moderator permissions 84 $auth_approve = $this->auth->acl_get_list(false, $this->permission, array($post['forum_id'], 0)); 85 86 if (empty($auth_approve)) 87 { 88 return array(); 89 } 90 91 $has_permission = array(); 92 93 if (isset($auth_approve[$post['forum_id']][$this->permission])) 94 { 95 $has_permission = $auth_approve[$post['forum_id']][$this->permission]; 96 } 97 98 if (isset($auth_approve[0][$this->permission])) 99 { 100 $has_permission = array_unique(array_merge($has_permission, $auth_approve[0][$this->permission])); 101 } 102 sort($has_permission); 103 104 $auth_read = $this->auth->acl_get_list($has_permission, 'f_read', $post['forum_id']); 105 if (empty($auth_read)) 106 { 107 return array(); 108 } 109 110 return $this->check_user_notification_options($auth_read[$post['forum_id']]['f_read'], array_merge($options, array( 111 'item_type' => static::$notification_option['id'], 112 ))); 113 } 114 115 /** 116 * Get the url to this item 117 * 118 * @return string URL 119 */ 120 public function get_url() 121 { 122 return append_sid($this->phpbb_root_path . 'mcp.' . $this->php_ext, "i=queue&mode=approve_details&p={$this->item_id}"); 123 } 124 125 /** 126 * {inheritDoc} 127 */ 128 public function get_redirect_url() 129 { 130 return parent::get_url(); 131 } 132 133 /** 134 * {@inheritdoc} 135 */ 136 public function create_insert_array($post, $pre_create_data = array()) 137 { 138 parent::create_insert_array($post, $pre_create_data); 139 140 $this->notification_time = time(); 141 } 142 143 /** 144 * {@inheritdoc} 145 */ 146 public function get_insert_array() 147 { 148 $data = parent::get_insert_array(); 149 $data['notification_time'] = $this->notification_time; 150 151 return $data; 152 } 153 154 /** 155 * Get email template 156 * 157 * @return string|bool 158 */ 159 public function get_email_template() 160 { 161 return 'post_in_queue'; 162 } 163 }
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
Generated: Mon Nov 25 19:05:08 2024 | Cross-referenced by PHPXref 0.7.1 |