[ Index ] |
PHP Cross Reference of phpBB-3.1.12-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 public static $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&f={$this->get_data('forum_id')}&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 * Function for preparing the data for insertion in an SQL query 135 * (The service handles insertion) 136 * 137 * @param array $post Data from submit_post 138 * @param array $pre_create_data Data from pre_create_insert_array() 139 * 140 * @return array Array of data ready to be inserted into the database 141 */ 142 public function create_insert_array($post, $pre_create_data = array()) 143 { 144 $data = parent::create_insert_array($post, $pre_create_data); 145 146 $this->notification_time = $data['notification_time'] = time(); 147 148 return $data; 149 } 150 151 /** 152 * Get email template 153 * 154 * @return string|bool 155 */ 156 public function get_email_template() 157 { 158 return 'post_in_queue'; 159 } 160 }
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
Generated: Thu Jan 11 00:25:41 2018 | Cross-referenced by PHPXref 0.7.1 |