@@ -374,7 +374,7 @@ discard block |
||
374 | 374 | * messages from. |
375 | 375 | * |
376 | 376 | * @return |
377 | - * TRUE if the user is allowed to block $account, or FALSE if not. |
|
377 | + boolean TRUE if the user is allowed to block $account, or FALSE if not. |
|
378 | 378 | */ |
379 | 379 | function _pm_block_user_access($account) { |
380 | 380 | global $user; |
@@ -399,11 +399,11 @@ discard block |
||
399 | 399 | * Author user object to check. |
400 | 400 | * @param $recipient |
401 | 401 | * Receiver user object to check. |
402 | - * @param $action |
|
402 | + * @param integer $action |
|
403 | 403 | * The action to be taken, defaults to PM_BLOCK_USER_DISALLOW_BLOCKING. |
404 | 404 | * |
405 | 405 | * @return |
406 | - * TRUE if a rule exists for the combination of author recipient and action. |
|
406 | + boolean TRUE if a rule exists for the combination of author recipient and action. |
|
407 | 407 | */ |
408 | 408 | function _pm_block_user_rule_exists($author, $recipient, $action = PM_BLOCK_USER_DISALLOW_BLOCKING) { |
409 | 409 | $block_actions = variable_get('pm_block_user_actions', array()); |
@@ -19,17 +19,17 @@ discard block |
||
19 | 19 | * Implements hook_help(). |
20 | 20 | */ |
21 | 21 | function pm_block_user_help($path) { |
22 | - switch ($path) { |
|
22 | + switch ($path) { |
|
23 | 23 | case 'admin/settings/messages/block': |
24 | 24 | return '<p>' . t('This area is used to define user blocking rules for the Privatemsg module. Rules allow control of who may block messages from whom. By default all users are allowed to block messages from anyone else. However, a site may have groups of users that need to contact or get information to others, for example: the site may have administrative staff or be a forum with moderators. Groups of users are defined by roles, which can be managed on the <a href="@roles">roles configuration page</a>.', array('@roles' => url('admin/user/roles'))) . '</p>'; |
25 | - } |
|
25 | + } |
|
26 | 26 | } |
27 | 27 | |
28 | 28 | /** |
29 | 29 | * Implements hook_menu(). |
30 | 30 | */ |
31 | 31 | function pm_block_user_menu() { |
32 | - $items['messages/block/%user'] = array( |
|
32 | + $items['messages/block/%user'] = array( |
|
33 | 33 | 'title' => 'Block user messages', |
34 | 34 | 'page callback' => 'drupal_get_form', |
35 | 35 | 'page arguments' => array('pm_block_user_form', 2), |
@@ -37,61 +37,61 @@ discard block |
||
37 | 37 | 'access arguments' => array(2), |
38 | 38 | 'type' => MENU_CALLBACK, |
39 | 39 | 'weight' => -10, |
40 | - ); |
|
40 | + ); |
|
41 | 41 | |
42 | - $items['admin/settings/messages/block'] = array( |
|
42 | + $items['admin/settings/messages/block'] = array( |
|
43 | 43 | 'title' => 'User blocking rules', |
44 | 44 | 'description' => 'Configure rules for which users may block each other.', |
45 | 45 | 'page callback' => 'drupal_get_form', |
46 | 46 | 'page arguments' => array('pm_block_user_settings'), |
47 | 47 | 'access arguments' => array('administer privatemsg settings'), |
48 | 48 | 'type' => MENU_LOCAL_TASK, |
49 | - ); |
|
49 | + ); |
|
50 | 50 | |
51 | - $items['messages/block/js'] = array( |
|
51 | + $items['messages/block/js'] = array( |
|
52 | 52 | 'title' => 'Javascript block actions form', |
53 | 53 | 'page callback' => 'pm_block_user_js', |
54 | 54 | 'access arguments' => array('administer privatemsg settings'), |
55 | 55 | 'type' => MENU_CALLBACK, |
56 | - ); |
|
56 | + ); |
|
57 | 57 | |
58 | - return $items; |
|
58 | + return $items; |
|
59 | 59 | } |
60 | 60 | |
61 | 61 | /** |
62 | 62 | * Menu callback for blocked user settings. |
63 | 63 | */ |
64 | 64 | function pm_block_user_settings(&$form_state) { |
65 | - drupal_add_css(drupal_get_path('module', 'pm_block_user') .'/pm_block_user.css'); |
|
66 | - // Need to cache form for AHAH, so it can be rebuilt from cache later. |
|
67 | - $form = array( |
|
65 | + drupal_add_css(drupal_get_path('module', 'pm_block_user') .'/pm_block_user.css'); |
|
66 | + // Need to cache form for AHAH, so it can be rebuilt from cache later. |
|
67 | + $form = array( |
|
68 | 68 | '#cache' => TRUE, |
69 | - ); |
|
69 | + ); |
|
70 | 70 | |
71 | - // Container for just the actions, used for AHAH. |
|
72 | - $form['block_actions'] = array( |
|
71 | + // Container for just the actions, used for AHAH. |
|
72 | + $form['block_actions'] = array( |
|
73 | 73 | '#tree' => TRUE, |
74 | 74 | '#prefix' => '<div id="block-actions">', |
75 | 75 | '#suffix' => '</div>', |
76 | 76 | '#theme' => 'pm_block_user_actions', |
77 | - ); |
|
77 | + ); |
|
78 | 78 | |
79 | - // Should we populate the form with data from $form_state or the database? |
|
80 | - if (!isset($form_state['pm_block_user']['block_actions'])) { |
|
79 | + // Should we populate the form with data from $form_state or the database? |
|
80 | + if (!isset($form_state['pm_block_user']['block_actions'])) { |
|
81 | 81 | $block_actions = variable_get('pm_block_user_actions', array()); |
82 | - } |
|
83 | - else { |
|
82 | + } |
|
83 | + else { |
|
84 | 84 | $block_actions = $form_state['pm_block_user']['block_actions']; |
85 | - } |
|
86 | - // Work through each rule, adding it as a new element in |
|
87 | - // $form['block_actions'] ready to be themed later. |
|
88 | - foreach ($block_actions as $delta => $details) { |
|
85 | + } |
|
86 | + // Work through each rule, adding it as a new element in |
|
87 | + // $form['block_actions'] ready to be themed later. |
|
88 | + foreach ($block_actions as $delta => $details) { |
|
89 | 89 | $details['delta'] = $delta; |
90 | 90 | $form['block_actions'][$delta] = _pm_block_user_actions_form($details); |
91 | - } |
|
91 | + } |
|
92 | 92 | |
93 | - // The magic AHAH callback button that adds more rows. |
|
94 | - $form['pm_block_actions_more'] = array( |
|
93 | + // The magic AHAH callback button that adds more rows. |
|
94 | + $form['pm_block_actions_more'] = array( |
|
95 | 95 | '#type' => 'submit', |
96 | 96 | '#value' => t('More'), |
97 | 97 | '#weight' => 1, |
@@ -99,20 +99,20 @@ discard block |
||
99 | 99 | '#suffix' => '<label for="edit-pm-block-actions-more">' . t('Add new rule') . '</label></div>', |
100 | 100 | '#submit' => array('pm_block_user_more_submit'), |
101 | 101 | '#ahah' => array( |
102 | - 'path' => 'messages/block/js', |
|
103 | - 'wrapper' => 'block-actions', |
|
104 | - 'method' => 'replace', |
|
105 | - 'effect' => 'fade', |
|
102 | + 'path' => 'messages/block/js', |
|
103 | + 'wrapper' => 'block-actions', |
|
104 | + 'method' => 'replace', |
|
105 | + 'effect' => 'fade', |
|
106 | 106 | ), |
107 | - ); |
|
107 | + ); |
|
108 | 108 | |
109 | - $form['submit_form'] = array( |
|
109 | + $form['submit_form'] = array( |
|
110 | 110 | '#type' => 'submit', |
111 | 111 | '#weight' => 10, |
112 | 112 | '#value' => t('Save configuration'), |
113 | - ); |
|
113 | + ); |
|
114 | 114 | |
115 | - return $form; |
|
115 | + return $form; |
|
116 | 116 | } |
117 | 117 | |
118 | 118 | /** |
@@ -132,50 +132,50 @@ discard block |
||
132 | 132 | * Part of a form with controls for sending, receiving and actions. |
133 | 133 | */ |
134 | 134 | function _pm_block_user_actions_form($details, $blacklist = TRUE) { |
135 | - $form = array( |
|
135 | + $form = array( |
|
136 | 136 | '#tree' => TRUE, |
137 | - ); |
|
138 | - $delta = $details['delta']; |
|
139 | - // FALSE by default, or if the user has checked the 'Enabled' check box for |
|
140 | - // this row. |
|
141 | - $row_disabled = (isset($details['enabled']) ? !$details['enabled'] : FALSE); |
|
137 | + ); |
|
138 | + $delta = $details['delta']; |
|
139 | + // FALSE by default, or if the user has checked the 'Enabled' check box for |
|
140 | + // this row. |
|
141 | + $row_disabled = (isset($details['enabled']) ? !$details['enabled'] : FALSE); |
|
142 | 142 | |
143 | - $form['author'] = array( |
|
143 | + $form['author'] = array( |
|
144 | 144 | '#type' => 'select', |
145 | 145 | '#options' => user_roles(TRUE), |
146 | 146 | '#default_value' => (isset($details['author']) ? $details['author'] : DRUPAL_AUTHENTICATED_RID), |
147 | 147 | '#disabled' => $row_disabled, |
148 | - ); |
|
149 | - $form['recipient'] = array( |
|
148 | + ); |
|
149 | + $form['recipient'] = array( |
|
150 | 150 | '#type' => 'select', |
151 | 151 | '#options' => user_roles(TRUE), |
152 | 152 | '#default_value' => (isset($details['recipient']) ? $details['recipient'] : DRUPAL_AUTHENTICATED_RID), |
153 | 153 | '#disabled' => $row_disabled, |
154 | - ); |
|
154 | + ); |
|
155 | 155 | |
156 | - // Provide different action radios if we're using a whitelist or a blacklist. |
|
157 | - if ($blacklist) { |
|
156 | + // Provide different action radios if we're using a whitelist or a blacklist. |
|
157 | + if ($blacklist) { |
|
158 | 158 | $options = array( |
159 | - PM_BLOCK_USER_DISALLOW_BLOCKING => t('Disallow blocking author'), |
|
160 | - PM_BLOCK_USER_DISALLOW_SENDING => t('Disallow sending message'), |
|
159 | + PM_BLOCK_USER_DISALLOW_BLOCKING => t('Disallow blocking author'), |
|
160 | + PM_BLOCK_USER_DISALLOW_SENDING => t('Disallow sending message'), |
|
161 | 161 | ); |
162 | 162 | $default_value = (isset($details['action']) ? $details['action'] : PM_BLOCK_USER_DISALLOW_BLOCKING); |
163 | - } |
|
164 | - else { |
|
163 | + } |
|
164 | + else { |
|
165 | 165 | // @todo: add whitelist options/default_value here. |
166 | - } |
|
167 | - $form['action'] = array( |
|
166 | + } |
|
167 | + $form['action'] = array( |
|
168 | 168 | '#type' => 'radios', |
169 | 169 | '#options' => $options, |
170 | 170 | '#disabled' => $row_disabled, |
171 | 171 | '#default_value' => $default_value, |
172 | - ); |
|
172 | + ); |
|
173 | 173 | |
174 | - $form['enabled'] = array( |
|
174 | + $form['enabled'] = array( |
|
175 | 175 | '#type' => 'checkbox', |
176 | 176 | '#default_value' => (isset($details['enabled']) ? $details['enabled'] : TRUE), |
177 | - ); |
|
178 | - $form['remove'] = array( |
|
177 | + ); |
|
178 | + $form['remove'] = array( |
|
179 | 179 | '#type' => 'submit', |
180 | 180 | '#submit' => array('pm_block_user_remove_submit'), |
181 | 181 | '#value' => t('Remove'), |
@@ -183,14 +183,14 @@ discard block |
||
183 | 183 | '#prefix' => '<div id="remove-rule-button">', |
184 | 184 | '#suffix' => '<label for="edit-remove">' . t('Remove rule') . '</label></div>', |
185 | 185 | '#ahah' => array( |
186 | - 'path' => 'messages/block/js', |
|
187 | - 'wrapper' => 'block-actions', |
|
188 | - 'method' => 'replace', |
|
189 | - 'effect' => 'fade', |
|
186 | + 'path' => 'messages/block/js', |
|
187 | + 'wrapper' => 'block-actions', |
|
188 | + 'method' => 'replace', |
|
189 | + 'effect' => 'fade', |
|
190 | 190 | ), |
191 | - ); |
|
191 | + ); |
|
192 | 192 | |
193 | - return $form; |
|
193 | + return $form; |
|
194 | 194 | } |
195 | 195 | |
196 | 196 | /** |
@@ -199,17 +199,17 @@ discard block |
||
199 | 199 | * @see pm_block_user_remove_submit() |
200 | 200 | */ |
201 | 201 | function pm_block_user_more_submit($form, &$form_state) { |
202 | - unset($form_state['submit_handlers']); |
|
203 | - form_execute_handlers('submit', $form, $form_state); |
|
204 | - // Get the submitted actions, then put them into a special area of |
|
205 | - // the $form_state. |
|
206 | - $submitted_values = $form_state['values']; |
|
207 | - // Add an empty action. |
|
208 | - $submitted_values['block_actions'][] = array(); |
|
209 | - $form_state['pm_block_user'] = $submitted_values; |
|
210 | - // Rebuild the form by passing our $form_state through the |
|
211 | - // pm_block_user_settings() builder function. |
|
212 | - $form_state['rebuild'] = TRUE; |
|
202 | + unset($form_state['submit_handlers']); |
|
203 | + form_execute_handlers('submit', $form, $form_state); |
|
204 | + // Get the submitted actions, then put them into a special area of |
|
205 | + // the $form_state. |
|
206 | + $submitted_values = $form_state['values']; |
|
207 | + // Add an empty action. |
|
208 | + $submitted_values['block_actions'][] = array(); |
|
209 | + $form_state['pm_block_user'] = $submitted_values; |
|
210 | + // Rebuild the form by passing our $form_state through the |
|
211 | + // pm_block_user_settings() builder function. |
|
212 | + $form_state['rebuild'] = TRUE; |
|
213 | 213 | } |
214 | 214 | |
215 | 215 | /** |
@@ -218,33 +218,33 @@ discard block |
||
218 | 218 | * @see pm_block_user_more_submit() |
219 | 219 | */ |
220 | 220 | function pm_block_user_remove_submit($form, &$form_state) { |
221 | - unset($form_state['submit_handlers']); |
|
222 | - form_execute_handlers('submit', $form, $form_state); |
|
223 | - $submitted_values = $form_state['values']; |
|
224 | - // Remove the requested action. |
|
225 | - $delta = $form_state['clicked_button']['#parents'][1]; |
|
226 | - unset($submitted_values['block_actions'][$delta]); |
|
227 | - $form_state['pm_block_user'] = $submitted_values; |
|
228 | - $form_state['rebuild'] = TRUE; |
|
221 | + unset($form_state['submit_handlers']); |
|
222 | + form_execute_handlers('submit', $form, $form_state); |
|
223 | + $submitted_values = $form_state['values']; |
|
224 | + // Remove the requested action. |
|
225 | + $delta = $form_state['clicked_button']['#parents'][1]; |
|
226 | + unset($submitted_values['block_actions'][$delta]); |
|
227 | + $form_state['pm_block_user'] = $submitted_values; |
|
228 | + $form_state['rebuild'] = TRUE; |
|
229 | 229 | } |
230 | 230 | |
231 | 231 | /** |
232 | 232 | * Submit handler for admin form. |
233 | 233 | */ |
234 | 234 | function pm_block_user_settings_submit($form, &$form_state) { |
235 | - // We don't want it to submit when we're adding/removing actions. |
|
236 | - if ($form_state['clicked_button']['#id'] == 'edit-submit-form') { |
|
235 | + // We don't want it to submit when we're adding/removing actions. |
|
236 | + if ($form_state['clicked_button']['#id'] == 'edit-submit-form') { |
|
237 | 237 | // If the form's 'block_actions' aren't set, the user has deleted all the |
238 | 238 | // rows in the table, so we save an empty array to stop errors in the form |
239 | 239 | // builder. |
240 | 240 | if (isset($form_state['values']['block_actions'])) { |
241 | - variable_set('pm_block_user_actions', _pm_block_user_settings_filter($form_state['values']['block_actions'])); |
|
241 | + variable_set('pm_block_user_actions', _pm_block_user_settings_filter($form_state['values']['block_actions'])); |
|
242 | 242 | } |
243 | 243 | else { |
244 | - variable_set('pm_block_user_actions', array()); |
|
244 | + variable_set('pm_block_user_actions', array()); |
|
245 | 245 | } |
246 | 246 | drupal_set_message(t('The configuration options have been saved.')); |
247 | - } |
|
247 | + } |
|
248 | 248 | } |
249 | 249 | |
250 | 250 | /** |
@@ -259,60 +259,60 @@ discard block |
||
259 | 259 | * @see pm_block_user_settings_submit() |
260 | 260 | */ |
261 | 261 | function _pm_block_user_settings_filter($settings) { |
262 | - // Add-in the names of any settings to be saved into the array below. |
|
263 | - $save_keys = array('author', 'recipient', 'action', 'enabled'); |
|
264 | - $matching = array(); |
|
265 | - // Run through each of the keys we want to save, creating a new array. |
|
266 | - // It's not possible to simply check for unwanted values and unset() them as |
|
267 | - // the array is multi-dimensional. |
|
268 | - foreach ($save_keys as $save_key) { |
|
262 | + // Add-in the names of any settings to be saved into the array below. |
|
263 | + $save_keys = array('author', 'recipient', 'action', 'enabled'); |
|
264 | + $matching = array(); |
|
265 | + // Run through each of the keys we want to save, creating a new array. |
|
266 | + // It's not possible to simply check for unwanted values and unset() them as |
|
267 | + // the array is multi-dimensional. |
|
268 | + foreach ($save_keys as $save_key) { |
|
269 | 269 | if (isset($settings[$save_key])) { |
270 | - $matching[$save_key] = $settings[$save_key]; |
|
270 | + $matching[$save_key] = $settings[$save_key]; |
|
271 | + } |
|
271 | 272 | } |
272 | - } |
|
273 | - if (count($matching) > 0) { |
|
273 | + if (count($matching) > 0) { |
|
274 | 274 | return $matching; |
275 | - } |
|
276 | - else { |
|
275 | + } |
|
276 | + else { |
|
277 | 277 | return array_map('_pm_block_user_settings_filter', $settings); |
278 | - } |
|
278 | + } |
|
279 | 279 | } |
280 | 280 | |
281 | 281 | /** |
282 | 282 | * Menu callback for AHAH handling. |
283 | 283 | */ |
284 | 284 | function pm_block_user_js() { |
285 | - // See: http://drupal.org/node/331941 for the philosophy of Drupal AHAH. |
|
286 | - $form_state = array('storage' => NULL, 'submitted' => FALSE); |
|
287 | - $form_build_id = $_POST['form_build_id']; |
|
288 | - $form = form_get_cache($form_build_id, $form_state); |
|
289 | - $args = $form['#parameters']; |
|
290 | - $form_id = array_shift($args); |
|
291 | - $form['#post'] = $_POST; |
|
292 | - $form['#redirect'] = FALSE; |
|
293 | - $form['#programmed'] = FALSE; |
|
294 | - $form_state['post'] = $_POST; |
|
295 | - drupal_process_form($form_id, $form, $form_state); |
|
296 | - $form = drupal_rebuild_form($form_id, $form_state, $args, $form_build_id); |
|
297 | - $output_form = $form['block_actions']; |
|
298 | - unset($output_form['#prefix'], $output_form['#suffix']); // Prevent duplicate wrappers. |
|
299 | - $output = theme('status_messages') . drupal_render($output_form); |
|
300 | - |
|
301 | - // Hack to make behaviours attach to new HTML controls (delete buttons in |
|
302 | - // this case). |
|
303 | - $javascript = drupal_add_js(NULL, NULL, 'header'); |
|
304 | - drupal_json(array('status' => TRUE, 'data' => $output)); |
|
285 | + // See: http://drupal.org/node/331941 for the philosophy of Drupal AHAH. |
|
286 | + $form_state = array('storage' => NULL, 'submitted' => FALSE); |
|
287 | + $form_build_id = $_POST['form_build_id']; |
|
288 | + $form = form_get_cache($form_build_id, $form_state); |
|
289 | + $args = $form['#parameters']; |
|
290 | + $form_id = array_shift($args); |
|
291 | + $form['#post'] = $_POST; |
|
292 | + $form['#redirect'] = FALSE; |
|
293 | + $form['#programmed'] = FALSE; |
|
294 | + $form_state['post'] = $_POST; |
|
295 | + drupal_process_form($form_id, $form, $form_state); |
|
296 | + $form = drupal_rebuild_form($form_id, $form_state, $args, $form_build_id); |
|
297 | + $output_form = $form['block_actions']; |
|
298 | + unset($output_form['#prefix'], $output_form['#suffix']); // Prevent duplicate wrappers. |
|
299 | + $output = theme('status_messages') . drupal_render($output_form); |
|
300 | + |
|
301 | + // Hack to make behaviours attach to new HTML controls (delete buttons in |
|
302 | + // this case). |
|
303 | + $javascript = drupal_add_js(NULL, NULL, 'header'); |
|
304 | + drupal_json(array('status' => TRUE, 'data' => $output)); |
|
305 | 305 | } |
306 | 306 | |
307 | 307 | /** |
308 | 308 | * Implements hook_theme(). |
309 | 309 | */ |
310 | 310 | function pm_block_user_theme() { |
311 | - return array( |
|
311 | + return array( |
|
312 | 312 | 'pm_block_user_actions' => array( |
313 | - 'arguments' => array('form' => NULL), |
|
313 | + 'arguments' => array('form' => NULL), |
|
314 | 314 | ), |
315 | - ); |
|
315 | + ); |
|
316 | 316 | } |
317 | 317 | |
318 | 318 | /** |
@@ -321,49 +321,49 @@ discard block |
||
321 | 321 | * @ingroup themeable |
322 | 322 | */ |
323 | 323 | function theme_pm_block_user_actions($form) { |
324 | - $rows = array(); |
|
325 | - $headers = array( |
|
324 | + $rows = array(); |
|
325 | + $headers = array( |
|
326 | 326 | t('If the author has the role'), |
327 | 327 | t('And the recipient has the role'), |
328 | 328 | t('Action'), |
329 | 329 | t('Enabled'), |
330 | 330 | '', |
331 | - ); |
|
332 | - $form_data = element_children($form); |
|
331 | + ); |
|
332 | + $form_data = element_children($form); |
|
333 | 333 | |
334 | - foreach ($form_data as $key) { |
|
334 | + foreach ($form_data as $key) { |
|
335 | 335 | // Build the table row. |
336 | 336 | $row = array( |
337 | - 'data' => array( |
|
337 | + 'data' => array( |
|
338 | 338 | array('data' => drupal_render($form[$key]['author'])), |
339 | 339 | array('data' => drupal_render($form[$key]['recipient'])), |
340 | 340 | array('data' => drupal_render($form[$key]['action'])), |
341 | 341 | array('data' => drupal_render($form[$key]['enabled'])), |
342 | 342 | array('data' => drupal_render($form[$key]['remove'])), |
343 | - ), |
|
343 | + ), |
|
344 | 344 | ); |
345 | 345 | |
346 | 346 | // Add additional attributes to the row, such as a class for this row. |
347 | 347 | if (isset($form[$key]['#attributes'])) { |
348 | - $row = array_merge($row, $form[$key]['#attributes']); |
|
348 | + $row = array_merge($row, $form[$key]['#attributes']); |
|
349 | 349 | } |
350 | 350 | $rows[] = $row; |
351 | - } |
|
351 | + } |
|
352 | 352 | |
353 | - // If there are no rows, output some instructions for the user. |
|
354 | - if (empty($form_data)) { |
|
353 | + // If there are no rows, output some instructions for the user. |
|
354 | + if (empty($form_data)) { |
|
355 | 355 | $rows[] = array( |
356 | - array( |
|
356 | + array( |
|
357 | 357 | 'data' => t("No rules have been added. All users may block private messages from each other. To limit which users may be blocked, click 'Add new rule'."), |
358 | 358 | 'colspan' => '5', |
359 | - ), |
|
359 | + ), |
|
360 | 360 | ); |
361 | - } |
|
361 | + } |
|
362 | 362 | |
363 | - $output = theme('table', $headers, $rows); |
|
364 | - $output .= drupal_render($form); |
|
363 | + $output = theme('table', $headers, $rows); |
|
364 | + $output .= drupal_render($form); |
|
365 | 365 | |
366 | - return $output; |
|
366 | + return $output; |
|
367 | 367 | } |
368 | 368 | |
369 | 369 | /** |
@@ -377,14 +377,14 @@ discard block |
||
377 | 377 | * TRUE if the user is allowed to block $account, or FALSE if not. |
378 | 378 | */ |
379 | 379 | function _pm_block_user_access($account) { |
380 | - global $user; |
|
381 | - if (!privatemsg_user_access('read privatemsg', $user)) { |
|
380 | + global $user; |
|
381 | + if (!privatemsg_user_access('read privatemsg', $user)) { |
|
382 | 382 | return FALSE; |
383 | - } |
|
384 | - if (_pm_block_user_rule_exists($account, $user, PM_BLOCK_USER_DISALLOW_BLOCKING)) { |
|
383 | + } |
|
384 | + if (_pm_block_user_rule_exists($account, $user, PM_BLOCK_USER_DISALLOW_BLOCKING)) { |
|
385 | 385 | return FALSE; |
386 | - } |
|
387 | - return TRUE; |
|
386 | + } |
|
387 | + return TRUE; |
|
388 | 388 | } |
389 | 389 | |
390 | 390 | /** |
@@ -406,179 +406,179 @@ discard block |
||
406 | 406 | * TRUE if a rule exists for the combination of author recipient and action. |
407 | 407 | */ |
408 | 408 | function _pm_block_user_rule_exists($author, $recipient, $action = PM_BLOCK_USER_DISALLOW_BLOCKING) { |
409 | - $block_actions = variable_get('pm_block_user_actions', array()); |
|
410 | - foreach ($block_actions as $delta => $details) { |
|
409 | + $block_actions = variable_get('pm_block_user_actions', array()); |
|
410 | + foreach ($block_actions as $delta => $details) { |
|
411 | 411 | // If this rule doesn't relate to $action, or it's disabled |
412 | 412 | // ignore it and go to next loop iteration. |
413 | 413 | if ($details['action'] != $action || !$details['enabled']) { |
414 | - continue; |
|
414 | + continue; |
|
415 | 415 | } |
416 | 416 | // There are no rules governing user one, but user one may have roles that |
417 | 417 | // affect other users, so these exceptions are narrow in scope. |
418 | 418 | // Disallow sending affects private message authors. |
419 | 419 | if ($author->uid == 1 && $action == PM_BLOCK_USER_DISALLOW_SENDING) { |
420 | - continue; |
|
420 | + continue; |
|
421 | 421 | } |
422 | 422 | // Disallow blocking affects private message recipients. |
423 | 423 | if ($recipient->uid == 1 && $action == PM_BLOCK_USER_DISALLOW_BLOCKING) { |
424 | - continue; |
|
424 | + continue; |
|
425 | 425 | } |
426 | 426 | // The author has a role matching the rule and so does the recipient. |
427 | 427 | if (isset($author->roles[$details['author']]) && isset($recipient->roles[$details['recipient']])) { |
428 | - return TRUE; |
|
428 | + return TRUE; |
|
429 | + } |
|
429 | 430 | } |
430 | - } |
|
431 | - return FALSE; |
|
431 | + return FALSE; |
|
432 | 432 | } |
433 | 433 | |
434 | 434 | function pm_block_user_form($form_state, $author) { |
435 | - global $user; |
|
435 | + global $user; |
|
436 | 436 | |
437 | - $form['author'] = array( |
|
437 | + $form['author'] = array( |
|
438 | 438 | '#type' => 'value', |
439 | 439 | '#value' => $author->uid, |
440 | - ); |
|
440 | + ); |
|
441 | 441 | $form['recipient'] = array( |
442 | 442 | '#type' => 'value', |
443 | 443 | '#value' => $user->uid, |
444 | - ); |
|
445 | - $form['author_name'] = array( |
|
444 | + ); |
|
445 | + $form['author_name'] = array( |
|
446 | 446 | '#type' => 'value', |
447 | 447 | '#value' => $author->name, |
448 | - ); |
|
449 | - $form['destination'] = array( |
|
448 | + ); |
|
449 | + $form['destination'] = array( |
|
450 | 450 | '#type' => 'value', |
451 | 451 | '#value' => isset($_GET['destination']) ? $_GET['destination'] : 'messages/', |
452 | - ); |
|
452 | + ); |
|
453 | 453 | |
454 | - if (db_result(db_query('SELECT COUNT(recipient) FROM {pm_block_user} WHERE author = %d AND recipient = %d', $author->uid, $user->uid))) { |
|
454 | + if (db_result(db_query('SELECT COUNT(recipient) FROM {pm_block_user} WHERE author = %d AND recipient = %d', $author->uid, $user->uid))) { |
|
455 | 455 | $form['block_action'] = array( |
456 | - '#type' => 'value', |
|
457 | - '#value' => 'unblock_user', |
|
456 | + '#type' => 'value', |
|
457 | + '#value' => 'unblock_user', |
|
458 | 458 | ); |
459 | 459 | return confirm_form($form, |
460 | - t('You have previously blocked "@author" from sending you any more messages. Are you sure you want to unblock this user?', array('@author' => $author->name)), |
|
461 | - isset($_GET['destination']) ? $_GET['destination'] : 'messages/', |
|
462 | - t('This action cannot be undone.'), |
|
463 | - t('Unblock @author', array('@author' => $author->name)), |
|
464 | - t('Cancel') |
|
460 | + t('You have previously blocked "@author" from sending you any more messages. Are you sure you want to unblock this user?', array('@author' => $author->name)), |
|
461 | + isset($_GET['destination']) ? $_GET['destination'] : 'messages/', |
|
462 | + t('This action cannot be undone.'), |
|
463 | + t('Unblock @author', array('@author' => $author->name)), |
|
464 | + t('Cancel') |
|
465 | 465 | ); |
466 | - } |
|
467 | - else { |
|
466 | + } |
|
467 | + else { |
|
468 | 468 | $form['block_action'] = array( |
469 | - '#type' => 'value', |
|
470 | - '#value' => 'block_user', |
|
469 | + '#type' => 'value', |
|
470 | + '#value' => 'block_user', |
|
471 | 471 | ); |
472 | 472 | return confirm_form($form, |
473 | - t('Are you sure you want to block "@author" from sending you any more messages?', array('@author' => $author->name)), |
|
474 | - isset($_GET['destination']) ? $_GET['destination'] : 'messages/', |
|
475 | - '', |
|
476 | - t('Block @author', array('@author' => $author->name)), |
|
477 | - t('Cancel') |
|
473 | + t('Are you sure you want to block "@author" from sending you any more messages?', array('@author' => $author->name)), |
|
474 | + isset($_GET['destination']) ? $_GET['destination'] : 'messages/', |
|
475 | + '', |
|
476 | + t('Block @author', array('@author' => $author->name)), |
|
477 | + t('Cancel') |
|
478 | 478 | ); |
479 | - } |
|
479 | + } |
|
480 | 480 | } |
481 | 481 | |
482 | 482 | /** |
483 | 483 | * Implements hook_form_submit(). |
484 | 484 | */ |
485 | 485 | function pm_block_user_form_submit($form, &$form_state) { |
486 | - if ($form_state['values']['confirm']) { |
|
486 | + if ($form_state['values']['confirm']) { |
|
487 | 487 | switch ($form_state['values']['block_action']) { |
488 | - case 'block_user': |
|
488 | + case 'block_user': |
|
489 | 489 | db_query('INSERT INTO {pm_block_user} (author, recipient) VALUES (%d, %d)', $form_state['values']['author'], $form_state['values']['recipient']); |
490 | 490 | drupal_set_message(t('@author has been blocked from sending you any further messages.', array('@author' => $form_state['values']['author_name']))); |
491 | - break; |
|
492 | - case 'unblock_user': |
|
491 | + break; |
|
492 | + case 'unblock_user': |
|
493 | 493 | db_query('DELETE FROM {pm_block_user} WHERE author = %d AND recipient = %d', $form_state['values']['author'], $form_state['values']['recipient']); |
494 | 494 | drupal_set_message(t('@author is now allowed to send you new messages.', array('@author' => $form_state['values']['author_name']))); |
495 | - break; |
|
495 | + break; |
|
496 | + } |
|
496 | 497 | } |
497 | - } |
|
498 | - $form_state['redirect'] = $form_state['values']['destination']; |
|
498 | + $form_state['redirect'] = $form_state['values']['destination']; |
|
499 | 499 | } |
500 | 500 | |
501 | 501 | /** |
502 | 502 | * Implements hook_privatemsg_block_message(). |
503 | 503 | */ |
504 | 504 | function pm_block_user_privatemsg_block_message($author, $recipients) { |
505 | - $blocked = array(); |
|
506 | - // Loop through each recipient and ensure there is no rule blocking this |
|
507 | - // author from sending them private messages. Use a reference, so when |
|
508 | - // user_load() is needed here the array is updated, negating the need for |
|
509 | - // further calls to user_load() later in the code. |
|
510 | - foreach (array_keys($recipients) as $uid) { |
|
505 | + $blocked = array(); |
|
506 | + // Loop through each recipient and ensure there is no rule blocking this |
|
507 | + // author from sending them private messages. Use a reference, so when |
|
508 | + // user_load() is needed here the array is updated, negating the need for |
|
509 | + // further calls to user_load() later in the code. |
|
510 | + foreach (array_keys($recipients) as $uid) { |
|
511 | 511 | |
512 | 512 | // Ensure we have a recipient user object which includes roles. |
513 | 513 | if (!isset($recipients[$uid]->roles)) { |
514 | - $recipients[$uid] = user_load($uid); |
|
514 | + $recipients[$uid] = user_load($uid); |
|
515 | 515 | } |
516 | 516 | // Note: this is checks whether the author may send the message (see third |
517 | 517 | // parameter). Further below is a check whether the recipient may block it. |
518 | 518 | if (_pm_block_user_rule_exists($author, $recipients[$uid], PM_BLOCK_USER_DISALLOW_SENDING)) { |
519 | - $blocked[] = array( |
|
519 | + $blocked[] = array( |
|
520 | 520 | 'uid' => $uid, |
521 | 521 | 'message' => t('Sorry, private messaging rules forbid sending messages to !name.', array('!name' => $recipients[$uid]->name)), |
522 | - ); |
|
522 | + ); |
|
523 | + } |
|
523 | 524 | } |
524 | - } |
|
525 | 525 | |
526 | - $args = array_merge(array($author->uid), array_keys($recipients)); |
|
527 | - $result = db_query('SELECT recipient FROM {pm_block_user} WHERE author = %d AND recipient IN ('. db_placeholders($recipients) .') GROUP BY recipient', $args); |
|
528 | - while ($row = db_fetch_array($result)) { |
|
526 | + $args = array_merge(array($author->uid), array_keys($recipients)); |
|
527 | + $result = db_query('SELECT recipient FROM {pm_block_user} WHERE author = %d AND recipient IN ('. db_placeholders($recipients) .') GROUP BY recipient', $args); |
|
528 | + while ($row = db_fetch_array($result)) { |
|
529 | 529 | $recipient = $recipients[$row['recipient']]; |
530 | 530 | // If there's a rule disallowing blocking of this message, send it anyway. |
531 | 531 | if (_pm_block_user_rule_exists($author, $recipient, PM_BLOCK_USER_DISALLOW_BLOCKING)) { |
532 | - continue; |
|
532 | + continue; |
|
533 | 533 | } |
534 | 534 | $blocked[] = array( |
535 | - 'uid' => $row['recipient'], |
|
536 | - 'message' => t('%name has chosen to not recieve any more messages from you.', array('%name' => $recipients[$row['recipient']]->name)) |
|
535 | + 'uid' => $row['recipient'], |
|
536 | + 'message' => t('%name has chosen to not recieve any more messages from you.', array('%name' => $recipients[$row['recipient']]->name)) |
|
537 | 537 | ); |
538 | - } |
|
539 | - return $blocked; |
|
538 | + } |
|
539 | + return $blocked; |
|
540 | 540 | } |
541 | 541 | |
542 | 542 | function pm_block_user_privatemsg_sql_load_alter(&$fragments, $pmid, $uid) { |
543 | - $fragments['select'][] = 'pmbu.recipient AS is_blocked'; |
|
543 | + $fragments['select'][] = 'pmbu.recipient AS is_blocked'; |
|
544 | 544 | |
545 | - $fragments['inner_join'][] = 'LEFT JOIN {pm_block_user} pmbu ON (pm.author = pmbu.author AND pmi.uid = pmbu.recipient)'; |
|
545 | + $fragments['inner_join'][] = 'LEFT JOIN {pm_block_user} pmbu ON (pm.author = pmbu.author AND pmi.uid = pmbu.recipient)'; |
|
546 | 546 | } |
547 | 547 | |
548 | 548 | /** |
549 | 549 | * Implements hook_privatemsg_message_view_alter(). |
550 | 550 | */ |
551 | 551 | function pm_block_user_privatemsg_message_view_alter(&$vars) { |
552 | - global $user; |
|
552 | + global $user; |
|
553 | 553 | |
554 | - $author = $vars['message']['author']; |
|
555 | - if (_pm_block_user_rule_exists($author, $user, PM_BLOCK_USER_DISALLOW_BLOCKING)) { |
|
554 | + $author = $vars['message']['author']; |
|
555 | + if (_pm_block_user_rule_exists($author, $user, PM_BLOCK_USER_DISALLOW_BLOCKING)) { |
|
556 | 556 | return; |
557 | - } |
|
558 | - if (!isset($vars['message']['thread_id'])) { |
|
557 | + } |
|
558 | + if (!isset($vars['message']['thread_id'])) { |
|
559 | 559 | // No thread id, this is probably only a preview |
560 | 560 | return; |
561 | - } |
|
562 | - $thread_id = $vars['message']['thread_id']; |
|
561 | + } |
|
562 | + $thread_id = $vars['message']['thread_id']; |
|
563 | 563 | |
564 | - if ($user->uid <> $author->uid) { |
|
564 | + if ($user->uid <> $author->uid) { |
|
565 | 565 | if ($vars['message']['is_blocked']) { |
566 | - $vars['message_actions']['unblock_author'] = array('title' => t('Unblock author'), 'href' => 'messages/block/'. $author->uid, 'query' => 'destination=messages/view/' . $thread_id); |
|
566 | + $vars['message_actions']['unblock_author'] = array('title' => t('Unblock author'), 'href' => 'messages/block/'. $author->uid, 'query' => 'destination=messages/view/' . $thread_id); |
|
567 | 567 | } |
568 | 568 | else { |
569 | - $vars['message_actions']['block_author'] = array('title' => t('Block author'), 'href' => 'messages/block/'. $author->uid, 'query' => 'destination=messages/view/' . $thread_id); |
|
569 | + $vars['message_actions']['block_author'] = array('title' => t('Block author'), 'href' => 'messages/block/'. $author->uid, 'query' => 'destination=messages/view/' . $thread_id); |
|
570 | + } |
|
570 | 571 | } |
571 | - } |
|
572 | 572 | } |
573 | 573 | |
574 | 574 | /** |
575 | 575 | * Implement hook_user(). |
576 | 576 | */ |
577 | 577 | function pm_block_user_user($op, &$edit, &$account, $category = NULL) { |
578 | - switch ($op) { |
|
579 | - case 'delete': |
|
578 | + switch ($op) { |
|
579 | + case 'delete': |
|
580 | 580 | // Delete blocking rules which involve this user. |
581 | 581 | db_query("DELETE FROM {pm_block_user} WHERE author = %d OR recipient = %d", $account->uid, $account->uid); |
582 | - break; |
|
583 | - } |
|
582 | + break; |
|
583 | + } |
|
584 | 584 | } |
@@ -20,8 +20,8 @@ discard block |
||
20 | 20 | */ |
21 | 21 | function pm_block_user_help($path) { |
22 | 22 | switch ($path) { |
23 | - case 'admin/settings/messages/block': |
|
24 | - return '<p>' . t('This area is used to define user blocking rules for the Privatemsg module. Rules allow control of who may block messages from whom. By default all users are allowed to block messages from anyone else. However, a site may have groups of users that need to contact or get information to others, for example: the site may have administrative staff or be a forum with moderators. Groups of users are defined by roles, which can be managed on the <a href="@roles">roles configuration page</a>.', array('@roles' => url('admin/user/roles'))) . '</p>'; |
|
23 | + case 'admin/settings/messages/block': |
|
24 | + return '<p>' . t('This area is used to define user blocking rules for the Privatemsg module. Rules allow control of who may block messages from whom. By default all users are allowed to block messages from anyone else. However, a site may have groups of users that need to contact or get information to others, for example: the site may have administrative staff or be a forum with moderators. Groups of users are defined by roles, which can be managed on the <a href="@roles">roles configuration page</a>.', array('@roles' => url('admin/user/roles'))) . '</p>'; |
|
25 | 25 | } |
26 | 26 | } |
27 | 27 | |
@@ -485,14 +485,14 @@ discard block |
||
485 | 485 | function pm_block_user_form_submit($form, &$form_state) { |
486 | 486 | if ($form_state['values']['confirm']) { |
487 | 487 | switch ($form_state['values']['block_action']) { |
488 | - case 'block_user': |
|
489 | - db_query('INSERT INTO {pm_block_user} (author, recipient) VALUES (%d, %d)', $form_state['values']['author'], $form_state['values']['recipient']); |
|
490 | - drupal_set_message(t('@author has been blocked from sending you any further messages.', array('@author' => $form_state['values']['author_name']))); |
|
491 | - break; |
|
492 | - case 'unblock_user': |
|
493 | - db_query('DELETE FROM {pm_block_user} WHERE author = %d AND recipient = %d', $form_state['values']['author'], $form_state['values']['recipient']); |
|
494 | - drupal_set_message(t('@author is now allowed to send you new messages.', array('@author' => $form_state['values']['author_name']))); |
|
495 | - break; |
|
488 | + case 'block_user': |
|
489 | + db_query('INSERT INTO {pm_block_user} (author, recipient) VALUES (%d, %d)', $form_state['values']['author'], $form_state['values']['recipient']); |
|
490 | + drupal_set_message(t('@author has been blocked from sending you any further messages.', array('@author' => $form_state['values']['author_name']))); |
|
491 | + break; |
|
492 | + case 'unblock_user': |
|
493 | + db_query('DELETE FROM {pm_block_user} WHERE author = %d AND recipient = %d', $form_state['values']['author'], $form_state['values']['recipient']); |
|
494 | + drupal_set_message(t('@author is now allowed to send you new messages.', array('@author' => $form_state['values']['author_name']))); |
|
495 | + break; |
|
496 | 496 | } |
497 | 497 | } |
498 | 498 | $form_state['redirect'] = $form_state['values']['destination']; |
@@ -576,9 +576,9 @@ discard block |
||
576 | 576 | */ |
577 | 577 | function pm_block_user_user($op, &$edit, &$account, $category = NULL) { |
578 | 578 | switch ($op) { |
579 | - case 'delete': |
|
580 | - // Delete blocking rules which involve this user. |
|
581 | - db_query("DELETE FROM {pm_block_user} WHERE author = %d OR recipient = %d", $account->uid, $account->uid); |
|
582 | - break; |
|
579 | + case 'delete': |
|
580 | + // Delete blocking rules which involve this user. |
|
581 | + db_query("DELETE FROM {pm_block_user} WHERE author = %d OR recipient = %d", $account->uid, $account->uid); |
|
582 | + break; |
|
583 | 583 | } |
584 | 584 | } |
@@ -21,7 +21,7 @@ discard block |
||
21 | 21 | function pm_block_user_help($path) { |
22 | 22 | switch ($path) { |
23 | 23 | case 'admin/settings/messages/block': |
24 | - return '<p>' . t('This area is used to define user blocking rules for the Privatemsg module. Rules allow control of who may block messages from whom. By default all users are allowed to block messages from anyone else. However, a site may have groups of users that need to contact or get information to others, for example: the site may have administrative staff or be a forum with moderators. Groups of users are defined by roles, which can be managed on the <a href="@roles">roles configuration page</a>.', array('@roles' => url('admin/user/roles'))) . '</p>'; |
|
24 | + return '<p>'.t('This area is used to define user blocking rules for the Privatemsg module. Rules allow control of who may block messages from whom. By default all users are allowed to block messages from anyone else. However, a site may have groups of users that need to contact or get information to others, for example: the site may have administrative staff or be a forum with moderators. Groups of users are defined by roles, which can be managed on the <a href="@roles">roles configuration page</a>.', array('@roles' => url('admin/user/roles'))).'</p>'; |
|
25 | 25 | } |
26 | 26 | } |
27 | 27 | |
@@ -62,7 +62,7 @@ discard block |
||
62 | 62 | * Menu callback for blocked user settings. |
63 | 63 | */ |
64 | 64 | function pm_block_user_settings(&$form_state) { |
65 | - drupal_add_css(drupal_get_path('module', 'pm_block_user') .'/pm_block_user.css'); |
|
65 | + drupal_add_css(drupal_get_path('module', 'pm_block_user').'/pm_block_user.css'); |
|
66 | 66 | // Need to cache form for AHAH, so it can be rebuilt from cache later. |
67 | 67 | $form = array( |
68 | 68 | '#cache' => TRUE, |
@@ -96,7 +96,7 @@ discard block |
||
96 | 96 | '#value' => t('More'), |
97 | 97 | '#weight' => 1, |
98 | 98 | '#prefix' => '<div id="add-rule-button">', |
99 | - '#suffix' => '<label for="edit-pm-block-actions-more">' . t('Add new rule') . '</label></div>', |
|
99 | + '#suffix' => '<label for="edit-pm-block-actions-more">'.t('Add new rule').'</label></div>', |
|
100 | 100 | '#submit' => array('pm_block_user_more_submit'), |
101 | 101 | '#ahah' => array( |
102 | 102 | 'path' => 'messages/block/js', |
@@ -164,7 +164,7 @@ discard block |
||
164 | 164 | else { |
165 | 165 | // @todo: add whitelist options/default_value here. |
166 | 166 | } |
167 | - $form['action'] = array( |
|
167 | + $form['action'] = array( |
|
168 | 168 | '#type' => 'radios', |
169 | 169 | '#options' => $options, |
170 | 170 | '#disabled' => $row_disabled, |
@@ -181,7 +181,7 @@ discard block |
||
181 | 181 | '#value' => t('Remove'), |
182 | 182 | '#attributes' => array('class' => 'remove-action'), |
183 | 183 | '#prefix' => '<div id="remove-rule-button">', |
184 | - '#suffix' => '<label for="edit-remove">' . t('Remove rule') . '</label></div>', |
|
184 | + '#suffix' => '<label for="edit-remove">'.t('Remove rule').'</label></div>', |
|
185 | 185 | '#ahah' => array( |
186 | 186 | 'path' => 'messages/block/js', |
187 | 187 | 'wrapper' => 'block-actions', |
@@ -296,7 +296,7 @@ discard block |
||
296 | 296 | $form = drupal_rebuild_form($form_id, $form_state, $args, $form_build_id); |
297 | 297 | $output_form = $form['block_actions']; |
298 | 298 | unset($output_form['#prefix'], $output_form['#suffix']); // Prevent duplicate wrappers. |
299 | - $output = theme('status_messages') . drupal_render($output_form); |
|
299 | + $output = theme('status_messages').drupal_render($output_form); |
|
300 | 300 | |
301 | 301 | // Hack to make behaviours attach to new HTML controls (delete buttons in |
302 | 302 | // this case). |
@@ -524,7 +524,7 @@ discard block |
||
524 | 524 | } |
525 | 525 | |
526 | 526 | $args = array_merge(array($author->uid), array_keys($recipients)); |
527 | - $result = db_query('SELECT recipient FROM {pm_block_user} WHERE author = %d AND recipient IN ('. db_placeholders($recipients) .') GROUP BY recipient', $args); |
|
527 | + $result = db_query('SELECT recipient FROM {pm_block_user} WHERE author = %d AND recipient IN ('.db_placeholders($recipients).') GROUP BY recipient', $args); |
|
528 | 528 | while ($row = db_fetch_array($result)) { |
529 | 529 | $recipient = $recipients[$row['recipient']]; |
530 | 530 | // If there's a rule disallowing blocking of this message, send it anyway. |
@@ -563,10 +563,10 @@ discard block |
||
563 | 563 | |
564 | 564 | if ($user->uid <> $author->uid) { |
565 | 565 | if ($vars['message']['is_blocked']) { |
566 | - $vars['message_actions']['unblock_author'] = array('title' => t('Unblock author'), 'href' => 'messages/block/'. $author->uid, 'query' => 'destination=messages/view/' . $thread_id); |
|
566 | + $vars['message_actions']['unblock_author'] = array('title' => t('Unblock author'), 'href' => 'messages/block/'.$author->uid, 'query' => 'destination=messages/view/'.$thread_id); |
|
567 | 567 | } |
568 | 568 | else { |
569 | - $vars['message_actions']['block_author'] = array('title' => t('Block author'), 'href' => 'messages/block/'. $author->uid, 'query' => 'destination=messages/view/' . $thread_id); |
|
569 | + $vars['message_actions']['block_author'] = array('title' => t('Block author'), 'href' => 'messages/block/'.$author->uid, 'query' => 'destination=messages/view/'.$thread_id); |
|
570 | 570 | } |
571 | 571 | } |
572 | 572 | } |
@@ -79,8 +79,7 @@ discard block |
||
79 | 79 | // Should we populate the form with data from $form_state or the database? |
80 | 80 | if (!isset($form_state['pm_block_user']['block_actions'])) { |
81 | 81 | $block_actions = variable_get('pm_block_user_actions', array()); |
82 | - } |
|
83 | - else { |
|
82 | + } else { |
|
84 | 83 | $block_actions = $form_state['pm_block_user']['block_actions']; |
85 | 84 | } |
86 | 85 | // Work through each rule, adding it as a new element in |
@@ -160,8 +159,7 @@ discard block |
||
160 | 159 | PM_BLOCK_USER_DISALLOW_SENDING => t('Disallow sending message'), |
161 | 160 | ); |
162 | 161 | $default_value = (isset($details['action']) ? $details['action'] : PM_BLOCK_USER_DISALLOW_BLOCKING); |
163 | - } |
|
164 | - else { |
|
162 | + } else { |
|
165 | 163 | // @todo: add whitelist options/default_value here. |
166 | 164 | } |
167 | 165 | $form['action'] = array( |
@@ -239,8 +237,7 @@ discard block |
||
239 | 237 | // builder. |
240 | 238 | if (isset($form_state['values']['block_actions'])) { |
241 | 239 | variable_set('pm_block_user_actions', _pm_block_user_settings_filter($form_state['values']['block_actions'])); |
242 | - } |
|
243 | - else { |
|
240 | + } else { |
|
244 | 241 | variable_set('pm_block_user_actions', array()); |
245 | 242 | } |
246 | 243 | drupal_set_message(t('The configuration options have been saved.')); |
@@ -272,8 +269,7 @@ discard block |
||
272 | 269 | } |
273 | 270 | if (count($matching) > 0) { |
274 | 271 | return $matching; |
275 | - } |
|
276 | - else { |
|
272 | + } else { |
|
277 | 273 | return array_map('_pm_block_user_settings_filter', $settings); |
278 | 274 | } |
279 | 275 | } |
@@ -463,8 +459,7 @@ discard block |
||
463 | 459 | t('Unblock @author', array('@author' => $author->name)), |
464 | 460 | t('Cancel') |
465 | 461 | ); |
466 | - } |
|
467 | - else { |
|
462 | + } else { |
|
468 | 463 | $form['block_action'] = array( |
469 | 464 | '#type' => 'value', |
470 | 465 | '#value' => 'block_user', |
@@ -564,8 +559,7 @@ discard block |
||
564 | 559 | if ($user->uid <> $author->uid) { |
565 | 560 | if ($vars['message']['is_blocked']) { |
566 | 561 | $vars['message_actions']['unblock_author'] = array('title' => t('Unblock author'), 'href' => 'messages/block/'. $author->uid, 'query' => 'destination=messages/view/' . $thread_id); |
567 | - } |
|
568 | - else { |
|
562 | + } else { |
|
569 | 563 | $vars['message_actions']['block_author'] = array('title' => t('Block author'), 'href' => 'messages/block/'. $author->uid, 'query' => 'destination=messages/view/' . $thread_id); |
570 | 564 | } |
571 | 565 | } |
@@ -148,6 +148,8 @@ |
||
148 | 148 | * Implements hook_user(). |
149 | 149 | * |
150 | 150 | * Display settings form and store its information. |
151 | + * @param string $op |
|
152 | + * @param string $category |
|
151 | 153 | */ |
152 | 154 | function pm_email_notify_user($op, &$edit, &$account, $category = NULL) { |
153 | 155 | switch ($op) { |
@@ -9,7 +9,7 @@ discard block |
||
9 | 9 | * Implements hook_menu(). |
10 | 10 | */ |
11 | 11 | function pm_email_notify_menu() { |
12 | - $items['admin/settings/messages/notify'] = array( |
|
12 | + $items['admin/settings/messages/notify'] = array( |
|
13 | 13 | 'title' => 'E-mail notify', |
14 | 14 | 'description' => 'E-mail notification settings', |
15 | 15 | 'page callback' => 'drupal_get_form', |
@@ -17,47 +17,47 @@ discard block |
||
17 | 17 | 'access arguments' => array('administer privatemsg settings'), |
18 | 18 | 'type' => MENU_LOCAL_TASK, |
19 | 19 | 'weight' => 10, |
20 | - ); |
|
21 | - return $items; |
|
20 | + ); |
|
21 | + return $items; |
|
22 | 22 | } |
23 | 23 | |
24 | 24 | /** |
25 | 25 | * Menu callback for administration settings. |
26 | 26 | */ |
27 | 27 | function pm_email_notify_admin_settings_form() { |
28 | - $form['pm_email'] = array( |
|
28 | + $form['pm_email'] = array( |
|
29 | 29 | '#type' => 'fieldset', |
30 | 30 | '#title' => t('Privatemsg e-mail notification'), |
31 | 31 | '#collapsible' => FALSE, |
32 | 32 | '#collapsed' => FALSE, |
33 | - ); |
|
34 | - $form['pm_email']['pm_email_notify_default'] = array( |
|
33 | + ); |
|
34 | + $form['pm_email']['pm_email_notify_default'] = array( |
|
35 | 35 | '#type' => 'checkbox', |
36 | 36 | '#title' => t('Notify users of new private messages by default'), |
37 | 37 | '#default_value' => variable_get('pm_email_notify_default', TRUE), |
38 | 38 | '#weight' => 0, |
39 | - ); |
|
39 | + ); |
|
40 | 40 | |
41 | - $form['pm_email']['pm_email_notify_desc'] = array( |
|
41 | + $form['pm_email']['pm_email_notify_desc'] = array( |
|
42 | 42 | '#type' => 'item', |
43 | 43 | '#value' => t('Customize the email messages sent to users upon receipt of a new private message. <br />Available variables are: !author, !author_uid, !pm_subject, !pm_body, !thread, !site, !login_url, !uri, !uri_brief, !message (URL) and !settings (URL).'), |
44 | 44 | '#weight' => 1, |
45 | - ); |
|
45 | + ); |
|
46 | 46 | |
47 | - $form['pm_email']['pm_email_notify_subject'] = array( |
|
47 | + $form['pm_email']['pm_email_notify_subject'] = array( |
|
48 | 48 | '#type' => 'textfield', |
49 | 49 | '#title' => t('Subject of notification messages'), |
50 | 50 | '#default_value' => variable_get('pm_email_notify_subject', 'New private message at !site.'), |
51 | 51 | '#weight' => 2, |
52 | - ); |
|
52 | + ); |
|
53 | 53 | |
54 | - $form['pm_email']['pm_email_notify_body'] = array( |
|
54 | + $form['pm_email']['pm_email_notify_body'] = array( |
|
55 | 55 | '#type' => 'textarea', |
56 | 56 | '#title' => t('Body of notification messages'), |
57 | 57 | '#default_value' => variable_get('pm_email_notify_body', _pm_email_notify_default_body()), |
58 | 58 | '#weight' => 3, |
59 | - ); |
|
60 | - return system_settings_form($form); |
|
59 | + ); |
|
60 | + return system_settings_form($form); |
|
61 | 61 | } |
62 | 62 | |
63 | 63 | /** |
@@ -70,47 +70,47 @@ discard block |
||
70 | 70 | * User uid |
71 | 71 | */ |
72 | 72 | function _pm_email_notify_is_enabled($uid) { |
73 | - static $notifications = array(); |
|
74 | - // Cache the result set in case this method is executed in batched operation which will perform many unnecessary repeated selects for the same user |
|
75 | - if ( !isset($notifications[$uid]) ) { |
|
73 | + static $notifications = array(); |
|
74 | + // Cache the result set in case this method is executed in batched operation which will perform many unnecessary repeated selects for the same user |
|
75 | + if ( !isset($notifications[$uid]) ) { |
|
76 | 76 | $mail_notification = db_result(db_query('SELECT email_notify_is_enabled FROM {pm_email_notify} WHERE user_id = %d', $uid)); |
77 | 77 | if ($mail_notification === FALSE) { |
78 | - // db_result() returns FALSE if result was not found. |
|
79 | - $mail_notification = variable_get('pm_email_notify_default', TRUE); |
|
78 | + // db_result() returns FALSE if result was not found. |
|
79 | + $mail_notification = variable_get('pm_email_notify_default', TRUE); |
|
80 | 80 | } |
81 | 81 | $notifications[$uid] = $mail_notification; |
82 | - } |
|
83 | - return $notifications[$uid]; |
|
82 | + } |
|
83 | + return $notifications[$uid]; |
|
84 | 84 | } |
85 | 85 | |
86 | 86 | /** |
87 | 87 | * Implements hook_privatemsg_message_insert(). |
88 | 88 | */ |
89 | 89 | function pm_email_notify_privatemsg_message_insert($message) { |
90 | - foreach ($message['recipients'] as $recipient) { |
|
90 | + foreach ($message['recipients'] as $recipient) { |
|
91 | 91 | // check if recipient enabled email notifications |
92 | 92 | if (_pm_email_notify_is_enabled($recipient->uid)) { |
93 | - // send them a new pm notification email if they did |
|
94 | - $params['recipient'] = $recipient; |
|
95 | - $params['message'] = $message; |
|
96 | - drupal_mail('pm_email_notify', 'notice', $recipient->mail, user_preferred_language($recipient), $params); |
|
93 | + // send them a new pm notification email if they did |
|
94 | + $params['recipient'] = $recipient; |
|
95 | + $params['message'] = $message; |
|
96 | + drupal_mail('pm_email_notify', 'notice', $recipient->mail, user_preferred_language($recipient), $params); |
|
97 | + } |
|
97 | 98 | } |
98 | - } |
|
99 | 99 | } |
100 | 100 | |
101 | 101 | /** |
102 | 102 | * Implements hook_mail(). |
103 | 103 | */ |
104 | 104 | function pm_email_notify_mail($key, &$message, $params) { |
105 | - $language = $message['language']; |
|
106 | - $variables = user_mail_tokens($params['recipient'], $language); |
|
107 | - $variables = array_merge($variables, _pm_email_notify_token($params['recipient'], $params['message'], $language)); |
|
108 | - switch ($key) { |
|
105 | + $language = $message['language']; |
|
106 | + $variables = user_mail_tokens($params['recipient'], $language); |
|
107 | + $variables = array_merge($variables, _pm_email_notify_token($params['recipient'], $params['message'], $language)); |
|
108 | + switch ($key) { |
|
109 | 109 | case 'notice': |
110 | 110 | $message['subject'] = t(variable_get('pm_email_notify_subject', 'New private message at !site.'), $variables, $language->language); |
111 | - $message['body'] = t(variable_get('pm_email_notify_body', _pm_email_notify_default_body()), $variables, $language->language); |
|
112 | - break; |
|
113 | - } |
|
111 | + $message['body'] = t(variable_get('pm_email_notify_body', _pm_email_notify_default_body()), $variables, $language->language); |
|
112 | + break; |
|
113 | + } |
|
114 | 114 | } |
115 | 115 | |
116 | 116 | /** |
@@ -123,7 +123,7 @@ discard block |
||
123 | 123 | * Array of mappings from token names to values (for use with strtr()). |
124 | 124 | */ |
125 | 125 | function _pm_email_notify_token($recipient, $message, $language) { |
126 | - $tokens = array( |
|
126 | + $tokens = array( |
|
127 | 127 | '!author_uid' => $message['author']->uid, |
128 | 128 | '!author' => $message['author']->name, |
129 | 129 | '!pm_subject' => trim(drupal_html_to_text(check_plain($message['subject']))), |
@@ -132,16 +132,16 @@ discard block |
||
132 | 132 | '!user_uid' => $recipient->uid, |
133 | 133 | '!message' => url('messages/view/' . $message['thread_id'], array('absolute' => TRUE, 'language' => $language)), |
134 | 134 | '!settings' => url('user/' . $recipient->uid . '/edit', array('absolute' => TRUE, 'language' => $language)), |
135 | - ); |
|
135 | + ); |
|
136 | 136 | |
137 | - return $tokens; |
|
137 | + return $tokens; |
|
138 | 138 | } |
139 | 139 | |
140 | 140 | /** |
141 | 141 | * Returns default email notification body. |
142 | 142 | */ |
143 | 143 | function _pm_email_notify_default_body() { |
144 | - return "Hi !username,\n\nThis is an automatic reminder from the site !site. You have received a new private message from !author.\n\nTo read your message, follow this link:\n!message\n\nIf you don't want to receive these emails again, change your preferences here:\n!settings"; |
|
144 | + return "Hi !username,\n\nThis is an automatic reminder from the site !site. You have received a new private message from !author.\n\nTo read your message, follow this link:\n!message\n\nIf you don't want to receive these emails again, change your preferences here:\n!settings"; |
|
145 | 145 | } |
146 | 146 | |
147 | 147 | /** |
@@ -150,43 +150,43 @@ discard block |
||
150 | 150 | * Display settings form and store its information. |
151 | 151 | */ |
152 | 152 | function pm_email_notify_user($op, &$edit, &$account, $category = NULL) { |
153 | - switch ($op) { |
|
153 | + switch ($op) { |
|
154 | 154 | case 'form': |
155 | 155 | if ($category == 'account' && privatemsg_user_access('read privatemsg', $account)) { |
156 | 156 | $form['enable_pm_mail'] = array( |
157 | - '#type' => 'fieldset', |
|
158 | - '#title' => t('Privatemsg e-mail notification'), |
|
159 | - '#collapsible' => TRUE, |
|
160 | - '#collapsed' => FALSE, |
|
161 | - '#weight' => 10, |
|
157 | + '#type' => 'fieldset', |
|
158 | + '#title' => t('Privatemsg e-mail notification'), |
|
159 | + '#collapsible' => TRUE, |
|
160 | + '#collapsed' => FALSE, |
|
161 | + '#weight' => 10, |
|
162 | 162 | ); |
163 | 163 | $form['enable_pm_mail']['pm_send_notifications'] = array( |
164 | - '#type' => 'checkbox', |
|
165 | - '#title' => t('Receive email notification for incoming private messages'), |
|
166 | - '#default_value' => _pm_email_notify_is_enabled($account->uid), |
|
164 | + '#type' => 'checkbox', |
|
165 | + '#title' => t('Receive email notification for incoming private messages'), |
|
166 | + '#default_value' => _pm_email_notify_is_enabled($account->uid), |
|
167 | 167 | ); |
168 | - } |
|
169 | - return $form; |
|
168 | + } |
|
169 | + return $form; |
|
170 | 170 | |
171 | - case 'submit': |
|
171 | + case 'submit': |
|
172 | 172 | if (isset($edit['pm_send_notifications']) && privatemsg_user_access('read privatemsg', $account)) { |
173 | 173 | $pm_email_enabled = $edit['pm_send_notifications']; |
174 | 174 | unset($edit['pm_send_notifications']); |
175 | 175 | // Update database entry with user preference. |
176 | 176 | $exists = db_result(db_query("SELECT 1 FROM {pm_email_notify} WHERE user_id = %d", $account->uid)); |
177 | 177 | if ($exists) { |
178 | - // If there is an existing entry, update. |
|
179 | - db_query("UPDATE {pm_email_notify} SET email_notify_is_enabled = %d WHERE user_id = %d", $pm_email_enabled, $account->uid); |
|
178 | + // If there is an existing entry, update. |
|
179 | + db_query("UPDATE {pm_email_notify} SET email_notify_is_enabled = %d WHERE user_id = %d", $pm_email_enabled, $account->uid); |
|
180 | 180 | } |
181 | 181 | else { |
182 | - // If not, create a new one. |
|
183 | - db_query("INSERT INTO {pm_email_notify} (email_notify_is_enabled, user_id) VALUES (%d, %d)", $pm_email_enabled, $account->uid); |
|
182 | + // If not, create a new one. |
|
183 | + db_query("INSERT INTO {pm_email_notify} (email_notify_is_enabled, user_id) VALUES (%d, %d)", $pm_email_enabled, $account->uid); |
|
184 | + } |
|
184 | 185 | } |
185 | - } |
|
186 | - break; |
|
186 | + break; |
|
187 | 187 | |
188 | - case 'delete': |
|
188 | + case 'delete': |
|
189 | 189 | db_query("DELETE FROM {pm_email_notify} WHERE user_id = %d", $account->uid); |
190 | - break; |
|
191 | - } |
|
190 | + break; |
|
191 | + } |
|
192 | 192 | } |
@@ -106,10 +106,10 @@ discard block |
||
106 | 106 | $variables = user_mail_tokens($params['recipient'], $language); |
107 | 107 | $variables = array_merge($variables, _pm_email_notify_token($params['recipient'], $params['message'], $language)); |
108 | 108 | switch ($key) { |
109 | - case 'notice': |
|
110 | - $message['subject'] = t(variable_get('pm_email_notify_subject', 'New private message at !site.'), $variables, $language->language); |
|
111 | - $message['body'] = t(variable_get('pm_email_notify_body', _pm_email_notify_default_body()), $variables, $language->language); |
|
112 | - break; |
|
109 | + case 'notice': |
|
110 | + $message['subject'] = t(variable_get('pm_email_notify_subject', 'New private message at !site.'), $variables, $language->language); |
|
111 | + $message['body'] = t(variable_get('pm_email_notify_body', _pm_email_notify_default_body()), $variables, $language->language); |
|
112 | + break; |
|
113 | 113 | } |
114 | 114 | } |
115 | 115 | |
@@ -151,42 +151,42 @@ discard block |
||
151 | 151 | */ |
152 | 152 | function pm_email_notify_user($op, &$edit, &$account, $category = NULL) { |
153 | 153 | switch ($op) { |
154 | - case 'form': |
|
155 | - if ($category == 'account' && privatemsg_user_access('read privatemsg', $account)) { |
|
156 | - $form['enable_pm_mail'] = array( |
|
157 | - '#type' => 'fieldset', |
|
158 | - '#title' => t('Privatemsg e-mail notification'), |
|
159 | - '#collapsible' => TRUE, |
|
160 | - '#collapsed' => FALSE, |
|
161 | - '#weight' => 10, |
|
162 | - ); |
|
163 | - $form['enable_pm_mail']['pm_send_notifications'] = array( |
|
164 | - '#type' => 'checkbox', |
|
165 | - '#title' => t('Receive email notification for incoming private messages'), |
|
166 | - '#default_value' => _pm_email_notify_is_enabled($account->uid), |
|
167 | - ); |
|
168 | - } |
|
169 | - return $form; |
|
154 | + case 'form': |
|
155 | + if ($category == 'account' && privatemsg_user_access('read privatemsg', $account)) { |
|
156 | + $form['enable_pm_mail'] = array( |
|
157 | + '#type' => 'fieldset', |
|
158 | + '#title' => t('Privatemsg e-mail notification'), |
|
159 | + '#collapsible' => TRUE, |
|
160 | + '#collapsed' => FALSE, |
|
161 | + '#weight' => 10, |
|
162 | + ); |
|
163 | + $form['enable_pm_mail']['pm_send_notifications'] = array( |
|
164 | + '#type' => 'checkbox', |
|
165 | + '#title' => t('Receive email notification for incoming private messages'), |
|
166 | + '#default_value' => _pm_email_notify_is_enabled($account->uid), |
|
167 | + ); |
|
168 | + } |
|
169 | + return $form; |
|
170 | 170 | |
171 | - case 'submit': |
|
172 | - if (isset($edit['pm_send_notifications']) && privatemsg_user_access('read privatemsg', $account)) { |
|
173 | - $pm_email_enabled = $edit['pm_send_notifications']; |
|
174 | - unset($edit['pm_send_notifications']); |
|
175 | - // Update database entry with user preference. |
|
176 | - $exists = db_result(db_query("SELECT 1 FROM {pm_email_notify} WHERE user_id = %d", $account->uid)); |
|
177 | - if ($exists) { |
|
178 | - // If there is an existing entry, update. |
|
179 | - db_query("UPDATE {pm_email_notify} SET email_notify_is_enabled = %d WHERE user_id = %d", $pm_email_enabled, $account->uid); |
|
180 | - } |
|
181 | - else { |
|
182 | - // If not, create a new one. |
|
183 | - db_query("INSERT INTO {pm_email_notify} (email_notify_is_enabled, user_id) VALUES (%d, %d)", $pm_email_enabled, $account->uid); |
|
184 | - } |
|
185 | - } |
|
186 | - break; |
|
171 | + case 'submit': |
|
172 | + if (isset($edit['pm_send_notifications']) && privatemsg_user_access('read privatemsg', $account)) { |
|
173 | + $pm_email_enabled = $edit['pm_send_notifications']; |
|
174 | + unset($edit['pm_send_notifications']); |
|
175 | + // Update database entry with user preference. |
|
176 | + $exists = db_result(db_query("SELECT 1 FROM {pm_email_notify} WHERE user_id = %d", $account->uid)); |
|
177 | + if ($exists) { |
|
178 | + // If there is an existing entry, update. |
|
179 | + db_query("UPDATE {pm_email_notify} SET email_notify_is_enabled = %d WHERE user_id = %d", $pm_email_enabled, $account->uid); |
|
180 | + } |
|
181 | + else { |
|
182 | + // If not, create a new one. |
|
183 | + db_query("INSERT INTO {pm_email_notify} (email_notify_is_enabled, user_id) VALUES (%d, %d)", $pm_email_enabled, $account->uid); |
|
184 | + } |
|
185 | + } |
|
186 | + break; |
|
187 | 187 | |
188 | - case 'delete': |
|
189 | - db_query("DELETE FROM {pm_email_notify} WHERE user_id = %d", $account->uid); |
|
190 | - break; |
|
188 | + case 'delete': |
|
189 | + db_query("DELETE FROM {pm_email_notify} WHERE user_id = %d", $account->uid); |
|
190 | + break; |
|
191 | 191 | } |
192 | 192 | } |
@@ -72,7 +72,7 @@ discard block |
||
72 | 72 | function _pm_email_notify_is_enabled($uid) { |
73 | 73 | static $notifications = array(); |
74 | 74 | // Cache the result set in case this method is executed in batched operation which will perform many unnecessary repeated selects for the same user |
75 | - if ( !isset($notifications[$uid]) ) { |
|
75 | + if (!isset($notifications[$uid])) { |
|
76 | 76 | $mail_notification = db_result(db_query('SELECT email_notify_is_enabled FROM {pm_email_notify} WHERE user_id = %d', $uid)); |
77 | 77 | if ($mail_notification === FALSE) { |
78 | 78 | // db_result() returns FALSE if result was not found. |
@@ -130,8 +130,8 @@ discard block |
||
130 | 130 | '!pm_body' => trim(drupal_html_to_text(check_markup($message['body'], $message['format'], FALSE))), |
131 | 131 | '!thread' => $message['thread_id'], |
132 | 132 | '!user_uid' => $recipient->uid, |
133 | - '!message' => url('messages/view/' . $message['thread_id'], array('absolute' => TRUE, 'language' => $language)), |
|
134 | - '!settings' => url('user/' . $recipient->uid . '/edit', array('absolute' => TRUE, 'language' => $language)), |
|
133 | + '!message' => url('messages/view/'.$message['thread_id'], array('absolute' => TRUE, 'language' => $language)), |
|
134 | + '!settings' => url('user/'.$recipient->uid.'/edit', array('absolute' => TRUE, 'language' => $language)), |
|
135 | 135 | ); |
136 | 136 | |
137 | 137 | return $tokens; |
@@ -177,8 +177,7 @@ |
||
177 | 177 | if ($exists) { |
178 | 178 | // If there is an existing entry, update. |
179 | 179 | db_query("UPDATE {pm_email_notify} SET email_notify_is_enabled = %d WHERE user_id = %d", $pm_email_enabled, $account->uid); |
180 | - } |
|
181 | - else { |
|
180 | + } else { |
|
182 | 181 | // If not, create a new one. |
183 | 182 | db_query("INSERT INTO {pm_email_notify} (email_notify_is_enabled, user_id) VALUES (%d, %d)", $pm_email_enabled, $account->uid); |
184 | 183 | } |
@@ -37,6 +37,7 @@ discard block |
||
37 | 37 | * |
38 | 38 | * @param $userstring |
39 | 39 | * A string with user id, for example 1,2,4. Returned by the list query |
40 | + * @param integer $slice |
|
40 | 41 | * |
41 | 42 | * @return |
42 | 43 | * Array with user objects. |
@@ -72,7 +73,7 @@ discard block |
||
72 | 73 | * Array with user objects, for example the one returnd by |
73 | 74 | * _privatemsg_generate_user_array. |
74 | 75 | * |
75 | - * @param $limit |
|
76 | + * @param integer $limit |
|
76 | 77 | * Limit the number of user objects which should be displayed. |
77 | 78 | * @param $no_text |
78 | 79 | * When TRUE, don't display the Participants/From text. |
@@ -215,7 +216,7 @@ discard block |
||
215 | 216 | * Permission string, defaults to read privatemsg |
216 | 217 | * |
217 | 218 | * @return |
218 | - * TRUE if user has access, FALSE if not |
|
219 | + boolean TRUE if user has access, FALSE if not |
|
219 | 220 | * |
220 | 221 | * @ingroup api |
221 | 222 | */ |
@@ -730,7 +731,7 @@ discard block |
||
730 | 731 | * |
731 | 732 | * @param $pmid |
732 | 733 | * Message id |
733 | - * @param $status |
|
734 | + * @param integer $status |
|
734 | 735 | * Either PRIVATEMSG_READ or PRIVATEMSG_UNREAD |
735 | 736 | * @param $account |
736 | 737 | * User object, defaults to the current user |
@@ -1949,9 +1950,10 @@ discard block |
||
1949 | 1950 | * Recipient of the message |
1950 | 1951 | * @param $account |
1951 | 1952 | * Sender of the message, defaults to the current user |
1953 | + * @param string $subject |
|
1952 | 1954 | * |
1953 | 1955 | * @return |
1954 | - * Either FALSE or a URL string |
|
1956 | + false|string Either FALSE or a URL string |
|
1955 | 1957 | * |
1956 | 1958 | * @ingroup api |
1957 | 1959 | */ |
@@ -2273,7 +2275,7 @@ discard block |
||
2273 | 2275 | * |
2274 | 2276 | * Uses @link theming theme patterns @endlink to theme single headers. |
2275 | 2277 | * |
2276 | - * @param $has_posts |
|
2278 | + * @param boolean $has_posts |
|
2277 | 2279 | * TRUE when there is at least one row. Decides if the select all checkbox |
2278 | 2280 | * should be displayed. |
2279 | 2281 | * @param $keys |
@@ -22,13 +22,13 @@ discard block |
||
22 | 22 | * Implements hook_perm(). |
23 | 23 | */ |
24 | 24 | function privatemsg_perm() { |
25 | - return array( |
|
25 | + return array( |
|
26 | 26 | 'read privatemsg', |
27 | 27 | 'read all private messages', |
28 | 28 | 'administer privatemsg settings', |
29 | 29 | 'write privatemsg', |
30 | 30 | 'delete privatemsg', |
31 | - ); |
|
31 | + ); |
|
32 | 32 | } |
33 | 33 | |
34 | 34 | /** |
@@ -42,27 +42,27 @@ discard block |
||
42 | 42 | * Array with user objects. |
43 | 43 | */ |
44 | 44 | function _privatemsg_generate_user_array($userstring, $slice = NULL) { |
45 | - static $user_cache = array(); |
|
46 | - |
|
47 | - // Convert user uid list (uid1,uid2,uid3) into an array. If $slice is not NULL |
|
48 | - // pass that as argument to array_slice(). For example, -4 will only load the |
|
49 | - // last four users. |
|
50 | - // This is done to avoid loading user objects that are not displayed, for |
|
51 | - // obvious performance reasons. |
|
52 | - $users = explode(',', $userstring); |
|
53 | - if (!is_null($slice)) { |
|
45 | + static $user_cache = array(); |
|
46 | + |
|
47 | + // Convert user uid list (uid1,uid2,uid3) into an array. If $slice is not NULL |
|
48 | + // pass that as argument to array_slice(). For example, -4 will only load the |
|
49 | + // last four users. |
|
50 | + // This is done to avoid loading user objects that are not displayed, for |
|
51 | + // obvious performance reasons. |
|
52 | + $users = explode(',', $userstring); |
|
53 | + if (!is_null($slice)) { |
|
54 | 54 | $users = array_slice($users, $slice); |
55 | - } |
|
56 | - $participants = array(); |
|
57 | - foreach ($users as $uid) { |
|
55 | + } |
|
56 | + $participants = array(); |
|
57 | + foreach ($users as $uid) { |
|
58 | 58 | if (!array_key_exists($uid, $user_cache)) { |
59 | - $user_cache[$uid] = user_load($uid); |
|
59 | + $user_cache[$uid] = user_load($uid); |
|
60 | 60 | } |
61 | 61 | if (is_object($user_cache[$uid])) { |
62 | - $participants[$uid] = $user_cache[$uid]; |
|
62 | + $participants[$uid] = $user_cache[$uid]; |
|
63 | + } |
|
63 | 64 | } |
64 | - } |
|
65 | - return $participants; |
|
65 | + return $participants; |
|
66 | 66 | } |
67 | 67 | |
68 | 68 | /** |
@@ -80,60 +80,60 @@ discard block |
||
80 | 80 | * String with formated user objects, like user1, user2. |
81 | 81 | */ |
82 | 82 | function _privatemsg_format_participants($part_array, $limit = NULL, $no_text = FALSE) { |
83 | - if (count($part_array) > 0) { |
|
83 | + if (count($part_array) > 0) { |
|
84 | 84 | $to = array(); |
85 | 85 | $limited = FALSE; |
86 | 86 | foreach ($part_array as $account) { |
87 | - if (is_int($limit) && count($to) >= $limit) { |
|
87 | + if (is_int($limit) && count($to) >= $limit) { |
|
88 | 88 | $limited = TRUE; |
89 | 89 | break; |
90 | - } |
|
91 | - $to[] = theme('username', $account); |
|
90 | + } |
|
91 | + $to[] = theme('username', $account); |
|
92 | 92 | } |
93 | 93 | |
94 | 94 | $limit_string = ''; |
95 | 95 | if ($limited) { |
96 | - $limit_string = t(' and others'); |
|
96 | + $limit_string = t(' and others'); |
|
97 | 97 | } |
98 | 98 | |
99 | 99 | |
100 | 100 | if ($no_text) { |
101 | - return implode(', ', $to) . $limit_string; |
|
101 | + return implode(', ', $to) . $limit_string; |
|
102 | 102 | } |
103 | 103 | |
104 | 104 | $last = array_pop($to); |
105 | 105 | if (count($to) == 0) { // Only one participant |
106 | - return t("From !last", array('!last' => $last)); |
|
106 | + return t("From !last", array('!last' => $last)); |
|
107 | 107 | } |
108 | 108 | else { // Multipe participants.. |
109 | - $participants = implode(', ', $to); |
|
110 | - return t('Participants: !participants and !last', array('!participants' => $participants, '!last' => $last)); |
|
109 | + $participants = implode(', ', $to); |
|
110 | + return t('Participants: !participants and !last', array('!participants' => $participants, '!last' => $last)); |
|
111 | + } |
|
111 | 112 | } |
112 | - } |
|
113 | - return ''; |
|
113 | + return ''; |
|
114 | 114 | } |
115 | 115 | |
116 | 116 | /** |
117 | 117 | * Implements hook_menu(). |
118 | 118 | */ |
119 | 119 | function privatemsg_menu() { |
120 | - $items['messages'] = array( |
|
120 | + $items['messages'] = array( |
|
121 | 121 | 'title' => 'Messages', |
122 | 122 | 'title callback' => 'privatemsg_title_callback', |
123 | 123 | 'page callback' => 'drupal_get_form', |
124 | 124 | 'page arguments' => array('privatemsg_list', 'list'), |
125 | 125 | 'access callback' => 'privatemsg_user_access', |
126 | 126 | 'type' => MENU_NORMAL_ITEM, |
127 | - ); |
|
128 | - $items['messages/list'] = array( |
|
127 | + ); |
|
128 | + $items['messages/list'] = array( |
|
129 | 129 | 'title' => 'Messages', |
130 | 130 | 'page callback' => 'drupal_get_form', |
131 | 131 | 'page arguments' => array('privatemsg_list', 'list'), |
132 | 132 | 'access callback' => 'privatemsg_user_access', |
133 | 133 | 'type' => MENU_DEFAULT_LOCAL_TASK, |
134 | 134 | 'weight' => -10, |
135 | - ); |
|
136 | - $items['messages/view/%privatemsg_thread'] = array( |
|
135 | + ); |
|
136 | + $items['messages/view/%privatemsg_thread'] = array( |
|
137 | 137 | 'title' => 'Read message', |
138 | 138 | // Set the third argument to TRUE so that we can show access denied instead |
139 | 139 | // of not found. |
@@ -144,16 +144,16 @@ discard block |
||
144 | 144 | 'access arguments' => array(2), |
145 | 145 | 'type' => MENU_LOCAL_TASK, |
146 | 146 | 'weight' => -5, |
147 | - ); |
|
148 | - $items['messages/delete/%privatemsg_thread/%privatemsg_message'] = array( |
|
147 | + ); |
|
148 | + $items['messages/delete/%privatemsg_thread/%privatemsg_message'] = array( |
|
149 | 149 | 'title' => 'Delete message', |
150 | 150 | 'page callback' => 'drupal_get_form', |
151 | 151 | 'page arguments' => array('privatemsg_delete', 2, 3), |
152 | 152 | 'access callback' => 'privatemsg_user_access', |
153 | 153 | 'access arguments' => array('delete privatemsg'), |
154 | 154 | 'type' => MENU_CALLBACK, |
155 | - ); |
|
156 | - $items['messages/new'] = array( |
|
155 | + ); |
|
156 | + $items['messages/new'] = array( |
|
157 | 157 | 'title' => 'Write new message', |
158 | 158 | 'page callback' => 'drupal_get_form', |
159 | 159 | 'page arguments' => array('privatemsg_new', 2, 3, NULL), |
@@ -161,24 +161,24 @@ discard block |
||
161 | 161 | 'access arguments' => array('write privatemsg'), |
162 | 162 | 'type' => MENU_LOCAL_TASK, |
163 | 163 | 'weight' => -3, |
164 | - ); |
|
165 | - // Auto-completes available user names & removes duplicates. |
|
166 | - $items['messages/user-name-autocomplete'] = array( |
|
164 | + ); |
|
165 | + // Auto-completes available user names & removes duplicates. |
|
166 | + $items['messages/user-name-autocomplete'] = array( |
|
167 | 167 | 'page callback' => 'privatemsg_user_name_autocomplete', |
168 | 168 | 'access callback' => 'privatemsg_user_access', |
169 | 169 | 'access arguments' => array('write privatemsg'), |
170 | 170 | 'type' => MENU_CALLBACK, |
171 | 171 | 'weight' => -10, |
172 | - ); |
|
173 | - $items['admin/settings/messages'] = array( |
|
172 | + ); |
|
173 | + $items['admin/settings/messages'] = array( |
|
174 | 174 | 'title' => 'Private messages', |
175 | 175 | 'description' => 'Configure private messaging settings.', |
176 | 176 | 'page callback' => 'drupal_get_form', |
177 | 177 | 'page arguments' => array('private_message_settings'), |
178 | 178 | 'access arguments' => array('administer privatemsg settings'), |
179 | 179 | 'type' => MENU_NORMAL_ITEM, |
180 | - ); |
|
181 | - $items['admin/settings/messages/default'] = array( |
|
180 | + ); |
|
181 | + $items['admin/settings/messages/default'] = array( |
|
182 | 182 | 'title' => 'Private messages', |
183 | 183 | 'description' => 'Configure private messaging settings.', |
184 | 184 | 'page callback' => 'drupal_get_form', |
@@ -186,24 +186,24 @@ discard block |
||
186 | 186 | 'access arguments' => array('administer privatemsg settings'), |
187 | 187 | 'type' => MENU_DEFAULT_LOCAL_TASK, |
188 | 188 | 'weight' => -10, |
189 | - ); |
|
190 | - $items['messages/undo/action'] = array( |
|
189 | + ); |
|
190 | + $items['messages/undo/action'] = array( |
|
191 | 191 | 'title' => 'Private messages', |
192 | 192 | 'description' => 'Undo last thread action', |
193 | 193 | 'page callback' => 'privatemsg_undo_action', |
194 | 194 | 'access arguments' => array('read privatemsg'), |
195 | 195 | 'type' => MENU_CALLBACK, |
196 | - ); |
|
197 | - $items['user/%/messages'] = array( |
|
196 | + ); |
|
197 | + $items['user/%/messages'] = array( |
|
198 | 198 | 'title' => 'Messages', |
199 | 199 | 'page callback' => 'drupal_get_form', |
200 | 200 | 'page arguments' => array('privatemsg_list', 'list', 1), |
201 | 201 | 'access callback' => 'privatemsg_user_access', |
202 | 202 | 'access arguments' => array('read all private messages'), |
203 | 203 | 'type' => MENU_LOCAL_TASK, |
204 | - ); |
|
204 | + ); |
|
205 | 205 | |
206 | - return $items; |
|
206 | + return $items; |
|
207 | 207 | } |
208 | 208 | |
209 | 209 | /** |
@@ -220,17 +220,17 @@ discard block |
||
220 | 220 | * @ingroup api |
221 | 221 | */ |
222 | 222 | function privatemsg_user_access($permission = 'read privatemsg', $account = NULL) { |
223 | - if ( $account === NULL ) { |
|
223 | + if ( $account === NULL ) { |
|
224 | 224 | global $user; |
225 | 225 | $account = $user; |
226 | - } |
|
227 | - if (!$account->uid) { // Disallow anonymous access, regardless of permissions |
|
226 | + } |
|
227 | + if (!$account->uid) { // Disallow anonymous access, regardless of permissions |
|
228 | 228 | return FALSE; |
229 | - } |
|
230 | - if (!user_access($permission, $account)) { |
|
229 | + } |
|
230 | + if (!user_access($permission, $account)) { |
|
231 | 231 | return FALSE; |
232 | - } |
|
233 | - return TRUE; |
|
232 | + } |
|
233 | + return TRUE; |
|
234 | 234 | } |
235 | 235 | |
236 | 236 | /** |
@@ -247,15 +247,15 @@ discard block |
||
247 | 247 | * @ingroup api |
248 | 248 | */ |
249 | 249 | function privatemsg_view_access($thread = array()) { |
250 | - // Do not allow access to threads without messages. |
|
251 | - if (empty($thread['messages'])) { |
|
250 | + // Do not allow access to threads without messages. |
|
251 | + if (empty($thread['messages'])) { |
|
252 | 252 | // Count all messages, if there |
253 | 253 | return FALSE; |
254 | - } |
|
255 | - if (privatemsg_user_access('read privatemsg') && arg(1) == 'view') { |
|
254 | + } |
|
255 | + if (privatemsg_user_access('read privatemsg') && arg(1) == 'view') { |
|
256 | 256 | return TRUE; |
257 | - } |
|
258 | - return FALSE; |
|
257 | + } |
|
258 | + return FALSE; |
|
259 | 259 | } |
260 | 260 | |
261 | 261 | /** |
@@ -284,142 +284,141 @@ discard block |
||
284 | 284 | * |
285 | 285 | * If no messages are found, or the thread_id is invalid, the function returns |
286 | 286 | * FALSE. |
287 | - |
|
288 | 287 | * @ingroup api |
289 | 288 | */ |
290 | 289 | function privatemsg_thread_load($thread_id, $account = NULL, $start = NULL, $useAccessDenied = FALSE) { |
291 | - static $threads = array(); |
|
292 | - if ((int)$thread_id > 0) { |
|
290 | + static $threads = array(); |
|
291 | + if ((int)$thread_id > 0) { |
|
293 | 292 | $thread = array('thread_id' => $thread_id); |
294 | 293 | |
295 | 294 | if (is_null($account)) { |
296 | - global $user; |
|
297 | - $account = drupal_clone($user); |
|
295 | + global $user; |
|
296 | + $account = drupal_clone($user); |
|
298 | 297 | } |
299 | 298 | |
300 | 299 | if (!isset($threads[$account->uid])) { |
301 | - $threads[$account->uid] = array(); |
|
300 | + $threads[$account->uid] = array(); |
|
302 | 301 | } |
303 | 302 | |
304 | 303 | if (!array_key_exists($thread_id, $threads[$account->uid])) { |
305 | - // Load the list of participants. |
|
306 | - $query = _privatemsg_assemble_query('participants', $thread_id); |
|
307 | - $participants = db_query($query['query']); |
|
308 | - $thread['participants'] = array(); |
|
309 | - while ($participant = db_fetch_object($participants)) { |
|
304 | + // Load the list of participants. |
|
305 | + $query = _privatemsg_assemble_query('participants', $thread_id); |
|
306 | + $participants = db_query($query['query']); |
|
307 | + $thread['participants'] = array(); |
|
308 | + while ($participant = db_fetch_object($participants)) { |
|
310 | 309 | $thread['participants'][$participant->uid] = $participant; |
311 | - } |
|
312 | - $thread['read_all'] = FALSE; |
|
313 | - if (!array_key_exists($account->uid, $thread['participants']) && privatemsg_user_access('read all private messages', $account)) { |
|
310 | + } |
|
311 | + $thread['read_all'] = FALSE; |
|
312 | + if (!array_key_exists($account->uid, $thread['participants']) && privatemsg_user_access('read all private messages', $account)) { |
|
314 | 313 | $thread['read_all'] = TRUE; |
315 | - } |
|
314 | + } |
|
316 | 315 | |
317 | - // Load messages returned by the messages query with privatemsg_message_load_multiple(). |
|
318 | - $query = _privatemsg_assemble_query('messages', array($thread_id), $thread['read_all'] ? NULL : $account); |
|
319 | - $thread['message_count'] = $thread['to'] = db_result(db_query($query['count'])); |
|
320 | - $thread['from'] = 1; |
|
321 | - // Check if we need to limit the messages. |
|
322 | - $max_amount = variable_get('privatemsg_view_max_amount', 20); |
|
316 | + // Load messages returned by the messages query with privatemsg_message_load_multiple(). |
|
317 | + $query = _privatemsg_assemble_query('messages', array($thread_id), $thread['read_all'] ? NULL : $account); |
|
318 | + $thread['message_count'] = $thread['to'] = db_result(db_query($query['count'])); |
|
319 | + $thread['from'] = 1; |
|
320 | + // Check if we need to limit the messages. |
|
321 | + $max_amount = variable_get('privatemsg_view_max_amount', 20); |
|
323 | 322 | |
324 | - // If there is no start value, select based on get params. |
|
325 | - if (is_null($start)) { |
|
323 | + // If there is no start value, select based on get params. |
|
324 | + if (is_null($start)) { |
|
326 | 325 | if (isset($_GET['start']) && $_GET['start'] < $thread['message_count']) { |
327 | - $start = $_GET['start']; |
|
326 | + $start = $_GET['start']; |
|
328 | 327 | } |
329 | 328 | elseif (!variable_get('privatemsg_view_use_max_as_default', FALSE) && $max_amount == PRIVATEMSG_UNLIMITED) { |
330 | - $start = PRIVATEMSG_UNLIMITED; |
|
329 | + $start = PRIVATEMSG_UNLIMITED; |
|
331 | 330 | } |
332 | 331 | else { |
333 | - $start = $thread['message_count'] - (variable_get('privatemsg_view_use_max_as_default', FALSE) ? variable_get('privatemsg_view_default_amount', 10) : $max_amount); |
|
332 | + $start = $thread['message_count'] - (variable_get('privatemsg_view_use_max_as_default', FALSE) ? variable_get('privatemsg_view_default_amount', 10) : $max_amount); |
|
333 | + } |
|
334 | 334 | } |
335 | - } |
|
336 | 335 | |
337 | - if ($start != PRIVATEMSG_UNLIMITED) { |
|
336 | + if ($start != PRIVATEMSG_UNLIMITED) { |
|
338 | 337 | if ($max_amount == PRIVATEMSG_UNLIMITED) { |
339 | - $last_page = 0; |
|
340 | - $max_amount = $thread['message_count']; |
|
338 | + $last_page = 0; |
|
339 | + $max_amount = $thread['message_count']; |
|
341 | 340 | } |
342 | 341 | else { |
343 | - // Calculate the number of messages on the "last" page to avoid |
|
344 | - // message overlap. |
|
345 | - // Note - the last page lists the earliest messages, not the latest. |
|
346 | - $paging_count = variable_get('privatemsg_view_use_max_as_default', FALSE) ? $thread['message_count'] - variable_get('privatemsg_view_default_amount', 10) : $thread['message_count']; |
|
347 | - $last_page = $paging_count % $max_amount; |
|
342 | + // Calculate the number of messages on the "last" page to avoid |
|
343 | + // message overlap. |
|
344 | + // Note - the last page lists the earliest messages, not the latest. |
|
345 | + $paging_count = variable_get('privatemsg_view_use_max_as_default', FALSE) ? $thread['message_count'] - variable_get('privatemsg_view_default_amount', 10) : $thread['message_count']; |
|
346 | + $last_page = $paging_count % $max_amount; |
|
348 | 347 | } |
349 | 348 | |
350 | 349 | // Sanity check - we cannot start from a negative number. |
351 | 350 | if ($start < 0) { |
352 | - $start = 0; |
|
351 | + $start = 0; |
|
353 | 352 | } |
354 | 353 | $thread['start'] = $start; |
355 | 354 | |
356 | 355 | //If there are newer messages on the page, show pager link allowing to go to the newer messages. |
357 | 356 | if (($start + $max_amount + 1) < $thread['message_count']) { |
358 | - $thread['to'] = $start + $max_amount; |
|
359 | - $thread['newer_start'] = $start + $max_amount; |
|
357 | + $thread['to'] = $start + $max_amount; |
|
358 | + $thread['newer_start'] = $start + $max_amount; |
|
360 | 359 | } |
361 | 360 | if ($start - $max_amount >= 0) { |
362 | - $thread['older_start'] = $start - $max_amount; |
|
361 | + $thread['older_start'] = $start - $max_amount; |
|
363 | 362 | } |
364 | 363 | elseif ($start > 0) { |
365 | - $thread['older_start'] = 0; |
|
364 | + $thread['older_start'] = 0; |
|
366 | 365 | } |
367 | 366 | |
368 | 367 | // Do not show messages on the last page that would show on the page |
369 | 368 | // before. This will only work when using the visual pager. |
370 | 369 | if ($start < $last_page && $max_amount != PRIVATEMSG_UNLIMITED && $max_amount < $thread['message_count']) { |
371 | - unset($thread['older_start']); |
|
372 | - $thread['to'] = $thread['newer_start'] = $max_amount = $last_page; |
|
373 | - // Start from the first message - this is a specific hack to make sure |
|
374 | - // the message display has sane paging on the last page. |
|
375 | - $start = 0; |
|
370 | + unset($thread['older_start']); |
|
371 | + $thread['to'] = $thread['newer_start'] = $max_amount = $last_page; |
|
372 | + // Start from the first message - this is a specific hack to make sure |
|
373 | + // the message display has sane paging on the last page. |
|
374 | + $start = 0; |
|
376 | 375 | } |
377 | 376 | // Visual counts start from 1 instead of zero, so plus one. |
378 | 377 | $thread['from'] = $start + 1; |
379 | 378 | $conversation = db_query_range($query['query'], $start, $max_amount); |
380 | - } |
|
381 | - else { |
|
379 | + } |
|
380 | + else { |
|
382 | 381 | $conversation = db_query($query['query']); |
383 | - } |
|
384 | - $mids = array(); |
|
385 | - while ($result = db_fetch_array($conversation)) { |
|
382 | + } |
|
383 | + $mids = array(); |
|
384 | + while ($result = db_fetch_array($conversation)) { |
|
386 | 385 | $mids[] = $result['mid']; |
387 | - } |
|
388 | - // Load messages returned by the messages query. |
|
389 | - $thread['messages'] = privatemsg_message_load_multiple($mids, $thread['read_all'] ? NULL : $account); |
|
386 | + } |
|
387 | + // Load messages returned by the messages query. |
|
388 | + $thread['messages'] = privatemsg_message_load_multiple($mids, $thread['read_all'] ? NULL : $account); |
|
390 | 389 | |
391 | - // If there are no messages, don't allow access to the thread. |
|
392 | - if (empty($thread['messages'])) { |
|
390 | + // If there are no messages, don't allow access to the thread. |
|
391 | + if (empty($thread['messages'])) { |
|
393 | 392 | if ($useAccessDenied) { |
394 | - // Generate new query with read all to see if the thread does exist. |
|
395 | - $query = _privatemsg_assemble_query('messages', array($thread_id), NULL); |
|
396 | - $exists = db_result(db_query($query['count'])); |
|
397 | - if (!$exists) { |
|
393 | + // Generate new query with read all to see if the thread does exist. |
|
394 | + $query = _privatemsg_assemble_query('messages', array($thread_id), NULL); |
|
395 | + $exists = db_result(db_query($query['count'])); |
|
396 | + if (!$exists) { |
|
398 | 397 | // Thread does not exist, display 404. |
399 | 398 | $thread = FALSE; |
400 | - } |
|
399 | + } |
|
401 | 400 | } |
402 | 401 | else { |
403 | - $thread = FALSE; |
|
402 | + $thread = FALSE; |
|
403 | + } |
|
404 | 404 | } |
405 | - } |
|
406 | - else { |
|
405 | + else { |
|
407 | 406 | // General data, assume subject is the same for all messages of that thread. |
408 | 407 | $thread['user'] = $account; |
409 | 408 | $message = current($thread['messages']); |
410 | 409 | $thread['subject'] = $message['subject']; |
411 | - } |
|
412 | - $threads[$account->uid][$thread_id] = $thread; |
|
410 | + } |
|
411 | + $threads[$account->uid][$thread_id] = $thread; |
|
413 | 412 | } |
414 | 413 | |
415 | 414 | return $threads[$account->uid][$thread_id]; |
416 | - } |
|
417 | - return FALSE; |
|
415 | + } |
|
416 | + return FALSE; |
|
418 | 417 | } |
419 | 418 | |
420 | 419 | function private_message_view_options() { |
421 | - $options = module_invoke_all('privatemsg_view_template'); |
|
422 | - return $options; |
|
420 | + $options = module_invoke_all('privatemsg_view_template'); |
|
421 | + return $options; |
|
423 | 422 | } |
424 | 423 | |
425 | 424 | /** |
@@ -435,108 +434,108 @@ discard block |
||
435 | 434 | * }; |
436 | 435 | */ |
437 | 436 | function privatemsg_privatemsg_view_template() { |
438 | - return array( |
|
437 | + return array( |
|
439 | 438 | 'privatemsg-view' => 'Default view', |
440 | - ); |
|
439 | + ); |
|
441 | 440 | } |
442 | 441 | |
443 | 442 | function private_message_settings() { |
444 | - $form = array(); |
|
443 | + $form = array(); |
|
445 | 444 | |
446 | - $form['theming_settings'] = array( |
|
445 | + $form['theming_settings'] = array( |
|
447 | 446 | '#type' => 'fieldset', |
448 | 447 | '#collapsible' => TRUE, |
449 | 448 | '#collapsed' => TRUE, |
450 | 449 | '#title' => t('Theming settings'), |
451 | - ); |
|
452 | - $form['theming_settings']['private_message_view_template'] = array( |
|
450 | + ); |
|
451 | + $form['theming_settings']['private_message_view_template'] = array( |
|
453 | 452 | '#type' => 'radios', |
454 | 453 | '#title' => t('Private message display template'), |
455 | 454 | '#default_value' => variable_get('private_message_view_template', 'privatemsg-view'), |
456 | 455 | '#options' => private_message_view_options(), |
457 | - ); |
|
458 | - $form['privatemsg_display_loginmessage'] = array( |
|
456 | + ); |
|
457 | + $form['privatemsg_display_loginmessage'] = array( |
|
459 | 458 | '#type' => 'checkbox', |
460 | 459 | '#title' => t('Inform the user about new messages on login'), |
461 | 460 | '#default_value' => variable_get('privatemsg_display_loginmessage', TRUE), |
462 | 461 | '#description' => t('This option can safely be disabled if the "New message indication" block is used instead.'), |
463 | - ); |
|
462 | + ); |
|
464 | 463 | |
465 | - $form['flush_deleted'] = array( |
|
464 | + $form['flush_deleted'] = array( |
|
466 | 465 | '#type' => 'fieldset', |
467 | 466 | '#collapsible' => TRUE, |
468 | 467 | '#collapsed' => TRUE, |
469 | 468 | '#title' => t('Flush deleted messages'), |
470 | 469 | '#description' => t('By default, deleted messages are only hidden from the user but still stored in the database. These settings control if and when messages should be removed.'), |
471 | - ); |
|
470 | + ); |
|
472 | 471 | |
473 | - $form['flush_deleted']['privatemsg_flush_enabled'] = array( |
|
472 | + $form['flush_deleted']['privatemsg_flush_enabled'] = array( |
|
474 | 473 | '#type' => 'checkbox', |
475 | 474 | '#title' => t('Flush deleted messages'), |
476 | 475 | '#default_value' => variable_get('privatemsg_flush_enabled', FALSE), |
477 | 476 | '#description' => t('Enable the flushing of deleted messages. Requires that cron is enabled'), |
478 | - ); |
|
477 | + ); |
|
479 | 478 | |
480 | - $form['flush_deleted']['privatemsg_flush_days'] = array( |
|
479 | + $form['flush_deleted']['privatemsg_flush_days'] = array( |
|
481 | 480 | '#type' => 'select', |
482 | 481 | '#title' => t('Flush messages after they have been deleted for more days than'), |
483 | 482 | '#default_value' => variable_get('privatemsg_flush_days', 30), |
484 | 483 | '#options' => drupal_map_assoc(array(0, 1, 2, 5, 10, 30, 100)), |
485 | - ); |
|
484 | + ); |
|
486 | 485 | |
487 | - $form['flush_deleted']['privatemsg_flush_max'] = array( |
|
486 | + $form['flush_deleted']['privatemsg_flush_max'] = array( |
|
488 | 487 | '#type' => 'select', |
489 | 488 | '#title' => t('Maximum number of messages to flush per cron run'), |
490 | 489 | '#default_value' => variable_get('privatemsg_flush_max', 200), |
491 | 490 | '#options' => drupal_map_assoc(array(50, 100, 200, 500, 1000)), |
492 | - ); |
|
491 | + ); |
|
493 | 492 | |
494 | - $form['privatemsg_listing'] = array( |
|
493 | + $form['privatemsg_listing'] = array( |
|
495 | 494 | '#type' => 'fieldset', |
496 | 495 | '#title' => t('Configure listings'), |
497 | 496 | '#collapsible' => TRUE, |
498 | 497 | '#collapsed' => FALSE, |
499 | - ); |
|
498 | + ); |
|
500 | 499 | |
501 | - $form['privatemsg_listing']['privatemsg_per_page'] = array( |
|
500 | + $form['privatemsg_listing']['privatemsg_per_page'] = array( |
|
502 | 501 | '#type' => 'select', |
503 | 502 | '#title' => t('Threads per page'), |
504 | 503 | '#default_value' => variable_get('privatemsg_per_page', 25), |
505 | 504 | '#options' => drupal_map_assoc(array(10, 25, 50, 75, 100)), |
506 | 505 | '#description' => t('Choose the number of conversations that should be listed per page.'), |
507 | - ); |
|
506 | + ); |
|
508 | 507 | |
509 | - $form['privatemsg_listing']['privatemsg_display_fields'] = array( |
|
508 | + $form['privatemsg_listing']['privatemsg_display_fields'] = array( |
|
510 | 509 | '#type' => 'checkboxes', |
511 | 510 | '#title' => t('Configure fields'), |
512 | 511 | '#description' => t('Select which columns/fields should be displayed in the message listings. Subject and Last updated cannot be disabled.'), |
513 | 512 | '#options' => array( |
514 | - 'participants' => t('Participants'), |
|
515 | - 'thread_started' => t('Started'), |
|
516 | - 'count' => t('Messages'), |
|
513 | + 'participants' => t('Participants'), |
|
514 | + 'thread_started' => t('Started'), |
|
515 | + 'count' => t('Messages'), |
|
517 | 516 | ), |
518 | 517 | '#default_value' => variable_get('privatemsg_display_fields', array('participants')), |
519 | - ); |
|
518 | + ); |
|
520 | 519 | |
521 | - $amounts = drupal_map_assoc(array(5, 10, 20, 30, 50, 70, 90, 150, 200, 250, 300)); |
|
522 | - $form['privatemsg_listing']['privatemsg_view_max_amount'] = array( |
|
520 | + $amounts = drupal_map_assoc(array(5, 10, 20, 30, 50, 70, 90, 150, 200, 250, 300)); |
|
521 | + $form['privatemsg_listing']['privatemsg_view_max_amount'] = array( |
|
523 | 522 | '#type' => 'select', |
524 | 523 | '#title' => t('Number of messages on thread pages'), |
525 | 524 | '#options' => $amounts + array(PRIVATEMSG_UNLIMITED => t('Unlimited')), |
526 | 525 | '#default_value' => variable_get('privatemsg_view_max_amount', 20), |
527 | 526 | '#description' => t('Threads will not show more than this number of messages on a single page.'), |
528 | 527 | '#weight' => 10, |
529 | - ); |
|
528 | + ); |
|
530 | 529 | |
531 | - $form['privatemsg_listing']['privatemsg_view_use_max_as_default'] = array( |
|
530 | + $form['privatemsg_listing']['privatemsg_view_use_max_as_default'] = array( |
|
532 | 531 | '#type' => 'checkbox', |
533 | 532 | '#title' => t('Display different amount of messages on first thread page'), |
534 | 533 | '#default_value' => variable_get('privatemsg_view_use_max_as_default', FALSE), |
535 | 534 | '#description' => t('By default, the first thread page shows the maximally allowed amount of messages. Enable this checkbox to set a different value.'), |
536 | 535 | '#weight' => 15, |
537 | - ); |
|
536 | + ); |
|
538 | 537 | |
539 | - $form['privatemsg_listing']['privatemsg_view_default_amount'] = array( |
|
538 | + $form['privatemsg_listing']['privatemsg_view_default_amount'] = array( |
|
540 | 539 | '#prefix' => '<div id="privatemsg-view-default-button">', |
541 | 540 | '#suffix' => '</div>', |
542 | 541 | '#type' => 'select', |
@@ -545,15 +544,15 @@ discard block |
||
545 | 544 | '#description' => t('The number of messages to be displayed on first thread page. Displays the newest messages.'), |
546 | 545 | '#options' => $amounts, |
547 | 546 | '#weight' => 20, |
548 | - ); |
|
549 | - drupal_add_js(drupal_get_path('module', 'privatemsg') .'/privatemsg-admin.js'); |
|
547 | + ); |
|
548 | + drupal_add_js(drupal_get_path('module', 'privatemsg') .'/privatemsg-admin.js'); |
|
550 | 549 | |
551 | - $form['#submit'][] = 'private_message_settings_submit'; |
|
552 | - return system_settings_form($form); |
|
550 | + $form['#submit'][] = 'private_message_settings_submit'; |
|
551 | + return system_settings_form($form); |
|
553 | 552 | } |
554 | 553 | |
555 | 554 | function private_message_settings_submit() { |
556 | - drupal_rebuild_theme_registry(); |
|
555 | + drupal_rebuild_theme_registry(); |
|
557 | 556 | } |
558 | 557 | |
559 | 558 | /** |
@@ -563,107 +562,107 @@ discard block |
||
563 | 562 | * old enough are flushed. |
564 | 563 | */ |
565 | 564 | function privatemsg_cron() { |
566 | - if (variable_get('privatemsg_flush_enabled', FALSE)) { |
|
565 | + if (variable_get('privatemsg_flush_enabled', FALSE)) { |
|
567 | 566 | $query = _privatemsg_assemble_query('deleted', variable_get('privatemsg_flush_days', 30)); |
568 | 567 | $result = db_query($query['query']); |
569 | 568 | |
570 | 569 | $flushed = 0; |
571 | 570 | while (($row = db_fetch_array($result)) && ($flushed < variable_get('privatemsg_flush_max', 200))) { |
572 | - $message = privatemsg_message_load($row['mid']); |
|
573 | - module_invoke_all('privatemsg_message_flush', $message); |
|
571 | + $message = privatemsg_message_load($row['mid']); |
|
572 | + module_invoke_all('privatemsg_message_flush', $message); |
|
574 | 573 | |
575 | - // Delete recipients of the message. |
|
576 | - db_query('DELETE FROM {pm_index} WHERE mid = %d', $row['mid']); |
|
577 | - // Delete message itself. |
|
578 | - db_query('DELETE FROM {pm_message} WHERE mid = %d', $row['mid']); |
|
579 | - $flushed++; |
|
574 | + // Delete recipients of the message. |
|
575 | + db_query('DELETE FROM {pm_index} WHERE mid = %d', $row['mid']); |
|
576 | + // Delete message itself. |
|
577 | + db_query('DELETE FROM {pm_message} WHERE mid = %d', $row['mid']); |
|
578 | + $flushed++; |
|
579 | + } |
|
580 | 580 | } |
581 | - } |
|
582 | 581 | } |
583 | 582 | |
584 | 583 | function privatemsg_theme() { |
585 | - return array( |
|
584 | + return array( |
|
586 | 585 | 'privatemsg_view' => array( |
587 | - 'arguments' => array('message' => NULL), |
|
588 | - 'template' => variable_get('private_message_view_template', 'privatemsg-view'), // 'privatemsg', |
|
586 | + 'arguments' => array('message' => NULL), |
|
587 | + 'template' => variable_get('private_message_view_template', 'privatemsg-view'), // 'privatemsg', |
|
589 | 588 | ), |
590 | 589 | 'privatemsg_from' => array( |
591 | - 'arguments' => array('author' => NULL), |
|
592 | - 'template' => 'privatemsg-from', |
|
590 | + 'arguments' => array('author' => NULL), |
|
591 | + 'template' => 'privatemsg-from', |
|
593 | 592 | ), |
594 | 593 | 'privatemsg_recipients' => array( |
595 | - 'arguments' => array('message' => NULL), |
|
596 | - 'template' => 'privatemsg-recipients', |
|
594 | + 'arguments' => array('message' => NULL), |
|
595 | + 'template' => 'privatemsg-recipients', |
|
597 | 596 | ), |
598 | 597 | 'privatemsg_between' => array( |
599 | - 'arguments' => array('recipients' => NULL), |
|
600 | - 'template' => 'privatemsg-between', |
|
598 | + 'arguments' => array('recipients' => NULL), |
|
599 | + 'template' => 'privatemsg-between', |
|
601 | 600 | ), |
602 | 601 | 'privatemsg_list' => array( |
603 | - 'file' => 'privatemsg.theme.inc', |
|
604 | - 'path' => drupal_get_path('module', 'privatemsg'), |
|
605 | - 'arguments' => array('form'), |
|
602 | + 'file' => 'privatemsg.theme.inc', |
|
603 | + 'path' => drupal_get_path('module', 'privatemsg'), |
|
604 | + 'arguments' => array('form'), |
|
606 | 605 | ), |
607 | 606 | // Define pattern for header/field templates. The theme system will register all |
608 | 607 | // theme functions that start with the defined pattern. |
609 | 608 | 'privatemsg_list_header' => array( |
610 | - 'file' => 'privatemsg.theme.inc', |
|
611 | - 'path' => drupal_get_path('module', 'privatemsg'), |
|
612 | - 'pattern' => 'privatemsg_list_header__', |
|
613 | - 'arguments' => array(), |
|
609 | + 'file' => 'privatemsg.theme.inc', |
|
610 | + 'path' => drupal_get_path('module', 'privatemsg'), |
|
611 | + 'pattern' => 'privatemsg_list_header__', |
|
612 | + 'arguments' => array(), |
|
614 | 613 | ), |
615 | 614 | 'privatemsg_list_field' => array( |
616 | - 'file' => 'privatemsg.theme.inc', |
|
617 | - 'path' => drupal_get_path('module', 'privatemsg'), |
|
618 | - 'pattern' => 'privatemsg_list_field__', |
|
619 | - 'arguments' => array('thread'), |
|
615 | + 'file' => 'privatemsg.theme.inc', |
|
616 | + 'path' => drupal_get_path('module', 'privatemsg'), |
|
617 | + 'pattern' => 'privatemsg_list_field__', |
|
618 | + 'arguments' => array('thread'), |
|
620 | 619 | ), |
621 | 620 | 'privatemsg_new_block' => array( |
622 | - 'file' => 'privatemsg.theme.inc', |
|
623 | - 'path' => drupal_get_path('module', 'privatemsg'), |
|
624 | - 'arguments' => array('count'), |
|
621 | + 'file' => 'privatemsg.theme.inc', |
|
622 | + 'path' => drupal_get_path('module', 'privatemsg'), |
|
623 | + 'arguments' => array('count'), |
|
625 | 624 | ), |
626 | - ); |
|
625 | + ); |
|
627 | 626 | } |
628 | 627 | |
629 | 628 | function template_preprocess_privatemsg_view(&$vars) { |
630 | 629 | // drupal_set_message('<pre>'. print_r($vars,1 ) . '</pre>'); |
631 | 630 | |
632 | - $message = $vars['message']; |
|
633 | - $vars['mid'] = isset($message['mid']) ? $message['mid'] : NULL; |
|
634 | - $vars['thread_id'] = isset($message['thread_id']) ? $message['thread_id'] : NULL; |
|
635 | - $vars['author_picture'] = theme('user_picture', $message['author']); |
|
636 | - $vars['author_name_link'] = theme('username', $message['author']); |
|
637 | - /** |
|
638 | - * @todo perhaps make this timestamp configurable via admin UI? |
|
639 | - */ |
|
640 | - $vars['message_timestamp'] = format_date($message['timestamp'], 'small'); |
|
641 | - $vars['message_body'] = check_markup($message['body'], $message['format'], FALSE); |
|
642 | - if (isset($vars['mid']) && isset($vars['thread_id']) && privatemsg_user_access('delete privatemsg')) { |
|
631 | + $message = $vars['message']; |
|
632 | + $vars['mid'] = isset($message['mid']) ? $message['mid'] : NULL; |
|
633 | + $vars['thread_id'] = isset($message['thread_id']) ? $message['thread_id'] : NULL; |
|
634 | + $vars['author_picture'] = theme('user_picture', $message['author']); |
|
635 | + $vars['author_name_link'] = theme('username', $message['author']); |
|
636 | + /** |
|
637 | + * @todo perhaps make this timestamp configurable via admin UI? |
|
638 | + */ |
|
639 | + $vars['message_timestamp'] = format_date($message['timestamp'], 'small'); |
|
640 | + $vars['message_body'] = check_markup($message['body'], $message['format'], FALSE); |
|
641 | + if (isset($vars['mid']) && isset($vars['thread_id']) && privatemsg_user_access('delete privatemsg')) { |
|
643 | 642 | $vars['message_actions'][] = array('title' => t('Delete message'), 'href' => 'messages/delete/' . $vars['thread_id'] . '/' . $vars['mid']); |
644 | - } |
|
645 | - $vars['message_anchors'][] = 'privatemsg-mid-' . $vars['mid']; |
|
646 | - if (!empty($message['is_new'])) { |
|
643 | + } |
|
644 | + $vars['message_anchors'][] = 'privatemsg-mid-' . $vars['mid']; |
|
645 | + if (!empty($message['is_new'])) { |
|
647 | 646 | $vars['message_anchors'][] = 'new'; |
648 | 647 | $vars['new'] = drupal_ucfirst(t('new')); |
649 | - } |
|
648 | + } |
|
650 | 649 | |
651 | - // call hook_privatemsg_message_view_alter |
|
652 | - drupal_alter('privatemsg_message_view', $vars); |
|
650 | + // call hook_privatemsg_message_view_alter |
|
651 | + drupal_alter('privatemsg_message_view', $vars); |
|
653 | 652 | |
654 | - $vars['message_actions'] = !empty($vars['message_actions']) ? theme('links', $vars['message_actions'], array('class' => 'message-actions')) : ''; |
|
653 | + $vars['message_actions'] = !empty($vars['message_actions']) ? theme('links', $vars['message_actions'], array('class' => 'message-actions')) : ''; |
|
655 | 654 | |
656 | - $vars['anchors'] = ''; |
|
657 | - foreach ($vars['message_anchors'] as $anchor) { |
|
655 | + $vars['anchors'] = ''; |
|
656 | + foreach ($vars['message_anchors'] as $anchor) { |
|
658 | 657 | $vars['anchors'] .= '<a name="' . $anchor . '"></a>'; |
659 | - } |
|
658 | + } |
|
660 | 659 | } |
661 | 660 | |
662 | 661 | function template_preprocess_privatemsg_recipients(&$vars) { |
663 | - $vars['participants'] = ''; // assign a default empty value |
|
664 | - if (isset($vars['message']['participants'])) { |
|
662 | + $vars['participants'] = ''; // assign a default empty value |
|
663 | + if (isset($vars['message']['participants'])) { |
|
665 | 664 | $vars['participants'] = _privatemsg_format_participants($vars['message']['participants']); |
666 | - } |
|
665 | + } |
|
667 | 666 | } |
668 | 667 | |
669 | 668 | /** |
@@ -680,49 +679,49 @@ discard block |
||
680 | 679 | * Form array |
681 | 680 | */ |
682 | 681 | function privatemsg_list(&$form_state, $argument = 'list', $uid = NULL) { |
683 | - global $user; |
|
682 | + global $user; |
|
684 | 683 | |
685 | - // Setting default behavior... |
|
686 | - $account = $user; |
|
687 | - // Because uid is submitted by the menu system, it's a string not a integer. |
|
688 | - if ((int)$uid > 0 && $uid != $user->uid) { |
|
684 | + // Setting default behavior... |
|
685 | + $account = $user; |
|
686 | + // Because uid is submitted by the menu system, it's a string not a integer. |
|
687 | + if ((int)$uid > 0 && $uid != $user->uid) { |
|
689 | 688 | // Trying to view someone else's messages... |
690 | 689 | if (!privatemsg_user_access('read all private messages')) { |
691 | - drupal_set_message(t("You do not have sufficient rights to view someone else's messages"), 'warning'); |
|
690 | + drupal_set_message(t("You do not have sufficient rights to view someone else's messages"), 'warning'); |
|
692 | 691 | } |
693 | 692 | elseif ($account_check = user_load(array('uid' => $uid))) { |
694 | - // Has rights and user_load return an array so user does exist |
|
695 | - $account = $account_check; |
|
693 | + // Has rights and user_load return an array so user does exist |
|
694 | + $account = $account_check; |
|
695 | + } |
|
696 | 696 | } |
697 | - } |
|
698 | - // By this point we have figured out for which user we are listing messages and now it is safe to use $account->uid in the listing query. |
|
697 | + // By this point we have figured out for which user we are listing messages and now it is safe to use $account->uid in the listing query. |
|
699 | 698 | |
700 | - $query = _privatemsg_assemble_query('list', $account, $argument); |
|
701 | - $result = pager_query($query['query'], variable_get('privatemsg_per_page', 25), 0, $query['count']); |
|
699 | + $query = _privatemsg_assemble_query('list', $account, $argument); |
|
700 | + $result = pager_query($query['query'], variable_get('privatemsg_per_page', 25), 0, $query['count']); |
|
702 | 701 | |
703 | - $threads = array(); |
|
704 | - $form['#data'] = array(); |
|
705 | - while ($row = db_fetch_array($result)) { |
|
702 | + $threads = array(); |
|
703 | + $form['#data'] = array(); |
|
704 | + while ($row = db_fetch_array($result)) { |
|
706 | 705 | // Store the raw row data. |
707 | 706 | $form['#data'][$row['thread_id']] = $row; |
708 | 707 | // store thread id for the checkboxes array |
709 | 708 | $threads[$row['thread_id']] = ''; |
710 | - } |
|
711 | - if (!empty($form['#data'])) { |
|
709 | + } |
|
710 | + if (!empty($form['#data'])) { |
|
712 | 711 | $form['actions'] = _privatemsg_action_form(); |
713 | - } |
|
712 | + } |
|
714 | 713 | |
715 | - // Save the currently active account, used for actions. |
|
716 | - $form['account'] = array('#type' => 'value', '#value' => $account); |
|
714 | + // Save the currently active account, used for actions. |
|
715 | + $form['account'] = array('#type' => 'value', '#value' => $account); |
|
717 | 716 | |
718 | - // Define checkboxes, pager and theme |
|
719 | - $form['threads'] = array('#type' => 'checkboxes', '#options' => $threads); |
|
720 | - $form['pager'] = array('#value' => theme('pager'), '#weight' => 20); |
|
721 | - $form['#theme'] = 'privatemsg_list'; |
|
717 | + // Define checkboxes, pager and theme |
|
718 | + $form['threads'] = array('#type' => 'checkboxes', '#options' => $threads); |
|
719 | + $form['pager'] = array('#value' => theme('pager'), '#weight' => 20); |
|
720 | + $form['#theme'] = 'privatemsg_list'; |
|
722 | 721 | |
723 | - // Store the account for which the threads are displayed. |
|
724 | - $form['#account'] = $account; |
|
725 | - return $form; |
|
722 | + // Store the account for which the threads are displayed. |
|
723 | + $form['#account'] = $account; |
|
724 | + return $form; |
|
726 | 725 | } |
727 | 726 | |
728 | 727 | /** |
@@ -736,12 +735,12 @@ discard block |
||
736 | 735 | * User object, defaults to the current user |
737 | 736 | */ |
738 | 737 | function privatemsg_message_change_status($pmid, $status, $account = NULL) { |
739 | - if (!$account) { |
|
738 | + if (!$account) { |
|
740 | 739 | global $user; |
741 | 740 | $account = $user; |
742 | - } |
|
743 | - $query = "UPDATE {pm_index} SET is_new = %d WHERE mid = %d AND uid = %d"; |
|
744 | - db_query($query, $status, $pmid, $account->uid); |
|
741 | + } |
|
742 | + $query = "UPDATE {pm_index} SET is_new = %d WHERE mid = %d AND uid = %d"; |
|
743 | + db_query($query, $status, $pmid, $account->uid); |
|
745 | 744 | } |
746 | 745 | |
747 | 746 | /** |
@@ -753,16 +752,16 @@ discard block |
||
753 | 752 | * @ingroup api |
754 | 753 | */ |
755 | 754 | function privatemsg_unread_count($account = NULL) { |
756 | - static $counts = array(); |
|
757 | - if (!$account || $account->uid == 0) { |
|
755 | + static $counts = array(); |
|
756 | + if (!$account || $account->uid == 0) { |
|
758 | 757 | global $user; |
759 | 758 | $account = $user; |
760 | - } |
|
761 | - if ( !isset($counts[$account->uid])) { |
|
759 | + } |
|
760 | + if ( !isset($counts[$account->uid])) { |
|
762 | 761 | $query = _privatemsg_assemble_query('unread_count', $account); |
763 | 762 | $counts[$account->uid] = db_result(db_query($query['query'])); |
764 | - } |
|
765 | - return $counts[$account->uid]; |
|
763 | + } |
|
764 | + return $counts[$account->uid]; |
|
766 | 765 | } |
767 | 766 | |
768 | 767 | /** |
@@ -776,282 +775,282 @@ discard block |
||
776 | 775 | * @see privatemsg_thread_load() |
777 | 776 | */ |
778 | 777 | function privatemsg_view($thread) { |
779 | - drupal_set_title(check_plain($thread['subject'])); |
|
778 | + drupal_set_title(check_plain($thread['subject'])); |
|
780 | 779 | |
781 | - // Generate paging links. |
|
782 | - $older = ''; |
|
783 | - if (isset($thread['older_start'])) { |
|
780 | + // Generate paging links. |
|
781 | + $older = ''; |
|
782 | + if (isset($thread['older_start'])) { |
|
784 | 783 | $options = array( |
785 | - 'query' => array('start' => $thread['older_start']), |
|
786 | - 'title' => t('Display older messages'), |
|
784 | + 'query' => array('start' => $thread['older_start']), |
|
785 | + 'title' => t('Display older messages'), |
|
787 | 786 | ); |
788 | - $older = l(t('<<'), 'messages/view/' . $thread['thread_id'], $options); |
|
789 | - } |
|
790 | - $newer = ''; |
|
791 | - if (isset($thread['newer_start'])) { |
|
787 | + $older = l(t('<<'), 'messages/view/' . $thread['thread_id'], $options); |
|
788 | + } |
|
789 | + $newer = ''; |
|
790 | + if (isset($thread['newer_start'])) { |
|
792 | 791 | $options = array( |
793 | - 'query' => array('start' => $thread['newer_start']), |
|
794 | - 'title' => t('Display newer messages'), |
|
792 | + 'query' => array('start' => $thread['newer_start']), |
|
793 | + 'title' => t('Display newer messages'), |
|
795 | 794 | ); |
796 | 795 | $newer = l(t('>>'), 'messages/view/' . $thread['thread_id'], $options); |
797 | - } |
|
798 | - $substitutions = array('@from' => $thread['from'], '@to' => $thread['to'], '@total' => $thread['message_count'], '!previous_link' => $older, '!newer_link' => $newer); |
|
799 | - $title = t('!previous_link Displaying messages @from - @to of @total !newer_link', $substitutions); |
|
800 | - $content['pager_top'] = array( |
|
796 | + } |
|
797 | + $substitutions = array('@from' => $thread['from'], '@to' => $thread['to'], '@total' => $thread['message_count'], '!previous_link' => $older, '!newer_link' => $newer); |
|
798 | + $title = t('!previous_link Displaying messages @from - @to of @total !newer_link', $substitutions); |
|
799 | + $content['pager_top'] = array( |
|
801 | 800 | '#value' => trim($title), |
802 | 801 | '#prefix' => '<div class="privatemsg-view-pager">', |
803 | 802 | '#suffix' => '</div>', |
804 | 803 | '#weight' => -10, |
805 | - ); |
|
804 | + ); |
|
806 | 805 | |
807 | - // Display a copy at the end. |
|
808 | - $content['pager_bottom'] = $content['pager_top']; |
|
809 | - $content['pager_bottom']['#weight'] = 3; |
|
806 | + // Display a copy at the end. |
|
807 | + $content['pager_bottom'] = $content['pager_top']; |
|
808 | + $content['pager_bottom']['#weight'] = 3; |
|
810 | 809 | |
811 | - // Render the participants. |
|
812 | - $content['participants']['#value'] = theme('privatemsg_recipients', $thread); |
|
813 | - $content['participants']['#weight'] = -5; |
|
810 | + // Render the participants. |
|
811 | + $content['participants']['#value'] = theme('privatemsg_recipients', $thread); |
|
812 | + $content['participants']['#weight'] = -5; |
|
814 | 813 | |
815 | - // Render the messages. |
|
816 | - $output = ''; |
|
817 | - foreach ($thread['messages'] as $pmid => $message) { |
|
814 | + // Render the messages. |
|
815 | + $output = ''; |
|
816 | + foreach ($thread['messages'] as $pmid => $message) { |
|
818 | 817 | // Set message as read and theme it. |
819 | 818 | if (!empty($message['is_new'])) { |
820 | - privatemsg_message_change_status($pmid, PRIVATEMSG_READ, $thread['user']); |
|
819 | + privatemsg_message_change_status($pmid, PRIVATEMSG_READ, $thread['user']); |
|
821 | 820 | } |
822 | 821 | $output .= theme('privatemsg_view', $message); |
823 | - } |
|
824 | - $content['messages']['#value'] = $output; |
|
825 | - $content['messages']['#weight'] = 0; |
|
822 | + } |
|
823 | + $content['messages']['#value'] = $output; |
|
824 | + $content['messages']['#weight'] = 0; |
|
826 | 825 | |
827 | - // Display the reply form if user is allowed to use it. |
|
828 | - if (privatemsg_user_access('write privatemsg')) { |
|
826 | + // Display the reply form if user is allowed to use it. |
|
827 | + if (privatemsg_user_access('write privatemsg')) { |
|
829 | 828 | $content['reply']['#value'] = drupal_get_form('privatemsg_new', $thread['participants'], $thread['subject'], $thread['thread_id'], $thread['read_all']); |
830 | 829 | $content['reply']['#weight'] = 5; |
831 | - } |
|
830 | + } |
|
832 | 831 | |
833 | - // Check after calling the privatemsg_new form so that this message is only |
|
834 | - // displayed when we are not sending a message. |
|
835 | - if ($thread['read_all']) { |
|
832 | + // Check after calling the privatemsg_new form so that this message is only |
|
833 | + // displayed when we are not sending a message. |
|
834 | + if ($thread['read_all']) { |
|
836 | 835 | // User has permission to read all messages AND is not a participant of the current thread. |
837 | 836 | drupal_set_message(t('This conversation is being viewed with escalated priviledges and may not be the same as shown to normal users.'), 'warning'); |
838 | - } |
|
837 | + } |
|
839 | 838 | |
840 | - // Allow other modules to hook into the $content array and alter it. |
|
841 | - drupal_alter('privatemsg_view_messages', $content, $thread); |
|
842 | - return drupal_render($content); |
|
839 | + // Allow other modules to hook into the $content array and alter it. |
|
840 | + drupal_alter('privatemsg_view_messages', $content, $thread); |
|
841 | + return drupal_render($content); |
|
843 | 842 | } |
844 | 843 | |
845 | 844 | |
846 | 845 | function privatemsg_new(&$form_state, $recipients = array(), $subject = '', $thread_id = NULL, $read_all = FALSE) { |
847 | - global $user; |
|
846 | + global $user; |
|
848 | 847 | |
849 | - $recipients_string = ''; |
|
850 | - $body = ''; |
|
848 | + $recipients_string = ''; |
|
849 | + $body = ''; |
|
851 | 850 | |
852 | - // convert recipients to array of user objects |
|
853 | - if (!empty($recipients) && is_string($recipients) || is_int($recipients)) { |
|
851 | + // convert recipients to array of user objects |
|
852 | + if (!empty($recipients) && is_string($recipients) || is_int($recipients)) { |
|
854 | 853 | $recipients = _privatemsg_generate_user_array($recipients); |
855 | - } |
|
856 | - elseif (is_object($recipients)) { |
|
854 | + } |
|
855 | + elseif (is_object($recipients)) { |
|
857 | 856 | $recipients = array($recipients); |
858 | - } |
|
859 | - elseif (empty($recipients) && is_string($recipients)) { |
|
857 | + } |
|
858 | + elseif (empty($recipients) && is_string($recipients)) { |
|
860 | 859 | $recipients = array(); |
861 | - } |
|
860 | + } |
|
862 | 861 | |
863 | - $usercount = 0; |
|
864 | - $to = array(); |
|
865 | - $to_themed = array(); |
|
866 | - $blocked = FALSE; |
|
867 | - foreach ($recipients as $recipient) { |
|
862 | + $usercount = 0; |
|
863 | + $to = array(); |
|
864 | + $to_themed = array(); |
|
865 | + $blocked = FALSE; |
|
866 | + foreach ($recipients as $recipient) { |
|
868 | 867 | if (in_array($recipient->name, $to)) { |
869 | - // We already added the recipient to the list, skip him. |
|
870 | - continue; |
|
868 | + // We already added the recipient to the list, skip him. |
|
869 | + continue; |
|
871 | 870 | } |
872 | 871 | // Check if another module is blocking the sending of messages to the recipient by current user. |
873 | 872 | $user_blocked = module_invoke_all('privatemsg_block_message', $user, array($recipient->uid => $recipient)); |
874 | 873 | if (!count($user_blocked) <> 0 && $recipient->uid) { |
875 | - if ($recipient->uid == $user->uid) { |
|
874 | + if ($recipient->uid == $user->uid) { |
|
876 | 875 | $usercount++; |
877 | 876 | // Skip putting author in the recipients list for now. |
878 | 877 | continue; |
879 | - } |
|
880 | - $to[] = $recipient->name; |
|
881 | - $to_themed[$recipient->uid] = theme('username', $recipient); |
|
878 | + } |
|
879 | + $to[] = $recipient->name; |
|
880 | + $to_themed[$recipient->uid] = theme('username', $recipient); |
|
882 | 881 | } |
883 | 882 | else { |
884 | - // Recipient list contains blocked users. |
|
885 | - $blocked = TRUE; |
|
883 | + // Recipient list contains blocked users. |
|
884 | + $blocked = TRUE; |
|
885 | + } |
|
886 | 886 | } |
887 | - } |
|
888 | 887 | |
889 | - if (empty($to) && $usercount >= 1 && !$blocked) { |
|
888 | + if (empty($to) && $usercount >= 1 && !$blocked) { |
|
890 | 889 | // Assume the user sent message to own account as if the usercount is one or less, then the user sent a message but not to self. |
891 | 890 | $to[] = $user->name; |
892 | 891 | $to_themed[$user->uid] = theme('username', $user); |
893 | - } |
|
892 | + } |
|
894 | 893 | |
895 | - if (!empty($to)) { |
|
894 | + if (!empty($to)) { |
|
896 | 895 | $recipients_string = implode(', ', $to); |
897 | - } |
|
898 | - if (isset($form_state['values'])) { |
|
896 | + } |
|
897 | + if (isset($form_state['values'])) { |
|
899 | 898 | if (isset($form_state['values']['recipient'])) { |
900 | - $recipients_string = $form_state['values']['recipient']; |
|
899 | + $recipients_string = $form_state['values']['recipient']; |
|
901 | 900 | |
902 | 901 | } |
903 | 902 | $subject = $form_state['values']['subject']; |
904 | 903 | $body = $form_state['values']['body']; |
905 | - } |
|
906 | - if (!$thread_id && !empty($recipients_string)) { |
|
904 | + } |
|
905 | + if (!$thread_id && !empty($recipients_string)) { |
|
907 | 906 | drupal_set_title(t('Write new message to %recipient', array('%recipient' => $recipients_string))); |
908 | - } |
|
909 | - elseif (!$thread_id) { |
|
907 | + } |
|
908 | + elseif (!$thread_id) { |
|
910 | 909 | drupal_set_title(t('Write new message')); |
911 | - } |
|
910 | + } |
|
912 | 911 | |
913 | - $form = array(); |
|
914 | - if (isset($form_state['privatemsg_preview'])) { |
|
912 | + $form = array(); |
|
913 | + if (isset($form_state['privatemsg_preview'])) { |
|
915 | 914 | $form['message_header'] = array( |
916 | - '#type' => 'fieldset', |
|
917 | - '#attributes' => array('class' => 'preview'), |
|
915 | + '#type' => 'fieldset', |
|
916 | + '#attributes' => array('class' => 'preview'), |
|
918 | 917 | ); |
919 | 918 | $form['message_header']['message_preview'] = array( |
920 | - '#value' => $form_state['privatemsg_preview'], |
|
919 | + '#value' => $form_state['privatemsg_preview'], |
|
921 | 920 | ); |
922 | - } |
|
923 | - $form['privatemsg'] = array( |
|
921 | + } |
|
922 | + $form['privatemsg'] = array( |
|
924 | 923 | '#type' => 'fieldset', |
925 | 924 | '#access' => privatemsg_user_access('write privatemsg'), |
926 | - ); |
|
927 | - $form['privatemsg']['author'] = array( |
|
925 | + ); |
|
926 | + $form['privatemsg']['author'] = array( |
|
928 | 927 | '#type' => 'value', |
929 | 928 | '#value' => $user, |
930 | - ); |
|
931 | - if (is_null($thread_id)) { |
|
929 | + ); |
|
930 | + if (is_null($thread_id)) { |
|
932 | 931 | $form['privatemsg']['recipient'] = array( |
933 | - '#type' => 'textfield', |
|
934 | - '#title' => t('To'), |
|
935 | - '#description' => t('Separate multiple names with commas.'), |
|
936 | - '#default_value' => $recipients_string, |
|
937 | - '#required' => TRUE, |
|
938 | - '#weight' => -10, |
|
939 | - '#size' => 50, |
|
940 | - '#autocomplete_path' => 'messages/user-name-autocomplete', |
|
941 | - // Do not hardcode #maxlength, make it configurable by number of recipients, not their name length. |
|
932 | + '#type' => 'textfield', |
|
933 | + '#title' => t('To'), |
|
934 | + '#description' => t('Separate multiple names with commas.'), |
|
935 | + '#default_value' => $recipients_string, |
|
936 | + '#required' => TRUE, |
|
937 | + '#weight' => -10, |
|
938 | + '#size' => 50, |
|
939 | + '#autocomplete_path' => 'messages/user-name-autocomplete', |
|
940 | + // Do not hardcode #maxlength, make it configurable by number of recipients, not their name length. |
|
942 | 941 | ); |
943 | - } |
|
944 | - $form['privatemsg']['subject'] = array( |
|
942 | + } |
|
943 | + $form['privatemsg']['subject'] = array( |
|
945 | 944 | '#type' => 'textfield', |
946 | 945 | '#title' => t('Subject'), |
947 | 946 | '#size' => 50, |
948 | 947 | '#maxlength' => 255, |
949 | 948 | '#default_value' => $subject, |
950 | 949 | '#weight' => -5, |
951 | - ); |
|
952 | - $form['privatemsg']['body'] = array( |
|
950 | + ); |
|
951 | + $form['privatemsg']['body'] = array( |
|
953 | 952 | '#type' => 'textarea', |
954 | 953 | '#title' => t('Message'), |
955 | 954 | '#rows' => 6, |
956 | 955 | '#weight' => 0, |
957 | 956 | '#default_value' => $body, |
958 | 957 | '#resizable' => TRUE, |
959 | - ); |
|
960 | - $format = FILTER_FORMAT_DEFAULT; |
|
961 | - // The input filter widget looses the format during preview, specify it |
|
962 | - // explicitly. |
|
963 | - if (isset($form_state['values']) && array_key_exists('format', $form_state['values'])) { |
|
958 | + ); |
|
959 | + $format = FILTER_FORMAT_DEFAULT; |
|
960 | + // The input filter widget looses the format during preview, specify it |
|
961 | + // explicitly. |
|
962 | + if (isset($form_state['values']) && array_key_exists('format', $form_state['values'])) { |
|
964 | 963 | $format = $form_state['values']['format']; |
965 | - } |
|
966 | - $form['privatemsg']['format'] = filter_form($format); |
|
967 | - $form['privatemsg']['preview'] = array( |
|
964 | + } |
|
965 | + $form['privatemsg']['format'] = filter_form($format); |
|
966 | + $form['privatemsg']['preview'] = array( |
|
968 | 967 | '#type' => 'submit', |
969 | 968 | '#value' => t('Preview message'), |
970 | 969 | '#submit' => array('pm_preview'), |
971 | 970 | '#validate' => array('pm_send_validate'), |
972 | 971 | '#weight' => 10, |
973 | - ); |
|
974 | - $form['privatemsg']['submit'] = array( |
|
972 | + ); |
|
973 | + $form['privatemsg']['submit'] = array( |
|
975 | 974 | '#type' => 'submit', |
976 | 975 | '#value' => t('Send message'), |
977 | 976 | '#submit' => array('pm_send'), |
978 | 977 | '#validate' => array('pm_send_validate'), |
979 | 978 | '#weight' => 15, |
980 | - ); |
|
981 | - $url = 'messages'; |
|
982 | - $title = t('Cancel'); |
|
983 | - if (isset($_REQUEST['destination'])) { |
|
979 | + ); |
|
980 | + $url = 'messages'; |
|
981 | + $title = t('Cancel'); |
|
982 | + if (isset($_REQUEST['destination'])) { |
|
984 | 983 | $url = $_REQUEST['destination']; |
985 | - } |
|
986 | - elseif (!is_null($thread_id)) { |
|
984 | + } |
|
985 | + elseif (!is_null($thread_id)) { |
|
987 | 986 | $url = $_GET['q']; |
988 | 987 | $title = t('Clear'); |
989 | - } |
|
988 | + } |
|
990 | 989 | |
991 | - $form['privatemsg']['cancel'] = array( |
|
990 | + $form['privatemsg']['cancel'] = array( |
|
992 | 991 | '#value' => l($title, $url, array('attributes' => array('id' => 'edit-cancel'))), |
993 | 992 | '#weight' => 20, |
994 | - ); |
|
993 | + ); |
|
995 | 994 | |
996 | - if (!is_null($thread_id)) { |
|
995 | + if (!is_null($thread_id)) { |
|
997 | 996 | $form['privatemsg']['thread_id'] = array( |
998 | - '#type' => 'value', |
|
999 | - '#value' => $thread_id, |
|
997 | + '#type' => 'value', |
|
998 | + '#value' => $thread_id, |
|
1000 | 999 | ); |
1001 | 1000 | $form['privatemsg']['subject'] = array( |
1002 | - '#type' => 'value', |
|
1003 | - '#default_value' => $subject, |
|
1001 | + '#type' => 'value', |
|
1002 | + '#default_value' => $subject, |
|
1004 | 1003 | ); |
1005 | 1004 | $recipients_string_themed = implode(', ', $to_themed); |
1006 | 1005 | $form['privatemsg']['recipient_display'] = array( |
1007 | - '#value' => '<p>'. t('<strong>Reply to thread</strong>:<br /> Recipients: !to', array('!to' => $recipients_string_themed)) .'</p>', |
|
1008 | - '#weight' => -10, |
|
1006 | + '#value' => '<p>'. t('<strong>Reply to thread</strong>:<br /> Recipients: !to', array('!to' => $recipients_string_themed)) .'</p>', |
|
1007 | + '#weight' => -10, |
|
1009 | 1008 | ); |
1010 | 1009 | if (empty($recipients_string)) { |
1011 | - // If there are no valid recipients, unset the message reply form. |
|
1012 | - $form['privatemsg']['#access'] = FALSE; |
|
1010 | + // If there are no valid recipients, unset the message reply form. |
|
1011 | + $form['privatemsg']['#access'] = FALSE; |
|
1012 | + } |
|
1013 | 1013 | } |
1014 | - } |
|
1015 | - $form['privatemsg']['read_all'] = array( |
|
1014 | + $form['privatemsg']['read_all'] = array( |
|
1016 | 1015 | '#type' => 'value', |
1017 | 1016 | '#value' => $read_all, |
1018 | - ); |
|
1019 | - return $form; |
|
1017 | + ); |
|
1018 | + return $form; |
|
1020 | 1019 | } |
1021 | 1020 | |
1022 | 1021 | function pm_send_validate($form, &$form_state) { |
1023 | - // The actual message that is being sent, we create this during validation and pass to submit to send out. |
|
1024 | - $message = $form_state['values']; |
|
1025 | - $message['timestamp'] = time(); |
|
1026 | - // Avoid subjects which only consist of a space as these can not be clicked. |
|
1027 | - $message['subject'] = trim($message['subject']); |
|
1022 | + // The actual message that is being sent, we create this during validation and pass to submit to send out. |
|
1023 | + $message = $form_state['values']; |
|
1024 | + $message['timestamp'] = time(); |
|
1025 | + // Avoid subjects which only consist of a space as these can not be clicked. |
|
1026 | + $message['subject'] = trim($message['subject']); |
|
1028 | 1027 | |
1029 | 1028 | |
1030 | - $trimed_body = trim(truncate_utf8(strip_tags($message['body']), 50, TRUE, TRUE)); |
|
1031 | - if (empty($message['subject']) && !empty($trimed_body)) { |
|
1029 | + $trimed_body = trim(truncate_utf8(strip_tags($message['body']), 50, TRUE, TRUE)); |
|
1030 | + if (empty($message['subject']) && !empty($trimed_body)) { |
|
1032 | 1031 | $message['subject'] = $trimed_body; |
1033 | - } |
|
1034 | - // Only parse the user string for a new thread. |
|
1035 | - if (!isset($message['thread_id'])) { |
|
1032 | + } |
|
1033 | + // Only parse the user string for a new thread. |
|
1034 | + if (!isset($message['thread_id'])) { |
|
1036 | 1035 | list($message['recipients'], $invalid) = _privatemsg_parse_userstring($message['recipient']); |
1037 | - } |
|
1038 | - else { |
|
1036 | + } |
|
1037 | + else { |
|
1039 | 1038 | // Load participants. |
1040 | 1039 | $message['recipients'] = _privatemsg_load_thread_participants($message['thread_id']); |
1041 | 1040 | // Remove author. |
1042 | 1041 | if (isset($message['recipients'][$message['author']->uid]) && count($message['recipients']) > 1) { |
1043 | - unset($message['recipients'][$message['author']->uid]); |
|
1042 | + unset($message['recipients'][$message['author']->uid]); |
|
1043 | + } |
|
1044 | 1044 | } |
1045 | - } |
|
1046 | 1045 | |
1047 | - $validated = _privatemsg_validate_message($message, TRUE); |
|
1048 | - foreach ($validated['messages'] as $type => $text) { |
|
1046 | + $validated = _privatemsg_validate_message($message, TRUE); |
|
1047 | + foreach ($validated['messages'] as $type => $text) { |
|
1049 | 1048 | drupal_set_message($text, $type); |
1050 | - } |
|
1051 | - $form_state['validate_built_message'] = $message; |
|
1052 | - if (!empty($invalid)) { |
|
1049 | + } |
|
1050 | + $form_state['validate_built_message'] = $message; |
|
1051 | + if (!empty($invalid)) { |
|
1053 | 1052 | drupal_set_message(t('The following users will not receive this private message: @invalid', array('@invalid' => implode(", ", $invalid))), 'error'); |
1054 | - } |
|
1053 | + } |
|
1055 | 1054 | } |
1056 | 1055 | |
1057 | 1056 | /** |
@@ -1061,15 +1060,15 @@ discard block |
||
1061 | 1060 | * Thread ID for wich the participants should be loaded. |
1062 | 1061 | */ |
1063 | 1062 | function _privatemsg_load_thread_participants($thread_id) { |
1064 | - $query = _privatemsg_assemble_query('participants', $thread_id); |
|
1065 | - $result = db_query($query['query']); |
|
1066 | - $participants = array(); |
|
1067 | - while ($uid = db_fetch_object($result)) { |
|
1063 | + $query = _privatemsg_assemble_query('participants', $thread_id); |
|
1064 | + $result = db_query($query['query']); |
|
1065 | + $participants = array(); |
|
1066 | + while ($uid = db_fetch_object($result)) { |
|
1068 | 1067 | if (($recipient = user_load($uid->uid))) { |
1069 | - $participants[$recipient->uid] = $recipient; |
|
1068 | + $participants[$recipient->uid] = $recipient; |
|
1069 | + } |
|
1070 | 1070 | } |
1071 | - } |
|
1072 | - return $participants; |
|
1071 | + return $participants; |
|
1073 | 1072 | } |
1074 | 1073 | |
1075 | 1074 | /** |
@@ -1085,68 +1084,68 @@ discard block |
||
1085 | 1084 | * with invalid names. |
1086 | 1085 | */ |
1087 | 1086 | function _privatemsg_parse_userstring($input) { |
1088 | - if (is_string($input)) { |
|
1087 | + if (is_string($input)) { |
|
1089 | 1088 | $input = explode(',', $input); |
1090 | - } |
|
1089 | + } |
|
1091 | 1090 | |
1092 | - // Start working through the input array. |
|
1093 | - $invalid = array(); |
|
1094 | - $recipients = array(); |
|
1095 | - foreach ($input as $string) { |
|
1091 | + // Start working through the input array. |
|
1092 | + $invalid = array(); |
|
1093 | + $recipients = array(); |
|
1094 | + foreach ($input as $string) { |
|
1096 | 1095 | $string = trim($string); |
1097 | 1096 | if (!empty($string)) { // We don't care about white space names. |
1098 | 1097 | |
1099 | - // First, check if another module is able to resolve the string into an |
|
1100 | - // user object. |
|
1101 | - foreach (module_implements('privatemsg_name_lookup') as $module) { |
|
1098 | + // First, check if another module is able to resolve the string into an |
|
1099 | + // user object. |
|
1100 | + foreach (module_implements('privatemsg_name_lookup') as $module) { |
|
1102 | 1101 | $function = $module . '_privatemsg_name_lookup'; |
1103 | 1102 | if (($recipient = $function($string)) && is_object($recipient)) { |
1104 | - // If there is a match, continue with the next input string. |
|
1105 | - $recipients[$recipient->uid] = $recipient; |
|
1106 | - continue 2; |
|
1103 | + // If there is a match, continue with the next input string. |
|
1104 | + $recipients[$recipient->uid] = $recipient; |
|
1105 | + continue 2; |
|
1107 | 1106 | } |
1108 | - } |
|
1109 | - // Fall back to the default username lookup. |
|
1110 | - if (!$error = module_invoke('user', 'validate_name', $string)) { |
|
1107 | + } |
|
1108 | + // Fall back to the default username lookup. |
|
1109 | + if (!$error = module_invoke('user', 'validate_name', $string)) { |
|
1111 | 1110 | // String is a valid username, look it up. |
1112 | 1111 | if ($recipient = user_load(array('name' => $string))) { |
1113 | - $recipients[$recipient->uid] = $recipient; |
|
1114 | - continue; |
|
1112 | + $recipients[$recipient->uid] = $recipient; |
|
1113 | + continue; |
|
1114 | + } |
|
1115 | 1115 | } |
1116 | - } |
|
1117 | - $invalid[$string] = $string; |
|
1116 | + $invalid[$string] = $string; |
|
1117 | + } |
|
1118 | 1118 | } |
1119 | - } |
|
1120 | 1119 | |
1121 | - return array($recipients, $invalid); |
|
1120 | + return array($recipients, $invalid); |
|
1122 | 1121 | } |
1123 | 1122 | |
1124 | 1123 | /** |
1125 | 1124 | * Submit callback for the privatemsg_new form. |
1126 | 1125 | */ |
1127 | 1126 | function pm_send($form, &$form_state) { |
1128 | - $status = _privatemsg_send($form_state['validate_built_message']); |
|
1129 | - // Load usernames to which the message was sent to. |
|
1130 | - $recipient_names = array(); |
|
1131 | - foreach ($form_state['validate_built_message']['recipients'] as $recipient) { |
|
1127 | + $status = _privatemsg_send($form_state['validate_built_message']); |
|
1128 | + // Load usernames to which the message was sent to. |
|
1129 | + $recipient_names = array(); |
|
1130 | + foreach ($form_state['validate_built_message']['recipients'] as $recipient) { |
|
1132 | 1131 | $recipient_names[] = theme('username', $recipient); |
1133 | - } |
|
1134 | - if ($status !== FALSE ) { |
|
1132 | + } |
|
1133 | + if ($status !== FALSE ) { |
|
1135 | 1134 | drupal_set_message(t('A message has been sent to !recipients.', array('!recipients' => implode(', ', $recipient_names)))); |
1136 | - } |
|
1137 | - else { |
|
1135 | + } |
|
1136 | + else { |
|
1138 | 1137 | drupal_set_message(t('An attempt to send a message <em>may have failed</em> when sending to !recipients.', array('!recipients' => implode(', ', $recipient_names))), 'error'); |
1139 | - } |
|
1138 | + } |
|
1140 | 1139 | } |
1141 | 1140 | |
1142 | 1141 | function pm_preview($form, &$form_state) { |
1143 | 1142 | |
1144 | 1143 | drupal_validate_form($form['form_id']['#value'], $form, $form_state); |
1145 | 1144 | if (!form_get_errors()) { |
1146 | - $form_state['privatemsg_preview'] = theme('privatemsg_view', $form_state['validate_built_message']); |
|
1145 | + $form_state['privatemsg_preview'] = theme('privatemsg_view', $form_state['validate_built_message']); |
|
1147 | 1146 | } |
1148 | 1147 | |
1149 | - $form_state['rebuild'] = TRUE; // this forces our form to be rebuilt instead of being submitted. |
|
1148 | + $form_state['rebuild'] = TRUE; // this forces our form to be rebuilt instead of being submitted. |
|
1150 | 1149 | } |
1151 | 1150 | |
1152 | 1151 | /** |
@@ -1167,65 +1166,65 @@ discard block |
||
1167 | 1166 | */ |
1168 | 1167 | |
1169 | 1168 | function privatemsg_sql_list(&$fragments, $account, $argument = 'list') { |
1170 | - $fragments['primary_table'] = '{pm_message} pm'; |
|
1171 | - |
|
1172 | - // Load enabled columns. |
|
1173 | - $fields = array_filter(variable_get('privatemsg_display_fields', array('participants'))); |
|
1174 | - |
|
1175 | - // Required columns. |
|
1176 | - $fragments['select'][] = 'pmi.thread_id'; |
|
1177 | - // We have to use MIN as the subject might not be the same in some threads. |
|
1178 | - // MIN() does not have a useful meaning except that it helps to correctly |
|
1179 | - // aggregate the thread on PostgreSQL. |
|
1180 | - $fragments['select'][] = 'MIN(pm.subject) as subject'; |
|
1181 | - $fragments['select'][] = 'MAX(pm.timestamp) as last_updated'; |
|
1182 | - // We use SUM so that we can count the number of unread messages. |
|
1183 | - $fragments['select'][] = 'SUM(pmi.is_new) as is_new'; |
|
1184 | - |
|
1185 | - // Select number of messages in the thread if the count is |
|
1186 | - // set to be displayed. |
|
1187 | - if (in_array('count', $fields)) { |
|
1169 | + $fragments['primary_table'] = '{pm_message} pm'; |
|
1170 | + |
|
1171 | + // Load enabled columns. |
|
1172 | + $fields = array_filter(variable_get('privatemsg_display_fields', array('participants'))); |
|
1173 | + |
|
1174 | + // Required columns. |
|
1175 | + $fragments['select'][] = 'pmi.thread_id'; |
|
1176 | + // We have to use MIN as the subject might not be the same in some threads. |
|
1177 | + // MIN() does not have a useful meaning except that it helps to correctly |
|
1178 | + // aggregate the thread on PostgreSQL. |
|
1179 | + $fragments['select'][] = 'MIN(pm.subject) as subject'; |
|
1180 | + $fragments['select'][] = 'MAX(pm.timestamp) as last_updated'; |
|
1181 | + // We use SUM so that we can count the number of unread messages. |
|
1182 | + $fragments['select'][] = 'SUM(pmi.is_new) as is_new'; |
|
1183 | + |
|
1184 | + // Select number of messages in the thread if the count is |
|
1185 | + // set to be displayed. |
|
1186 | + if (in_array('count', $fields)) { |
|
1188 | 1187 | $fragments['select'][] = 'COUNT(distinct pmi.mid) as count'; |
1189 | - } |
|
1190 | - if (in_array('participants', $fields)) { |
|
1188 | + } |
|
1189 | + if (in_array('participants', $fields)) { |
|
1191 | 1190 | // Query for a string with uid's, for example "1,6,7". |
1192 | 1191 | // @todo: Replace this with a single query similiar to the tag list. |
1193 | 1192 | if ($GLOBALS['db_type'] == 'pgsql') { |
1194 | - // PostgreSQL does not know GROUP_CONCAT, so a subquery is required. |
|
1195 | - $fragments['select'][] = "array_to_string(array(SELECT DISTINCT textin(int4out(pmia.uid)) |
|
1193 | + // PostgreSQL does not know GROUP_CONCAT, so a subquery is required. |
|
1194 | + $fragments['select'][] = "array_to_string(array(SELECT DISTINCT textin(int4out(pmia.uid)) |
|
1196 | 1195 | FROM {pm_index} pmia |
1197 | 1196 | WHERE pmia.thread_id = pmi.thread_id), ',') AS participants"; |
1198 | 1197 | } |
1199 | 1198 | else { |
1200 | - $fragments['select'][] = '(SELECT GROUP_CONCAT(DISTINCT pmia.uid SEPARATOR ",") |
|
1199 | + $fragments['select'][] = '(SELECT GROUP_CONCAT(DISTINCT pmia.uid SEPARATOR ",") |
|
1201 | 1200 | FROM {pm_index} pmia |
1202 | 1201 | WHERE pmia.thread_id = pmi.thread_id) AS participants'; |
1203 | 1202 | } |
1204 | - } |
|
1205 | - if (in_array('thread_started', $fields)) { |
|
1203 | + } |
|
1204 | + if (in_array('thread_started', $fields)) { |
|
1206 | 1205 | $fragments['select'][] = 'MIN(pm.timestamp) as thread_started'; |
1207 | - } |
|
1206 | + } |
|
1208 | 1207 | |
1209 | - $fragments['inner_join'][] = 'INNER JOIN {pm_index} pmi ON pm.mid = pmi.mid'; |
|
1208 | + $fragments['inner_join'][] = 'INNER JOIN {pm_index} pmi ON pm.mid = pmi.mid'; |
|
1210 | 1209 | |
1211 | - // Only load undeleted messages of the current user and group by thread. |
|
1212 | - $fragments['where'][] = 'pmi.uid = %d'; |
|
1213 | - $fragments['query_args']['where'][] = $account->uid; |
|
1214 | - $fragments['where'][] = 'pmi.deleted = 0'; |
|
1215 | - $fragments['group_by'][] = 'pmi.thread_id'; |
|
1210 | + // Only load undeleted messages of the current user and group by thread. |
|
1211 | + $fragments['where'][] = 'pmi.uid = %d'; |
|
1212 | + $fragments['query_args']['where'][] = $account->uid; |
|
1213 | + $fragments['where'][] = 'pmi.deleted = 0'; |
|
1214 | + $fragments['group_by'][] = 'pmi.thread_id'; |
|
1216 | 1215 | |
1217 | - $order_by_first = 'MAX(pmi.is_new) DESC, '; |
|
1218 | - // MySQL 4.1 does not allow to order by aggregate functions. MAX() is used |
|
1219 | - // to avoid a ordering bug with multiple new messages. |
|
1220 | - if ($GLOBALS['db_type'] != 'pgsql' && version_compare(db_version(), '5.0.0') < 0) { |
|
1216 | + $order_by_first = 'MAX(pmi.is_new) DESC, '; |
|
1217 | + // MySQL 4.1 does not allow to order by aggregate functions. MAX() is used |
|
1218 | + // to avoid a ordering bug with multiple new messages. |
|
1219 | + if ($GLOBALS['db_type'] != 'pgsql' && version_compare(db_version(), '5.0.0') < 0) { |
|
1221 | 1220 | $order_by_first = 'is_new DESC, '; |
1222 | - } |
|
1221 | + } |
|
1223 | 1222 | |
1224 | - // tablesort_sql() generates a ORDER BY string. However, the "ORDER BY " part |
|
1225 | - // is not needed and added by the query builder. Discard the first 9 |
|
1226 | - // characters of the string. |
|
1227 | - $order_by = drupal_substr(tablesort_sql(_privatemsg_list_headers( FALSE, array_merge(array('subject', 'last_updated'), $fields)), $order_by_first), 9); |
|
1228 | - $fragments['order_by'][] = $order_by; |
|
1223 | + // tablesort_sql() generates a ORDER BY string. However, the "ORDER BY " part |
|
1224 | + // is not needed and added by the query builder. Discard the first 9 |
|
1225 | + // characters of the string. |
|
1226 | + $order_by = drupal_substr(tablesort_sql(_privatemsg_list_headers( FALSE, array_merge(array('subject', 'last_updated'), $fields)), $order_by_first), 9); |
|
1227 | + $fragments['order_by'][] = $order_by; |
|
1229 | 1228 | } |
1230 | 1229 | |
1231 | 1230 | /** |
@@ -1239,27 +1238,27 @@ discard block |
||
1239 | 1238 | * Account for which the messages should be loaded. |
1240 | 1239 | */ |
1241 | 1240 | function privatemsg_sql_load(&$fragments, $pmids, $account = NULL) { |
1242 | - $fragments['primary_table'] = '{pm_message} pm'; |
|
1243 | - |
|
1244 | - $fragments['select'][] = "pm.mid"; |
|
1245 | - $fragments['select'][] = "pm.author"; |
|
1246 | - $fragments['select'][] = "pm.subject"; |
|
1247 | - $fragments['select'][] = "pm.body"; |
|
1248 | - $fragments['select'][] = "pm.timestamp"; |
|
1249 | - $fragments['select'][] = "pm.format"; |
|
1250 | - $fragments['select'][] = "pmi.is_new"; |
|
1251 | - $fragments['select'][] = "pmi.thread_id"; |
|
1252 | - |
|
1253 | - $fragments['inner_join'][] = 'INNER JOIN {pm_index} pmi ON pm.mid = pmi.mid'; |
|
1254 | - // Use IN() to load multiple messages at the same time. |
|
1255 | - $fragments['where'][] = 'pmi.mid IN (' . db_placeholders($pmids) . ')'; |
|
1256 | - $fragments['query_args']['where'] += $pmids; |
|
1257 | - if ($account) { |
|
1241 | + $fragments['primary_table'] = '{pm_message} pm'; |
|
1242 | + |
|
1243 | + $fragments['select'][] = "pm.mid"; |
|
1244 | + $fragments['select'][] = "pm.author"; |
|
1245 | + $fragments['select'][] = "pm.subject"; |
|
1246 | + $fragments['select'][] = "pm.body"; |
|
1247 | + $fragments['select'][] = "pm.timestamp"; |
|
1248 | + $fragments['select'][] = "pm.format"; |
|
1249 | + $fragments['select'][] = "pmi.is_new"; |
|
1250 | + $fragments['select'][] = "pmi.thread_id"; |
|
1251 | + |
|
1252 | + $fragments['inner_join'][] = 'INNER JOIN {pm_index} pmi ON pm.mid = pmi.mid'; |
|
1253 | + // Use IN() to load multiple messages at the same time. |
|
1254 | + $fragments['where'][] = 'pmi.mid IN (' . db_placeholders($pmids) . ')'; |
|
1255 | + $fragments['query_args']['where'] += $pmids; |
|
1256 | + if ($account) { |
|
1258 | 1257 | $fragments['where'][] = 'pmi.uid = %d'; |
1259 | 1258 | $fragments['query_args']['where'][] = $account->uid; |
1260 | - } |
|
1261 | - $fragments['order_by'][] = 'pm.timestamp ASC'; |
|
1262 | - $fragments['order_by'][] = 'pm.mid ASC'; |
|
1259 | + } |
|
1260 | + $fragments['order_by'][] = 'pm.timestamp ASC'; |
|
1261 | + $fragments['order_by'][] = 'pm.mid ASC'; |
|
1263 | 1262 | } |
1264 | 1263 | |
1265 | 1264 | /** |
@@ -1275,30 +1274,30 @@ discard block |
||
1275 | 1274 | * Deleted messages are only loaded if this is set to TRUE. |
1276 | 1275 | */ |
1277 | 1276 | function privatemsg_sql_messages(&$fragments, $threads, $account = NULL, $load_all = FALSE) { |
1278 | - $fragments['primary_table'] = '{pm_index} pmi'; |
|
1277 | + $fragments['primary_table'] = '{pm_index} pmi'; |
|
1279 | 1278 | |
1280 | - $fragments['select'][] = 'pmi.mid'; |
|
1281 | - $fragments['where'][] = 'pmi.thread_id IN ('. db_placeholders($threads) .')'; |
|
1282 | - $fragments['query_args']['where'] += $threads; |
|
1283 | - $fragments['inner_join'][] = 'INNER JOIN {pm_message} pm ON (pm.mid = pmi.mid)'; |
|
1284 | - if ($account) { |
|
1279 | + $fragments['select'][] = 'pmi.mid'; |
|
1280 | + $fragments['where'][] = 'pmi.thread_id IN ('. db_placeholders($threads) .')'; |
|
1281 | + $fragments['query_args']['where'] += $threads; |
|
1282 | + $fragments['inner_join'][] = 'INNER JOIN {pm_message} pm ON (pm.mid = pmi.mid)'; |
|
1283 | + if ($account) { |
|
1285 | 1284 | // Only load the user's messages. |
1286 | 1285 | $fragments['where'][] = 'pmi.uid = %d'; |
1287 | 1286 | $fragments['query_args']['where'][] = $account->uid; |
1288 | - } |
|
1289 | - if (!$load_all) { |
|
1287 | + } |
|
1288 | + if (!$load_all) { |
|
1290 | 1289 | // Also load deleted messages when requested. |
1291 | 1290 | $fragments['where'][] = 'pmi.deleted = 0'; |
1292 | - } |
|
1293 | - // Only load each mid once. |
|
1294 | - $fragments['group_by'][] = 'pmi.mid'; |
|
1295 | - $fragments['group_by'][] = 'pm.timestamp'; |
|
1291 | + } |
|
1292 | + // Only load each mid once. |
|
1293 | + $fragments['group_by'][] = 'pmi.mid'; |
|
1294 | + $fragments['group_by'][] = 'pm.timestamp'; |
|
1296 | 1295 | |
1297 | - // Order by timestamp first. |
|
1298 | - $fragments['order_by'][] = 'pm.timestamp ASC'; |
|
1299 | - // If there are multiple inserts during the same second (tests, for example) |
|
1300 | - // sort by mid second to have them in the same order as they were saved. |
|
1301 | - $fragments['order_by'][] = 'pmi.mid ASC'; |
|
1296 | + // Order by timestamp first. |
|
1297 | + $fragments['order_by'][] = 'pm.timestamp ASC'; |
|
1298 | + // If there are multiple inserts during the same second (tests, for example) |
|
1299 | + // sort by mid second to have them in the same order as they were saved. |
|
1300 | + $fragments['order_by'][] = 'pmi.mid ASC'; |
|
1302 | 1301 | |
1303 | 1302 | } |
1304 | 1303 | |
@@ -1311,16 +1310,16 @@ discard block |
||
1311 | 1310 | * Thread id from which the participants should be loaded. |
1312 | 1311 | */ |
1313 | 1312 | function privatemsg_sql_participants(&$fragments, $thread_id) { |
1314 | - $fragments['primary_table'] = '{pm_index} pmi'; |
|
1313 | + $fragments['primary_table'] = '{pm_index} pmi'; |
|
1315 | 1314 | |
1316 | - // Only load each participant once since they are listed as recipient for |
|
1317 | - // every message of that thread. |
|
1318 | - $fragments['select'][] = 'DISTINCT(pmi.uid) AS uid'; |
|
1319 | - $fragments['select'][] = 'u.name AS name'; |
|
1315 | + // Only load each participant once since they are listed as recipient for |
|
1316 | + // every message of that thread. |
|
1317 | + $fragments['select'][] = 'DISTINCT(pmi.uid) AS uid'; |
|
1318 | + $fragments['select'][] = 'u.name AS name'; |
|
1320 | 1319 | |
1321 | - $fragments['inner_join'][] = 'INNER JOIN {users} u ON (u.uid = pmi.uid)'; |
|
1322 | - $fragments['where'][] = 'pmi.thread_id = %d'; |
|
1323 | - $fragments['query_args']['where'][] = $thread_id; |
|
1320 | + $fragments['inner_join'][] = 'INNER JOIN {users} u ON (u.uid = pmi.uid)'; |
|
1321 | + $fragments['where'][] = 'pmi.thread_id = %d'; |
|
1322 | + $fragments['query_args']['where'][] = $thread_id; |
|
1324 | 1323 | } |
1325 | 1324 | |
1326 | 1325 | /** |
@@ -1332,15 +1331,15 @@ discard block |
||
1332 | 1331 | * User object for which the messages are being counted. |
1333 | 1332 | */ |
1334 | 1333 | function privatemsg_sql_unread_count(&$fragments, $account) { |
1335 | - $fragments['primary_table'] = '{pm_index} pmi'; |
|
1334 | + $fragments['primary_table'] = '{pm_index} pmi'; |
|
1336 | 1335 | |
1337 | - $fragments['select'][] = 'COUNT(DISTINCT thread_id) as unread_count'; |
|
1336 | + $fragments['select'][] = 'COUNT(DISTINCT thread_id) as unread_count'; |
|
1338 | 1337 | |
1339 | - // Only count new messages that have not been deleted. |
|
1340 | - $fragments['where'][] = 'pmi.deleted = 0'; |
|
1341 | - $fragments['where'][] = 'pmi.is_new = 1'; |
|
1342 | - $fragments['where'][] = 'pmi.uid = %d'; |
|
1343 | - $fragments['query_args']['where'][] = $account->uid; |
|
1338 | + // Only count new messages that have not been deleted. |
|
1339 | + $fragments['where'][] = 'pmi.deleted = 0'; |
|
1340 | + $fragments['where'][] = 'pmi.is_new = 1'; |
|
1341 | + $fragments['where'][] = 'pmi.uid = %d'; |
|
1342 | + $fragments['query_args']['where'][] = $account->uid; |
|
1344 | 1343 | } |
1345 | 1344 | |
1346 | 1345 | /** |
@@ -1354,19 +1353,19 @@ discard block |
||
1354 | 1353 | * Array of names not to be used as suggestions. |
1355 | 1354 | */ |
1356 | 1355 | function privatemsg_sql_autocomplete(&$fragments, $search, $names) { |
1357 | - $fragments['primary_table'] = '{users} u'; |
|
1358 | - $fragments['select'][] = 'u.name'; |
|
1359 | - // Escape the % to get it through the placeholder replacement. |
|
1360 | - $fragments['where'][] = "u.name LIKE '%s'"; |
|
1361 | - $fragments['query_args']['where'][] = $search .'%%'; |
|
1362 | - if (!empty($names)) { |
|
1356 | + $fragments['primary_table'] = '{users} u'; |
|
1357 | + $fragments['select'][] = 'u.name'; |
|
1358 | + // Escape the % to get it through the placeholder replacement. |
|
1359 | + $fragments['where'][] = "u.name LIKE '%s'"; |
|
1360 | + $fragments['query_args']['where'][] = $search .'%%'; |
|
1361 | + if (!empty($names)) { |
|
1363 | 1362 | // If there are already names selected, exclude them from the suggestions. |
1364 | 1363 | $fragments['where'][] = "u.name NOT IN (". db_placeholders($names, 'text') .")"; |
1365 | 1364 | $fragments['query_args']['where'] += $names; |
1366 | - } |
|
1367 | - // Only load active users and sort them by name. |
|
1368 | - $fragments['where'][] = 'u.status <> 0'; |
|
1369 | - $fragments['order_by'][] = 'u.name ASC'; |
|
1365 | + } |
|
1366 | + // Only load active users and sort them by name. |
|
1367 | + $fragments['where'][] = 'u.status <> 0'; |
|
1368 | + $fragments['order_by'][] = 'u.name ASC'; |
|
1370 | 1369 | } |
1371 | 1370 | |
1372 | 1371 | /** |
@@ -1378,24 +1377,24 @@ discard block |
||
1378 | 1377 | * Select messages older than x days. |
1379 | 1378 | */ |
1380 | 1379 | function privatemsg_sql_deleted(&$fragments, $days) { |
1381 | - $fragments['primary_table'] = '{pm_message} pm'; |
|
1380 | + $fragments['primary_table'] = '{pm_message} pm'; |
|
1382 | 1381 | |
1383 | - $fragments['select'][] = 'pm.mid'; |
|
1384 | - // The lowest value is higher than 0 if all recipients have deleted a message. |
|
1385 | - $fragments['select'][] = 'MIN(pmi.deleted) as is_deleted'; |
|
1386 | - // The time the most recent deletion happened. |
|
1387 | - $fragments['select'][] = 'MAX(pmi.deleted) as last_deleted'; |
|
1382 | + $fragments['select'][] = 'pm.mid'; |
|
1383 | + // The lowest value is higher than 0 if all recipients have deleted a message. |
|
1384 | + $fragments['select'][] = 'MIN(pmi.deleted) as is_deleted'; |
|
1385 | + // The time the most recent deletion happened. |
|
1386 | + $fragments['select'][] = 'MAX(pmi.deleted) as last_deleted'; |
|
1388 | 1387 | |
1389 | - $fragments['inner_join'][] = 'INNER JOIN {pm_index} pmi ON (pmi.mid = pm.mid)'; |
|
1388 | + $fragments['inner_join'][] = 'INNER JOIN {pm_index} pmi ON (pmi.mid = pm.mid)'; |
|
1390 | 1389 | |
1391 | - $fragments['group_by'][] = 'pm.mid'; |
|
1390 | + $fragments['group_by'][] = 'pm.mid'; |
|
1392 | 1391 | |
1393 | - // Ignore messages that have not been deleted by all users. |
|
1394 | - $fragments['having'][] = 'MIN(pmi.deleted) > 0'; |
|
1392 | + // Ignore messages that have not been deleted by all users. |
|
1393 | + $fragments['having'][] = 'MIN(pmi.deleted) > 0'; |
|
1395 | 1394 | |
1396 | - // Only select messages that have been deleted more than n days ago. |
|
1397 | - $fragments['having'][] = 'MAX(pmi.deleted) < %d'; |
|
1398 | - $fragments['query_args']['having'][] = time() - $days * 86400; |
|
1395 | + // Only select messages that have been deleted more than n days ago. |
|
1396 | + $fragments['having'][] = 'MAX(pmi.deleted) < %d'; |
|
1397 | + $fragments['query_args']['having'][] = time() - $days * 86400; |
|
1399 | 1398 | } |
1400 | 1399 | |
1401 | 1400 | /** |
@@ -1408,192 +1407,192 @@ discard block |
||
1408 | 1407 | * Prevents usernames from being used and/or suggested twice. |
1409 | 1408 | */ |
1410 | 1409 | function privatemsg_user_name_autocomplete($string) { |
1411 | - $names = array(); |
|
1412 | - // 1: Parse $string and build list of valid user names. |
|
1413 | - $fragments = explode(',', $string); |
|
1414 | - foreach ($fragments as $index => $name) { |
|
1410 | + $names = array(); |
|
1411 | + // 1: Parse $string and build list of valid user names. |
|
1412 | + $fragments = explode(',', $string); |
|
1413 | + foreach ($fragments as $index => $name) { |
|
1415 | 1414 | if ($name = trim($name)) { |
1416 | - $names[$name] = $name; |
|
1417 | - } |
|
1418 | - } |
|
1419 | - // By using user_validate_user we can ensure that names included in $names are at least logisticaly possible. |
|
1420 | - // 2: Find the next user name suggestion. |
|
1421 | - $fragment = array_pop($names); |
|
1422 | - $matches = array(); |
|
1423 | - if (!empty($fragment)) { |
|
1415 | + $names[$name] = $name; |
|
1416 | + } |
|
1417 | + } |
|
1418 | + // By using user_validate_user we can ensure that names included in $names are at least logisticaly possible. |
|
1419 | + // 2: Find the next user name suggestion. |
|
1420 | + $fragment = array_pop($names); |
|
1421 | + $matches = array(); |
|
1422 | + if (!empty($fragment)) { |
|
1424 | 1423 | $query = _privatemsg_assemble_query('autocomplete', $fragment, $names); |
1425 | 1424 | $result = db_query_range($query['query'], $fragment, 0, 10); |
1426 | 1425 | $prefix = count($names) ? implode(", ", $names) .", " : ''; |
1427 | 1426 | // 3: Build proper suggestions and print. |
1428 | 1427 | while ($user = db_fetch_object($result)) { |
1429 | - $matches[$prefix . $user->name .", "] = $user->name; |
|
1428 | + $matches[$prefix . $user->name .", "] = $user->name; |
|
1430 | 1429 | } |
1431 | - } |
|
1432 | - // convert to object to prevent drupal bug, see http://drupal.org/node/175361 |
|
1433 | - drupal_json((object)$matches); |
|
1430 | + } |
|
1431 | + // convert to object to prevent drupal bug, see http://drupal.org/node/175361 |
|
1432 | + drupal_json((object)$matches); |
|
1434 | 1433 | } |
1435 | 1434 | |
1436 | 1435 | function privatemsg_user($op, &$edit, &$account, $category = NULL) { |
1437 | - global $user; |
|
1436 | + global $user; |
|
1438 | 1437 | |
1439 | - switch ($op) { |
|
1438 | + switch ($op) { |
|
1440 | 1439 | case 'view': |
1441 | 1440 | if ($url = privatemsg_get_link(array($account))) { |
1442 | 1441 | $account->content['privatemsg_send_new_message'] = array( |
1443 | - '#type' => 'markup', |
|
1444 | - '#value' => l(t('Send this user a message'), $url, array('query' => drupal_get_destination())), |
|
1445 | - '#weight' => 10, |
|
1442 | + '#type' => 'markup', |
|
1443 | + '#value' => l(t('Send this user a message'), $url, array('query' => drupal_get_destination())), |
|
1444 | + '#weight' => 10, |
|
1446 | 1445 | ); |
1447 | - } |
|
1448 | - break; |
|
1446 | + } |
|
1447 | + break; |
|
1449 | 1448 | case 'login': |
1450 | 1449 | if (variable_get('privatemsg_display_loginmessage', TRUE) && privatemsg_user_access()) { |
1451 | 1450 | $count = privatemsg_unread_count(); |
1452 | 1451 | if ($count) { |
1453 | - drupal_set_message(format_plural($count, 'You have <a href="@messages">1 unread message</a>.', 'You have <a href="@messages">@count unread messages</a>', array('@messages' => url('messages')))); |
|
1452 | + drupal_set_message(format_plural($count, 'You have <a href="@messages">1 unread message</a>.', 'You have <a href="@messages">@count unread messages</a>', array('@messages' => url('messages')))); |
|
1454 | 1453 | } |
1455 | - } |
|
1456 | - break; |
|
1454 | + } |
|
1455 | + break; |
|
1457 | 1456 | case 'delete': |
1458 | 1457 | |
1459 | 1458 | // Load all mids of the messages the user wrote. |
1460 | 1459 | $result = db_query("SELECT mid FROM {pm_message} WHERE author = %d", $account->uid); |
1461 | - $mids = array(); |
|
1462 | - while ($row = db_fetch_array($result)) { |
|
1460 | + $mids = array(); |
|
1461 | + while ($row = db_fetch_array($result)) { |
|
1463 | 1462 | $mids[] = $row['mid']; |
1464 | - } |
|
1463 | + } |
|
1465 | 1464 | |
1466 | - // Delete messages the user wrote. |
|
1467 | - db_query('DELETE FROM {pm_message} WHERE author = %d', $account->uid); |
|
1465 | + // Delete messages the user wrote. |
|
1466 | + db_query('DELETE FROM {pm_message} WHERE author = %d', $account->uid); |
|
1468 | 1467 | |
1469 | - if (!empty($mids)) { |
|
1468 | + if (!empty($mids)) { |
|
1470 | 1469 | // Delete recipient entries in {pm_index} of the messages the user wrote. |
1471 | 1470 | db_query('DELETE FROM {pm_index} WHERE mid IN (' . db_placeholders($mids) . ')', $mids); |
1472 | - } |
|
1471 | + } |
|
1473 | 1472 | |
1474 | - // Delete recipient entries of that user. |
|
1475 | - db_query('DELETE FROM {pm_index} WHERE uid = %d', $account->uid); |
|
1476 | - break; |
|
1477 | - } |
|
1473 | + // Delete recipient entries of that user. |
|
1474 | + db_query('DELETE FROM {pm_index} WHERE uid = %d', $account->uid); |
|
1475 | + break; |
|
1476 | + } |
|
1478 | 1477 | } |
1479 | 1478 | |
1480 | 1479 | function privatemsg_block($op = 'list', $delta = 0, $edit = array()) { |
1481 | - if ('list' == $op) { |
|
1480 | + if ('list' == $op) { |
|
1482 | 1481 | $blocks = array(); |
1483 | 1482 | $blocks['privatemsg-menu'] = array( |
1484 | - 'info' => t('Privatemsg links'), |
|
1485 | - 'cache' => BLOCK_NO_CACHE, |
|
1483 | + 'info' => t('Privatemsg links'), |
|
1484 | + 'cache' => BLOCK_NO_CACHE, |
|
1486 | 1485 | ); |
1487 | 1486 | $blocks['privatemsg-new'] = array( |
1488 | - 'info' => t('New message indication'), |
|
1489 | - 'cache' => BLOCK_NO_CACHE, |
|
1487 | + 'info' => t('New message indication'), |
|
1488 | + 'cache' => BLOCK_NO_CACHE, |
|
1490 | 1489 | ); |
1491 | 1490 | |
1492 | 1491 | return $blocks; |
1493 | - } |
|
1494 | - elseif ('view' == $op) { |
|
1492 | + } |
|
1493 | + elseif ('view' == $op) { |
|
1495 | 1494 | $block = array(); |
1496 | 1495 | switch ($delta) { |
1497 | - case 'privatemsg-menu': |
|
1496 | + case 'privatemsg-menu': |
|
1498 | 1497 | $block = _privatemsg_block_menu(); |
1499 | 1498 | break; |
1500 | - case 'privatemsg-new': |
|
1499 | + case 'privatemsg-new': |
|
1501 | 1500 | $block = _privatemsg_block_new(); |
1502 | 1501 | break; |
1503 | 1502 | } |
1504 | 1503 | return $block; |
1505 | - } |
|
1504 | + } |
|
1506 | 1505 | } |
1507 | 1506 | |
1508 | 1507 | function privatemsg_title_callback($title = NULL) { |
1509 | - $count = privatemsg_unread_count(); |
|
1508 | + $count = privatemsg_unread_count(); |
|
1510 | 1509 | |
1511 | - if ($count > 0) { |
|
1510 | + if ($count > 0) { |
|
1512 | 1511 | return format_plural($count, 'Messages (1 new)', 'Messages (@count new)'); |
1513 | - } |
|
1514 | - return t('Messages'); |
|
1512 | + } |
|
1513 | + return t('Messages'); |
|
1515 | 1514 | } |
1516 | 1515 | |
1517 | 1516 | |
1518 | 1517 | function _privatemsg_block_new() { |
1519 | - $block = array(); |
|
1518 | + $block = array(); |
|
1520 | 1519 | |
1521 | - if (!privatemsg_user_access()) { |
|
1520 | + if (!privatemsg_user_access()) { |
|
1522 | 1521 | return $block; |
1523 | - } |
|
1522 | + } |
|
1524 | 1523 | |
1525 | - $count = privatemsg_unread_count(); |
|
1526 | - if ($count) { |
|
1524 | + $count = privatemsg_unread_count(); |
|
1525 | + if ($count) { |
|
1527 | 1526 | $block = array( |
1528 | - 'subject' => format_plural($count, 'New message', 'New messages'), |
|
1529 | - 'content' => theme('privatemsg_new_block', $count), |
|
1527 | + 'subject' => format_plural($count, 'New message', 'New messages'), |
|
1528 | + 'content' => theme('privatemsg_new_block', $count), |
|
1530 | 1529 | ); |
1531 | 1530 | return $block; |
1532 | - } |
|
1533 | - return array(); |
|
1531 | + } |
|
1532 | + return array(); |
|
1534 | 1533 | } |
1535 | 1534 | |
1536 | 1535 | function _privatemsg_block_menu() { |
1537 | - $block = array(); |
|
1536 | + $block = array(); |
|
1538 | 1537 | |
1539 | - $links = array(); |
|
1540 | - if (privatemsg_user_access('write privatemsg')) { |
|
1538 | + $links = array(); |
|
1539 | + if (privatemsg_user_access('write privatemsg')) { |
|
1541 | 1540 | $links[] = l(t('Write new message'), 'messages/new'); |
1542 | - } |
|
1543 | - if (privatemsg_user_access('read privatemsg') || privatemsg_user_access('read all private messages') ) { |
|
1541 | + } |
|
1542 | + if (privatemsg_user_access('read privatemsg') || privatemsg_user_access('read all private messages') ) { |
|
1544 | 1543 | $links[] = l(privatemsg_title_callback(), 'messages'); |
1545 | - } |
|
1546 | - if ( count( $links ) ) { |
|
1544 | + } |
|
1545 | + if ( count( $links ) ) { |
|
1547 | 1546 | $block = array( |
1548 | - 'subject' => t('Private messages'), |
|
1549 | - 'content' => theme('item_list', $links), |
|
1547 | + 'subject' => t('Private messages'), |
|
1548 | + 'content' => theme('item_list', $links), |
|
1550 | 1549 | ); |
1551 | - } |
|
1552 | - return $block; |
|
1550 | + } |
|
1551 | + return $block; |
|
1553 | 1552 | } |
1554 | 1553 | |
1555 | 1554 | function privatemsg_delete($form_state, $thread, $message) { |
1556 | - $form['pmid'] = array( |
|
1555 | + $form['pmid'] = array( |
|
1557 | 1556 | '#type' => 'value', |
1558 | 1557 | '#value' => $message['mid'], |
1559 | - ); |
|
1560 | - $form['delete_destination'] = array( |
|
1558 | + ); |
|
1559 | + $form['delete_destination'] = array( |
|
1561 | 1560 | '#type' => 'value', |
1562 | 1561 | '#value' => count($thread['messages']) > 1 ? 'messages/view/' . $message['thread_id'] : 'messages', |
1563 | - ); |
|
1562 | + ); |
|
1564 | 1563 | |
1565 | - if (privatemsg_user_access('read all private messages')) { |
|
1564 | + if (privatemsg_user_access('read all private messages')) { |
|
1566 | 1565 | $form['delete_options'] = array( |
1567 | - '#type' => 'checkbox', |
|
1568 | - '#title' => t('Delete this message for all users?'), |
|
1569 | - '#description' => t('Tick the box to delete the message for all users.'), |
|
1570 | - '#default_value' => FALSE, |
|
1566 | + '#type' => 'checkbox', |
|
1567 | + '#title' => t('Delete this message for all users?'), |
|
1568 | + '#description' => t('Tick the box to delete the message for all users.'), |
|
1569 | + '#default_value' => FALSE, |
|
1571 | 1570 | ); |
1572 | - } |
|
1573 | - return confirm_form($form, |
|
1571 | + } |
|
1572 | + return confirm_form($form, |
|
1574 | 1573 | t('Are you sure you want to delete this message?'), |
1575 | 1574 | isset($_GET['destination']) ? $_GET['destination'] : 'messages/view/'. $message['thread_id'], |
1576 | 1575 | t('This action cannot be undone.'), |
1577 | 1576 | t('Delete'), |
1578 | 1577 | t('Cancel') |
1579 | - ); |
|
1578 | + ); |
|
1580 | 1579 | } |
1581 | 1580 | |
1582 | 1581 | function privatemsg_delete_submit($form, &$form_state) { |
1583 | - global $user; |
|
1584 | - $account = drupal_clone($user); |
|
1582 | + global $user; |
|
1583 | + $account = drupal_clone($user); |
|
1585 | 1584 | |
1586 | - if ($form_state['values']['confirm']) { |
|
1585 | + if ($form_state['values']['confirm']) { |
|
1587 | 1586 | if (isset($form_state['values']['delete_options']) && $form_state['values']['delete_options']) { |
1588 | - privatemsg_message_change_delete($form_state['values']['pmid'], 1); |
|
1589 | - drupal_set_message(t('Message has been deleted for all users.')); |
|
1587 | + privatemsg_message_change_delete($form_state['values']['pmid'], 1); |
|
1588 | + drupal_set_message(t('Message has been deleted for all users.')); |
|
1590 | 1589 | } |
1591 | 1590 | else { |
1592 | - privatemsg_message_change_delete($form_state['values']['pmid'], 1, $account); |
|
1593 | - drupal_set_message(t('Message has been deleted.')); |
|
1591 | + privatemsg_message_change_delete($form_state['values']['pmid'], 1, $account); |
|
1592 | + drupal_set_message(t('Message has been deleted.')); |
|
1594 | 1593 | } |
1595 | - } |
|
1596 | - $form_state['redirect'] = $form_state['values']['delete_destination']; |
|
1594 | + } |
|
1595 | + $form_state['redirect'] = $form_state['values']['delete_destination']; |
|
1597 | 1596 | } |
1598 | 1597 | |
1599 | 1598 | /** |
@@ -1610,18 +1609,18 @@ discard block |
||
1610 | 1609 | * @ingroup api |
1611 | 1610 | */ |
1612 | 1611 | function privatemsg_message_change_delete($pmid, $delete, $account = NULL) { |
1613 | - $delete_value = 0; |
|
1614 | - if ($delete == TRUE) { |
|
1612 | + $delete_value = 0; |
|
1613 | + if ($delete == TRUE) { |
|
1615 | 1614 | $delete_value = time(); |
1616 | - } |
|
1615 | + } |
|
1617 | 1616 | |
1618 | - if ($account) { |
|
1617 | + if ($account) { |
|
1619 | 1618 | db_query('UPDATE {pm_index} SET deleted = %d WHERE mid = %d AND uid = %d', $delete_value, $pmid, $account->uid); |
1620 | - } |
|
1621 | - else { |
|
1619 | + } |
|
1620 | + else { |
|
1622 | 1621 | // Mark deleted for all users. |
1623 | 1622 | db_query('UPDATE {pm_index} SET deleted = %d WHERE mid = %d', $delete_value, $pmid); |
1624 | - } |
|
1623 | + } |
|
1625 | 1624 | } |
1626 | 1625 | |
1627 | 1626 | /** |
@@ -1664,35 +1663,35 @@ discard block |
||
1664 | 1663 | * @ingroup api |
1665 | 1664 | */ |
1666 | 1665 | function privatemsg_new_thread($recipients, $subject, $body = NULL, $options = array()) { |
1667 | - global $user; |
|
1668 | - $author = drupal_clone($user); |
|
1669 | - |
|
1670 | - $message = array(); |
|
1671 | - $message['subject'] = $subject; |
|
1672 | - $message['body'] = $body; |
|
1673 | - // Make sure that recipients are keyed by user id and are not added |
|
1674 | - // multiple times. |
|
1675 | - foreach ($recipients as $recipient) { |
|
1666 | + global $user; |
|
1667 | + $author = drupal_clone($user); |
|
1668 | + |
|
1669 | + $message = array(); |
|
1670 | + $message['subject'] = $subject; |
|
1671 | + $message['body'] = $body; |
|
1672 | + // Make sure that recipients are keyed by user id and are not added |
|
1673 | + // multiple times. |
|
1674 | + foreach ($recipients as $recipient) { |
|
1676 | 1675 | $message['recipients'][$recipient->uid] = $recipient; |
1677 | - } |
|
1676 | + } |
|
1678 | 1677 | |
1679 | - // Set custom options, if any. |
|
1680 | - if (!empty($options)) { |
|
1678 | + // Set custom options, if any. |
|
1679 | + if (!empty($options)) { |
|
1681 | 1680 | $message += $options; |
1682 | - } |
|
1683 | - // Apply defaults - this will not overwrite existing keys. |
|
1684 | - $message += array( |
|
1681 | + } |
|
1682 | + // Apply defaults - this will not overwrite existing keys. |
|
1683 | + $message += array( |
|
1685 | 1684 | 'author' => $author, |
1686 | 1685 | 'timestamp' => time(), |
1687 | 1686 | 'format' => filter_resolve_format(FILTER_FORMAT_DEFAULT), |
1688 | - ); |
|
1687 | + ); |
|
1689 | 1688 | |
1690 | - $validated = _privatemsg_validate_message($message); |
|
1691 | - if ($validated['success']) { |
|
1689 | + $validated = _privatemsg_validate_message($message); |
|
1690 | + if ($validated['success']) { |
|
1692 | 1691 | $validated['message'] = _privatemsg_send($message); |
1693 | - } |
|
1692 | + } |
|
1694 | 1693 | |
1695 | - return $validated; |
|
1694 | + return $validated; |
|
1696 | 1695 | } |
1697 | 1696 | |
1698 | 1697 | /** |
@@ -1729,144 +1728,144 @@ discard block |
||
1729 | 1728 | * @ingroup api |
1730 | 1729 | */ |
1731 | 1730 | function privatemsg_reply($thread_id, $body, $options = array()) { |
1732 | - global $user; |
|
1733 | - $author = drupal_clone($user); |
|
1731 | + global $user; |
|
1732 | + $author = drupal_clone($user); |
|
1734 | 1733 | |
1735 | - $message = array(); |
|
1736 | - $message['body'] = $body; |
|
1734 | + $message = array(); |
|
1735 | + $message['body'] = $body; |
|
1737 | 1736 | |
1738 | - // set custom options, if any |
|
1739 | - if (!empty($options)) { |
|
1737 | + // set custom options, if any |
|
1738 | + if (!empty($options)) { |
|
1740 | 1739 | $message += $options; |
1741 | - } |
|
1742 | - // apply defaults |
|
1743 | - $message += array( |
|
1740 | + } |
|
1741 | + // apply defaults |
|
1742 | + $message += array( |
|
1744 | 1743 | 'author' => $author, |
1745 | 1744 | 'timestamp' => time(), |
1746 | 1745 | 'format' => filter_resolve_format(FILTER_FORMAT_DEFAULT), |
1747 | - ); |
|
1746 | + ); |
|
1748 | 1747 | |
1749 | - // We don't know the subject and the recipients, so we need to load them.. |
|
1750 | - // thread_id == mid on the first message of the thread |
|
1751 | - $first_message = privatemsg_message_load($thread_id, $message['author']); |
|
1752 | - if (!$first_message) { |
|
1748 | + // We don't know the subject and the recipients, so we need to load them.. |
|
1749 | + // thread_id == mid on the first message of the thread |
|
1750 | + $first_message = privatemsg_message_load($thread_id, $message['author']); |
|
1751 | + if (!$first_message) { |
|
1753 | 1752 | return array(t('Thread %thread_id not found, unable to answer', array('%thread_id' => $thread_id))); |
1754 | - } |
|
1753 | + } |
|
1755 | 1754 | |
1756 | - $message['thread_id'] = $thread_id; |
|
1757 | - // Load participants. |
|
1758 | - $message['recipients'] = _privatemsg_load_thread_participants($thread_id); |
|
1759 | - // Remove author. |
|
1760 | - if (isset($message['recipients'][$message['author']->uid]) && count($message['recipients']) > 1) { |
|
1755 | + $message['thread_id'] = $thread_id; |
|
1756 | + // Load participants. |
|
1757 | + $message['recipients'] = _privatemsg_load_thread_participants($thread_id); |
|
1758 | + // Remove author. |
|
1759 | + if (isset($message['recipients'][$message['author']->uid]) && count($message['recipients']) > 1) { |
|
1761 | 1760 | unset($message['recipients'][$message['author']->uid]); |
1762 | - } |
|
1763 | - $message['subject'] = $first_message['subject']; |
|
1761 | + } |
|
1762 | + $message['subject'] = $first_message['subject']; |
|
1764 | 1763 | |
1765 | - $validated = _privatemsg_validate_message($message); |
|
1766 | - if ($validated['success']) { |
|
1764 | + $validated = _privatemsg_validate_message($message); |
|
1765 | + if ($validated['success']) { |
|
1767 | 1766 | $validated['message'] = _privatemsg_send($message); |
1768 | - } |
|
1769 | - return $validated; |
|
1767 | + } |
|
1768 | + return $validated; |
|
1770 | 1769 | } |
1771 | 1770 | |
1772 | 1771 | function _privatemsg_validate_message(&$message, $form = FALSE) { |
1773 | - $messages = array('error' => array(), 'warning' => array()); |
|
1774 | - if (!privatemsg_user_access('write privatemsg', $message['author'])) { |
|
1772 | + $messages = array('error' => array(), 'warning' => array()); |
|
1773 | + if (!privatemsg_user_access('write privatemsg', $message['author'])) { |
|
1775 | 1774 | // no need to do further checks in this case... |
1776 | 1775 | if ($form) { |
1777 | - form_set_error('author', t('User @user is not allowed to write messages', array('@user' => $message['author']->name))); |
|
1778 | - return array( |
|
1776 | + form_set_error('author', t('User @user is not allowed to write messages', array('@user' => $message['author']->name))); |
|
1777 | + return array( |
|
1779 | 1778 | 'success' => FALSE, |
1780 | 1779 | 'messages' => $messages, |
1781 | - ); |
|
1780 | + ); |
|
1782 | 1781 | } |
1783 | 1782 | else { |
1784 | - $messages['error'][] = t('User @user is not allowed to write messages', array('@user' => $message['author']->name)); |
|
1785 | - return array( |
|
1786 | - 'success' => FALSE, |
|
1787 | - 'messages' => $messages, |
|
1788 | - ); |
|
1783 | + $messages['error'][] = t('User @user is not allowed to write messages', array('@user' => $message['author']->name)); |
|
1784 | + return array( |
|
1785 | + 'success' => FALSE, |
|
1786 | + 'messages' => $messages, |
|
1787 | + ); |
|
1788 | + } |
|
1789 | 1789 | } |
1790 | - } |
|
1791 | 1790 | |
1792 | - // Prevent subjects which only consist of a space as these can not be clicked. |
|
1793 | - $message['subject'] = trim($message['subject']); |
|
1794 | - if (empty($message['subject'])) { |
|
1791 | + // Prevent subjects which only consist of a space as these can not be clicked. |
|
1792 | + $message['subject'] = trim($message['subject']); |
|
1793 | + if (empty($message['subject'])) { |
|
1795 | 1794 | if ($form) { |
1796 | - form_set_error('subject', t('Disallowed to send a message without subject')); |
|
1795 | + form_set_error('subject', t('Disallowed to send a message without subject')); |
|
1797 | 1796 | } |
1798 | 1797 | else { |
1799 | - $messages['error'][] = t('Disallowed to send a message without subject'); |
|
1798 | + $messages['error'][] = t('Disallowed to send a message without subject'); |
|
1799 | + } |
|
1800 | 1800 | } |
1801 | - } |
|
1802 | 1801 | |
1803 | - // Don't allow replies without a body. |
|
1804 | - if (!empty($message['thread_id']) && ($message['body'] === NULL || $message['body'] === '') ) { |
|
1802 | + // Don't allow replies without a body. |
|
1803 | + if (!empty($message['thread_id']) && ($message['body'] === NULL || $message['body'] === '') ) { |
|
1805 | 1804 | if ($form) { |
1806 | - form_set_error('body', t('Disallowed to send reply without a message.')); |
|
1805 | + form_set_error('body', t('Disallowed to send reply without a message.')); |
|
1807 | 1806 | } |
1808 | 1807 | else { |
1809 | - $messages['error'][] = t('Disallowed to send reply without a message.'); |
|
1808 | + $messages['error'][] = t('Disallowed to send reply without a message.'); |
|
1809 | + } |
|
1810 | 1810 | } |
1811 | - } |
|
1812 | - // Check if an allowed format is used. global $user needs to be changed since |
|
1813 | - // it is not possible to do the check for a specific user. |
|
1814 | - global $user; |
|
1815 | - $original_user = drupal_clone($user); |
|
1816 | - session_save_session(FALSE); |
|
1817 | - $user = $message['author']; |
|
1811 | + // Check if an allowed format is used. global $user needs to be changed since |
|
1812 | + // it is not possible to do the check for a specific user. |
|
1813 | + global $user; |
|
1814 | + $original_user = drupal_clone($user); |
|
1815 | + session_save_session(FALSE); |
|
1816 | + $user = $message['author']; |
|
1818 | 1817 | |
1819 | - if (!filter_access($message['format'])) { |
|
1818 | + if (!filter_access($message['format'])) { |
|
1820 | 1819 | if ($form) { |
1821 | - form_set_error('format', t('You are not allowed to use the specified input format.')); |
|
1820 | + form_set_error('format', t('You are not allowed to use the specified input format.')); |
|
1822 | 1821 | } |
1823 | 1822 | else { |
1824 | - $messages['error'][] = t('User @user is not allowed to use the specified input format.', array('@user' => $message['author']->name)); |
|
1823 | + $messages['error'][] = t('User @user is not allowed to use the specified input format.', array('@user' => $message['author']->name)); |
|
1824 | + } |
|
1825 | 1825 | } |
1826 | - } |
|
1827 | 1826 | |
1828 | - $user = $original_user; |
|
1829 | - session_save_session(TRUE); |
|
1827 | + $user = $original_user; |
|
1828 | + session_save_session(TRUE); |
|
1830 | 1829 | |
1831 | - if (empty($message['recipients']) || !is_array($message['recipients'])) { |
|
1830 | + if (empty($message['recipients']) || !is_array($message['recipients'])) { |
|
1832 | 1831 | if ($form) { |
1833 | - form_set_error('to', t('Disallowed to send a message without at least one valid recipient')); |
|
1832 | + form_set_error('to', t('Disallowed to send a message without at least one valid recipient')); |
|
1834 | 1833 | } |
1835 | 1834 | else { |
1836 | - $messages['error'][] = t('Disallowed to send a message without at least one valid recipient'); |
|
1835 | + $messages['error'][] = t('Disallowed to send a message without at least one valid recipient'); |
|
1836 | + } |
|
1837 | 1837 | } |
1838 | - } |
|
1839 | 1838 | |
1840 | - if (!empty($message['recipients']) && is_array($message['recipients'])) { |
|
1839 | + if (!empty($message['recipients']) && is_array($message['recipients'])) { |
|
1841 | 1840 | foreach (module_invoke_all('privatemsg_block_message', $message['author'], $message['recipients']) as $blocked) { |
1842 | - unset($message['recipients'][$blocked['uid']]); |
|
1843 | - if ($form) { |
|
1841 | + unset($message['recipients'][$blocked['uid']]); |
|
1842 | + if ($form) { |
|
1844 | 1843 | drupal_set_message($blocked['message'], 'warning'); |
1845 | - } |
|
1846 | - else { |
|
1844 | + } |
|
1845 | + else { |
|
1847 | 1846 | $messages['warning'][] = $blocked['message']; |
1848 | - } |
|
1847 | + } |
|
1848 | + } |
|
1849 | 1849 | } |
1850 | - } |
|
1851 | 1850 | |
1852 | - // Check again, give another error message if all recipients are blocked |
|
1853 | - if (empty($message['recipients'])) { |
|
1851 | + // Check again, give another error message if all recipients are blocked |
|
1852 | + if (empty($message['recipients'])) { |
|
1854 | 1853 | if ($form) { |
1855 | - form_set_error('to', t('Disallowed to send message because all recipients are blocked')); |
|
1854 | + form_set_error('to', t('Disallowed to send message because all recipients are blocked')); |
|
1856 | 1855 | } |
1857 | 1856 | else { |
1858 | - $messages['error'][] = t('Disallowed to send message because all recipients are blocked'); |
|
1857 | + $messages['error'][] = t('Disallowed to send message because all recipients are blocked'); |
|
1858 | + } |
|
1859 | 1859 | } |
1860 | - } |
|
1861 | 1860 | |
1862 | - $messages = array_merge_recursive(module_invoke_all('privatemsg_message_validate', $message, $form), $messages); |
|
1861 | + $messages = array_merge_recursive(module_invoke_all('privatemsg_message_validate', $message, $form), $messages); |
|
1863 | 1862 | |
1864 | - // Check if there are errors in $messages or if $form is TRUE, there are form errors. |
|
1865 | - $success = empty($messages['error']) || ($form && count((array)form_get_errors()) > 0); |
|
1866 | - return array( |
|
1863 | + // Check if there are errors in $messages or if $form is TRUE, there are form errors. |
|
1864 | + $success = empty($messages['error']) || ($form && count((array)form_get_errors()) > 0); |
|
1865 | + return array( |
|
1867 | 1866 | 'success' => $success, |
1868 | 1867 | 'messages' => $messages, |
1869 | - ); |
|
1868 | + ); |
|
1870 | 1869 | } |
1871 | 1870 | |
1872 | 1871 | /** |
@@ -1882,61 +1881,61 @@ discard block |
||
1882 | 1881 | */ |
1883 | 1882 | function _privatemsg_send($message) { |
1884 | 1883 | |
1885 | - drupal_alter('privatemsg_message_presave', $message); |
|
1884 | + drupal_alter('privatemsg_message_presave', $message); |
|
1886 | 1885 | |
1887 | - $index_sql = "INSERT INTO {pm_index} (mid, thread_id, uid, is_new, deleted) VALUES (%d, %d, %d, %d, 0)"; |
|
1888 | - if (isset($message['read_all']) && $message['read_all']) { |
|
1886 | + $index_sql = "INSERT INTO {pm_index} (mid, thread_id, uid, is_new, deleted) VALUES (%d, %d, %d, %d, 0)"; |
|
1887 | + if (isset($message['read_all']) && $message['read_all']) { |
|
1889 | 1888 | // The message was sent in read all mode, add the author as recipient to all |
1890 | 1889 | // existing messages. |
1891 | 1890 | $query_messages = _privatemsg_assemble_query('messages', array($message['thread_id']), NULL); |
1892 | 1891 | $conversation = db_query($query_messages['query']); |
1893 | 1892 | while ($result = db_fetch_array($conversation)) { |
1894 | - if (!db_query($index_sql, $result['mid'], $message['thread_id'], $message['author']->uid, 0)) { |
|
1893 | + if (!db_query($index_sql, $result['mid'], $message['thread_id'], $message['author']->uid, 0)) { |
|
1895 | 1894 | return FALSE; |
1896 | - } |
|
1897 | - } |
|
1898 | - } |
|
1899 | - |
|
1900 | - // 1) Save the message body first. |
|
1901 | - $args = array(); |
|
1902 | - $args[] = $message['subject']; |
|
1903 | - $args[] = $message['author']->uid; |
|
1904 | - $args[] = $message['body']; |
|
1905 | - $args[] = $message['format']; |
|
1906 | - $args[] = $message['timestamp']; |
|
1907 | - $message_sql = "INSERT INTO {pm_message} (subject, author, body, format, timestamp) VALUES ('%s', %d, '%s', %d, %d)"; |
|
1908 | - db_query($message_sql, $args); |
|
1909 | - $mid = db_last_insert_id('pm_message', 'mid'); |
|
1910 | - $message['mid'] = $mid; |
|
1911 | - |
|
1912 | - // Thread ID is the same as the mid if it's the first message in the thread. |
|
1913 | - if (!isset($message['thread_id'])) { |
|
1895 | + } |
|
1896 | + } |
|
1897 | + } |
|
1898 | + |
|
1899 | + // 1) Save the message body first. |
|
1900 | + $args = array(); |
|
1901 | + $args[] = $message['subject']; |
|
1902 | + $args[] = $message['author']->uid; |
|
1903 | + $args[] = $message['body']; |
|
1904 | + $args[] = $message['format']; |
|
1905 | + $args[] = $message['timestamp']; |
|
1906 | + $message_sql = "INSERT INTO {pm_message} (subject, author, body, format, timestamp) VALUES ('%s', %d, '%s', %d, %d)"; |
|
1907 | + db_query($message_sql, $args); |
|
1908 | + $mid = db_last_insert_id('pm_message', 'mid'); |
|
1909 | + $message['mid'] = $mid; |
|
1910 | + |
|
1911 | + // Thread ID is the same as the mid if it's the first message in the thread. |
|
1912 | + if (!isset($message['thread_id'])) { |
|
1914 | 1913 | $message['thread_id'] = $mid; |
1915 | - } |
|
1914 | + } |
|
1916 | 1915 | |
1917 | - // 2) Save message to recipients. |
|
1918 | - // Each recipient gets a record in the pm_index table. |
|
1919 | - foreach ($message['recipients'] as $recipient) { |
|
1916 | + // 2) Save message to recipients. |
|
1917 | + // Each recipient gets a record in the pm_index table. |
|
1918 | + foreach ($message['recipients'] as $recipient) { |
|
1920 | 1919 | if (!db_query($index_sql, $mid, $message['thread_id'], $recipient->uid, 1) ) { |
1921 | - // We assume if one insert failed then the rest may fail too against the |
|
1922 | - // same table. |
|
1923 | - return FALSE; |
|
1920 | + // We assume if one insert failed then the rest may fail too against the |
|
1921 | + // same table. |
|
1922 | + return FALSE; |
|
1923 | + } |
|
1924 | 1924 | } |
1925 | - } |
|
1926 | 1925 | |
1927 | - // When author is also the recipient, we want to set message to UNREAD. |
|
1928 | - // All other times the message is set to READ. |
|
1929 | - $is_new = isset($message['recipients'][$message['author']->uid]) ? 1 : 0; |
|
1926 | + // When author is also the recipient, we want to set message to UNREAD. |
|
1927 | + // All other times the message is set to READ. |
|
1928 | + $is_new = isset($message['recipients'][$message['author']->uid]) ? 1 : 0; |
|
1930 | 1929 | |
1931 | - // Also add a record for the author to the pm_index table. |
|
1932 | - if (!db_query($index_sql, $mid, $message['thread_id'], $message['author']->uid, $is_new)) { |
|
1930 | + // Also add a record for the author to the pm_index table. |
|
1931 | + if (!db_query($index_sql, $mid, $message['thread_id'], $message['author']->uid, $is_new)) { |
|
1933 | 1932 | return FALSE; |
1934 | - } |
|
1933 | + } |
|
1935 | 1934 | |
1936 | - module_invoke_all('privatemsg_message_insert', $message); |
|
1935 | + module_invoke_all('privatemsg_message_insert', $message); |
|
1937 | 1936 | |
1938 | - // If we reached here that means we were successful at writing all messages to db. |
|
1939 | - return $message; |
|
1937 | + // If we reached here that means we were successful at writing all messages to db. |
|
1938 | + return $message; |
|
1940 | 1939 | } |
1941 | 1940 | |
1942 | 1941 | /** |
@@ -1956,37 +1955,37 @@ discard block |
||
1956 | 1955 | * @ingroup api |
1957 | 1956 | */ |
1958 | 1957 | function privatemsg_get_link($recipients, $account = array(), $subject = NULL) { |
1959 | - if ($account == NULL) { |
|
1958 | + if ($account == NULL) { |
|
1960 | 1959 | global $user; |
1961 | 1960 | $account = $user; |
1962 | - } |
|
1961 | + } |
|
1963 | 1962 | |
1964 | - if (!is_array($recipients)) { |
|
1963 | + if (!is_array($recipients)) { |
|
1965 | 1964 | $recipients = array($recipients); |
1966 | - } |
|
1965 | + } |
|
1967 | 1966 | |
1968 | - if (!privatemsg_user_access('write privatemsg', $account) || $account->uid == 0) { |
|
1967 | + if (!privatemsg_user_access('write privatemsg', $account) || $account->uid == 0) { |
|
1969 | 1968 | return FALSE; |
1970 | - } |
|
1969 | + } |
|
1971 | 1970 | |
1972 | - $validated = array(); |
|
1973 | - foreach ($recipients as $recipient) { |
|
1971 | + $validated = array(); |
|
1972 | + foreach ($recipients as $recipient) { |
|
1974 | 1973 | if (!privatemsg_user_access('read privatemsg', $recipient)) { |
1975 | - continue; |
|
1974 | + continue; |
|
1976 | 1975 | } |
1977 | 1976 | if (count(module_invoke_all('privatemsg_block_message', $account, array($recipient->uid => $recipient))) > 0) { |
1978 | - continue; |
|
1977 | + continue; |
|
1979 | 1978 | } |
1980 | 1979 | $validated[] = $recipient->uid; |
1981 | - } |
|
1982 | - if (empty($validated)) { |
|
1980 | + } |
|
1981 | + if (empty($validated)) { |
|
1983 | 1982 | return FALSE; |
1984 | - } |
|
1985 | - $url = 'messages/new/'. implode(',', $validated); |
|
1986 | - if (!is_null($subject)) { |
|
1983 | + } |
|
1984 | + $url = 'messages/new/'. implode(',', $validated); |
|
1985 | + if (!is_null($subject)) { |
|
1987 | 1986 | $url .= '/'. $subject; |
1988 | - } |
|
1989 | - return $url; |
|
1987 | + } |
|
1988 | + return $url; |
|
1990 | 1989 | } |
1991 | 1990 | |
1992 | 1991 | /** |
@@ -2001,8 +2000,8 @@ discard block |
||
2001 | 2000 | * @ingroup api |
2002 | 2001 | */ |
2003 | 2002 | function privatemsg_message_load($pmid, $account = NULL) { |
2004 | - $messages = privatemsg_message_load_multiple(array($pmid), $account); |
|
2005 | - return current($messages); |
|
2003 | + $messages = privatemsg_message_load_multiple(array($pmid), $account); |
|
2004 | + return current($messages); |
|
2006 | 2005 | } |
2007 | 2006 | |
2008 | 2007 | /** |
@@ -2017,27 +2016,27 @@ discard block |
||
2017 | 2016 | * @ingroup api |
2018 | 2017 | */ |
2019 | 2018 | function privatemsg_message_load_multiple($pmids, $account = NULL) { |
2020 | - // Avoid SQL error that would happen with an empty pm.mid IN () clause. |
|
2021 | - if (empty($pmids)) { |
|
2019 | + // Avoid SQL error that would happen with an empty pm.mid IN () clause. |
|
2020 | + if (empty($pmids)) { |
|
2022 | 2021 | return array(); |
2023 | - } |
|
2022 | + } |
|
2024 | 2023 | |
2025 | - $query = _privatemsg_assemble_query('load', $pmids, $account); |
|
2026 | - $result = db_query($query['query']); |
|
2027 | - $messages = array(); |
|
2028 | - while ($message = db_fetch_array($result)) { |
|
2024 | + $query = _privatemsg_assemble_query('load', $pmids, $account); |
|
2025 | + $result = db_query($query['query']); |
|
2026 | + $messages = array(); |
|
2027 | + while ($message = db_fetch_array($result)) { |
|
2029 | 2028 | // Load author of message. |
2030 | 2029 | if (!($message['author'] = user_load($message['author']))) { |
2031 | - // If user does not exist, load anonymous user. |
|
2032 | - $message['author'] = user_load(array('uid' => 0)); |
|
2030 | + // If user does not exist, load anonymous user. |
|
2031 | + $message['author'] = user_load(array('uid' => 0)); |
|
2033 | 2032 | } |
2034 | 2033 | $returned = module_invoke_all('privatemsg_message_load', $message); |
2035 | 2034 | if (!empty($returned)) { |
2036 | - $message = array_merge_recursive($returned, $message); |
|
2035 | + $message = array_merge_recursive($returned, $message); |
|
2037 | 2036 | } |
2038 | 2037 | $messages[$message['mid']] = $message; |
2039 | - } |
|
2040 | - return $messages; |
|
2038 | + } |
|
2039 | + return $messages; |
|
2041 | 2040 | } |
2042 | 2041 | |
2043 | 2042 | /** |
@@ -2056,26 +2055,26 @@ discard block |
||
2056 | 2055 | */ |
2057 | 2056 | function _privatemsg_assemble_query($query) { |
2058 | 2057 | |
2059 | - // Modules will be allowed to choose the prefix for the querybuilder, but if there is not one supplied, 'privatemsg' will be taken by default. |
|
2060 | - if (is_array($query)) { |
|
2058 | + // Modules will be allowed to choose the prefix for the querybuilder, but if there is not one supplied, 'privatemsg' will be taken by default. |
|
2059 | + if (is_array($query)) { |
|
2061 | 2060 | $query_id = $query[0]; |
2062 | 2061 | $query_group = $query[1]; |
2063 | - } |
|
2064 | - else { |
|
2062 | + } |
|
2063 | + else { |
|
2065 | 2064 | $query_id = $query; |
2066 | 2065 | $query_group = 'privatemsg'; |
2067 | - } |
|
2068 | - |
|
2069 | - $SELECT = array(); |
|
2070 | - $INNER_JOIN = array(); |
|
2071 | - $WHERE = array(); |
|
2072 | - $GROUP_BY = array(); |
|
2073 | - $HAVING = array(); |
|
2074 | - $ORDER_BY = array(); |
|
2075 | - $QUERY_ARGS = array('select' => array(), 'where' => array(), 'join' => array(), 'having' => array()); |
|
2076 | - $primary_table = ''; |
|
2077 | - |
|
2078 | - $fragments = array( |
|
2066 | + } |
|
2067 | + |
|
2068 | + $SELECT = array(); |
|
2069 | + $INNER_JOIN = array(); |
|
2070 | + $WHERE = array(); |
|
2071 | + $GROUP_BY = array(); |
|
2072 | + $HAVING = array(); |
|
2073 | + $ORDER_BY = array(); |
|
2074 | + $QUERY_ARGS = array('select' => array(), 'where' => array(), 'join' => array(), 'having' => array()); |
|
2075 | + $primary_table = ''; |
|
2076 | + |
|
2077 | + $fragments = array( |
|
2079 | 2078 | 'select' => $SELECT, |
2080 | 2079 | 'inner_join' => $INNER_JOIN, |
2081 | 2080 | 'where' => $WHERE, |
@@ -2084,52 +2083,52 @@ discard block |
||
2084 | 2083 | 'order_by' => $ORDER_BY, |
2085 | 2084 | 'query_args' => $QUERY_ARGS, |
2086 | 2085 | 'primary_table' => $primary_table, |
2087 | - ); |
|
2088 | - |
|
2089 | - /** |
|
2090 | - * Begin: dynamic arguments |
|
2091 | - */ |
|
2092 | - $args = func_get_args(); |
|
2093 | - unset($args[0]); |
|
2094 | - // we do the merge because we call call_user_func_array and not drupal_alter |
|
2095 | - // this is necessary because otherwise we would not be able to use $args correctly (otherwise it doesnt unfold) |
|
2096 | - $alterargs = array(&$fragments); |
|
2097 | - $query_function = $query_group .'_sql_'. $query_id; |
|
2098 | - if (!empty($args)) { |
|
2086 | + ); |
|
2087 | + |
|
2088 | + /** |
|
2089 | + * Begin: dynamic arguments |
|
2090 | + */ |
|
2091 | + $args = func_get_args(); |
|
2092 | + unset($args[0]); |
|
2093 | + // we do the merge because we call call_user_func_array and not drupal_alter |
|
2094 | + // this is necessary because otherwise we would not be able to use $args correctly (otherwise it doesnt unfold) |
|
2095 | + $alterargs = array(&$fragments); |
|
2096 | + $query_function = $query_group .'_sql_'. $query_id; |
|
2097 | + if (!empty($args)) { |
|
2099 | 2098 | $alterargs = array_merge($alterargs, $args); |
2100 | - } |
|
2101 | - /** |
|
2102 | - * END: Dynamic arguments |
|
2103 | - */ |
|
2104 | - if (!function_exists($query_function)) { |
|
2099 | + } |
|
2100 | + /** |
|
2101 | + * END: Dynamic arguments |
|
2102 | + */ |
|
2103 | + if (!function_exists($query_function)) { |
|
2105 | 2104 | drupal_set_message(t('Query function %function does not exist', array('%function' => $query_function)), 'error'); |
2106 | 2105 | return FALSE; |
2107 | - } |
|
2108 | - call_user_func_array($query_function, $alterargs); |
|
2109 | - |
|
2110 | - array_unshift($alterargs, $query_function); |
|
2111 | - call_user_func_array('drupal_alter', $alterargs); |
|
2112 | - |
|
2113 | - $SELECT = $fragments['select']; |
|
2114 | - $INNER_JOIN = $fragments['inner_join']; |
|
2115 | - $WHERE = $fragments['where']; |
|
2116 | - $GROUP_BY = $fragments['group_by']; |
|
2117 | - $HAVING = $fragments['having']; |
|
2118 | - $ORDER_BY = $fragments['order_by']; |
|
2119 | - $QUERY_ARGS = $fragments['query_args']; |
|
2120 | - $primary_table = $fragments['primary_table']; |
|
2121 | - |
|
2122 | - // pgsql has a case sensitive LIKE - replace it with ILIKE. see http://drupal.org/node/462982 |
|
2123 | - if ($GLOBALS['db_type'] == 'pgsql') { |
|
2106 | + } |
|
2107 | + call_user_func_array($query_function, $alterargs); |
|
2108 | + |
|
2109 | + array_unshift($alterargs, $query_function); |
|
2110 | + call_user_func_array('drupal_alter', $alterargs); |
|
2111 | + |
|
2112 | + $SELECT = $fragments['select']; |
|
2113 | + $INNER_JOIN = $fragments['inner_join']; |
|
2114 | + $WHERE = $fragments['where']; |
|
2115 | + $GROUP_BY = $fragments['group_by']; |
|
2116 | + $HAVING = $fragments['having']; |
|
2117 | + $ORDER_BY = $fragments['order_by']; |
|
2118 | + $QUERY_ARGS = $fragments['query_args']; |
|
2119 | + $primary_table = $fragments['primary_table']; |
|
2120 | + |
|
2121 | + // pgsql has a case sensitive LIKE - replace it with ILIKE. see http://drupal.org/node/462982 |
|
2122 | + if ($GLOBALS['db_type'] == 'pgsql') { |
|
2124 | 2123 | $WHERE = str_replace('LIKE', 'ILIKE', $WHERE); |
2125 | - } |
|
2124 | + } |
|
2126 | 2125 | |
2127 | - if (empty($primary_table)) { |
|
2126 | + if (empty($primary_table)) { |
|
2128 | 2127 | $primary_table = '{privatemsg} pm'; |
2129 | - } |
|
2128 | + } |
|
2130 | 2129 | |
2131 | - // Perform the whole query assembly only if we have something to select. |
|
2132 | - if (!empty($SELECT)) { |
|
2130 | + // Perform the whole query assembly only if we have something to select. |
|
2131 | + if (!empty($SELECT)) { |
|
2133 | 2132 | $str_select = implode(", ", $SELECT); |
2134 | 2133 | $query = "SELECT {$str_select} FROM ". $primary_table; |
2135 | 2134 | |
@@ -2137,51 +2136,51 @@ discard block |
||
2137 | 2136 | // In most cases, "COUNT(*)" is enough to get the count query, but in queries involving a GROUP BY, we want a count of the number of groups we have, not the count of elements inside each group. |
2138 | 2137 | // So we test if there is GROUP BY and if there is, count the number of distinct groups. If not, we go the normal wal and do a plain COUNT(*). |
2139 | 2138 | if (!empty($GROUP_BY)) { |
2140 | - // PostgreSQL does not support COUNT(sometextfield, someintfield), so I'm only using the first one |
|
2141 | - // Works fine for thread_id/list but may generate an error when a more complex GROUP BY is used. |
|
2142 | - $str_group_by_count = current($GROUP_BY); |
|
2143 | - $count = "SELECT COUNT(DISTINCT {$str_group_by_count}) FROM ". $primary_table; |
|
2139 | + // PostgreSQL does not support COUNT(sometextfield, someintfield), so I'm only using the first one |
|
2140 | + // Works fine for thread_id/list but may generate an error when a more complex GROUP BY is used. |
|
2141 | + $str_group_by_count = current($GROUP_BY); |
|
2142 | + $count = "SELECT COUNT(DISTINCT {$str_group_by_count}) FROM ". $primary_table; |
|
2144 | 2143 | } |
2145 | 2144 | else { |
2146 | - $count = "SELECT COUNT(*) FROM ". $primary_table; |
|
2145 | + $count = "SELECT COUNT(*) FROM ". $primary_table; |
|
2147 | 2146 | } |
2148 | 2147 | |
2149 | 2148 | if (!empty($INNER_JOIN)) { |
2150 | - $str_inner_join = implode(' ', $INNER_JOIN); |
|
2151 | - $query .= " {$str_inner_join}"; |
|
2152 | - $count .= " {$str_inner_join}"; |
|
2149 | + $str_inner_join = implode(' ', $INNER_JOIN); |
|
2150 | + $query .= " {$str_inner_join}"; |
|
2151 | + $count .= " {$str_inner_join}"; |
|
2153 | 2152 | } |
2154 | 2153 | if (!empty($WHERE)) { |
2155 | - $str_where = '('. implode(') AND (', $WHERE) .')'; |
|
2156 | - $query .= " WHERE {$str_where}"; |
|
2157 | - $count .= " WHERE {$str_where}"; |
|
2154 | + $str_where = '('. implode(') AND (', $WHERE) .')'; |
|
2155 | + $query .= " WHERE {$str_where}"; |
|
2156 | + $count .= " WHERE {$str_where}"; |
|
2158 | 2157 | } |
2159 | 2158 | if (!empty($GROUP_BY)) { |
2160 | - $str_group_by = ' GROUP BY '. implode(", ", $GROUP_BY) ; |
|
2161 | - $query .= " {$str_group_by}"; |
|
2159 | + $str_group_by = ' GROUP BY '. implode(", ", $GROUP_BY) ; |
|
2160 | + $query .= " {$str_group_by}"; |
|
2162 | 2161 | } |
2163 | 2162 | if (!empty($HAVING)) { |
2164 | - $str_having = '('. implode(') AND (', $HAVING) .')'; |
|
2165 | - $query .= " HAVING {$str_having}"; |
|
2166 | - // queries containing a HAVING break the count query on pgsql. |
|
2167 | - // In this case, use the subquery method as outlined in http://drupal.org/node/303087#comment-1370752 . |
|
2168 | - // The subquery method will work for all COUNT queries, but it is thought to be much slower, so we are only using it where other cross database approaches fail. |
|
2169 | - $count = 'SELECT COUNT(*) FROM ('. $query .') as count'; |
|
2163 | + $str_having = '('. implode(') AND (', $HAVING) .')'; |
|
2164 | + $query .= " HAVING {$str_having}"; |
|
2165 | + // queries containing a HAVING break the count query on pgsql. |
|
2166 | + // In this case, use the subquery method as outlined in http://drupal.org/node/303087#comment-1370752 . |
|
2167 | + // The subquery method will work for all COUNT queries, but it is thought to be much slower, so we are only using it where other cross database approaches fail. |
|
2168 | + $count = 'SELECT COUNT(*) FROM ('. $query .') as count'; |
|
2170 | 2169 | } |
2171 | 2170 | if (!empty($ORDER_BY)) { |
2172 | - $str_order_by = ' ORDER BY '. implode(", ", $ORDER_BY) ; |
|
2173 | - $query .= " {$str_order_by}"; |
|
2171 | + $str_order_by = ' ORDER BY '. implode(", ", $ORDER_BY) ; |
|
2172 | + $query .= " {$str_order_by}"; |
|
2174 | 2173 | } |
2175 | 2174 | $QUERY_ARGS = array_merge($QUERY_ARGS['select'], $QUERY_ARGS['join'], $QUERY_ARGS['where'], $QUERY_ARGS['having']); |
2176 | 2175 | if (!empty($QUERY_ARGS)) { |
2177 | - _db_query_callback($QUERY_ARGS, TRUE); |
|
2178 | - $query = preg_replace_callback(DB_QUERY_REGEXP, '_db_query_callback', $query); |
|
2179 | - _db_query_callback($QUERY_ARGS, TRUE); |
|
2180 | - $count = preg_replace_callback(DB_QUERY_REGEXP, '_db_query_callback', $count); |
|
2176 | + _db_query_callback($QUERY_ARGS, TRUE); |
|
2177 | + $query = preg_replace_callback(DB_QUERY_REGEXP, '_db_query_callback', $query); |
|
2178 | + _db_query_callback($QUERY_ARGS, TRUE); |
|
2179 | + $count = preg_replace_callback(DB_QUERY_REGEXP, '_db_query_callback', $count); |
|
2181 | 2180 | } |
2182 | 2181 | return array('query' => $query, 'count' => $count); |
2183 | - } |
|
2184 | - return FALSE; |
|
2182 | + } |
|
2183 | + return FALSE; |
|
2185 | 2184 | } |
2186 | 2185 | |
2187 | 2186 | /** |
@@ -2198,44 +2197,44 @@ discard block |
||
2198 | 2197 | * The FAPI definitions for the thread action form. |
2199 | 2198 | */ |
2200 | 2199 | function _privatemsg_action_form() { |
2201 | - $form = array( |
|
2202 | - '#type' => 'fieldset', |
|
2203 | - '#title' => t('Actions'), |
|
2204 | - '#prefix' => '<div class="container-inline">', |
|
2205 | - '#suffix' => '</div>', |
|
2206 | - '#collapsible' => TRUE, |
|
2207 | - '#collapsed' => FALSE, |
|
2208 | - '#weight' => 15, |
|
2209 | - ); |
|
2210 | - if (privatemsg_user_access('delete privatemsg')) { |
|
2200 | + $form = array( |
|
2201 | + '#type' => 'fieldset', |
|
2202 | + '#title' => t('Actions'), |
|
2203 | + '#prefix' => '<div class="container-inline">', |
|
2204 | + '#suffix' => '</div>', |
|
2205 | + '#collapsible' => TRUE, |
|
2206 | + '#collapsed' => FALSE, |
|
2207 | + '#weight' => 15, |
|
2208 | + ); |
|
2209 | + if (privatemsg_user_access('delete privatemsg')) { |
|
2211 | 2210 | $form['delete'] = array( |
2212 | 2211 | '#type' => 'submit', |
2213 | 2212 | '#value' => t('Delete'), |
2214 | 2213 | ); |
2215 | - } |
|
2216 | - // Display all operations which have a label. |
|
2217 | - $options = array(0 => t('More actions...')); |
|
2218 | - foreach (module_invoke_all('privatemsg_thread_operations') as $operation => $array) { |
|
2214 | + } |
|
2215 | + // Display all operations which have a label. |
|
2216 | + $options = array(0 => t('More actions...')); |
|
2217 | + foreach (module_invoke_all('privatemsg_thread_operations') as $operation => $array) { |
|
2219 | 2218 | if (isset($array['label'])) { |
2220 | - $options[$operation] = $array['label']; |
|
2221 | - } |
|
2222 | - } |
|
2223 | - $form['operation'] = array( |
|
2224 | - '#type' => 'select', |
|
2225 | - '#options' => $options, |
|
2226 | - '#default_value' => 0, |
|
2227 | - ); |
|
2228 | - $form['submit'] = array( |
|
2229 | - '#prefix' => '<div class="privatemsg-op-button">', |
|
2230 | - '#suffix' => '</div>', |
|
2231 | - '#type' => 'submit', |
|
2232 | - '#value' => t('Execute'), |
|
2233 | - '#submit' => array('privatemsg_list_submit'), |
|
2234 | - '#attributes' => array('class' => 'privatemsg-action-button'), |
|
2235 | - ); |
|
2236 | - // JS for hiding the execute button. |
|
2237 | - drupal_add_js(drupal_get_path('module', 'privatemsg') .'/privatemsg-list.js'); |
|
2238 | - return $form; |
|
2219 | + $options[$operation] = $array['label']; |
|
2220 | + } |
|
2221 | + } |
|
2222 | + $form['operation'] = array( |
|
2223 | + '#type' => 'select', |
|
2224 | + '#options' => $options, |
|
2225 | + '#default_value' => 0, |
|
2226 | + ); |
|
2227 | + $form['submit'] = array( |
|
2228 | + '#prefix' => '<div class="privatemsg-op-button">', |
|
2229 | + '#suffix' => '</div>', |
|
2230 | + '#type' => 'submit', |
|
2231 | + '#value' => t('Execute'), |
|
2232 | + '#submit' => array('privatemsg_list_submit'), |
|
2233 | + '#attributes' => array('class' => 'privatemsg-action-button'), |
|
2234 | + ); |
|
2235 | + // JS for hiding the execute button. |
|
2236 | + drupal_add_js(drupal_get_path('module', 'privatemsg') .'/privatemsg-list.js'); |
|
2237 | + return $form; |
|
2239 | 2238 | } |
2240 | 2239 | |
2241 | 2240 | /** |
@@ -2250,23 +2249,23 @@ discard block |
||
2250 | 2249 | * current user. |
2251 | 2250 | */ |
2252 | 2251 | function privatemsg_thread_change_status($threads, $status, $account = NULL) { |
2253 | - if (!is_array($threads)) { |
|
2252 | + if (!is_array($threads)) { |
|
2254 | 2253 | $threads = array($threads); |
2255 | - } |
|
2256 | - if (empty($account)) { |
|
2254 | + } |
|
2255 | + if (empty($account)) { |
|
2257 | 2256 | global $user; |
2258 | 2257 | $account = drupal_clone($user); |
2259 | - } |
|
2260 | - // Merge status and uid with the threads list. array_merge() will not overwrite/ignore thread_id 1. |
|
2261 | - $params = array_merge(array($status, $account->uid), $threads); |
|
2262 | - db_query('UPDATE {pm_index} SET is_new = %d WHERE uid = %d AND thread_id IN ('. db_placeholders($threads) .')', $params); |
|
2258 | + } |
|
2259 | + // Merge status and uid with the threads list. array_merge() will not overwrite/ignore thread_id 1. |
|
2260 | + $params = array_merge(array($status, $account->uid), $threads); |
|
2261 | + db_query('UPDATE {pm_index} SET is_new = %d WHERE uid = %d AND thread_id IN ('. db_placeholders($threads) .')', $params); |
|
2263 | 2262 | |
2264 | - if ($status == PRIVATEMSG_UNREAD) { |
|
2263 | + if ($status == PRIVATEMSG_UNREAD) { |
|
2265 | 2264 | drupal_set_message(format_plural(count($threads), 'Marked 1 thread as unread.', 'Marked @count threads as unread.')); |
2266 | - } |
|
2267 | - else { |
|
2265 | + } |
|
2266 | + else { |
|
2268 | 2267 | drupal_set_message(format_plural(count($threads), 'Marked 1 thread as read.', 'Marked @count threads as read.')); |
2269 | - } |
|
2268 | + } |
|
2270 | 2269 | } |
2271 | 2270 | /** |
2272 | 2271 | * Returns a table header definition based on the submitted keys. |
@@ -2282,25 +2281,25 @@ discard block |
||
2282 | 2281 | * Array with header defintions for tablesort_sql and theme('table'). |
2283 | 2282 | */ |
2284 | 2283 | function _privatemsg_list_headers($has_posts, $keys) { |
2285 | - $select_header = $has_posts ? theme('table_select_header_cell') : ''; |
|
2286 | - $select_header['#weight'] = -50; |
|
2284 | + $select_header = $has_posts ? theme('table_select_header_cell') : ''; |
|
2285 | + $select_header['#weight'] = -50; |
|
2287 | 2286 | |
2288 | - // theme() doesn't include the theme file for patterns, we need to do it manually. |
|
2289 | - include_once drupal_get_path('module', 'privatemsg') .'/privatemsg.theme.inc'; |
|
2287 | + // theme() doesn't include the theme file for patterns, we need to do it manually. |
|
2288 | + include_once drupal_get_path('module', 'privatemsg') .'/privatemsg.theme.inc'; |
|
2290 | 2289 | |
2291 | - $header = array($select_header); |
|
2292 | - foreach ($keys as $key) { |
|
2290 | + $header = array($select_header); |
|
2291 | + foreach ($keys as $key) { |
|
2293 | 2292 | // First, try to load a specific theme for that header, if not present, use the default. |
2294 | 2293 | if ($return = theme(array('privatemsg_list_header__'. $key, 'privatemsg_list_header'))) { |
2295 | - // The default theme returns nothing, only store the value if we have something. |
|
2296 | - $header[$key] = $return; |
|
2294 | + // The default theme returns nothing, only store the value if we have something. |
|
2295 | + $header[$key] = $return; |
|
2296 | + } |
|
2297 | 2297 | } |
2298 | - } |
|
2299 | - if (count($header) == 1) { |
|
2298 | + if (count($header) == 1) { |
|
2300 | 2299 | // No header definition returned, fallback to the default. |
2301 | 2300 | $header += _privatemsg_list_headers_fallback($keys); |
2302 | - } |
|
2303 | - return $header; |
|
2301 | + } |
|
2302 | + return $header; |
|
2304 | 2303 | } |
2305 | 2304 | |
2306 | 2305 | /** |
@@ -2310,15 +2309,15 @@ discard block |
||
2310 | 2309 | * Array with the correct headers. |
2311 | 2310 | */ |
2312 | 2311 | function _privatemsg_list_headers_fallback($keys) { |
2313 | - $header = array(); |
|
2314 | - foreach ($keys as $key) { |
|
2312 | + $header = array(); |
|
2313 | + foreach ($keys as $key) { |
|
2315 | 2314 | $theme_function = 'phptemplate_privatemsg_list_header__' . $key; |
2316 | 2315 | if (function_exists($theme_function)) { |
2317 | - $header[$key] = $theme_function(); |
|
2316 | + $header[$key] = $theme_function(); |
|
2317 | + } |
|
2318 | 2318 | } |
2319 | - } |
|
2320 | 2319 | |
2321 | - return $header; |
|
2320 | + return $header; |
|
2322 | 2321 | } |
2323 | 2322 | |
2324 | 2323 | /** |
@@ -2332,23 +2331,23 @@ discard block |
||
2332 | 2331 | * Row definition for use with theme('table') |
2333 | 2332 | */ |
2334 | 2333 | function _privatemsg_list_thread($thread) { |
2335 | - $row = array('data' => array()); |
|
2334 | + $row = array('data' => array()); |
|
2336 | 2335 | |
2337 | - if (!empty($thread['is_new'])) { |
|
2336 | + if (!empty($thread['is_new'])) { |
|
2338 | 2337 | // Set the css class in the tr tag. |
2339 | 2338 | $row['class'] = 'privatemsg-unread'; |
2340 | - } |
|
2341 | - foreach ($thread as $key => $data) { |
|
2339 | + } |
|
2340 | + foreach ($thread as $key => $data) { |
|
2342 | 2341 | // First, try to load a specific theme for that field, if not present, use the default. |
2343 | 2342 | if ($return = theme(array('privatemsg_list_field__'. $key, 'privatemsg_list_field'), $thread)) { |
2344 | - // The default theme returns nothing, only store the value if we have something. |
|
2345 | - $row['data'][$key] = $return; |
|
2343 | + // The default theme returns nothing, only store the value if we have something. |
|
2344 | + $row['data'][$key] = $return; |
|
2345 | + } |
|
2346 | 2346 | } |
2347 | - } |
|
2348 | - if (empty($row['data'])) { |
|
2347 | + if (empty($row['data'])) { |
|
2349 | 2348 | $row['data'] = _privatemsg_list_thread_fallback($thread); |
2350 | - } |
|
2351 | - return $row; |
|
2349 | + } |
|
2350 | + return $row; |
|
2352 | 2351 | } |
2353 | 2352 | |
2354 | 2353 | /** |
@@ -2358,15 +2357,15 @@ discard block |
||
2358 | 2357 | * Array with row data. |
2359 | 2358 | */ |
2360 | 2359 | function _privatemsg_list_thread_fallback($thread) { |
2361 | - $row_data = array(); |
|
2362 | - foreach ($thread as $key => $data) { |
|
2360 | + $row_data = array(); |
|
2361 | + foreach ($thread as $key => $data) { |
|
2363 | 2362 | $theme_function = 'phptemplate_privatemsg_list_field__' . $key; |
2364 | 2363 | if (function_exists($theme_function)) { |
2365 | - $row_data[$key] = $theme_function($thread); |
|
2364 | + $row_data[$key] = $theme_function($thread); |
|
2365 | + } |
|
2366 | 2366 | } |
2367 | - } |
|
2368 | 2367 | |
2369 | - return $row_data; |
|
2368 | + return $row_data; |
|
2370 | 2369 | } |
2371 | 2370 | |
2372 | 2371 | /** |
@@ -2376,20 +2375,20 @@ discard block |
||
2376 | 2375 | * execute it. |
2377 | 2376 | */ |
2378 | 2377 | function privatemsg_undo_action() { |
2379 | - // Check if a undo callback for that user exists. |
|
2380 | - if (isset($_SESSION['privatemsg']['undo callback']) && is_array($_SESSION['privatemsg']['undo callback'])) { |
|
2378 | + // Check if a undo callback for that user exists. |
|
2379 | + if (isset($_SESSION['privatemsg']['undo callback']) && is_array($_SESSION['privatemsg']['undo callback'])) { |
|
2381 | 2380 | $undo = $_SESSION['privatemsg']['undo callback']; |
2382 | 2381 | // If the defined undo callback exists, execute it |
2383 | 2382 | if (isset($undo['function']) && isset($undo['args'])) { |
2384 | - // Load the user object. |
|
2385 | - if (isset($undo['args']['account']) && $undo['args']['account'] > 0) { |
|
2383 | + // Load the user object. |
|
2384 | + if (isset($undo['args']['account']) && $undo['args']['account'] > 0) { |
|
2386 | 2385 | $undo['args']['account'] = user_load((int)$undo['args']['account']); |
2387 | - } |
|
2388 | - call_user_func_array($undo['function'], $undo['args']); |
|
2386 | + } |
|
2387 | + call_user_func_array($undo['function'], $undo['args']); |
|
2389 | 2388 | } |
2390 | 2389 | // Return back to the site defined by the destination GET param. |
2391 | 2390 | drupal_goto(); |
2392 | - } |
|
2391 | + } |
|
2393 | 2392 | } |
2394 | 2393 | |
2395 | 2394 | /** |
@@ -2399,29 +2398,29 @@ discard block |
||
2399 | 2398 | * based on node_admin_nodes_submit(). |
2400 | 2399 | */ |
2401 | 2400 | function privatemsg_list_submit($form, &$form_state) { |
2402 | - // Load all available operation definitions. |
|
2403 | - $operations = module_invoke_all('privatemsg_thread_operations'); |
|
2401 | + // Load all available operation definitions. |
|
2402 | + $operations = module_invoke_all('privatemsg_thread_operations'); |
|
2404 | 2403 | |
2405 | - // Default "default" operation, which won't do anything. |
|
2406 | - $operation = array('callback' => 0); |
|
2404 | + // Default "default" operation, which won't do anything. |
|
2405 | + $operation = array('callback' => 0); |
|
2407 | 2406 | |
2408 | - // Check if a valid operation has been submitted. |
|
2409 | - if (isset($form_state['values']['operation']) && isset($operations[$form_state['values']['operation']])) { |
|
2407 | + // Check if a valid operation has been submitted. |
|
2408 | + if (isset($form_state['values']['operation']) && isset($operations[$form_state['values']['operation']])) { |
|
2410 | 2409 | $operation = $operations[$form_state['values']['operation']]; |
2411 | - } |
|
2410 | + } |
|
2412 | 2411 | |
2413 | - // Load all keys where the value is the current op. |
|
2414 | - $keys = array_keys($form_state['values'], $form_state['values']['op']); |
|
2412 | + // Load all keys where the value is the current op. |
|
2413 | + $keys = array_keys($form_state['values'], $form_state['values']['op']); |
|
2415 | 2414 | |
2416 | - // The first one is op itself, we need to use the second. |
|
2417 | - if (isset($keys[1]) && isset($operations[$keys[1]])) { |
|
2415 | + // The first one is op itself, we need to use the second. |
|
2416 | + if (isset($keys[1]) && isset($operations[$keys[1]])) { |
|
2418 | 2417 | $operation = $operations[$keys[1]]; |
2419 | - } |
|
2418 | + } |
|
2420 | 2419 | |
2421 | - // Only execute something if we have a valid callback and at least one checked thread. |
|
2422 | - if (!empty($operation['callback'])) { |
|
2420 | + // Only execute something if we have a valid callback and at least one checked thread. |
|
2421 | + if (!empty($operation['callback'])) { |
|
2423 | 2422 | privatemsg_operation_execute($operation, $form_state['values']['threads'], $form_state['values']['account']); |
2424 | - } |
|
2423 | + } |
|
2425 | 2424 | } |
2426 | 2425 | |
2427 | 2426 | /** |
@@ -2435,42 +2434,42 @@ discard block |
||
2435 | 2434 | * array can be directly passed to it. |
2436 | 2435 | */ |
2437 | 2436 | function privatemsg_operation_execute($operation, $threads, $account = null) { |
2438 | - // Filter out unchecked threads, this gives us an array of "checked" threads. |
|
2439 | - $threads = array_filter($threads); |
|
2437 | + // Filter out unchecked threads, this gives us an array of "checked" threads. |
|
2438 | + $threads = array_filter($threads); |
|
2440 | 2439 | |
2441 | - if (empty($threads)) { |
|
2440 | + if (empty($threads)) { |
|
2442 | 2441 | // Do not execute anything if there are no checked threads. |
2443 | 2442 | return; |
2444 | - } |
|
2445 | - // Add in callback arguments if present. |
|
2446 | - if (isset($operation['callback arguments'])) { |
|
2443 | + } |
|
2444 | + // Add in callback arguments if present. |
|
2445 | + if (isset($operation['callback arguments'])) { |
|
2447 | 2446 | $args = array_merge(array($threads), $operation['callback arguments']); |
2448 | - } |
|
2449 | - else { |
|
2447 | + } |
|
2448 | + else { |
|
2450 | 2449 | $args = array($threads); |
2451 | - } |
|
2450 | + } |
|
2452 | 2451 | |
2453 | - // Add the user object to the arguments. |
|
2454 | - if ($account) { |
|
2452 | + // Add the user object to the arguments. |
|
2453 | + if ($account) { |
|
2455 | 2454 | $args[] = $account; |
2456 | - } |
|
2455 | + } |
|
2457 | 2456 | |
2458 | - // Execute the chosen action and pass the defined arguments. |
|
2459 | - call_user_func_array($operation['callback'], $args); |
|
2457 | + // Execute the chosen action and pass the defined arguments. |
|
2458 | + call_user_func_array($operation['callback'], $args); |
|
2460 | 2459 | |
2461 | - // Check if that operation has defined an undo callback. |
|
2462 | - if (isset($operation['undo callback']) && $undo_function = $operation['undo callback']) { |
|
2460 | + // Check if that operation has defined an undo callback. |
|
2461 | + if (isset($operation['undo callback']) && $undo_function = $operation['undo callback']) { |
|
2463 | 2462 | // Add in callback arguments if present. |
2464 | 2463 | if (isset($operation['undo callback arguments'])) { |
2465 | - $undo_args = array_merge(array($threads), $operation['undo callback arguments']); |
|
2464 | + $undo_args = array_merge(array($threads), $operation['undo callback arguments']); |
|
2466 | 2465 | } |
2467 | 2466 | else { |
2468 | - $undo_args = array($threads); |
|
2467 | + $undo_args = array($threads); |
|
2469 | 2468 | } |
2470 | 2469 | |
2471 | 2470 | // Avoid saving the complete user object in the session. |
2472 | 2471 | if ($account) { |
2473 | - $undo_args['account'] = $account->uid; |
|
2472 | + $undo_args['account'] = $account->uid; |
|
2474 | 2473 | } |
2475 | 2474 | // Store the undo callback in the session and display a "Undo" link. |
2476 | 2475 | // @todo: Provide a more flexible solution for such an undo action, operation defined string for example. |
@@ -2478,7 +2477,7 @@ discard block |
||
2478 | 2477 | $undo = url('messages/undo/action', array('query' => drupal_get_destination())); |
2479 | 2478 | |
2480 | 2479 | drupal_set_message(t('The previous action can be <a href="!undo">undone</a>.', array('!undo' => $undo))); |
2481 | - } |
|
2480 | + } |
|
2482 | 2481 | } |
2483 | 2482 | |
2484 | 2483 | /** |
@@ -2494,71 +2493,71 @@ discard block |
||
2494 | 2493 | * defaults to the current user. |
2495 | 2494 | */ |
2496 | 2495 | function privatemsg_thread_change_delete($threads, $delete, $account = NULL) { |
2497 | - if (!is_array($threads)) { |
|
2496 | + if (!is_array($threads)) { |
|
2498 | 2497 | $threads = array($threads); |
2499 | - } |
|
2500 | - if (empty($account)) { |
|
2498 | + } |
|
2499 | + if (empty($account)) { |
|
2501 | 2500 | global $user; |
2502 | 2501 | $account = drupal_clone($user); |
2503 | - } |
|
2502 | + } |
|
2504 | 2503 | |
2505 | - // Merge status and uid with the threads list. array_merge() will not overwrite/ignore thread_id 1. |
|
2506 | - $params = array_merge(array($delete, $account->uid), $threads); |
|
2504 | + // Merge status and uid with the threads list. array_merge() will not overwrite/ignore thread_id 1. |
|
2505 | + $params = array_merge(array($delete, $account->uid), $threads); |
|
2507 | 2506 | |
2508 | - // Load all messages of those threads including the deleted. |
|
2509 | - $query = _privatemsg_assemble_query('messages', $threads, $account, TRUE); |
|
2510 | - $result = db_query($query['query']); |
|
2507 | + // Load all messages of those threads including the deleted. |
|
2508 | + $query = _privatemsg_assemble_query('messages', $threads, $account, TRUE); |
|
2509 | + $result = db_query($query['query']); |
|
2511 | 2510 | |
2512 | - // Delete each message. We need to do that to trigger the delete hook. |
|
2513 | - while ($row = db_fetch_array($result)) { |
|
2511 | + // Delete each message. We need to do that to trigger the delete hook. |
|
2512 | + while ($row = db_fetch_array($result)) { |
|
2514 | 2513 | privatemsg_message_change_delete($row['mid'], $delete, $account); |
2515 | - } |
|
2514 | + } |
|
2516 | 2515 | |
2517 | - if ($delete) { |
|
2516 | + if ($delete) { |
|
2518 | 2517 | drupal_set_message(format_plural(count($threads), 'Deleted 1 thread.', 'Deleted @count threads.')); |
2519 | - } |
|
2520 | - else { |
|
2518 | + } |
|
2519 | + else { |
|
2521 | 2520 | drupal_set_message(format_plural(count($threads), 'Restored 1 thread.', 'Restored @count threads.')); |
2522 | - } |
|
2521 | + } |
|
2523 | 2522 | } |
2524 | 2523 | |
2525 | 2524 | /** |
2526 | 2525 | * Implements hook_privatemsg_thread_operations(). |
2527 | 2526 | */ |
2528 | 2527 | function privatemsg_privatemsg_thread_operations() { |
2529 | - $operations = array( |
|
2528 | + $operations = array( |
|
2530 | 2529 | 'mark as read' => array( |
2531 | - 'label' => t('Mark as read'), |
|
2532 | - 'callback' => 'privatemsg_thread_change_status', |
|
2533 | - 'callback arguments' => array('status' => PRIVATEMSG_READ), |
|
2534 | - 'undo callback' => 'privatemsg_thread_change_status', |
|
2535 | - 'undo callback arguments' => array('status' => PRIVATEMSG_UNREAD), |
|
2530 | + 'label' => t('Mark as read'), |
|
2531 | + 'callback' => 'privatemsg_thread_change_status', |
|
2532 | + 'callback arguments' => array('status' => PRIVATEMSG_READ), |
|
2533 | + 'undo callback' => 'privatemsg_thread_change_status', |
|
2534 | + 'undo callback arguments' => array('status' => PRIVATEMSG_UNREAD), |
|
2536 | 2535 | ), |
2537 | 2536 | 'mark as unread' => array( |
2538 | - 'label' => t('Mark as unread'), |
|
2539 | - 'callback' => 'privatemsg_thread_change_status', |
|
2540 | - 'callback arguments' => array('status' => PRIVATEMSG_UNREAD), |
|
2541 | - 'undo callback' => 'privatemsg_thread_change_status', |
|
2542 | - 'undo callback arguments' => array('status' => PRIVATEMSG_READ), |
|
2537 | + 'label' => t('Mark as unread'), |
|
2538 | + 'callback' => 'privatemsg_thread_change_status', |
|
2539 | + 'callback arguments' => array('status' => PRIVATEMSG_UNREAD), |
|
2540 | + 'undo callback' => 'privatemsg_thread_change_status', |
|
2541 | + 'undo callback arguments' => array('status' => PRIVATEMSG_READ), |
|
2543 | 2542 | ), |
2544 | - ); |
|
2545 | - if (privatemsg_user_access('delete privatemsg')) { |
|
2543 | + ); |
|
2544 | + if (privatemsg_user_access('delete privatemsg')) { |
|
2546 | 2545 | $operations['delete'] = array( |
2547 | - 'callback' => 'privatemsg_thread_change_delete', |
|
2548 | - 'callback arguments' => array('delete' => 1), |
|
2549 | - 'undo callback' => 'privatemsg_thread_change_delete', |
|
2550 | - 'undo callback arguments' => array('delete' => 0), |
|
2546 | + 'callback' => 'privatemsg_thread_change_delete', |
|
2547 | + 'callback arguments' => array('delete' => 1), |
|
2548 | + 'undo callback' => 'privatemsg_thread_change_delete', |
|
2549 | + 'undo callback arguments' => array('delete' => 0), |
|
2551 | 2550 | ); |
2552 | - } |
|
2553 | - return $operations; |
|
2551 | + } |
|
2552 | + return $operations; |
|
2554 | 2553 | } |
2555 | 2554 | |
2556 | 2555 | /** |
2557 | 2556 | * Implementation of hook_views_api(). |
2558 | 2557 | */ |
2559 | 2558 | function privatemsg_views_api() { |
2560 | - return array( |
|
2559 | + return array( |
|
2561 | 2560 | 'api' => 2, |
2562 | 2561 | 'path' => drupal_get_path('module', 'privatemsg') . '/views', |
2563 | - ); |
|
2562 | + ); |
|
2564 | 2563 | } |
@@ -1437,43 +1437,43 @@ discard block |
||
1437 | 1437 | global $user; |
1438 | 1438 | |
1439 | 1439 | switch ($op) { |
1440 | - case 'view': |
|
1441 | - if ($url = privatemsg_get_link(array($account))) { |
|
1442 | - $account->content['privatemsg_send_new_message'] = array( |
|
1443 | - '#type' => 'markup', |
|
1444 | - '#value' => l(t('Send this user a message'), $url, array('query' => drupal_get_destination())), |
|
1445 | - '#weight' => 10, |
|
1446 | - ); |
|
1447 | - } |
|
1448 | - break; |
|
1449 | - case 'login': |
|
1450 | - if (variable_get('privatemsg_display_loginmessage', TRUE) && privatemsg_user_access()) { |
|
1451 | - $count = privatemsg_unread_count(); |
|
1452 | - if ($count) { |
|
1453 | - drupal_set_message(format_plural($count, 'You have <a href="@messages">1 unread message</a>.', 'You have <a href="@messages">@count unread messages</a>', array('@messages' => url('messages')))); |
|
1454 | - } |
|
1440 | + case 'view': |
|
1441 | + if ($url = privatemsg_get_link(array($account))) { |
|
1442 | + $account->content['privatemsg_send_new_message'] = array( |
|
1443 | + '#type' => 'markup', |
|
1444 | + '#value' => l(t('Send this user a message'), $url, array('query' => drupal_get_destination())), |
|
1445 | + '#weight' => 10, |
|
1446 | + ); |
|
1447 | + } |
|
1448 | + break; |
|
1449 | + case 'login': |
|
1450 | + if (variable_get('privatemsg_display_loginmessage', TRUE) && privatemsg_user_access()) { |
|
1451 | + $count = privatemsg_unread_count(); |
|
1452 | + if ($count) { |
|
1453 | + drupal_set_message(format_plural($count, 'You have <a href="@messages">1 unread message</a>.', 'You have <a href="@messages">@count unread messages</a>', array('@messages' => url('messages')))); |
|
1455 | 1454 | } |
1456 | - break; |
|
1457 | - case 'delete': |
|
1455 | + } |
|
1456 | + break; |
|
1457 | + case 'delete': |
|
1458 | 1458 | |
1459 | - // Load all mids of the messages the user wrote. |
|
1460 | - $result = db_query("SELECT mid FROM {pm_message} WHERE author = %d", $account->uid); |
|
1461 | - $mids = array(); |
|
1462 | - while ($row = db_fetch_array($result)) { |
|
1463 | - $mids[] = $row['mid']; |
|
1464 | - } |
|
1459 | + // Load all mids of the messages the user wrote. |
|
1460 | + $result = db_query("SELECT mid FROM {pm_message} WHERE author = %d", $account->uid); |
|
1461 | + $mids = array(); |
|
1462 | + while ($row = db_fetch_array($result)) { |
|
1463 | + $mids[] = $row['mid']; |
|
1464 | + } |
|
1465 | 1465 | |
1466 | - // Delete messages the user wrote. |
|
1467 | - db_query('DELETE FROM {pm_message} WHERE author = %d', $account->uid); |
|
1466 | + // Delete messages the user wrote. |
|
1467 | + db_query('DELETE FROM {pm_message} WHERE author = %d', $account->uid); |
|
1468 | 1468 | |
1469 | - if (!empty($mids)) { |
|
1470 | - // Delete recipient entries in {pm_index} of the messages the user wrote. |
|
1471 | - db_query('DELETE FROM {pm_index} WHERE mid IN (' . db_placeholders($mids) . ')', $mids); |
|
1472 | - } |
|
1469 | + if (!empty($mids)) { |
|
1470 | + // Delete recipient entries in {pm_index} of the messages the user wrote. |
|
1471 | + db_query('DELETE FROM {pm_index} WHERE mid IN (' . db_placeholders($mids) . ')', $mids); |
|
1472 | + } |
|
1473 | 1473 | |
1474 | - // Delete recipient entries of that user. |
|
1475 | - db_query('DELETE FROM {pm_index} WHERE uid = %d', $account->uid); |
|
1476 | - break; |
|
1474 | + // Delete recipient entries of that user. |
|
1475 | + db_query('DELETE FROM {pm_index} WHERE uid = %d', $account->uid); |
|
1476 | + break; |
|
1477 | 1477 | } |
1478 | 1478 | } |
1479 | 1479 | |
@@ -1494,12 +1494,12 @@ discard block |
||
1494 | 1494 | elseif ('view' == $op) { |
1495 | 1495 | $block = array(); |
1496 | 1496 | switch ($delta) { |
1497 | - case 'privatemsg-menu': |
|
1498 | - $block = _privatemsg_block_menu(); |
|
1499 | - break; |
|
1500 | - case 'privatemsg-new': |
|
1501 | - $block = _privatemsg_block_new(); |
|
1502 | - break; |
|
1497 | + case 'privatemsg-menu': |
|
1498 | + $block = _privatemsg_block_menu(); |
|
1499 | + break; |
|
1500 | + case 'privatemsg-new': |
|
1501 | + $block = _privatemsg_block_new(); |
|
1502 | + break; |
|
1503 | 1503 | } |
1504 | 1504 | return $block; |
1505 | 1505 | } |
@@ -98,7 +98,7 @@ discard block |
||
98 | 98 | |
99 | 99 | |
100 | 100 | if ($no_text) { |
101 | - return implode(', ', $to) . $limit_string; |
|
101 | + return implode(', ', $to).$limit_string; |
|
102 | 102 | } |
103 | 103 | |
104 | 104 | $last = array_pop($to); |
@@ -220,7 +220,7 @@ discard block |
||
220 | 220 | * @ingroup api |
221 | 221 | */ |
222 | 222 | function privatemsg_user_access($permission = 'read privatemsg', $account = NULL) { |
223 | - if ( $account === NULL ) { |
|
223 | + if ($account === NULL) { |
|
224 | 224 | global $user; |
225 | 225 | $account = $user; |
226 | 226 | } |
@@ -344,7 +344,7 @@ discard block |
||
344 | 344 | // message overlap. |
345 | 345 | // Note - the last page lists the earliest messages, not the latest. |
346 | 346 | $paging_count = variable_get('privatemsg_view_use_max_as_default', FALSE) ? $thread['message_count'] - variable_get('privatemsg_view_default_amount', 10) : $thread['message_count']; |
347 | - $last_page = $paging_count % $max_amount; |
|
347 | + $last_page = $paging_count%$max_amount; |
|
348 | 348 | } |
349 | 349 | |
350 | 350 | // Sanity check - we cannot start from a negative number. |
@@ -546,7 +546,7 @@ discard block |
||
546 | 546 | '#options' => $amounts, |
547 | 547 | '#weight' => 20, |
548 | 548 | ); |
549 | - drupal_add_js(drupal_get_path('module', 'privatemsg') .'/privatemsg-admin.js'); |
|
549 | + drupal_add_js(drupal_get_path('module', 'privatemsg').'/privatemsg-admin.js'); |
|
550 | 550 | |
551 | 551 | $form['#submit'][] = 'private_message_settings_submit'; |
552 | 552 | return system_settings_form($form); |
@@ -640,9 +640,9 @@ discard block |
||
640 | 640 | $vars['message_timestamp'] = format_date($message['timestamp'], 'small'); |
641 | 641 | $vars['message_body'] = check_markup($message['body'], $message['format'], FALSE); |
642 | 642 | if (isset($vars['mid']) && isset($vars['thread_id']) && privatemsg_user_access('delete privatemsg')) { |
643 | - $vars['message_actions'][] = array('title' => t('Delete message'), 'href' => 'messages/delete/' . $vars['thread_id'] . '/' . $vars['mid']); |
|
643 | + $vars['message_actions'][] = array('title' => t('Delete message'), 'href' => 'messages/delete/'.$vars['thread_id'].'/'.$vars['mid']); |
|
644 | 644 | } |
645 | - $vars['message_anchors'][] = 'privatemsg-mid-' . $vars['mid']; |
|
645 | + $vars['message_anchors'][] = 'privatemsg-mid-'.$vars['mid']; |
|
646 | 646 | if (!empty($message['is_new'])) { |
647 | 647 | $vars['message_anchors'][] = 'new'; |
648 | 648 | $vars['new'] = drupal_ucfirst(t('new')); |
@@ -655,7 +655,7 @@ discard block |
||
655 | 655 | |
656 | 656 | $vars['anchors'] = ''; |
657 | 657 | foreach ($vars['message_anchors'] as $anchor) { |
658 | - $vars['anchors'] .= '<a name="' . $anchor . '"></a>'; |
|
658 | + $vars['anchors'] .= '<a name="'.$anchor.'"></a>'; |
|
659 | 659 | } |
660 | 660 | } |
661 | 661 | |
@@ -758,7 +758,7 @@ discard block |
||
758 | 758 | global $user; |
759 | 759 | $account = $user; |
760 | 760 | } |
761 | - if ( !isset($counts[$account->uid])) { |
|
761 | + if (!isset($counts[$account->uid])) { |
|
762 | 762 | $query = _privatemsg_assemble_query('unread_count', $account); |
763 | 763 | $counts[$account->uid] = db_result(db_query($query['query'])); |
764 | 764 | } |
@@ -785,7 +785,7 @@ discard block |
||
785 | 785 | 'query' => array('start' => $thread['older_start']), |
786 | 786 | 'title' => t('Display older messages'), |
787 | 787 | ); |
788 | - $older = l(t('<<'), 'messages/view/' . $thread['thread_id'], $options); |
|
788 | + $older = l(t('<<'), 'messages/view/'.$thread['thread_id'], $options); |
|
789 | 789 | } |
790 | 790 | $newer = ''; |
791 | 791 | if (isset($thread['newer_start'])) { |
@@ -793,7 +793,7 @@ discard block |
||
793 | 793 | 'query' => array('start' => $thread['newer_start']), |
794 | 794 | 'title' => t('Display newer messages'), |
795 | 795 | ); |
796 | - $newer = l(t('>>'), 'messages/view/' . $thread['thread_id'], $options); |
|
796 | + $newer = l(t('>>'), 'messages/view/'.$thread['thread_id'], $options); |
|
797 | 797 | } |
798 | 798 | $substitutions = array('@from' => $thread['from'], '@to' => $thread['to'], '@total' => $thread['message_count'], '!previous_link' => $older, '!newer_link' => $newer); |
799 | 799 | $title = t('!previous_link Displaying messages @from - @to of @total !newer_link', $substitutions); |
@@ -847,7 +847,7 @@ discard block |
||
847 | 847 | global $user; |
848 | 848 | |
849 | 849 | $recipients_string = ''; |
850 | - $body = ''; |
|
850 | + $body = ''; |
|
851 | 851 | |
852 | 852 | // convert recipients to array of user objects |
853 | 853 | if (!empty($recipients) && is_string($recipients) || is_int($recipients)) { |
@@ -1004,7 +1004,7 @@ discard block |
||
1004 | 1004 | ); |
1005 | 1005 | $recipients_string_themed = implode(', ', $to_themed); |
1006 | 1006 | $form['privatemsg']['recipient_display'] = array( |
1007 | - '#value' => '<p>'. t('<strong>Reply to thread</strong>:<br /> Recipients: !to', array('!to' => $recipients_string_themed)) .'</p>', |
|
1007 | + '#value' => '<p>'.t('<strong>Reply to thread</strong>:<br /> Recipients: !to', array('!to' => $recipients_string_themed)).'</p>', |
|
1008 | 1008 | '#weight' => -10, |
1009 | 1009 | ); |
1010 | 1010 | if (empty($recipients_string)) { |
@@ -1099,7 +1099,7 @@ discard block |
||
1099 | 1099 | // First, check if another module is able to resolve the string into an |
1100 | 1100 | // user object. |
1101 | 1101 | foreach (module_implements('privatemsg_name_lookup') as $module) { |
1102 | - $function = $module . '_privatemsg_name_lookup'; |
|
1102 | + $function = $module.'_privatemsg_name_lookup'; |
|
1103 | 1103 | if (($recipient = $function($string)) && is_object($recipient)) { |
1104 | 1104 | // If there is a match, continue with the next input string. |
1105 | 1105 | $recipients[$recipient->uid] = $recipient; |
@@ -1131,7 +1131,7 @@ discard block |
||
1131 | 1131 | foreach ($form_state['validate_built_message']['recipients'] as $recipient) { |
1132 | 1132 | $recipient_names[] = theme('username', $recipient); |
1133 | 1133 | } |
1134 | - if ($status !== FALSE ) { |
|
1134 | + if ($status !== FALSE) { |
|
1135 | 1135 | drupal_set_message(t('A message has been sent to !recipients.', array('!recipients' => implode(', ', $recipient_names)))); |
1136 | 1136 | } |
1137 | 1137 | else { |
@@ -1173,7 +1173,7 @@ discard block |
||
1173 | 1173 | $fields = array_filter(variable_get('privatemsg_display_fields', array('participants'))); |
1174 | 1174 | |
1175 | 1175 | // Required columns. |
1176 | - $fragments['select'][] = 'pmi.thread_id'; |
|
1176 | + $fragments['select'][] = 'pmi.thread_id'; |
|
1177 | 1177 | // We have to use MIN as the subject might not be the same in some threads. |
1178 | 1178 | // MIN() does not have a useful meaning except that it helps to correctly |
1179 | 1179 | // aggregate the thread on PostgreSQL. |
@@ -1185,32 +1185,32 @@ discard block |
||
1185 | 1185 | // Select number of messages in the thread if the count is |
1186 | 1186 | // set to be displayed. |
1187 | 1187 | if (in_array('count', $fields)) { |
1188 | - $fragments['select'][] = 'COUNT(distinct pmi.mid) as count'; |
|
1188 | + $fragments['select'][] = 'COUNT(distinct pmi.mid) as count'; |
|
1189 | 1189 | } |
1190 | 1190 | if (in_array('participants', $fields)) { |
1191 | 1191 | // Query for a string with uid's, for example "1,6,7". |
1192 | 1192 | // @todo: Replace this with a single query similiar to the tag list. |
1193 | 1193 | if ($GLOBALS['db_type'] == 'pgsql') { |
1194 | 1194 | // PostgreSQL does not know GROUP_CONCAT, so a subquery is required. |
1195 | - $fragments['select'][] = "array_to_string(array(SELECT DISTINCT textin(int4out(pmia.uid)) |
|
1195 | + $fragments['select'][] = "array_to_string(array(SELECT DISTINCT textin(int4out(pmia.uid)) |
|
1196 | 1196 | FROM {pm_index} pmia |
1197 | 1197 | WHERE pmia.thread_id = pmi.thread_id), ',') AS participants"; |
1198 | 1198 | } |
1199 | 1199 | else { |
1200 | - $fragments['select'][] = '(SELECT GROUP_CONCAT(DISTINCT pmia.uid SEPARATOR ",") |
|
1200 | + $fragments['select'][] = '(SELECT GROUP_CONCAT(DISTINCT pmia.uid SEPARATOR ",") |
|
1201 | 1201 | FROM {pm_index} pmia |
1202 | 1202 | WHERE pmia.thread_id = pmi.thread_id) AS participants'; |
1203 | 1203 | } |
1204 | 1204 | } |
1205 | 1205 | if (in_array('thread_started', $fields)) { |
1206 | - $fragments['select'][] = 'MIN(pm.timestamp) as thread_started'; |
|
1206 | + $fragments['select'][] = 'MIN(pm.timestamp) as thread_started'; |
|
1207 | 1207 | } |
1208 | 1208 | |
1209 | 1209 | $fragments['inner_join'][] = 'INNER JOIN {pm_index} pmi ON pm.mid = pmi.mid'; |
1210 | 1210 | |
1211 | 1211 | // Only load undeleted messages of the current user and group by thread. |
1212 | 1212 | $fragments['where'][] = 'pmi.uid = %d'; |
1213 | - $fragments['query_args']['where'][] = $account->uid; |
|
1213 | + $fragments['query_args']['where'][] = $account->uid; |
|
1214 | 1214 | $fragments['where'][] = 'pmi.deleted = 0'; |
1215 | 1215 | $fragments['group_by'][] = 'pmi.thread_id'; |
1216 | 1216 | |
@@ -1224,8 +1224,8 @@ discard block |
||
1224 | 1224 | // tablesort_sql() generates a ORDER BY string. However, the "ORDER BY " part |
1225 | 1225 | // is not needed and added by the query builder. Discard the first 9 |
1226 | 1226 | // characters of the string. |
1227 | - $order_by = drupal_substr(tablesort_sql(_privatemsg_list_headers( FALSE, array_merge(array('subject', 'last_updated'), $fields)), $order_by_first), 9); |
|
1228 | - $fragments['order_by'][] = $order_by; |
|
1227 | + $order_by = drupal_substr(tablesort_sql(_privatemsg_list_headers(FALSE, array_merge(array('subject', 'last_updated'), $fields)), $order_by_first), 9); |
|
1228 | + $fragments['order_by'][] = $order_by; |
|
1229 | 1229 | } |
1230 | 1230 | |
1231 | 1231 | /** |
@@ -1252,11 +1252,11 @@ discard block |
||
1252 | 1252 | |
1253 | 1253 | $fragments['inner_join'][] = 'INNER JOIN {pm_index} pmi ON pm.mid = pmi.mid'; |
1254 | 1254 | // Use IN() to load multiple messages at the same time. |
1255 | - $fragments['where'][] = 'pmi.mid IN (' . db_placeholders($pmids) . ')'; |
|
1256 | - $fragments['query_args']['where'] += $pmids; |
|
1255 | + $fragments['where'][] = 'pmi.mid IN ('.db_placeholders($pmids).')'; |
|
1256 | + $fragments['query_args']['where'] += $pmids; |
|
1257 | 1257 | if ($account) { |
1258 | - $fragments['where'][] = 'pmi.uid = %d'; |
|
1259 | - $fragments['query_args']['where'][] = $account->uid; |
|
1258 | + $fragments['where'][] = 'pmi.uid = %d'; |
|
1259 | + $fragments['query_args']['where'][] = $account->uid; |
|
1260 | 1260 | } |
1261 | 1261 | $fragments['order_by'][] = 'pm.timestamp ASC'; |
1262 | 1262 | $fragments['order_by'][] = 'pm.mid ASC'; |
@@ -1278,13 +1278,13 @@ discard block |
||
1278 | 1278 | $fragments['primary_table'] = '{pm_index} pmi'; |
1279 | 1279 | |
1280 | 1280 | $fragments['select'][] = 'pmi.mid'; |
1281 | - $fragments['where'][] = 'pmi.thread_id IN ('. db_placeholders($threads) .')'; |
|
1282 | - $fragments['query_args']['where'] += $threads; |
|
1281 | + $fragments['where'][] = 'pmi.thread_id IN ('.db_placeholders($threads).')'; |
|
1282 | + $fragments['query_args']['where'] += $threads; |
|
1283 | 1283 | $fragments['inner_join'][] = 'INNER JOIN {pm_message} pm ON (pm.mid = pmi.mid)'; |
1284 | 1284 | if ($account) { |
1285 | 1285 | // Only load the user's messages. |
1286 | 1286 | $fragments['where'][] = 'pmi.uid = %d'; |
1287 | - $fragments['query_args']['where'][] = $account->uid; |
|
1287 | + $fragments['query_args']['where'][] = $account->uid; |
|
1288 | 1288 | } |
1289 | 1289 | if (!$load_all) { |
1290 | 1290 | // Also load deleted messages when requested. |
@@ -1320,7 +1320,7 @@ discard block |
||
1320 | 1320 | |
1321 | 1321 | $fragments['inner_join'][] = 'INNER JOIN {users} u ON (u.uid = pmi.uid)'; |
1322 | 1322 | $fragments['where'][] = 'pmi.thread_id = %d'; |
1323 | - $fragments['query_args']['where'][] = $thread_id; |
|
1323 | + $fragments['query_args']['where'][] = $thread_id; |
|
1324 | 1324 | } |
1325 | 1325 | |
1326 | 1326 | /** |
@@ -1340,7 +1340,7 @@ discard block |
||
1340 | 1340 | $fragments['where'][] = 'pmi.deleted = 0'; |
1341 | 1341 | $fragments['where'][] = 'pmi.is_new = 1'; |
1342 | 1342 | $fragments['where'][] = 'pmi.uid = %d'; |
1343 | - $fragments['query_args']['where'][] = $account->uid; |
|
1343 | + $fragments['query_args']['where'][] = $account->uid; |
|
1344 | 1344 | } |
1345 | 1345 | |
1346 | 1346 | /** |
@@ -1358,10 +1358,10 @@ discard block |
||
1358 | 1358 | $fragments['select'][] = 'u.name'; |
1359 | 1359 | // Escape the % to get it through the placeholder replacement. |
1360 | 1360 | $fragments['where'][] = "u.name LIKE '%s'"; |
1361 | - $fragments['query_args']['where'][] = $search .'%%'; |
|
1361 | + $fragments['query_args']['where'][] = $search.'%%'; |
|
1362 | 1362 | if (!empty($names)) { |
1363 | 1363 | // If there are already names selected, exclude them from the suggestions. |
1364 | - $fragments['where'][] = "u.name NOT IN (". db_placeholders($names, 'text') .")"; |
|
1364 | + $fragments['where'][] = "u.name NOT IN (".db_placeholders($names, 'text').")"; |
|
1365 | 1365 | $fragments['query_args']['where'] += $names; |
1366 | 1366 | } |
1367 | 1367 | // Only load active users and sort them by name. |
@@ -1395,7 +1395,7 @@ discard block |
||
1395 | 1395 | |
1396 | 1396 | // Only select messages that have been deleted more than n days ago. |
1397 | 1397 | $fragments['having'][] = 'MAX(pmi.deleted) < %d'; |
1398 | - $fragments['query_args']['having'][] = time() - $days * 86400; |
|
1398 | + $fragments['query_args']['having'][] = time() - $days*86400; |
|
1399 | 1399 | } |
1400 | 1400 | |
1401 | 1401 | /** |
@@ -1423,10 +1423,10 @@ discard block |
||
1423 | 1423 | if (!empty($fragment)) { |
1424 | 1424 | $query = _privatemsg_assemble_query('autocomplete', $fragment, $names); |
1425 | 1425 | $result = db_query_range($query['query'], $fragment, 0, 10); |
1426 | - $prefix = count($names) ? implode(", ", $names) .", " : ''; |
|
1426 | + $prefix = count($names) ? implode(", ", $names).", " : ''; |
|
1427 | 1427 | // 3: Build proper suggestions and print. |
1428 | 1428 | while ($user = db_fetch_object($result)) { |
1429 | - $matches[$prefix . $user->name .", "] = $user->name; |
|
1429 | + $matches[$prefix.$user->name.", "] = $user->name; |
|
1430 | 1430 | } |
1431 | 1431 | } |
1432 | 1432 | // convert to object to prevent drupal bug, see http://drupal.org/node/175361 |
@@ -1468,7 +1468,7 @@ discard block |
||
1468 | 1468 | |
1469 | 1469 | if (!empty($mids)) { |
1470 | 1470 | // Delete recipient entries in {pm_index} of the messages the user wrote. |
1471 | - db_query('DELETE FROM {pm_index} WHERE mid IN (' . db_placeholders($mids) . ')', $mids); |
|
1471 | + db_query('DELETE FROM {pm_index} WHERE mid IN ('.db_placeholders($mids).')', $mids); |
|
1472 | 1472 | } |
1473 | 1473 | |
1474 | 1474 | // Delete recipient entries of that user. |
@@ -1540,10 +1540,10 @@ discard block |
||
1540 | 1540 | if (privatemsg_user_access('write privatemsg')) { |
1541 | 1541 | $links[] = l(t('Write new message'), 'messages/new'); |
1542 | 1542 | } |
1543 | - if (privatemsg_user_access('read privatemsg') || privatemsg_user_access('read all private messages') ) { |
|
1543 | + if (privatemsg_user_access('read privatemsg') || privatemsg_user_access('read all private messages')) { |
|
1544 | 1544 | $links[] = l(privatemsg_title_callback(), 'messages'); |
1545 | 1545 | } |
1546 | - if ( count( $links ) ) { |
|
1546 | + if (count($links)) { |
|
1547 | 1547 | $block = array( |
1548 | 1548 | 'subject' => t('Private messages'), |
1549 | 1549 | 'content' => theme('item_list', $links), |
@@ -1559,7 +1559,7 @@ discard block |
||
1559 | 1559 | ); |
1560 | 1560 | $form['delete_destination'] = array( |
1561 | 1561 | '#type' => 'value', |
1562 | - '#value' => count($thread['messages']) > 1 ? 'messages/view/' . $message['thread_id'] : 'messages', |
|
1562 | + '#value' => count($thread['messages']) > 1 ? 'messages/view/'.$message['thread_id'] : 'messages', |
|
1563 | 1563 | ); |
1564 | 1564 | |
1565 | 1565 | if (privatemsg_user_access('read all private messages')) { |
@@ -1572,7 +1572,7 @@ discard block |
||
1572 | 1572 | } |
1573 | 1573 | return confirm_form($form, |
1574 | 1574 | t('Are you sure you want to delete this message?'), |
1575 | - isset($_GET['destination']) ? $_GET['destination'] : 'messages/view/'. $message['thread_id'], |
|
1575 | + isset($_GET['destination']) ? $_GET['destination'] : 'messages/view/'.$message['thread_id'], |
|
1576 | 1576 | t('This action cannot be undone.'), |
1577 | 1577 | t('Delete'), |
1578 | 1578 | t('Cancel') |
@@ -1801,7 +1801,7 @@ discard block |
||
1801 | 1801 | } |
1802 | 1802 | |
1803 | 1803 | // Don't allow replies without a body. |
1804 | - if (!empty($message['thread_id']) && ($message['body'] === NULL || $message['body'] === '') ) { |
|
1804 | + if (!empty($message['thread_id']) && ($message['body'] === NULL || $message['body'] === '')) { |
|
1805 | 1805 | if ($form) { |
1806 | 1806 | form_set_error('body', t('Disallowed to send reply without a message.')); |
1807 | 1807 | } |
@@ -1917,7 +1917,7 @@ discard block |
||
1917 | 1917 | // 2) Save message to recipients. |
1918 | 1918 | // Each recipient gets a record in the pm_index table. |
1919 | 1919 | foreach ($message['recipients'] as $recipient) { |
1920 | - if (!db_query($index_sql, $mid, $message['thread_id'], $recipient->uid, 1) ) { |
|
1920 | + if (!db_query($index_sql, $mid, $message['thread_id'], $recipient->uid, 1)) { |
|
1921 | 1921 | // We assume if one insert failed then the rest may fail too against the |
1922 | 1922 | // same table. |
1923 | 1923 | return FALSE; |
@@ -1982,9 +1982,9 @@ discard block |
||
1982 | 1982 | if (empty($validated)) { |
1983 | 1983 | return FALSE; |
1984 | 1984 | } |
1985 | - $url = 'messages/new/'. implode(',', $validated); |
|
1985 | + $url = 'messages/new/'.implode(',', $validated); |
|
1986 | 1986 | if (!is_null($subject)) { |
1987 | - $url .= '/'. $subject; |
|
1987 | + $url .= '/'.$subject; |
|
1988 | 1988 | } |
1989 | 1989 | return $url; |
1990 | 1990 | } |
@@ -2094,7 +2094,7 @@ discard block |
||
2094 | 2094 | // we do the merge because we call call_user_func_array and not drupal_alter |
2095 | 2095 | // this is necessary because otherwise we would not be able to use $args correctly (otherwise it doesnt unfold) |
2096 | 2096 | $alterargs = array(&$fragments); |
2097 | - $query_function = $query_group .'_sql_'. $query_id; |
|
2097 | + $query_function = $query_group.'_sql_'.$query_id; |
|
2098 | 2098 | if (!empty($args)) { |
2099 | 2099 | $alterargs = array_merge($alterargs, $args); |
2100 | 2100 | } |
@@ -2131,7 +2131,7 @@ discard block |
||
2131 | 2131 | // Perform the whole query assembly only if we have something to select. |
2132 | 2132 | if (!empty($SELECT)) { |
2133 | 2133 | $str_select = implode(", ", $SELECT); |
2134 | - $query = "SELECT {$str_select} FROM ". $primary_table; |
|
2134 | + $query = "SELECT {$str_select} FROM ".$primary_table; |
|
2135 | 2135 | |
2136 | 2136 | // Also build a count query which can be passed to pager_query to get a "page count" as that does not play well with queries including "GROUP BY". |
2137 | 2137 | // In most cases, "COUNT(*)" is enough to get the count query, but in queries involving a GROUP BY, we want a count of the number of groups we have, not the count of elements inside each group. |
@@ -2140,10 +2140,10 @@ discard block |
||
2140 | 2140 | // PostgreSQL does not support COUNT(sometextfield, someintfield), so I'm only using the first one |
2141 | 2141 | // Works fine for thread_id/list but may generate an error when a more complex GROUP BY is used. |
2142 | 2142 | $str_group_by_count = current($GROUP_BY); |
2143 | - $count = "SELECT COUNT(DISTINCT {$str_group_by_count}) FROM ". $primary_table; |
|
2143 | + $count = "SELECT COUNT(DISTINCT {$str_group_by_count}) FROM ".$primary_table; |
|
2144 | 2144 | } |
2145 | 2145 | else { |
2146 | - $count = "SELECT COUNT(*) FROM ". $primary_table; |
|
2146 | + $count = "SELECT COUNT(*) FROM ".$primary_table; |
|
2147 | 2147 | } |
2148 | 2148 | |
2149 | 2149 | if (!empty($INNER_JOIN)) { |
@@ -2152,24 +2152,24 @@ discard block |
||
2152 | 2152 | $count .= " {$str_inner_join}"; |
2153 | 2153 | } |
2154 | 2154 | if (!empty($WHERE)) { |
2155 | - $str_where = '('. implode(') AND (', $WHERE) .')'; |
|
2155 | + $str_where = '('.implode(') AND (', $WHERE).')'; |
|
2156 | 2156 | $query .= " WHERE {$str_where}"; |
2157 | 2157 | $count .= " WHERE {$str_where}"; |
2158 | 2158 | } |
2159 | 2159 | if (!empty($GROUP_BY)) { |
2160 | - $str_group_by = ' GROUP BY '. implode(", ", $GROUP_BY) ; |
|
2160 | + $str_group_by = ' GROUP BY '.implode(", ", $GROUP_BY); |
|
2161 | 2161 | $query .= " {$str_group_by}"; |
2162 | 2162 | } |
2163 | 2163 | if (!empty($HAVING)) { |
2164 | - $str_having = '('. implode(') AND (', $HAVING) .')'; |
|
2164 | + $str_having = '('.implode(') AND (', $HAVING).')'; |
|
2165 | 2165 | $query .= " HAVING {$str_having}"; |
2166 | 2166 | // queries containing a HAVING break the count query on pgsql. |
2167 | 2167 | // In this case, use the subquery method as outlined in http://drupal.org/node/303087#comment-1370752 . |
2168 | 2168 | // The subquery method will work for all COUNT queries, but it is thought to be much slower, so we are only using it where other cross database approaches fail. |
2169 | - $count = 'SELECT COUNT(*) FROM ('. $query .') as count'; |
|
2169 | + $count = 'SELECT COUNT(*) FROM ('.$query.') as count'; |
|
2170 | 2170 | } |
2171 | 2171 | if (!empty($ORDER_BY)) { |
2172 | - $str_order_by = ' ORDER BY '. implode(", ", $ORDER_BY) ; |
|
2172 | + $str_order_by = ' ORDER BY '.implode(", ", $ORDER_BY); |
|
2173 | 2173 | $query .= " {$str_order_by}"; |
2174 | 2174 | } |
2175 | 2175 | $QUERY_ARGS = array_merge($QUERY_ARGS['select'], $QUERY_ARGS['join'], $QUERY_ARGS['where'], $QUERY_ARGS['having']); |
@@ -2234,7 +2234,7 @@ discard block |
||
2234 | 2234 | '#attributes' => array('class' => 'privatemsg-action-button'), |
2235 | 2235 | ); |
2236 | 2236 | // JS for hiding the execute button. |
2237 | - drupal_add_js(drupal_get_path('module', 'privatemsg') .'/privatemsg-list.js'); |
|
2237 | + drupal_add_js(drupal_get_path('module', 'privatemsg').'/privatemsg-list.js'); |
|
2238 | 2238 | return $form; |
2239 | 2239 | } |
2240 | 2240 | |
@@ -2259,7 +2259,7 @@ discard block |
||
2259 | 2259 | } |
2260 | 2260 | // Merge status and uid with the threads list. array_merge() will not overwrite/ignore thread_id 1. |
2261 | 2261 | $params = array_merge(array($status, $account->uid), $threads); |
2262 | - db_query('UPDATE {pm_index} SET is_new = %d WHERE uid = %d AND thread_id IN ('. db_placeholders($threads) .')', $params); |
|
2262 | + db_query('UPDATE {pm_index} SET is_new = %d WHERE uid = %d AND thread_id IN ('.db_placeholders($threads).')', $params); |
|
2263 | 2263 | |
2264 | 2264 | if ($status == PRIVATEMSG_UNREAD) { |
2265 | 2265 | drupal_set_message(format_plural(count($threads), 'Marked 1 thread as unread.', 'Marked @count threads as unread.')); |
@@ -2286,12 +2286,12 @@ discard block |
||
2286 | 2286 | $select_header['#weight'] = -50; |
2287 | 2287 | |
2288 | 2288 | // theme() doesn't include the theme file for patterns, we need to do it manually. |
2289 | - include_once drupal_get_path('module', 'privatemsg') .'/privatemsg.theme.inc'; |
|
2289 | + include_once drupal_get_path('module', 'privatemsg').'/privatemsg.theme.inc'; |
|
2290 | 2290 | |
2291 | 2291 | $header = array($select_header); |
2292 | 2292 | foreach ($keys as $key) { |
2293 | 2293 | // First, try to load a specific theme for that header, if not present, use the default. |
2294 | - if ($return = theme(array('privatemsg_list_header__'. $key, 'privatemsg_list_header'))) { |
|
2294 | + if ($return = theme(array('privatemsg_list_header__'.$key, 'privatemsg_list_header'))) { |
|
2295 | 2295 | // The default theme returns nothing, only store the value if we have something. |
2296 | 2296 | $header[$key] = $return; |
2297 | 2297 | } |
@@ -2312,7 +2312,7 @@ discard block |
||
2312 | 2312 | function _privatemsg_list_headers_fallback($keys) { |
2313 | 2313 | $header = array(); |
2314 | 2314 | foreach ($keys as $key) { |
2315 | - $theme_function = 'phptemplate_privatemsg_list_header__' . $key; |
|
2315 | + $theme_function = 'phptemplate_privatemsg_list_header__'.$key; |
|
2316 | 2316 | if (function_exists($theme_function)) { |
2317 | 2317 | $header[$key] = $theme_function(); |
2318 | 2318 | } |
@@ -2340,7 +2340,7 @@ discard block |
||
2340 | 2340 | } |
2341 | 2341 | foreach ($thread as $key => $data) { |
2342 | 2342 | // First, try to load a specific theme for that field, if not present, use the default. |
2343 | - if ($return = theme(array('privatemsg_list_field__'. $key, 'privatemsg_list_field'), $thread)) { |
|
2343 | + if ($return = theme(array('privatemsg_list_field__'.$key, 'privatemsg_list_field'), $thread)) { |
|
2344 | 2344 | // The default theme returns nothing, only store the value if we have something. |
2345 | 2345 | $row['data'][$key] = $return; |
2346 | 2346 | } |
@@ -2360,7 +2360,7 @@ discard block |
||
2360 | 2360 | function _privatemsg_list_thread_fallback($thread) { |
2361 | 2361 | $row_data = array(); |
2362 | 2362 | foreach ($thread as $key => $data) { |
2363 | - $theme_function = 'phptemplate_privatemsg_list_field__' . $key; |
|
2363 | + $theme_function = 'phptemplate_privatemsg_list_field__'.$key; |
|
2364 | 2364 | if (function_exists($theme_function)) { |
2365 | 2365 | $row_data[$key] = $theme_function($thread); |
2366 | 2366 | } |
@@ -2559,6 +2559,6 @@ discard block |
||
2559 | 2559 | function privatemsg_views_api() { |
2560 | 2560 | return array( |
2561 | 2561 | 'api' => 2, |
2562 | - 'path' => drupal_get_path('module', 'privatemsg') . '/views', |
|
2562 | + 'path' => drupal_get_path('module', 'privatemsg').'/views', |
|
2563 | 2563 | ); |
2564 | 2564 | } |
@@ -104,8 +104,7 @@ discard block |
||
104 | 104 | $last = array_pop($to); |
105 | 105 | if (count($to) == 0) { // Only one participant |
106 | 106 | return t("From !last", array('!last' => $last)); |
107 | - } |
|
108 | - else { // Multipe participants.. |
|
107 | + } else { // Multipe participants.. |
|
109 | 108 | $participants = implode(', ', $to); |
110 | 109 | return t('Participants: !participants and !last', array('!participants' => $participants, '!last' => $last)); |
111 | 110 | } |
@@ -325,11 +324,9 @@ discard block |
||
325 | 324 | if (is_null($start)) { |
326 | 325 | if (isset($_GET['start']) && $_GET['start'] < $thread['message_count']) { |
327 | 326 | $start = $_GET['start']; |
328 | - } |
|
329 | - elseif (!variable_get('privatemsg_view_use_max_as_default', FALSE) && $max_amount == PRIVATEMSG_UNLIMITED) { |
|
327 | + } elseif (!variable_get('privatemsg_view_use_max_as_default', FALSE) && $max_amount == PRIVATEMSG_UNLIMITED) { |
|
330 | 328 | $start = PRIVATEMSG_UNLIMITED; |
331 | - } |
|
332 | - else { |
|
329 | + } else { |
|
333 | 330 | $start = $thread['message_count'] - (variable_get('privatemsg_view_use_max_as_default', FALSE) ? variable_get('privatemsg_view_default_amount', 10) : $max_amount); |
334 | 331 | } |
335 | 332 | } |
@@ -338,8 +335,7 @@ discard block |
||
338 | 335 | if ($max_amount == PRIVATEMSG_UNLIMITED) { |
339 | 336 | $last_page = 0; |
340 | 337 | $max_amount = $thread['message_count']; |
341 | - } |
|
342 | - else { |
|
338 | + } else { |
|
343 | 339 | // Calculate the number of messages on the "last" page to avoid |
344 | 340 | // message overlap. |
345 | 341 | // Note - the last page lists the earliest messages, not the latest. |
@@ -360,8 +356,7 @@ discard block |
||
360 | 356 | } |
361 | 357 | if ($start - $max_amount >= 0) { |
362 | 358 | $thread['older_start'] = $start - $max_amount; |
363 | - } |
|
364 | - elseif ($start > 0) { |
|
359 | + } elseif ($start > 0) { |
|
365 | 360 | $thread['older_start'] = 0; |
366 | 361 | } |
367 | 362 | |
@@ -377,8 +372,7 @@ discard block |
||
377 | 372 | // Visual counts start from 1 instead of zero, so plus one. |
378 | 373 | $thread['from'] = $start + 1; |
379 | 374 | $conversation = db_query_range($query['query'], $start, $max_amount); |
380 | - } |
|
381 | - else { |
|
375 | + } else { |
|
382 | 376 | $conversation = db_query($query['query']); |
383 | 377 | } |
384 | 378 | $mids = array(); |
@@ -398,12 +392,10 @@ discard block |
||
398 | 392 | // Thread does not exist, display 404. |
399 | 393 | $thread = FALSE; |
400 | 394 | } |
401 | - } |
|
402 | - else { |
|
395 | + } else { |
|
403 | 396 | $thread = FALSE; |
404 | 397 | } |
405 | - } |
|
406 | - else { |
|
398 | + } else { |
|
407 | 399 | // General data, assume subject is the same for all messages of that thread. |
408 | 400 | $thread['user'] = $account; |
409 | 401 | $message = current($thread['messages']); |
@@ -689,8 +681,7 @@ discard block |
||
689 | 681 | // Trying to view someone else's messages... |
690 | 682 | if (!privatemsg_user_access('read all private messages')) { |
691 | 683 | drupal_set_message(t("You do not have sufficient rights to view someone else's messages"), 'warning'); |
692 | - } |
|
693 | - elseif ($account_check = user_load(array('uid' => $uid))) { |
|
684 | + } elseif ($account_check = user_load(array('uid' => $uid))) { |
|
694 | 685 | // Has rights and user_load return an array so user does exist |
695 | 686 | $account = $account_check; |
696 | 687 | } |
@@ -852,11 +843,9 @@ discard block |
||
852 | 843 | // convert recipients to array of user objects |
853 | 844 | if (!empty($recipients) && is_string($recipients) || is_int($recipients)) { |
854 | 845 | $recipients = _privatemsg_generate_user_array($recipients); |
855 | - } |
|
856 | - elseif (is_object($recipients)) { |
|
846 | + } elseif (is_object($recipients)) { |
|
857 | 847 | $recipients = array($recipients); |
858 | - } |
|
859 | - elseif (empty($recipients) && is_string($recipients)) { |
|
848 | + } elseif (empty($recipients) && is_string($recipients)) { |
|
860 | 849 | $recipients = array(); |
861 | 850 | } |
862 | 851 | |
@@ -879,8 +868,7 @@ discard block |
||
879 | 868 | } |
880 | 869 | $to[] = $recipient->name; |
881 | 870 | $to_themed[$recipient->uid] = theme('username', $recipient); |
882 | - } |
|
883 | - else { |
|
871 | + } else { |
|
884 | 872 | // Recipient list contains blocked users. |
885 | 873 | $blocked = TRUE; |
886 | 874 | } |
@@ -905,8 +893,7 @@ discard block |
||
905 | 893 | } |
906 | 894 | if (!$thread_id && !empty($recipients_string)) { |
907 | 895 | drupal_set_title(t('Write new message to %recipient', array('%recipient' => $recipients_string))); |
908 | - } |
|
909 | - elseif (!$thread_id) { |
|
896 | + } elseif (!$thread_id) { |
|
910 | 897 | drupal_set_title(t('Write new message')); |
911 | 898 | } |
912 | 899 | |
@@ -982,8 +969,7 @@ discard block |
||
982 | 969 | $title = t('Cancel'); |
983 | 970 | if (isset($_REQUEST['destination'])) { |
984 | 971 | $url = $_REQUEST['destination']; |
985 | - } |
|
986 | - elseif (!is_null($thread_id)) { |
|
972 | + } elseif (!is_null($thread_id)) { |
|
987 | 973 | $url = $_GET['q']; |
988 | 974 | $title = t('Clear'); |
989 | 975 | } |
@@ -1034,8 +1020,7 @@ discard block |
||
1034 | 1020 | // Only parse the user string for a new thread. |
1035 | 1021 | if (!isset($message['thread_id'])) { |
1036 | 1022 | list($message['recipients'], $invalid) = _privatemsg_parse_userstring($message['recipient']); |
1037 | - } |
|
1038 | - else { |
|
1023 | + } else { |
|
1039 | 1024 | // Load participants. |
1040 | 1025 | $message['recipients'] = _privatemsg_load_thread_participants($message['thread_id']); |
1041 | 1026 | // Remove author. |
@@ -1133,8 +1118,7 @@ discard block |
||
1133 | 1118 | } |
1134 | 1119 | if ($status !== FALSE ) { |
1135 | 1120 | drupal_set_message(t('A message has been sent to !recipients.', array('!recipients' => implode(', ', $recipient_names)))); |
1136 | - } |
|
1137 | - else { |
|
1121 | + } else { |
|
1138 | 1122 | drupal_set_message(t('An attempt to send a message <em>may have failed</em> when sending to !recipients.', array('!recipients' => implode(', ', $recipient_names))), 'error'); |
1139 | 1123 | } |
1140 | 1124 | } |
@@ -1195,8 +1179,7 @@ discard block |
||
1195 | 1179 | $fragments['select'][] = "array_to_string(array(SELECT DISTINCT textin(int4out(pmia.uid)) |
1196 | 1180 | FROM {pm_index} pmia |
1197 | 1181 | WHERE pmia.thread_id = pmi.thread_id), ',') AS participants"; |
1198 | - } |
|
1199 | - else { |
|
1182 | + } else { |
|
1200 | 1183 | $fragments['select'][] = '(SELECT GROUP_CONCAT(DISTINCT pmia.uid SEPARATOR ",") |
1201 | 1184 | FROM {pm_index} pmia |
1202 | 1185 | WHERE pmia.thread_id = pmi.thread_id) AS participants'; |
@@ -1490,8 +1473,7 @@ discard block |
||
1490 | 1473 | ); |
1491 | 1474 | |
1492 | 1475 | return $blocks; |
1493 | - } |
|
1494 | - elseif ('view' == $op) { |
|
1476 | + } elseif ('view' == $op) { |
|
1495 | 1477 | $block = array(); |
1496 | 1478 | switch ($delta) { |
1497 | 1479 | case 'privatemsg-menu': |
@@ -1587,8 +1569,7 @@ discard block |
||
1587 | 1569 | if (isset($form_state['values']['delete_options']) && $form_state['values']['delete_options']) { |
1588 | 1570 | privatemsg_message_change_delete($form_state['values']['pmid'], 1); |
1589 | 1571 | drupal_set_message(t('Message has been deleted for all users.')); |
1590 | - } |
|
1591 | - else { |
|
1572 | + } else { |
|
1592 | 1573 | privatemsg_message_change_delete($form_state['values']['pmid'], 1, $account); |
1593 | 1574 | drupal_set_message(t('Message has been deleted.')); |
1594 | 1575 | } |
@@ -1617,8 +1598,7 @@ discard block |
||
1617 | 1598 | |
1618 | 1599 | if ($account) { |
1619 | 1600 | db_query('UPDATE {pm_index} SET deleted = %d WHERE mid = %d AND uid = %d', $delete_value, $pmid, $account->uid); |
1620 | - } |
|
1621 | - else { |
|
1601 | + } else { |
|
1622 | 1602 | // Mark deleted for all users. |
1623 | 1603 | db_query('UPDATE {pm_index} SET deleted = %d WHERE mid = %d', $delete_value, $pmid); |
1624 | 1604 | } |
@@ -1779,8 +1759,7 @@ discard block |
||
1779 | 1759 | 'success' => FALSE, |
1780 | 1760 | 'messages' => $messages, |
1781 | 1761 | ); |
1782 | - } |
|
1783 | - else { |
|
1762 | + } else { |
|
1784 | 1763 | $messages['error'][] = t('User @user is not allowed to write messages', array('@user' => $message['author']->name)); |
1785 | 1764 | return array( |
1786 | 1765 | 'success' => FALSE, |
@@ -1794,8 +1773,7 @@ discard block |
||
1794 | 1773 | if (empty($message['subject'])) { |
1795 | 1774 | if ($form) { |
1796 | 1775 | form_set_error('subject', t('Disallowed to send a message without subject')); |
1797 | - } |
|
1798 | - else { |
|
1776 | + } else { |
|
1799 | 1777 | $messages['error'][] = t('Disallowed to send a message without subject'); |
1800 | 1778 | } |
1801 | 1779 | } |
@@ -1804,8 +1782,7 @@ discard block |
||
1804 | 1782 | if (!empty($message['thread_id']) && ($message['body'] === NULL || $message['body'] === '') ) { |
1805 | 1783 | if ($form) { |
1806 | 1784 | form_set_error('body', t('Disallowed to send reply without a message.')); |
1807 | - } |
|
1808 | - else { |
|
1785 | + } else { |
|
1809 | 1786 | $messages['error'][] = t('Disallowed to send reply without a message.'); |
1810 | 1787 | } |
1811 | 1788 | } |
@@ -1819,8 +1796,7 @@ discard block |
||
1819 | 1796 | if (!filter_access($message['format'])) { |
1820 | 1797 | if ($form) { |
1821 | 1798 | form_set_error('format', t('You are not allowed to use the specified input format.')); |
1822 | - } |
|
1823 | - else { |
|
1799 | + } else { |
|
1824 | 1800 | $messages['error'][] = t('User @user is not allowed to use the specified input format.', array('@user' => $message['author']->name)); |
1825 | 1801 | } |
1826 | 1802 | } |
@@ -1831,8 +1807,7 @@ discard block |
||
1831 | 1807 | if (empty($message['recipients']) || !is_array($message['recipients'])) { |
1832 | 1808 | if ($form) { |
1833 | 1809 | form_set_error('to', t('Disallowed to send a message without at least one valid recipient')); |
1834 | - } |
|
1835 | - else { |
|
1810 | + } else { |
|
1836 | 1811 | $messages['error'][] = t('Disallowed to send a message without at least one valid recipient'); |
1837 | 1812 | } |
1838 | 1813 | } |
@@ -1842,8 +1817,7 @@ discard block |
||
1842 | 1817 | unset($message['recipients'][$blocked['uid']]); |
1843 | 1818 | if ($form) { |
1844 | 1819 | drupal_set_message($blocked['message'], 'warning'); |
1845 | - } |
|
1846 | - else { |
|
1820 | + } else { |
|
1847 | 1821 | $messages['warning'][] = $blocked['message']; |
1848 | 1822 | } |
1849 | 1823 | } |
@@ -1853,8 +1827,7 @@ discard block |
||
1853 | 1827 | if (empty($message['recipients'])) { |
1854 | 1828 | if ($form) { |
1855 | 1829 | form_set_error('to', t('Disallowed to send message because all recipients are blocked')); |
1856 | - } |
|
1857 | - else { |
|
1830 | + } else { |
|
1858 | 1831 | $messages['error'][] = t('Disallowed to send message because all recipients are blocked'); |
1859 | 1832 | } |
1860 | 1833 | } |
@@ -2060,8 +2033,7 @@ discard block |
||
2060 | 2033 | if (is_array($query)) { |
2061 | 2034 | $query_id = $query[0]; |
2062 | 2035 | $query_group = $query[1]; |
2063 | - } |
|
2064 | - else { |
|
2036 | + } else { |
|
2065 | 2037 | $query_id = $query; |
2066 | 2038 | $query_group = 'privatemsg'; |
2067 | 2039 | } |
@@ -2141,8 +2113,7 @@ discard block |
||
2141 | 2113 | // Works fine for thread_id/list but may generate an error when a more complex GROUP BY is used. |
2142 | 2114 | $str_group_by_count = current($GROUP_BY); |
2143 | 2115 | $count = "SELECT COUNT(DISTINCT {$str_group_by_count}) FROM ". $primary_table; |
2144 | - } |
|
2145 | - else { |
|
2116 | + } else { |
|
2146 | 2117 | $count = "SELECT COUNT(*) FROM ". $primary_table; |
2147 | 2118 | } |
2148 | 2119 | |
@@ -2263,8 +2234,7 @@ discard block |
||
2263 | 2234 | |
2264 | 2235 | if ($status == PRIVATEMSG_UNREAD) { |
2265 | 2236 | drupal_set_message(format_plural(count($threads), 'Marked 1 thread as unread.', 'Marked @count threads as unread.')); |
2266 | - } |
|
2267 | - else { |
|
2237 | + } else { |
|
2268 | 2238 | drupal_set_message(format_plural(count($threads), 'Marked 1 thread as read.', 'Marked @count threads as read.')); |
2269 | 2239 | } |
2270 | 2240 | } |
@@ -2445,8 +2415,7 @@ discard block |
||
2445 | 2415 | // Add in callback arguments if present. |
2446 | 2416 | if (isset($operation['callback arguments'])) { |
2447 | 2417 | $args = array_merge(array($threads), $operation['callback arguments']); |
2448 | - } |
|
2449 | - else { |
|
2418 | + } else { |
|
2450 | 2419 | $args = array($threads); |
2451 | 2420 | } |
2452 | 2421 | |
@@ -2463,8 +2432,7 @@ discard block |
||
2463 | 2432 | // Add in callback arguments if present. |
2464 | 2433 | if (isset($operation['undo callback arguments'])) { |
2465 | 2434 | $undo_args = array_merge(array($threads), $operation['undo callback arguments']); |
2466 | - } |
|
2467 | - else { |
|
2435 | + } else { |
|
2468 | 2436 | $undo_args = array($threads); |
2469 | 2437 | } |
2470 | 2438 | |
@@ -2516,8 +2484,7 @@ discard block |
||
2516 | 2484 | |
2517 | 2485 | if ($delete) { |
2518 | 2486 | drupal_set_message(format_plural(count($threads), 'Deleted 1 thread.', 'Deleted @count threads.')); |
2519 | - } |
|
2520 | - else { |
|
2487 | + } else { |
|
2521 | 2488 | drupal_set_message(format_plural(count($threads), 'Restored 1 thread.', 'Restored @count threads.')); |
2522 | 2489 | } |
2523 | 2490 | } |
@@ -55,7 +55,7 @@ |
||
55 | 55 | * An array containing editor properties as returned from hook_editor(). |
56 | 56 | * |
57 | 57 | * @return |
58 | - * The installed editor version. |
|
58 | + null|string The installed editor version. |
|
59 | 59 | */ |
60 | 60 | function wysiwyg_ckeditor_version($editor) { |
61 | 61 | $library = $editor['library path'] . '/ckeditor.js'; |
@@ -9,23 +9,23 @@ discard block |
||
9 | 9 | * Plugin implementation of hook_editor(). |
10 | 10 | */ |
11 | 11 | function wysiwyg_ckeditor_editor() { |
12 | - $editor['ckeditor'] = array( |
|
12 | + $editor['ckeditor'] = array( |
|
13 | 13 | 'title' => 'CKEditor', |
14 | 14 | 'vendor url' => 'http://ckeditor.com', |
15 | 15 | 'download url' => 'http://ckeditor.com/download', |
16 | 16 | 'libraries' => array( |
17 | - '' => array( |
|
17 | + '' => array( |
|
18 | 18 | 'title' => 'Default', |
19 | 19 | 'files' => array( |
20 | - 'ckeditor.js' => array('preprocess' => FALSE), |
|
20 | + 'ckeditor.js' => array('preprocess' => FALSE), |
|
21 | 21 | ), |
22 | - ), |
|
23 | - 'src' => array( |
|
22 | + ), |
|
23 | + 'src' => array( |
|
24 | 24 | 'title' => 'Source', |
25 | 25 | 'files' => array( |
26 | - 'ckeditor_source.js' => array('preprocess' => FALSE), |
|
26 | + 'ckeditor_source.js' => array('preprocess' => FALSE), |
|
27 | + ), |
|
27 | 28 | ), |
28 | - ), |
|
29 | 29 | ), |
30 | 30 | 'version callback' => 'wysiwyg_ckeditor_version', |
31 | 31 | 'themes callback' => 'wysiwyg_ckeditor_themes', |
@@ -33,19 +33,19 @@ discard block |
||
33 | 33 | 'plugin callback' => 'wysiwyg_ckeditor_plugins', |
34 | 34 | 'plugin settings callback' => 'wysiwyg_ckeditor_plugin_settings', |
35 | 35 | 'proxy plugin' => array( |
36 | - 'drupal' => array( |
|
36 | + 'drupal' => array( |
|
37 | 37 | 'load' => TRUE, |
38 | 38 | 'proxy' => TRUE, |
39 | - ), |
|
39 | + ), |
|
40 | 40 | ), |
41 | 41 | 'proxy plugin settings callback' => 'wysiwyg_ckeditor_proxy_plugin_settings', |
42 | 42 | 'versions' => array( |
43 | - '3.0.0.3665' => array( |
|
43 | + '3.0.0.3665' => array( |
|
44 | 44 | 'js files' => array('ckeditor-3.0.js'), |
45 | - ), |
|
45 | + ), |
|
46 | 46 | ), |
47 | - ); |
|
48 | - return $editor; |
|
47 | + ); |
|
48 | + return $editor; |
|
49 | 49 | } |
50 | 50 | |
51 | 51 | /** |
@@ -58,25 +58,25 @@ discard block |
||
58 | 58 | * The installed editor version. |
59 | 59 | */ |
60 | 60 | function wysiwyg_ckeditor_version($editor) { |
61 | - $library = $editor['library path'] . '/ckeditor.js'; |
|
62 | - if (!file_exists($library)) { |
|
61 | + $library = $editor['library path'] . '/ckeditor.js'; |
|
62 | + if (!file_exists($library)) { |
|
63 | 63 | return; |
64 | - } |
|
65 | - $library = fopen($library, 'r'); |
|
66 | - $max_lines = 8; |
|
67 | - while ($max_lines && $line = fgets($library, 500)) { |
|
64 | + } |
|
65 | + $library = fopen($library, 'r'); |
|
66 | + $max_lines = 8; |
|
67 | + while ($max_lines && $line = fgets($library, 500)) { |
|
68 | 68 | // version:'CKEditor 3.0 SVN',revision:'3665' |
69 | 69 | // version:'3.0 RC',revision:'3753' |
70 | 70 | // version:'3.0.1',revision:'4391' |
71 | 71 | if (preg_match('@version:\'(?:CKEditor )?([\d\.]+)(?:.+revision:\'([\d]+))?@', $line, $version)) { |
72 | - fclose($library); |
|
73 | - // Version numbers need to have three parts since 3.0.1. |
|
74 | - $version[1] = preg_replace('/^(\d+)\.(\d+)$/', '${1}.${2}.0', $version[1]); |
|
75 | - return $version[1] . '.' . $version[2]; |
|
72 | + fclose($library); |
|
73 | + // Version numbers need to have three parts since 3.0.1. |
|
74 | + $version[1] = preg_replace('/^(\d+)\.(\d+)$/', '${1}.${2}.0', $version[1]); |
|
75 | + return $version[1] . '.' . $version[2]; |
|
76 | 76 | } |
77 | 77 | $max_lines--; |
78 | - } |
|
79 | - fclose($library); |
|
78 | + } |
|
79 | + fclose($library); |
|
80 | 80 | } |
81 | 81 | |
82 | 82 | /** |
@@ -92,23 +92,23 @@ discard block |
||
92 | 92 | * theme name. |
93 | 93 | */ |
94 | 94 | function wysiwyg_ckeditor_themes($editor, $profile) { |
95 | - // @todo Skins are not themes but this will do for now. |
|
96 | - $path = $editor['library path'] . '/skins/'; |
|
97 | - if (file_exists($path) && ($dir_handle = opendir($path))) { |
|
95 | + // @todo Skins are not themes but this will do for now. |
|
96 | + $path = $editor['library path'] . '/skins/'; |
|
97 | + if (file_exists($path) && ($dir_handle = opendir($path))) { |
|
98 | 98 | $themes = array(); |
99 | 99 | while ($file = readdir($dir_handle)) { |
100 | - if (is_dir($path . $file) && substr($file, 0, 1) != '.' && $file != 'CVS') { |
|
100 | + if (is_dir($path . $file) && substr($file, 0, 1) != '.' && $file != 'CVS') { |
|
101 | 101 | $themes[] = $file; |
102 | - } |
|
102 | + } |
|
103 | 103 | } |
104 | 104 | closedir($dir_handle); |
105 | 105 | natcasesort($themes); |
106 | 106 | $themes = array_values($themes); |
107 | 107 | return !empty($themes) ? $themes : array('default'); |
108 | - } |
|
109 | - else { |
|
108 | + } |
|
109 | + else { |
|
110 | 110 | return array('default'); |
111 | - } |
|
111 | + } |
|
112 | 112 | } |
113 | 113 | |
114 | 114 | /** |
@@ -126,7 +126,7 @@ discard block |
||
126 | 126 | * Drupal.settings.wysiwyg.configs.{editor} |
127 | 127 | */ |
128 | 128 | function wysiwyg_ckeditor_settings($editor, $config, $theme) { |
129 | - $settings = array( |
|
129 | + $settings = array( |
|
130 | 130 | 'baseHref' => $GLOBALS['base_url'] . '/', |
131 | 131 | 'width' => '100%', |
132 | 132 | // For better compatibility with smaller textareas. |
@@ -142,155 +142,155 @@ discard block |
||
142 | 142 | // @todo Check whether completely disabling ProcessHTMLEntities is an option. |
143 | 143 | 'entities_latin' => FALSE, |
144 | 144 | 'entities_greek' => FALSE, |
145 | - ); |
|
145 | + ); |
|
146 | 146 | |
147 | - // Add HTML block format settings; common block formats are already predefined |
|
148 | - // by CKEditor. |
|
149 | - if (isset($config['block_formats'])) { |
|
147 | + // Add HTML block format settings; common block formats are already predefined |
|
148 | + // by CKEditor. |
|
149 | + if (isset($config['block_formats'])) { |
|
150 | 150 | $block_formats = explode(',', drupal_strtolower($config['block_formats'])); |
151 | 151 | $predefined_formats = array('h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'p', 'pre', 'address', 'div'); |
152 | 152 | foreach (array_diff($block_formats, $predefined_formats) as $tag) { |
153 | - $tag = trim($tag); |
|
154 | - $settings["format_$tag"] = array('element' => $tag); |
|
153 | + $tag = trim($tag); |
|
154 | + $settings["format_$tag"] = array('element' => $tag); |
|
155 | 155 | } |
156 | 156 | $settings['format_tags'] = implode(';', $block_formats); |
157 | - } |
|
157 | + } |
|
158 | 158 | |
159 | - if (isset($config['apply_source_formatting'])) { |
|
159 | + if (isset($config['apply_source_formatting'])) { |
|
160 | 160 | $settings['apply_source_formatting'] = $config['apply_source_formatting']; |
161 | - } |
|
161 | + } |
|
162 | 162 | |
163 | - if (isset($config['css_setting'])) { |
|
163 | + if (isset($config['css_setting'])) { |
|
164 | 164 | // Versions below 3.0.1 could only handle one stylesheet. |
165 | 165 | if (version_compare($editor['installed version'], '3.0.1.4391', '<')) { |
166 | - if ($config['css_setting'] == 'theme') { |
|
166 | + if ($config['css_setting'] == 'theme') { |
|
167 | 167 | $settings['contentsCss'] = reset(wysiwyg_get_css()); |
168 | - } |
|
169 | - elseif ($config['css_setting'] == 'self' && isset($config['css_path'])) { |
|
168 | + } |
|
169 | + elseif ($config['css_setting'] == 'self' && isset($config['css_path'])) { |
|
170 | 170 | $settings['contentsCss'] = strtr($config['css_path'], array('%b' => base_path(), '%t' => path_to_theme())); |
171 | - } |
|
171 | + } |
|
172 | 172 | } |
173 | 173 | else { |
174 | - if ($config['css_setting'] == 'theme') { |
|
174 | + if ($config['css_setting'] == 'theme') { |
|
175 | 175 | $settings['contentsCss'] = wysiwyg_get_css(); |
176 | - } |
|
177 | - elseif ($config['css_setting'] == 'self' && isset($config['css_path'])) { |
|
176 | + } |
|
177 | + elseif ($config['css_setting'] == 'self' && isset($config['css_path'])) { |
|
178 | 178 | $settings['contentsCss'] = explode(',', strtr($config['css_path'], array('%b' => base_path(), '%t' => path_to_theme()))); |
179 | - } |
|
179 | + } |
|
180 | + } |
|
180 | 181 | } |
181 | - } |
|
182 | 182 | |
183 | - if (isset($config['language'])) { |
|
183 | + if (isset($config['language'])) { |
|
184 | 184 | $settings['language'] = $config['language']; |
185 | - } |
|
186 | - if (isset($config['resizing'])) { |
|
185 | + } |
|
186 | + if (isset($config['resizing'])) { |
|
187 | 187 | // CKEditor tests "!== false", so ensure it is a Boolean. |
188 | 188 | $settings['resize_enabled'] = (bool) $config['resizing']; |
189 | - } |
|
190 | - if (isset($config['toolbar_loc'])) { |
|
189 | + } |
|
190 | + if (isset($config['toolbar_loc'])) { |
|
191 | 191 | $settings['toolbarLocation'] = $config['toolbar_loc']; |
192 | - } |
|
192 | + } |
|
193 | 193 | |
194 | - $settings['toolbar'] = array(); |
|
195 | - if (!empty($config['buttons'])) { |
|
194 | + $settings['toolbar'] = array(); |
|
195 | + if (!empty($config['buttons'])) { |
|
196 | 196 | $extra_plugins = array(); |
197 | 197 | $plugins = wysiwyg_get_plugins($editor['name']); |
198 | 198 | foreach ($config['buttons'] as $plugin => $buttons) { |
199 | - foreach ($buttons as $button => $enabled) { |
|
199 | + foreach ($buttons as $button => $enabled) { |
|
200 | 200 | // Iterate separately over buttons and extensions properties. |
201 | 201 | foreach (array('buttons', 'extensions') as $type) { |
202 | - // Skip unavailable plugins. |
|
203 | - if (!isset($plugins[$plugin][$type][$button])) { |
|
202 | + // Skip unavailable plugins. |
|
203 | + if (!isset($plugins[$plugin][$type][$button])) { |
|
204 | 204 | continue; |
205 | - } |
|
206 | - // Add buttons. |
|
207 | - if ($type == 'buttons') { |
|
205 | + } |
|
206 | + // Add buttons. |
|
207 | + if ($type == 'buttons') { |
|
208 | 208 | $settings['toolbar'][] = $button; |
209 | - } |
|
210 | - // Add external Drupal plugins to the list of extensions. |
|
211 | - if ($type == 'buttons' && !empty($plugins[$plugin]['proxy'])) { |
|
209 | + } |
|
210 | + // Add external Drupal plugins to the list of extensions. |
|
211 | + if ($type == 'buttons' && !empty($plugins[$plugin]['proxy'])) { |
|
212 | 212 | $extra_plugins[] = $button; |
213 | - } |
|
214 | - // Add external plugins to the list of extensions. |
|
215 | - elseif ($type == 'buttons' && empty($plugins[$plugin]['internal'])) { |
|
213 | + } |
|
214 | + // Add external plugins to the list of extensions. |
|
215 | + elseif ($type == 'buttons' && empty($plugins[$plugin]['internal'])) { |
|
216 | 216 | $extra_plugins[] = $plugin; |
217 | - } |
|
218 | - // Add internal buttons that also need to be loaded as extension. |
|
219 | - elseif ($type == 'buttons' && !empty($plugins[$plugin]['load'])) { |
|
217 | + } |
|
218 | + // Add internal buttons that also need to be loaded as extension. |
|
219 | + elseif ($type == 'buttons' && !empty($plugins[$plugin]['load'])) { |
|
220 | 220 | $extra_plugins[] = $plugin; |
221 | - } |
|
222 | - // Add plain extensions. |
|
223 | - elseif ($type == 'extensions' && !empty($plugins[$plugin]['load'])) { |
|
221 | + } |
|
222 | + // Add plain extensions. |
|
223 | + elseif ($type == 'extensions' && !empty($plugins[$plugin]['load'])) { |
|
224 | 224 | $extra_plugins[] = $plugin; |
225 | - } |
|
226 | - // Allow plugins to add or override global configuration settings. |
|
227 | - if (!empty($plugins[$plugin]['options'])) { |
|
225 | + } |
|
226 | + // Allow plugins to add or override global configuration settings. |
|
227 | + if (!empty($plugins[$plugin]['options'])) { |
|
228 | 228 | $settings = array_merge($settings, $plugins[$plugin]['options']); |
229 | - } |
|
229 | + } |
|
230 | + } |
|
230 | 231 | } |
231 | - } |
|
232 | 232 | } |
233 | 233 | if (!empty($extra_plugins)) { |
234 | - $settings['extraPlugins'] = implode(',', $extra_plugins); |
|
234 | + $settings['extraPlugins'] = implode(',', $extra_plugins); |
|
235 | 235 | } |
236 | - } |
|
237 | - // For now, all buttons are placed into one row. |
|
238 | - $settings['toolbar'] = array($settings['toolbar']); |
|
236 | + } |
|
237 | + // For now, all buttons are placed into one row. |
|
238 | + $settings['toolbar'] = array($settings['toolbar']); |
|
239 | 239 | |
240 | - return $settings; |
|
240 | + return $settings; |
|
241 | 241 | } |
242 | 242 | |
243 | 243 | /** |
244 | 244 | * Build a JS settings array of native external plugins that need to be loaded separately. |
245 | 245 | */ |
246 | 246 | function wysiwyg_ckeditor_plugin_settings($editor, $profile, $plugins) { |
247 | - $settings = array(); |
|
248 | - foreach ($plugins as $name => $plugin) { |
|
247 | + $settings = array(); |
|
248 | + foreach ($plugins as $name => $plugin) { |
|
249 | 249 | // Register all plugins that need to be loaded. |
250 | 250 | if (!empty($plugin['load'])) { |
251 | - $settings[$name] = array(); |
|
252 | - // Add path for native external plugins. |
|
253 | - if (empty($plugin['internal']) && isset($plugin['path'])) { |
|
251 | + $settings[$name] = array(); |
|
252 | + // Add path for native external plugins. |
|
253 | + if (empty($plugin['internal']) && isset($plugin['path'])) { |
|
254 | 254 | $settings[$name]['path'] = base_path() . $plugin['path'] . '/'; |
255 | - } |
|
256 | - // Force native internal plugins to use the standard path. |
|
257 | - else { |
|
255 | + } |
|
256 | + // Force native internal plugins to use the standard path. |
|
257 | + else { |
|
258 | 258 | $settings[$name]['path'] = base_path() . $editor['library path'] . '/plugins/' . $name . '/'; |
259 | - } |
|
260 | - // CKEditor defaults to 'plugin.js' on its own when filename is not set. |
|
261 | - if (!empty($plugin['filename'])) { |
|
259 | + } |
|
260 | + // CKEditor defaults to 'plugin.js' on its own when filename is not set. |
|
261 | + if (!empty($plugin['filename'])) { |
|
262 | 262 | $settings[$name]['fileName'] = $plugin['filename']; |
263 | - } |
|
263 | + } |
|
264 | 264 | } |
265 | - } |
|
266 | - return $settings; |
|
265 | + } |
|
266 | + return $settings; |
|
267 | 267 | } |
268 | 268 | |
269 | 269 | /** |
270 | 270 | * Build a JS settings array for Drupal plugins loaded via the proxy plugin. |
271 | 271 | */ |
272 | 272 | function wysiwyg_ckeditor_proxy_plugin_settings($editor, $profile, $plugins) { |
273 | - $settings = array(); |
|
274 | - foreach ($plugins as $name => $plugin) { |
|
273 | + $settings = array(); |
|
274 | + foreach ($plugins as $name => $plugin) { |
|
275 | 275 | // Populate required plugin settings. |
276 | 276 | $settings[$name] = $plugin['dialog settings'] + array( |
277 | - 'title' => $plugin['title'], |
|
278 | - 'icon' => base_path() . $plugin['icon path'] . '/' . $plugin['icon file'], |
|
279 | - 'iconTitle' => $plugin['icon title'], |
|
280 | - // @todo These should only be set if the plugin defined them. |
|
281 | - 'css' => base_path() . $plugin['css path'] . '/' . $plugin['css file'], |
|
277 | + 'title' => $plugin['title'], |
|
278 | + 'icon' => base_path() . $plugin['icon path'] . '/' . $plugin['icon file'], |
|
279 | + 'iconTitle' => $plugin['icon title'], |
|
280 | + // @todo These should only be set if the plugin defined them. |
|
281 | + 'css' => base_path() . $plugin['css path'] . '/' . $plugin['css file'], |
|
282 | 282 | ); |
283 | - } |
|
284 | - return $settings; |
|
283 | + } |
|
284 | + return $settings; |
|
285 | 285 | } |
286 | 286 | |
287 | 287 | /** |
288 | 288 | * Return internal plugins for this editor; semi-implementation of hook_wysiwyg_plugin(). |
289 | 289 | */ |
290 | 290 | function wysiwyg_ckeditor_plugins($editor) { |
291 | - $plugins = array( |
|
291 | + $plugins = array( |
|
292 | 292 | 'default' => array( |
293 | - 'buttons' => array( |
|
293 | + 'buttons' => array( |
|
294 | 294 | 'Bold' => t('Bold'), 'Italic' => t('Italic'), 'Underline' => t('Underline'), |
295 | 295 | 'Strike' => t('Strike-through'), |
296 | 296 | 'JustifyLeft' => t('Align left'), 'JustifyCenter' => t('Align center'), 'JustifyRight' => t('Align right'), 'JustifyBlock' => t('Justify'), |
@@ -317,17 +317,17 @@ discard block |
||
317 | 317 | 'Maximize' => t('Maximize'), |
318 | 318 | 'SpellChecker' => t('Check spelling'), 'Scayt' => t('Check spelling as you type'), |
319 | 319 | 'About' => t('About'), |
320 | - ), |
|
321 | - 'internal' => TRUE, |
|
320 | + ), |
|
321 | + 'internal' => TRUE, |
|
322 | 322 | ), |
323 | - ); |
|
323 | + ); |
|
324 | 324 | |
325 | - if (version_compare($editor['installed version'], '3.1.0.4885', '<')) { |
|
325 | + if (version_compare($editor['installed version'], '3.1.0.4885', '<')) { |
|
326 | 326 | unset($plugins['default']['buttons']['CreateDiv']); |
327 | - } |
|
328 | - if (version_compare($editor['installed version'], '3.5.0.6260', '<')) { |
|
327 | + } |
|
328 | + if (version_compare($editor['installed version'], '3.5.0.6260', '<')) { |
|
329 | 329 | unset($plugins['default']['buttons']['Iframe']); |
330 | - } |
|
331 | - return $plugins; |
|
330 | + } |
|
331 | + return $plugins; |
|
332 | 332 | } |
333 | 333 |
@@ -58,7 +58,7 @@ discard block |
||
58 | 58 | * The installed editor version. |
59 | 59 | */ |
60 | 60 | function wysiwyg_ckeditor_version($editor) { |
61 | - $library = $editor['library path'] . '/ckeditor.js'; |
|
61 | + $library = $editor['library path'].'/ckeditor.js'; |
|
62 | 62 | if (!file_exists($library)) { |
63 | 63 | return; |
64 | 64 | } |
@@ -72,7 +72,7 @@ discard block |
||
72 | 72 | fclose($library); |
73 | 73 | // Version numbers need to have three parts since 3.0.1. |
74 | 74 | $version[1] = preg_replace('/^(\d+)\.(\d+)$/', '${1}.${2}.0', $version[1]); |
75 | - return $version[1] . '.' . $version[2]; |
|
75 | + return $version[1].'.'.$version[2]; |
|
76 | 76 | } |
77 | 77 | $max_lines--; |
78 | 78 | } |
@@ -93,11 +93,11 @@ discard block |
||
93 | 93 | */ |
94 | 94 | function wysiwyg_ckeditor_themes($editor, $profile) { |
95 | 95 | // @todo Skins are not themes but this will do for now. |
96 | - $path = $editor['library path'] . '/skins/'; |
|
96 | + $path = $editor['library path'].'/skins/'; |
|
97 | 97 | if (file_exists($path) && ($dir_handle = opendir($path))) { |
98 | 98 | $themes = array(); |
99 | 99 | while ($file = readdir($dir_handle)) { |
100 | - if (is_dir($path . $file) && substr($file, 0, 1) != '.' && $file != 'CVS') { |
|
100 | + if (is_dir($path.$file) && substr($file, 0, 1) != '.' && $file != 'CVS') { |
|
101 | 101 | $themes[] = $file; |
102 | 102 | } |
103 | 103 | } |
@@ -127,7 +127,7 @@ discard block |
||
127 | 127 | */ |
128 | 128 | function wysiwyg_ckeditor_settings($editor, $config, $theme) { |
129 | 129 | $settings = array( |
130 | - 'baseHref' => $GLOBALS['base_url'] . '/', |
|
130 | + 'baseHref' => $GLOBALS['base_url'].'/', |
|
131 | 131 | 'width' => '100%', |
132 | 132 | // For better compatibility with smaller textareas. |
133 | 133 | 'resize_minWidth' => 450, |
@@ -185,7 +185,7 @@ discard block |
||
185 | 185 | } |
186 | 186 | if (isset($config['resizing'])) { |
187 | 187 | // CKEditor tests "!== false", so ensure it is a Boolean. |
188 | - $settings['resize_enabled'] = (bool) $config['resizing']; |
|
188 | + $settings['resize_enabled'] = (bool)$config['resizing']; |
|
189 | 189 | } |
190 | 190 | if (isset($config['toolbar_loc'])) { |
191 | 191 | $settings['toolbarLocation'] = $config['toolbar_loc']; |
@@ -251,11 +251,11 @@ discard block |
||
251 | 251 | $settings[$name] = array(); |
252 | 252 | // Add path for native external plugins. |
253 | 253 | if (empty($plugin['internal']) && isset($plugin['path'])) { |
254 | - $settings[$name]['path'] = base_path() . $plugin['path'] . '/'; |
|
254 | + $settings[$name]['path'] = base_path().$plugin['path'].'/'; |
|
255 | 255 | } |
256 | 256 | // Force native internal plugins to use the standard path. |
257 | 257 | else { |
258 | - $settings[$name]['path'] = base_path() . $editor['library path'] . '/plugins/' . $name . '/'; |
|
258 | + $settings[$name]['path'] = base_path().$editor['library path'].'/plugins/'.$name.'/'; |
|
259 | 259 | } |
260 | 260 | // CKEditor defaults to 'plugin.js' on its own when filename is not set. |
261 | 261 | if (!empty($plugin['filename'])) { |
@@ -275,10 +275,10 @@ discard block |
||
275 | 275 | // Populate required plugin settings. |
276 | 276 | $settings[$name] = $plugin['dialog settings'] + array( |
277 | 277 | 'title' => $plugin['title'], |
278 | - 'icon' => base_path() . $plugin['icon path'] . '/' . $plugin['icon file'], |
|
278 | + 'icon' => base_path().$plugin['icon path'].'/'.$plugin['icon file'], |
|
279 | 279 | 'iconTitle' => $plugin['icon title'], |
280 | 280 | // @todo These should only be set if the plugin defined them. |
281 | - 'css' => base_path() . $plugin['css path'] . '/' . $plugin['css file'], |
|
281 | + 'css' => base_path().$plugin['css path'].'/'.$plugin['css file'], |
|
282 | 282 | ); |
283 | 283 | } |
284 | 284 | return $settings; |
@@ -105,8 +105,7 @@ discard block |
||
105 | 105 | natcasesort($themes); |
106 | 106 | $themes = array_values($themes); |
107 | 107 | return !empty($themes) ? $themes : array('default'); |
108 | - } |
|
109 | - else { |
|
108 | + } else { |
|
110 | 109 | return array('default'); |
111 | 110 | } |
112 | 111 | } |
@@ -165,16 +164,13 @@ discard block |
||
165 | 164 | if (version_compare($editor['installed version'], '3.0.1.4391', '<')) { |
166 | 165 | if ($config['css_setting'] == 'theme') { |
167 | 166 | $settings['contentsCss'] = reset(wysiwyg_get_css()); |
168 | - } |
|
169 | - elseif ($config['css_setting'] == 'self' && isset($config['css_path'])) { |
|
167 | + } elseif ($config['css_setting'] == 'self' && isset($config['css_path'])) { |
|
170 | 168 | $settings['contentsCss'] = strtr($config['css_path'], array('%b' => base_path(), '%t' => path_to_theme())); |
171 | 169 | } |
172 | - } |
|
173 | - else { |
|
170 | + } else { |
|
174 | 171 | if ($config['css_setting'] == 'theme') { |
175 | 172 | $settings['contentsCss'] = wysiwyg_get_css(); |
176 | - } |
|
177 | - elseif ($config['css_setting'] == 'self' && isset($config['css_path'])) { |
|
173 | + } elseif ($config['css_setting'] == 'self' && isset($config['css_path'])) { |
|
178 | 174 | $settings['contentsCss'] = explode(',', strtr($config['css_path'], array('%b' => base_path(), '%t' => path_to_theme()))); |
179 | 175 | } |
180 | 176 | } |
@@ -47,7 +47,7 @@ discard block |
||
47 | 47 | * An array containing editor properties as returned from hook_editor(). |
48 | 48 | * |
49 | 49 | * @return |
50 | - * The installed editor version. |
|
50 | + null|string The installed editor version. |
|
51 | 51 | */ |
52 | 52 | function wysiwyg_fckeditor_version($editor) { |
53 | 53 | $library = $editor['library path'] . '/fckeditor.js'; |
@@ -75,7 +75,7 @@ discard block |
||
75 | 75 | * A wysiwyg editor profile. |
76 | 76 | * |
77 | 77 | * @return |
78 | - * An array of theme names. The first returned name should be the default |
|
78 | + string[] An array of theme names. The first returned name should be the default |
|
79 | 79 | * theme name. |
80 | 80 | */ |
81 | 81 | function wysiwyg_fckeditor_themes($editor, $profile) { |
@@ -9,15 +9,15 @@ discard block |
||
9 | 9 | * Plugin implementation of hook_editor(). |
10 | 10 | */ |
11 | 11 | function wysiwyg_fckeditor_editor() { |
12 | - $editor['fckeditor'] = array( |
|
12 | + $editor['fckeditor'] = array( |
|
13 | 13 | 'title' => 'FCKeditor', |
14 | 14 | 'vendor url' => 'http://www.fckeditor.net', |
15 | 15 | 'download url' => 'http://www.fckeditor.net/download', |
16 | 16 | 'libraries' => array( |
17 | - '' => array( |
|
17 | + '' => array( |
|
18 | 18 | 'title' => 'Default', |
19 | 19 | 'files' => array('fckeditor.js'), |
20 | - ), |
|
20 | + ), |
|
21 | 21 | ), |
22 | 22 | 'version callback' => 'wysiwyg_fckeditor_version', |
23 | 23 | 'themes callback' => 'wysiwyg_fckeditor_themes', |
@@ -25,19 +25,19 @@ discard block |
||
25 | 25 | 'plugin callback' => 'wysiwyg_fckeditor_plugins', |
26 | 26 | 'plugin settings callback' => 'wysiwyg_fckeditor_plugin_settings', |
27 | 27 | 'proxy plugin' => array( |
28 | - 'drupal' => array( |
|
28 | + 'drupal' => array( |
|
29 | 29 | 'load' => TRUE, |
30 | 30 | 'proxy' => TRUE, |
31 | - ), |
|
31 | + ), |
|
32 | 32 | ), |
33 | 33 | 'proxy plugin settings callback' => 'wysiwyg_fckeditor_proxy_plugin_settings', |
34 | 34 | 'versions' => array( |
35 | - '2.6' => array( |
|
35 | + '2.6' => array( |
|
36 | 36 | 'js files' => array('fckeditor-2.6.js'), |
37 | - ), |
|
37 | + ), |
|
38 | 38 | ), |
39 | - ); |
|
40 | - return $editor; |
|
39 | + ); |
|
40 | + return $editor; |
|
41 | 41 | } |
42 | 42 | |
43 | 43 | /** |
@@ -50,20 +50,20 @@ discard block |
||
50 | 50 | * The installed editor version. |
51 | 51 | */ |
52 | 52 | function wysiwyg_fckeditor_version($editor) { |
53 | - $library = $editor['library path'] . '/fckeditor.js'; |
|
54 | - if (!file_exists($library)) { |
|
53 | + $library = $editor['library path'] . '/fckeditor.js'; |
|
54 | + if (!file_exists($library)) { |
|
55 | 55 | return; |
56 | - } |
|
57 | - $library = fopen($library, 'r'); |
|
58 | - $max_lines = 100; |
|
59 | - while ($max_lines && $line = fgets($library, 60)) { |
|
56 | + } |
|
57 | + $library = fopen($library, 'r'); |
|
58 | + $max_lines = 100; |
|
59 | + while ($max_lines && $line = fgets($library, 60)) { |
|
60 | 60 | if (preg_match('@^FCKeditor.prototype.Version\s*= \'([\d\.]+)@', $line, $version)) { |
61 | - fclose($library); |
|
62 | - return $version[1]; |
|
61 | + fclose($library); |
|
62 | + return $version[1]; |
|
63 | 63 | } |
64 | 64 | $max_lines--; |
65 | - } |
|
66 | - fclose($library); |
|
65 | + } |
|
66 | + fclose($library); |
|
67 | 67 | } |
68 | 68 | |
69 | 69 | /** |
@@ -79,7 +79,7 @@ discard block |
||
79 | 79 | * theme name. |
80 | 80 | */ |
81 | 81 | function wysiwyg_fckeditor_themes($editor, $profile) { |
82 | - return array('default', 'office2003', 'silver'); |
|
82 | + return array('default', 'office2003', 'silver'); |
|
83 | 83 | } |
84 | 84 | |
85 | 85 | /** |
@@ -97,7 +97,7 @@ discard block |
||
97 | 97 | * Drupal.settings.wysiwyg.configs.{editor} |
98 | 98 | */ |
99 | 99 | function wysiwyg_fckeditor_settings($editor, $config, $theme) { |
100 | - $settings = array( |
|
100 | + $settings = array( |
|
101 | 101 | 'EditorPath' => base_path() . $editor['library path'] . '/', |
102 | 102 | 'SkinPath' => base_path() . $editor['library path'] . '/editor/skins/' . $theme . '/', |
103 | 103 | 'CustomConfigurationsPath' => base_path() . drupal_get_path('module', 'wysiwyg') . '/editors/js/fckeditor.config.js', |
@@ -116,105 +116,105 @@ discard block |
||
116 | 116 | // @todo Check whether completely disabling ProcessHTMLEntities is an option. |
117 | 117 | 'IncludeLatinEntities' => FALSE, |
118 | 118 | 'IncludeGreekEntities' => FALSE, |
119 | - ); |
|
120 | - if (isset($config['block_formats'])) { |
|
119 | + ); |
|
120 | + if (isset($config['block_formats'])) { |
|
121 | 121 | $settings['FontFormats'] = strtr($config['block_formats'], array(',' => ';')); |
122 | - } |
|
123 | - if (isset($config['apply_source_formatting'])) { |
|
122 | + } |
|
123 | + if (isset($config['apply_source_formatting'])) { |
|
124 | 124 | $settings['FormatOutput'] = $settings['FormatSource'] = $config['apply_source_formatting']; |
125 | - } |
|
126 | - if (isset($config['paste_auto_cleanup_on_paste'])) { |
|
125 | + } |
|
126 | + if (isset($config['paste_auto_cleanup_on_paste'])) { |
|
127 | 127 | $settings['AutoDetectPasteFromWord'] = $config['paste_auto_cleanup_on_paste']; |
128 | - } |
|
128 | + } |
|
129 | 129 | |
130 | - if (isset($config['css_setting'])) { |
|
130 | + if (isset($config['css_setting'])) { |
|
131 | 131 | if ($config['css_setting'] == 'theme') { |
132 | - $settings['EditorAreaCSS'] = implode(',', wysiwyg_get_css()); |
|
132 | + $settings['EditorAreaCSS'] = implode(',', wysiwyg_get_css()); |
|
133 | 133 | } |
134 | 134 | else if ($config['css_setting'] == 'self' && isset($config['css_path'])) { |
135 | - $settings['EditorAreaCSS'] = strtr($config['css_path'], array('%b' => base_path(), '%t' => path_to_theme())); |
|
135 | + $settings['EditorAreaCSS'] = strtr($config['css_path'], array('%b' => base_path(), '%t' => path_to_theme())); |
|
136 | + } |
|
136 | 137 | } |
137 | - } |
|
138 | 138 | |
139 | - // Use our custom toolbar set. |
|
140 | - $settings['ToolbarSet'] = 'Wysiwyg'; |
|
141 | - // Populate our custom toolbar set for fckeditor.config.js. |
|
142 | - $settings['buttons'] = array(); |
|
143 | - if (!empty($config['buttons'])) { |
|
139 | + // Use our custom toolbar set. |
|
140 | + $settings['ToolbarSet'] = 'Wysiwyg'; |
|
141 | + // Populate our custom toolbar set for fckeditor.config.js. |
|
142 | + $settings['buttons'] = array(); |
|
143 | + if (!empty($config['buttons'])) { |
|
144 | 144 | $plugins = wysiwyg_get_plugins($editor['name']); |
145 | 145 | foreach ($config['buttons'] as $plugin => $buttons) { |
146 | - foreach ($buttons as $button => $enabled) { |
|
146 | + foreach ($buttons as $button => $enabled) { |
|
147 | 147 | // Iterate separately over buttons and extensions properties. |
148 | 148 | foreach (array('buttons', 'extensions') as $type) { |
149 | - // Skip unavailable plugins. |
|
150 | - if (!isset($plugins[$plugin][$type][$button])) { |
|
149 | + // Skip unavailable plugins. |
|
150 | + if (!isset($plugins[$plugin][$type][$button])) { |
|
151 | 151 | continue; |
152 | - } |
|
153 | - // Add buttons. |
|
154 | - if ($type == 'buttons') { |
|
152 | + } |
|
153 | + // Add buttons. |
|
154 | + if ($type == 'buttons') { |
|
155 | 155 | $settings['buttons'][] = $button; |
156 | - } |
|
157 | - // Allow plugins to add or override global configuration settings. |
|
158 | - if (!empty($plugins[$plugin]['options'])) { |
|
156 | + } |
|
157 | + // Allow plugins to add or override global configuration settings. |
|
158 | + if (!empty($plugins[$plugin]['options'])) { |
|
159 | 159 | $settings = array_merge($settings, $plugins[$plugin]['options']); |
160 | - } |
|
160 | + } |
|
161 | 161 | } |
162 | - } |
|
162 | + } |
|
163 | + } |
|
163 | 164 | } |
164 | - } |
|
165 | - // For now, all buttons are placed into one row. |
|
166 | - $settings['buttons'] = array($settings['buttons']); |
|
165 | + // For now, all buttons are placed into one row. |
|
166 | + $settings['buttons'] = array($settings['buttons']); |
|
167 | 167 | |
168 | - return $settings; |
|
168 | + return $settings; |
|
169 | 169 | } |
170 | 170 | |
171 | 171 | /** |
172 | 172 | * Build a JS settings array of native external plugins that need to be loaded separately. |
173 | 173 | */ |
174 | 174 | function wysiwyg_fckeditor_plugin_settings($editor, $profile, $plugins) { |
175 | - $settings = array(); |
|
176 | - foreach ($plugins as $name => $plugin) { |
|
175 | + $settings = array(); |
|
176 | + foreach ($plugins as $name => $plugin) { |
|
177 | 177 | // Register all plugins that need to be loaded. |
178 | 178 | if (!empty($plugin['load'])) { |
179 | - $settings[$name] = array(); |
|
180 | - // Add path for native external plugins; internal ones do not need a path. |
|
181 | - if (empty($plugin['internal']) && isset($plugin['path'])) { |
|
179 | + $settings[$name] = array(); |
|
180 | + // Add path for native external plugins; internal ones do not need a path. |
|
181 | + if (empty($plugin['internal']) && isset($plugin['path'])) { |
|
182 | 182 | // All native FCKeditor plugins use the filename fckplugin.js. |
183 | 183 | $settings[$name]['path'] = base_path() . $plugin['path'] . '/'; |
184 | - } |
|
185 | - if (!empty($plugin['languages'])) { |
|
184 | + } |
|
185 | + if (!empty($plugin['languages'])) { |
|
186 | 186 | $settings[$name]['languages'] = $plugin['languages']; |
187 | - } |
|
187 | + } |
|
188 | + } |
|
188 | 189 | } |
189 | - } |
|
190 | - return $settings; |
|
190 | + return $settings; |
|
191 | 191 | } |
192 | 192 | |
193 | 193 | /** |
194 | 194 | * Build a JS settings array for Drupal plugins loaded via the proxy plugin. |
195 | 195 | */ |
196 | 196 | function wysiwyg_fckeditor_proxy_plugin_settings($editor, $profile, $plugins) { |
197 | - $settings = array(); |
|
198 | - foreach ($plugins as $name => $plugin) { |
|
197 | + $settings = array(); |
|
198 | + foreach ($plugins as $name => $plugin) { |
|
199 | 199 | // Populate required plugin settings. |
200 | 200 | $settings[$name] = $plugin['dialog settings'] + array( |
201 | - 'title' => $plugin['title'], |
|
202 | - 'icon' => base_path() . $plugin['icon path'] . '/' . $plugin['icon file'], |
|
203 | - 'iconTitle' => $plugin['icon title'], |
|
204 | - // @todo These should only be set if the plugin defined them. |
|
205 | - 'css' => base_path() . $plugin['css path'] . '/' . $plugin['css file'], |
|
201 | + 'title' => $plugin['title'], |
|
202 | + 'icon' => base_path() . $plugin['icon path'] . '/' . $plugin['icon file'], |
|
203 | + 'iconTitle' => $plugin['icon title'], |
|
204 | + // @todo These should only be set if the plugin defined them. |
|
205 | + 'css' => base_path() . $plugin['css path'] . '/' . $plugin['css file'], |
|
206 | 206 | ); |
207 | - } |
|
208 | - return $settings; |
|
207 | + } |
|
208 | + return $settings; |
|
209 | 209 | } |
210 | 210 | |
211 | 211 | /** |
212 | 212 | * Return internal plugins for this editor; semi-implementation of hook_wysiwyg_plugin(). |
213 | 213 | */ |
214 | 214 | function wysiwyg_fckeditor_plugins($editor) { |
215 | - $plugins = array( |
|
215 | + $plugins = array( |
|
216 | 216 | 'default' => array( |
217 | - 'buttons' => array( |
|
217 | + 'buttons' => array( |
|
218 | 218 | 'Bold' => t('Bold'), 'Italic' => t('Italic'), 'Underline' => t('Underline'), |
219 | 219 | 'StrikeThrough' => t('Strike-through'), |
220 | 220 | 'JustifyLeft' => t('Align left'), 'JustifyCenter' => t('Align center'), 'JustifyRight' => t('Align right'), 'JustifyFull' => t('Justify'), |
@@ -240,39 +240,39 @@ discard block |
||
240 | 240 | 'Flash' => t('Flash'), 'Smiley' => t('Smiley'), |
241 | 241 | 'FitWindow' => t('FitWindow'), |
242 | 242 | 'SpellCheck' => t('Check spelling'), |
243 | - ), |
|
244 | - 'internal' => TRUE, |
|
243 | + ), |
|
244 | + 'internal' => TRUE, |
|
245 | 245 | ), |
246 | 246 | 'autogrow' => array( |
247 | - 'path' => $editor['library path'] . '/editor/plugins', |
|
248 | - 'extensions' => array( |
|
247 | + 'path' => $editor['library path'] . '/editor/plugins', |
|
248 | + 'extensions' => array( |
|
249 | 249 | 'autogrow' => t('Autogrow'), |
250 | - ), |
|
251 | - 'options' => array( |
|
250 | + ), |
|
251 | + 'options' => array( |
|
252 | 252 | 'AutoGrowMax' => 800, |
253 | - ), |
|
254 | - 'internal' => TRUE, |
|
255 | - 'load' => TRUE, |
|
253 | + ), |
|
254 | + 'internal' => TRUE, |
|
255 | + 'load' => TRUE, |
|
256 | 256 | ), |
257 | 257 | 'bbcode' => array( |
258 | - 'path' => $editor['library path'] . '/editor/plugins', |
|
259 | - 'extensions' => array( |
|
258 | + 'path' => $editor['library path'] . '/editor/plugins', |
|
259 | + 'extensions' => array( |
|
260 | 260 | 'bbcode' => t('BBCode'), |
261 | - ), |
|
262 | - 'internal' => TRUE, |
|
263 | - 'load' => TRUE, |
|
261 | + ), |
|
262 | + 'internal' => TRUE, |
|
263 | + 'load' => TRUE, |
|
264 | 264 | ), |
265 | 265 | 'dragresizetable' => array( |
266 | - 'path' => $editor['library path'] . '/editor/plugins', |
|
267 | - 'extensions' => array( |
|
266 | + 'path' => $editor['library path'] . '/editor/plugins', |
|
267 | + 'extensions' => array( |
|
268 | 268 | 'dragresizetable' => t('Table drag/resize'), |
269 | - ), |
|
270 | - 'internal' => TRUE, |
|
271 | - 'load' => TRUE, |
|
269 | + ), |
|
270 | + 'internal' => TRUE, |
|
271 | + 'load' => TRUE, |
|
272 | 272 | ), |
273 | 273 | 'tablecommands' => array( |
274 | - 'path' => $editor['library path'] . '/editor/plugins', |
|
275 | - 'buttons' => array( |
|
274 | + 'path' => $editor['library path'] . '/editor/plugins', |
|
275 | + 'buttons' => array( |
|
276 | 276 | 'TableCellProp' => t('Table: Cell properties'), |
277 | 277 | 'TableInsertRowAfter' => t('Table: Insert row after'), |
278 | 278 | 'TableInsertColumnAfter' => t('Table: Insert column after'), |
@@ -282,11 +282,11 @@ discard block |
||
282 | 282 | 'TableDeleteCells' => t('Table: Delete cells'), |
283 | 283 | 'TableMergeCells' => t('Table: Merge cells'), |
284 | 284 | 'TableHorizontalSplitCell' => t('Table: Horizontal split cell'), |
285 | - ), |
|
286 | - 'internal' => TRUE, |
|
287 | - 'load' => TRUE, |
|
285 | + ), |
|
286 | + 'internal' => TRUE, |
|
287 | + 'load' => TRUE, |
|
288 | 288 | ), |
289 | - ); |
|
290 | - return $plugins; |
|
289 | + ); |
|
290 | + return $plugins; |
|
291 | 291 | } |
292 | 292 |
@@ -50,7 +50,7 @@ discard block |
||
50 | 50 | * The installed editor version. |
51 | 51 | */ |
52 | 52 | function wysiwyg_fckeditor_version($editor) { |
53 | - $library = $editor['library path'] . '/fckeditor.js'; |
|
53 | + $library = $editor['library path'].'/fckeditor.js'; |
|
54 | 54 | if (!file_exists($library)) { |
55 | 55 | return; |
56 | 56 | } |
@@ -98,9 +98,9 @@ discard block |
||
98 | 98 | */ |
99 | 99 | function wysiwyg_fckeditor_settings($editor, $config, $theme) { |
100 | 100 | $settings = array( |
101 | - 'EditorPath' => base_path() . $editor['library path'] . '/', |
|
102 | - 'SkinPath' => base_path() . $editor['library path'] . '/editor/skins/' . $theme . '/', |
|
103 | - 'CustomConfigurationsPath' => base_path() . drupal_get_path('module', 'wysiwyg') . '/editors/js/fckeditor.config.js', |
|
101 | + 'EditorPath' => base_path().$editor['library path'].'/', |
|
102 | + 'SkinPath' => base_path().$editor['library path'].'/editor/skins/'.$theme.'/', |
|
103 | + 'CustomConfigurationsPath' => base_path().drupal_get_path('module', 'wysiwyg').'/editors/js/fckeditor.config.js', |
|
104 | 104 | 'Width' => '100%', |
105 | 105 | 'Height' => 420, |
106 | 106 | 'LinkBrowser' => FALSE, |
@@ -180,7 +180,7 @@ discard block |
||
180 | 180 | // Add path for native external plugins; internal ones do not need a path. |
181 | 181 | if (empty($plugin['internal']) && isset($plugin['path'])) { |
182 | 182 | // All native FCKeditor plugins use the filename fckplugin.js. |
183 | - $settings[$name]['path'] = base_path() . $plugin['path'] . '/'; |
|
183 | + $settings[$name]['path'] = base_path().$plugin['path'].'/'; |
|
184 | 184 | } |
185 | 185 | if (!empty($plugin['languages'])) { |
186 | 186 | $settings[$name]['languages'] = $plugin['languages']; |
@@ -199,10 +199,10 @@ discard block |
||
199 | 199 | // Populate required plugin settings. |
200 | 200 | $settings[$name] = $plugin['dialog settings'] + array( |
201 | 201 | 'title' => $plugin['title'], |
202 | - 'icon' => base_path() . $plugin['icon path'] . '/' . $plugin['icon file'], |
|
202 | + 'icon' => base_path().$plugin['icon path'].'/'.$plugin['icon file'], |
|
203 | 203 | 'iconTitle' => $plugin['icon title'], |
204 | 204 | // @todo These should only be set if the plugin defined them. |
205 | - 'css' => base_path() . $plugin['css path'] . '/' . $plugin['css file'], |
|
205 | + 'css' => base_path().$plugin['css path'].'/'.$plugin['css file'], |
|
206 | 206 | ); |
207 | 207 | } |
208 | 208 | return $settings; |
@@ -244,7 +244,7 @@ discard block |
||
244 | 244 | 'internal' => TRUE, |
245 | 245 | ), |
246 | 246 | 'autogrow' => array( |
247 | - 'path' => $editor['library path'] . '/editor/plugins', |
|
247 | + 'path' => $editor['library path'].'/editor/plugins', |
|
248 | 248 | 'extensions' => array( |
249 | 249 | 'autogrow' => t('Autogrow'), |
250 | 250 | ), |
@@ -255,7 +255,7 @@ discard block |
||
255 | 255 | 'load' => TRUE, |
256 | 256 | ), |
257 | 257 | 'bbcode' => array( |
258 | - 'path' => $editor['library path'] . '/editor/plugins', |
|
258 | + 'path' => $editor['library path'].'/editor/plugins', |
|
259 | 259 | 'extensions' => array( |
260 | 260 | 'bbcode' => t('BBCode'), |
261 | 261 | ), |
@@ -263,7 +263,7 @@ discard block |
||
263 | 263 | 'load' => TRUE, |
264 | 264 | ), |
265 | 265 | 'dragresizetable' => array( |
266 | - 'path' => $editor['library path'] . '/editor/plugins', |
|
266 | + 'path' => $editor['library path'].'/editor/plugins', |
|
267 | 267 | 'extensions' => array( |
268 | 268 | 'dragresizetable' => t('Table drag/resize'), |
269 | 269 | ), |
@@ -271,7 +271,7 @@ discard block |
||
271 | 271 | 'load' => TRUE, |
272 | 272 | ), |
273 | 273 | 'tablecommands' => array( |
274 | - 'path' => $editor['library path'] . '/editor/plugins', |
|
274 | + 'path' => $editor['library path'].'/editor/plugins', |
|
275 | 275 | 'buttons' => array( |
276 | 276 | 'TableCellProp' => t('Table: Cell properties'), |
277 | 277 | 'TableInsertRowAfter' => t('Table: Insert row after'), |
@@ -130,8 +130,7 @@ |
||
130 | 130 | if (isset($config['css_setting'])) { |
131 | 131 | if ($config['css_setting'] == 'theme') { |
132 | 132 | $settings['EditorAreaCSS'] = implode(',', wysiwyg_get_css()); |
133 | - } |
|
134 | - else if ($config['css_setting'] == 'self' && isset($config['css_path'])) { |
|
133 | + } else if ($config['css_setting'] == 'self' && isset($config['css_path'])) { |
|
135 | 134 | $settings['EditorAreaCSS'] = strtr($config['css_path'], array('%b' => base_path(), '%t' => path_to_theme())); |
136 | 135 | } |
137 | 136 | } |
@@ -43,7 +43,7 @@ |
||
43 | 43 | * An array containing editor properties as returned from hook_editor(). |
44 | 44 | * |
45 | 45 | * @return |
46 | - * The installed editor version. |
|
46 | + null|string The installed editor version. |
|
47 | 47 | */ |
48 | 48 | function wysiwyg_jwysiwyg_version($editor) { |
49 | 49 | $script = $editor['library path'] . '/jquery.wysiwyg.js'; |
@@ -9,31 +9,31 @@ discard block |
||
9 | 9 | * Plugin implementation of hook_editor(). |
10 | 10 | */ |
11 | 11 | function wysiwyg_jwysiwyg_editor() { |
12 | - $editor['jwysiwyg'] = array( |
|
12 | + $editor['jwysiwyg'] = array( |
|
13 | 13 | 'title' => 'jWYSIWYG', |
14 | 14 | 'vendor url' => 'http://code.google.com/p/jwysiwyg/', |
15 | 15 | 'download url' => 'http://code.google.com/p/jwysiwyg/downloads/list', |
16 | 16 | 'libraries' => array( |
17 | - '' => array( |
|
17 | + '' => array( |
|
18 | 18 | 'title' => 'Source', |
19 | 19 | 'files' => array('jquery.wysiwyg.js'), |
20 | - ), |
|
21 | - 'pack' => array( |
|
20 | + ), |
|
21 | + 'pack' => array( |
|
22 | 22 | 'title' => 'Packed', |
23 | 23 | 'files' => array('jquery.wysiwyg.pack.js'), |
24 | - ), |
|
24 | + ), |
|
25 | 25 | ), |
26 | 26 | 'version callback' => 'wysiwyg_jwysiwyg_version', |
27 | 27 | // @todo Wrong property; add separate properties for editor requisites. |
28 | 28 | 'css path' => wysiwyg_get_path('jwysiwyg'), |
29 | 29 | 'versions' => array( |
30 | - '0.5' => array( |
|
30 | + '0.5' => array( |
|
31 | 31 | 'js files' => array('jwysiwyg.js'), |
32 | 32 | 'css files' => array('jquery.wysiwyg.css'), |
33 | - ), |
|
33 | + ), |
|
34 | 34 | ), |
35 | - ); |
|
36 | - return $editor; |
|
35 | + ); |
|
36 | + return $editor; |
|
37 | 37 | } |
38 | 38 | |
39 | 39 | /** |
@@ -46,17 +46,17 @@ discard block |
||
46 | 46 | * The installed editor version. |
47 | 47 | */ |
48 | 48 | function wysiwyg_jwysiwyg_version($editor) { |
49 | - $script = $editor['library path'] . '/jquery.wysiwyg.js'; |
|
50 | - if (!file_exists($script)) { |
|
49 | + $script = $editor['library path'] . '/jquery.wysiwyg.js'; |
|
50 | + if (!file_exists($script)) { |
|
51 | 51 | return; |
52 | - } |
|
53 | - $script = fopen($script, 'r'); |
|
54 | - fgets($script); |
|
55 | - $line = fgets($script); |
|
56 | - if (preg_match('@([0-9\.]+)$@', $line, $version)) { |
|
52 | + } |
|
53 | + $script = fopen($script, 'r'); |
|
54 | + fgets($script); |
|
55 | + $line = fgets($script); |
|
56 | + if (preg_match('@([0-9\.]+)$@', $line, $version)) { |
|
57 | 57 | fclose($script); |
58 | 58 | return $version[1]; |
59 | - } |
|
60 | - fclose($script); |
|
59 | + } |
|
60 | + fclose($script); |
|
61 | 61 | } |
62 | 62 |
@@ -46,7 +46,7 @@ |
||
46 | 46 | * The installed editor version. |
47 | 47 | */ |
48 | 48 | function wysiwyg_jwysiwyg_version($editor) { |
49 | - $script = $editor['library path'] . '/jquery.wysiwyg.js'; |
|
49 | + $script = $editor['library path'].'/jquery.wysiwyg.js'; |
|
50 | 50 | if (!file_exists($script)) { |
51 | 51 | return; |
52 | 52 | } |
@@ -44,7 +44,7 @@ discard block |
||
44 | 44 | * An array containing editor properties as returned from hook_editor(). |
45 | 45 | * |
46 | 46 | * @return |
47 | - * The installed editor version. |
|
47 | + null|string The installed editor version. |
|
48 | 48 | */ |
49 | 49 | function wysiwyg_markitup_version($editor) { |
50 | 50 | // Changelog was in markitup/markitup/readme.txt <= 1.1.5. |
@@ -74,7 +74,7 @@ discard block |
||
74 | 74 | * A wysiwyg editor profile. |
75 | 75 | * |
76 | 76 | * @return |
77 | - * An array of theme names. The first returned name should be the default |
|
77 | + string[] An array of theme names. The first returned name should be the default |
|
78 | 78 | * theme name. |
79 | 79 | */ |
80 | 80 | function wysiwyg_markitup_themes($editor, $profile) { |
@@ -9,32 +9,32 @@ discard block |
||
9 | 9 | * Plugin implementation of hook_editor(). |
10 | 10 | */ |
11 | 11 | function wysiwyg_markitup_editor() { |
12 | - $editor['markitup'] = array( |
|
12 | + $editor['markitup'] = array( |
|
13 | 13 | 'title' => 'markItUp', |
14 | 14 | 'vendor url' => 'http://markitup.jaysalvat.com', |
15 | 15 | 'download url' => 'http://markitup.jaysalvat.com/downloads', |
16 | 16 | 'library path' => wysiwyg_get_path('markitup'), |
17 | 17 | 'libraries' => array( |
18 | - '' => array( |
|
18 | + '' => array( |
|
19 | 19 | 'title' => 'Source', |
20 | 20 | 'files' => array('markitup/jquery.markitup.js'), |
21 | - ), |
|
22 | - 'pack' => array( |
|
21 | + ), |
|
22 | + 'pack' => array( |
|
23 | 23 | 'title' => 'Packed', |
24 | 24 | 'files' => array('markitup/jquery.markitup.pack.js'), |
25 | - ), |
|
25 | + ), |
|
26 | 26 | ), |
27 | 27 | 'version callback' => 'wysiwyg_markitup_version', |
28 | 28 | 'themes callback' => 'wysiwyg_markitup_themes', |
29 | 29 | 'settings callback' => 'wysiwyg_markitup_settings', |
30 | 30 | 'plugin callback' => 'wysiwyg_markitup_plugins', |
31 | 31 | 'versions' => array( |
32 | - '1.1.5' => array( |
|
32 | + '1.1.5' => array( |
|
33 | 33 | 'js files' => array('markitup.js'), |
34 | - ), |
|
34 | + ), |
|
35 | 35 | ), |
36 | - ); |
|
37 | - return $editor; |
|
36 | + ); |
|
37 | + return $editor; |
|
38 | 38 | } |
39 | 39 | |
40 | 40 | /** |
@@ -47,22 +47,22 @@ discard block |
||
47 | 47 | * The installed editor version. |
48 | 48 | */ |
49 | 49 | function wysiwyg_markitup_version($editor) { |
50 | - // Changelog was in markitup/markitup/readme.txt <= 1.1.5. |
|
51 | - $changelog = $editor['library path'] . '/markitup/readme.txt'; |
|
52 | - if (!file_exists($changelog)) { |
|
50 | + // Changelog was in markitup/markitup/readme.txt <= 1.1.5. |
|
51 | + $changelog = $editor['library path'] . '/markitup/readme.txt'; |
|
52 | + if (!file_exists($changelog)) { |
|
53 | 53 | // Changelog was moved up to markitup/CHANGELOG.md after 1.1.5. |
54 | 54 | $changelog = $editor['library path'] . '/CHANGELOG.md'; |
55 | 55 | if (!file_exists($changelog)) { |
56 | - return; |
|
56 | + return; |
|
57 | + } |
|
57 | 58 | } |
58 | - } |
|
59 | - $changelog = fopen($changelog, 'r'); |
|
60 | - $line = fgets($changelog); |
|
61 | - if (preg_match('@([0-9\.]+)@', $line, $version)) { |
|
59 | + $changelog = fopen($changelog, 'r'); |
|
60 | + $line = fgets($changelog); |
|
61 | + if (preg_match('@([0-9\.]+)@', $line, $version)) { |
|
62 | 62 | fclose($changelog); |
63 | 63 | return $version[1]; |
64 | - } |
|
65 | - fclose($changelog); |
|
64 | + } |
|
65 | + fclose($changelog); |
|
66 | 66 | } |
67 | 67 | |
68 | 68 | /** |
@@ -78,7 +78,7 @@ discard block |
||
78 | 78 | * theme name. |
79 | 79 | */ |
80 | 80 | function wysiwyg_markitup_themes($editor, $profile) { |
81 | - return array('simple', 'markitup'); |
|
81 | + return array('simple', 'markitup'); |
|
82 | 82 | } |
83 | 83 | |
84 | 84 | /** |
@@ -96,91 +96,91 @@ discard block |
||
96 | 96 | * Drupal.settings.wysiwyg.configs.{editor} |
97 | 97 | */ |
98 | 98 | function wysiwyg_markitup_settings($editor, $config, $theme) { |
99 | - // Whoever is guilty for adding this horrible CSS-file-without-filepath |
|
100 | - // override "feature" to Drupal core... stand in the corner! |
|
101 | - drupal_add_css($editor['library path'] . '/markitup/skins/' . $theme . '/style.css', 'theme'); |
|
99 | + // Whoever is guilty for adding this horrible CSS-file-without-filepath |
|
100 | + // override "feature" to Drupal core... stand in the corner! |
|
101 | + drupal_add_css($editor['library path'] . '/markitup/skins/' . $theme . '/style.css', 'theme'); |
|
102 | 102 | |
103 | - $settings = array( |
|
103 | + $settings = array( |
|
104 | 104 | 'root' => base_path() . $editor['library path'] . '/markitup/', |
105 | 105 | 'nameSpace' => $theme, |
106 | 106 | 'markupSet' => array(), |
107 | - ); |
|
107 | + ); |
|
108 | 108 | |
109 | - // Add configured buttons or all available. |
|
110 | - $default_buttons = array( |
|
109 | + // Add configured buttons or all available. |
|
110 | + $default_buttons = array( |
|
111 | 111 | 'bold' => array( |
112 | - 'name' => t('Bold'), |
|
113 | - 'className' => 'markitup-bold', |
|
114 | - 'key' => 'B', |
|
115 | - 'openWith' => '(!(<strong>|!|<b>)!)', |
|
116 | - 'closeWith' => '(!(</strong>|!|</b>)!)', |
|
112 | + 'name' => t('Bold'), |
|
113 | + 'className' => 'markitup-bold', |
|
114 | + 'key' => 'B', |
|
115 | + 'openWith' => '(!(<strong>|!|<b>)!)', |
|
116 | + 'closeWith' => '(!(</strong>|!|</b>)!)', |
|
117 | 117 | ), |
118 | 118 | 'italic' => array( |
119 | - 'name' => t('Italic'), |
|
120 | - 'className' => 'markitup-italic', |
|
121 | - 'key' => 'I', |
|
122 | - 'openWith' => '(!(<em>|!|<i>)!)', |
|
123 | - 'closeWith' => '(!(</em>|!|</i>)!)', |
|
119 | + 'name' => t('Italic'), |
|
120 | + 'className' => 'markitup-italic', |
|
121 | + 'key' => 'I', |
|
122 | + 'openWith' => '(!(<em>|!|<i>)!)', |
|
123 | + 'closeWith' => '(!(</em>|!|</i>)!)', |
|
124 | 124 | ), |
125 | 125 | 'stroke' => array( |
126 | - 'name' => t('Strike-through'), |
|
127 | - 'className' => 'markitup-stroke', |
|
128 | - 'key' => 'S', |
|
129 | - 'openWith' => '<del>', |
|
130 | - 'closeWith' => '</del>', |
|
126 | + 'name' => t('Strike-through'), |
|
127 | + 'className' => 'markitup-stroke', |
|
128 | + 'key' => 'S', |
|
129 | + 'openWith' => '<del>', |
|
130 | + 'closeWith' => '</del>', |
|
131 | 131 | ), |
132 | 132 | 'image' => array( |
133 | - 'name' => t('Image'), |
|
134 | - 'className' => 'markitup-image', |
|
135 | - 'key' => 'P', |
|
136 | - 'replaceWith' => '<img src="[![Source:!:http://]!]" alt="[![Alternative text]!]" />', |
|
133 | + 'name' => t('Image'), |
|
134 | + 'className' => 'markitup-image', |
|
135 | + 'key' => 'P', |
|
136 | + 'replaceWith' => '<img src="[![Source:!:http://]!]" alt="[![Alternative text]!]" />', |
|
137 | 137 | ), |
138 | 138 | 'link' => array( |
139 | - 'name' => t('Link'), |
|
140 | - 'className' => 'markitup-link', |
|
141 | - 'key' => 'K', |
|
142 | - 'openWith' => '<a href="[![Link:!:http://]!]"(!( title="[![Title]!]")!)>', |
|
143 | - 'closeWith' => '</a>', |
|
144 | - 'placeHolder' => 'Your text to link...', |
|
139 | + 'name' => t('Link'), |
|
140 | + 'className' => 'markitup-link', |
|
141 | + 'key' => 'K', |
|
142 | + 'openWith' => '<a href="[![Link:!:http://]!]"(!( title="[![Title]!]")!)>', |
|
143 | + 'closeWith' => '</a>', |
|
144 | + 'placeHolder' => 'Your text to link...', |
|
145 | 145 | ), |
146 | 146 | // @todo |
147 | 147 | // 'cleanup' => array('name' => t('Clean-up'), 'className' => 'markitup-cleanup', 'replaceWith' => 'function(markitup) { return markitup.selection.replace(/<(.*?)>/g, "") }'), |
148 | 148 | 'preview' => array( |
149 | - 'name' => t('Preview'), |
|
150 | - 'className' => 'markitup-preview', |
|
151 | - 'call' => 'preview', |
|
149 | + 'name' => t('Preview'), |
|
150 | + 'className' => 'markitup-preview', |
|
151 | + 'call' => 'preview', |
|
152 | 152 | ), |
153 | - ); |
|
154 | - $settings['markupSet'] = array(); |
|
155 | - if (!empty($config['buttons'])) { |
|
153 | + ); |
|
154 | + $settings['markupSet'] = array(); |
|
155 | + if (!empty($config['buttons'])) { |
|
156 | 156 | foreach ($config['buttons'] as $plugin) { |
157 | - foreach ($plugin as $button => $enabled) { |
|
157 | + foreach ($plugin as $button => $enabled) { |
|
158 | 158 | if (isset($default_buttons[$button])) { |
159 | - $settings['markupSet'][$button] = $default_buttons[$button]; |
|
159 | + $settings['markupSet'][$button] = $default_buttons[$button]; |
|
160 | + } |
|
160 | 161 | } |
161 | - } |
|
162 | 162 | } |
163 | - } |
|
163 | + } |
|
164 | 164 | |
165 | - return $settings; |
|
165 | + return $settings; |
|
166 | 166 | } |
167 | 167 | |
168 | 168 | /** |
169 | 169 | * Return internal plugins for this editor; semi-implementation of hook_wysiwyg_plugin(). |
170 | 170 | */ |
171 | 171 | function wysiwyg_markitup_plugins($editor) { |
172 | - return array( |
|
172 | + return array( |
|
173 | 173 | 'default' => array( |
174 | - 'buttons' => array( |
|
174 | + 'buttons' => array( |
|
175 | 175 | 'bold' => t('Bold'), 'italic' => t('Italic'), |
176 | 176 | 'stroke' => t('Strike-through'), |
177 | 177 | 'link' => t('Link'), |
178 | 178 | 'image' => t('Image'), |
179 | 179 | // 'cleanup' => t('Clean-up'), |
180 | 180 | 'preview' => t('Preview'), |
181 | - ), |
|
182 | - 'internal' => TRUE, |
|
181 | + ), |
|
182 | + 'internal' => TRUE, |
|
183 | 183 | ), |
184 | - ); |
|
184 | + ); |
|
185 | 185 | } |
186 | 186 |
@@ -48,10 +48,10 @@ discard block |
||
48 | 48 | */ |
49 | 49 | function wysiwyg_markitup_version($editor) { |
50 | 50 | // Changelog was in markitup/markitup/readme.txt <= 1.1.5. |
51 | - $changelog = $editor['library path'] . '/markitup/readme.txt'; |
|
51 | + $changelog = $editor['library path'].'/markitup/readme.txt'; |
|
52 | 52 | if (!file_exists($changelog)) { |
53 | 53 | // Changelog was moved up to markitup/CHANGELOG.md after 1.1.5. |
54 | - $changelog = $editor['library path'] . '/CHANGELOG.md'; |
|
54 | + $changelog = $editor['library path'].'/CHANGELOG.md'; |
|
55 | 55 | if (!file_exists($changelog)) { |
56 | 56 | return; |
57 | 57 | } |
@@ -98,10 +98,10 @@ discard block |
||
98 | 98 | function wysiwyg_markitup_settings($editor, $config, $theme) { |
99 | 99 | // Whoever is guilty for adding this horrible CSS-file-without-filepath |
100 | 100 | // override "feature" to Drupal core... stand in the corner! |
101 | - drupal_add_css($editor['library path'] . '/markitup/skins/' . $theme . '/style.css', 'theme'); |
|
101 | + drupal_add_css($editor['library path'].'/markitup/skins/'.$theme.'/style.css', 'theme'); |
|
102 | 102 | |
103 | 103 | $settings = array( |
104 | - 'root' => base_path() . $editor['library path'] . '/markitup/', |
|
104 | + 'root' => base_path().$editor['library path'].'/markitup/', |
|
105 | 105 | 'nameSpace' => $theme, |
106 | 106 | 'markupSet' => array(), |
107 | 107 | ); |
@@ -38,7 +38,7 @@ |
||
38 | 38 | * An array containing editor properties as returned from hook_editor(). |
39 | 39 | * |
40 | 40 | * @return |
41 | - * The installed editor version. |
|
41 | + string The installed editor version. |
|
42 | 42 | */ |
43 | 43 | function wysiwyg_nicedit_version($editor) { |
44 | 44 | // @see http://nicedit.com/forums/viewtopic.php?t=425 |
@@ -9,26 +9,26 @@ discard block |
||
9 | 9 | * Plugin implementation of hook_editor(). |
10 | 10 | */ |
11 | 11 | function wysiwyg_nicedit_editor() { |
12 | - $editor['nicedit'] = array( |
|
12 | + $editor['nicedit'] = array( |
|
13 | 13 | 'title' => 'NicEdit', |
14 | 14 | 'vendor url' => 'http://nicedit.com', |
15 | 15 | 'download url' => 'http://nicedit.com/download.php', |
16 | 16 | 'libraries' => array( |
17 | - '' => array( |
|
17 | + '' => array( |
|
18 | 18 | 'title' => 'Source', |
19 | 19 | 'files' => array('nicEdit.js'), |
20 | - ), |
|
20 | + ), |
|
21 | 21 | ), |
22 | 22 | 'version callback' => 'wysiwyg_nicedit_version', |
23 | 23 | 'settings callback' => 'wysiwyg_nicedit_settings', |
24 | 24 | 'plugin callback' => 'wysiwyg_nicedit_plugins', |
25 | 25 | 'versions' => array( |
26 | - '0.9' => array( |
|
26 | + '0.9' => array( |
|
27 | 27 | 'js files' => array('nicedit.js'), |
28 | - ), |
|
28 | + ), |
|
29 | 29 | ), |
30 | - ); |
|
31 | - return $editor; |
|
30 | + ); |
|
31 | + return $editor; |
|
32 | 32 | } |
33 | 33 | |
34 | 34 | /** |
@@ -41,8 +41,8 @@ discard block |
||
41 | 41 | * The installed editor version. |
42 | 42 | */ |
43 | 43 | function wysiwyg_nicedit_version($editor) { |
44 | - // @see http://nicedit.com/forums/viewtopic.php?t=425 |
|
45 | - return '0.9'; |
|
44 | + // @see http://nicedit.com/forums/viewtopic.php?t=425 |
|
45 | + return '0.9'; |
|
46 | 46 | } |
47 | 47 | |
48 | 48 | /** |
@@ -60,43 +60,43 @@ discard block |
||
60 | 60 | * Drupal.settings.wysiwyg.configs.{editor} |
61 | 61 | */ |
62 | 62 | function wysiwyg_nicedit_settings($editor, $config, $theme) { |
63 | - $settings = array( |
|
63 | + $settings = array( |
|
64 | 64 | 'iconsPath' => base_path() . $editor['library path'] . '/nicEditorIcons.gif', |
65 | - ); |
|
65 | + ); |
|
66 | 66 | |
67 | - // Add configured buttons or all available. |
|
68 | - $settings['buttonList'] = array(); |
|
69 | - if (!empty($config['buttons'])) { |
|
67 | + // Add configured buttons or all available. |
|
68 | + $settings['buttonList'] = array(); |
|
69 | + if (!empty($config['buttons'])) { |
|
70 | 70 | $buttons = array(); |
71 | 71 | foreach ($config['buttons'] as $plugin) { |
72 | - $buttons = array_merge($buttons, $plugin); |
|
72 | + $buttons = array_merge($buttons, $plugin); |
|
73 | 73 | } |
74 | 74 | $settings['buttonList'] = array_keys($buttons); |
75 | - } |
|
75 | + } |
|
76 | 76 | |
77 | - // Add editor content stylesheet. |
|
78 | - if (isset($config['css_setting'])) { |
|
77 | + // Add editor content stylesheet. |
|
78 | + if (isset($config['css_setting'])) { |
|
79 | 79 | if ($config['css_setting'] == 'theme') { |
80 | - $css = path_to_theme() . '/style.css'; |
|
81 | - if (file_exists($css)) { |
|
80 | + $css = path_to_theme() . '/style.css'; |
|
81 | + if (file_exists($css)) { |
|
82 | 82 | $settings['externalCSS'] = base_path() . $css; |
83 | - } |
|
83 | + } |
|
84 | 84 | } |
85 | 85 | else if ($config['css_setting'] == 'self' && isset($config['css_path'])) { |
86 | - $settings['externalCSS'] = strtr($config['css_path'], array('%b' => base_path(), '%t' => path_to_theme())); |
|
86 | + $settings['externalCSS'] = strtr($config['css_path'], array('%b' => base_path(), '%t' => path_to_theme())); |
|
87 | + } |
|
87 | 88 | } |
88 | - } |
|
89 | 89 | |
90 | - return $settings; |
|
90 | + return $settings; |
|
91 | 91 | } |
92 | 92 | |
93 | 93 | /** |
94 | 94 | * Return internal plugins for this editor; semi-implementation of hook_wysiwyg_plugin(). |
95 | 95 | */ |
96 | 96 | function wysiwyg_nicedit_plugins($editor) { |
97 | - return array( |
|
97 | + return array( |
|
98 | 98 | 'default' => array( |
99 | - 'buttons' => array( |
|
99 | + 'buttons' => array( |
|
100 | 100 | 'bold' => t('Bold'), 'italic' => t('Italic'), 'underline' => t('Underline'), |
101 | 101 | 'strikethrough' => t('Strike-through'), |
102 | 102 | 'left' => t('Align left'), 'center' => t('Align center'), 'right' => t('Align right'), |
@@ -111,9 +111,9 @@ discard block |
||
111 | 111 | 'link' => t('Link'), 'unlink' => t('Unlink'), |
112 | 112 | 'fontFormat' => t('HTML block format'), 'fontFamily' => t('Font'), 'fontSize' => t('Font size'), |
113 | 113 | 'xhtml' => t('Source code'), |
114 | - ), |
|
115 | - 'internal' => TRUE, |
|
114 | + ), |
|
115 | + 'internal' => TRUE, |
|
116 | 116 | ), |
117 | - ); |
|
117 | + ); |
|
118 | 118 | } |
119 | 119 |
@@ -61,7 +61,7 @@ discard block |
||
61 | 61 | */ |
62 | 62 | function wysiwyg_nicedit_settings($editor, $config, $theme) { |
63 | 63 | $settings = array( |
64 | - 'iconsPath' => base_path() . $editor['library path'] . '/nicEditorIcons.gif', |
|
64 | + 'iconsPath' => base_path().$editor['library path'].'/nicEditorIcons.gif', |
|
65 | 65 | ); |
66 | 66 | |
67 | 67 | // Add configured buttons or all available. |
@@ -77,9 +77,9 @@ discard block |
||
77 | 77 | // Add editor content stylesheet. |
78 | 78 | if (isset($config['css_setting'])) { |
79 | 79 | if ($config['css_setting'] == 'theme') { |
80 | - $css = path_to_theme() . '/style.css'; |
|
80 | + $css = path_to_theme().'/style.css'; |
|
81 | 81 | if (file_exists($css)) { |
82 | - $settings['externalCSS'] = base_path() . $css; |
|
82 | + $settings['externalCSS'] = base_path().$css; |
|
83 | 83 | } |
84 | 84 | } |
85 | 85 | else if ($config['css_setting'] == 'self' && isset($config['css_path'])) { |
@@ -108,8 +108,7 @@ |
||
108 | 108 | if (file_exists($css)) { |
109 | 109 | $settings['externalCSS'] = base_path() . $css; |
110 | 110 | } |
111 | - } |
|
112 | - else if ($config['css_setting'] == 'self' && isset($config['css_path'])) { |
|
111 | + } else if ($config['css_setting'] == 'self' && isset($config['css_path'])) { |
|
113 | 112 | $settings['externalCSS'] = strtr($config['css_path'], array('%b' => base_path(), '%t' => path_to_theme())); |
114 | 113 | } |
115 | 114 | } |
@@ -41,7 +41,7 @@ discard block |
||
41 | 41 | * An array containing editor properties as returned from hook_editor(). |
42 | 42 | * |
43 | 43 | * @return |
44 | - * The installed editor version. |
|
44 | + null|string The installed editor version. |
|
45 | 45 | */ |
46 | 46 | function wysiwyg_openwysiwyg_version($editor) { |
47 | 47 | // 'library path' has '/scripts' appended already. |
@@ -67,7 +67,7 @@ discard block |
||
67 | 67 | * A wysiwyg editor profile. |
68 | 68 | * |
69 | 69 | * @return |
70 | - * An array of theme names. The first returned name should be the default |
|
70 | + string[] An array of theme names. The first returned name should be the default |
|
71 | 71 | * theme name. |
72 | 72 | */ |
73 | 73 | function wysiwyg_openwysiwyg_themes($editor, $profile) { |
@@ -9,29 +9,29 @@ discard block |
||
9 | 9 | * Plugin implementation of hook_editor(). |
10 | 10 | */ |
11 | 11 | function wysiwyg_openwysiwyg_editor() { |
12 | - $editor['openwysiwyg'] = array( |
|
12 | + $editor['openwysiwyg'] = array( |
|
13 | 13 | 'title' => 'openWYSIWYG', |
14 | 14 | 'vendor url' => 'http://www.openwebware.com', |
15 | 15 | 'download url' => 'http://www.openwebware.com/download.shtml', |
16 | 16 | 'library path' => wysiwyg_get_path('openwysiwyg') . '/scripts', |
17 | 17 | 'libraries' => array( |
18 | - 'src' => array( |
|
18 | + 'src' => array( |
|
19 | 19 | 'title' => 'Source', |
20 | 20 | 'files' => array('wysiwyg.js'), |
21 | - ), |
|
21 | + ), |
|
22 | 22 | ), |
23 | 23 | 'version callback' => 'wysiwyg_openwysiwyg_version', |
24 | 24 | 'themes callback' => 'wysiwyg_openwysiwyg_themes', |
25 | 25 | 'settings callback' => 'wysiwyg_openwysiwyg_settings', |
26 | 26 | 'plugin callback' => 'wysiwyg_openwysiwyg_plugins', |
27 | 27 | 'versions' => array( |
28 | - '1.4.7' => array( |
|
28 | + '1.4.7' => array( |
|
29 | 29 | 'js files' => array('openwysiwyg.js'), |
30 | 30 | 'css files' => array('openwysiwyg.css'), |
31 | - ), |
|
31 | + ), |
|
32 | 32 | ), |
33 | - ); |
|
34 | - return $editor; |
|
33 | + ); |
|
34 | + return $editor; |
|
35 | 35 | } |
36 | 36 | |
37 | 37 | /** |
@@ -44,18 +44,18 @@ discard block |
||
44 | 44 | * The installed editor version. |
45 | 45 | */ |
46 | 46 | function wysiwyg_openwysiwyg_version($editor) { |
47 | - // 'library path' has '/scripts' appended already. |
|
48 | - $changelog = $editor['editor path'] . '/changelog'; |
|
49 | - if (!file_exists($changelog)) { |
|
47 | + // 'library path' has '/scripts' appended already. |
|
48 | + $changelog = $editor['editor path'] . '/changelog'; |
|
49 | + if (!file_exists($changelog)) { |
|
50 | 50 | return; |
51 | - } |
|
52 | - $changelog = fopen($changelog, 'r'); |
|
53 | - $line = fgets($changelog, 20); |
|
54 | - if (preg_match('@v([\d\.]+)@', $line, $version)) { |
|
51 | + } |
|
52 | + $changelog = fopen($changelog, 'r'); |
|
53 | + $line = fgets($changelog, 20); |
|
54 | + if (preg_match('@v([\d\.]+)@', $line, $version)) { |
|
55 | 55 | fclose($changelog); |
56 | 56 | return $version[1]; |
57 | - } |
|
58 | - fclose($changelog); |
|
57 | + } |
|
58 | + fclose($changelog); |
|
59 | 59 | } |
60 | 60 | |
61 | 61 | /** |
@@ -71,7 +71,7 @@ discard block |
||
71 | 71 | * theme name. |
72 | 72 | */ |
73 | 73 | function wysiwyg_openwysiwyg_themes($editor, $profile) { |
74 | - return array('default'); |
|
74 | + return array('default'); |
|
75 | 75 | } |
76 | 76 | |
77 | 77 | /** |
@@ -89,58 +89,58 @@ discard block |
||
89 | 89 | * Drupal.settings.wysiwyg.configs.{editor} |
90 | 90 | */ |
91 | 91 | function wysiwyg_openwysiwyg_settings($editor, $config, $theme) { |
92 | - $settings = array( |
|
92 | + $settings = array( |
|
93 | 93 | 'path' => base_path() . $editor['editor path'] . '/', |
94 | 94 | 'Width' => '100%', |
95 | - ); |
|
95 | + ); |
|
96 | 96 | |
97 | - if (isset($config['path_loc']) && $config['path_loc'] == 'none') { |
|
97 | + if (isset($config['path_loc']) && $config['path_loc'] == 'none') { |
|
98 | 98 | $settings['StatusBarEnabled'] = FALSE; |
99 | - } |
|
99 | + } |
|
100 | 100 | |
101 | - if (isset($config['css_setting'])) { |
|
101 | + if (isset($config['css_setting'])) { |
|
102 | 102 | if ($config['css_setting'] == 'theme') { |
103 | - $settings['CSSFile'] = reset(wysiwyg_get_css()); |
|
103 | + $settings['CSSFile'] = reset(wysiwyg_get_css()); |
|
104 | 104 | } |
105 | 105 | else if ($config['css_setting'] == 'self' && isset($config['css_path'])) { |
106 | - $settings['CSSFile'] = strtr($config['css_path'], array('%b' => base_path(), '%t' => path_to_theme())); |
|
106 | + $settings['CSSFile'] = strtr($config['css_path'], array('%b' => base_path(), '%t' => path_to_theme())); |
|
107 | + } |
|
107 | 108 | } |
108 | - } |
|
109 | 109 | |
110 | - $settings['Toolbar'] = array(); |
|
111 | - if (!empty($config['buttons'])) { |
|
110 | + $settings['Toolbar'] = array(); |
|
111 | + if (!empty($config['buttons'])) { |
|
112 | 112 | $plugins = wysiwyg_get_plugins($editor['name']); |
113 | 113 | foreach ($config['buttons'] as $plugin => $buttons) { |
114 | - foreach ($buttons as $button => $enabled) { |
|
114 | + foreach ($buttons as $button => $enabled) { |
|
115 | 115 | foreach (array('buttons', 'extensions') as $type) { |
116 | - // Skip unavailable plugins. |
|
117 | - if (!isset($plugins[$plugin][$type][$button])) { |
|
116 | + // Skip unavailable plugins. |
|
117 | + if (!isset($plugins[$plugin][$type][$button])) { |
|
118 | 118 | continue; |
119 | - } |
|
120 | - // Add buttons. |
|
121 | - if ($type == 'buttons') { |
|
119 | + } |
|
120 | + // Add buttons. |
|
121 | + if ($type == 'buttons') { |
|
122 | 122 | $settings['Toolbar'][0][] = $button; |
123 | - } |
|
123 | + } |
|
124 | + } |
|
124 | 125 | } |
125 | - } |
|
126 | 126 | } |
127 | - } |
|
127 | + } |
|
128 | 128 | |
129 | - // @todo |
|
129 | + // @todo |
|
130 | 130 | // if (isset($config['block_formats'])) { |
131 | 131 | // $settings['DropDowns']['headings']['elements'] = explode(',', $config['block_formats']); |
132 | 132 | // } |
133 | 133 | |
134 | - return $settings; |
|
134 | + return $settings; |
|
135 | 135 | } |
136 | 136 | |
137 | 137 | /** |
138 | 138 | * Return internal plugins for this editor; semi-implementation of hook_wysiwyg_plugin(). |
139 | 139 | */ |
140 | 140 | function wysiwyg_openwysiwyg_plugins($editor) { |
141 | - $plugins = array( |
|
141 | + $plugins = array( |
|
142 | 142 | 'default' => array( |
143 | - 'buttons' => array( |
|
143 | + 'buttons' => array( |
|
144 | 144 | 'bold' => t('Bold'), 'italic' => t('Italic'), 'underline' => t('Underline'), |
145 | 145 | 'strikethrough' => t('Strike-through'), |
146 | 146 | 'justifyleft' => t('Align left'), 'justifycenter' => t('Align center'), 'justifyright' => t('Align right'), 'justifyfull' => t('Justify'), |
@@ -164,10 +164,10 @@ discard block |
||
164 | 164 | 'print' => t('Print'), |
165 | 165 | 'inserttable' => t('Table'), |
166 | 166 | 'help' => t('Help'), |
167 | - ), |
|
168 | - 'internal' => TRUE, |
|
167 | + ), |
|
168 | + 'internal' => TRUE, |
|
169 | 169 | ), |
170 | - ); |
|
171 | - return $plugins; |
|
170 | + ); |
|
171 | + return $plugins; |
|
172 | 172 | } |
173 | 173 |
@@ -13,7 +13,7 @@ discard block |
||
13 | 13 | 'title' => 'openWYSIWYG', |
14 | 14 | 'vendor url' => 'http://www.openwebware.com', |
15 | 15 | 'download url' => 'http://www.openwebware.com/download.shtml', |
16 | - 'library path' => wysiwyg_get_path('openwysiwyg') . '/scripts', |
|
16 | + 'library path' => wysiwyg_get_path('openwysiwyg').'/scripts', |
|
17 | 17 | 'libraries' => array( |
18 | 18 | 'src' => array( |
19 | 19 | 'title' => 'Source', |
@@ -45,7 +45,7 @@ discard block |
||
45 | 45 | */ |
46 | 46 | function wysiwyg_openwysiwyg_version($editor) { |
47 | 47 | // 'library path' has '/scripts' appended already. |
48 | - $changelog = $editor['editor path'] . '/changelog'; |
|
48 | + $changelog = $editor['editor path'].'/changelog'; |
|
49 | 49 | if (!file_exists($changelog)) { |
50 | 50 | return; |
51 | 51 | } |
@@ -90,7 +90,7 @@ discard block |
||
90 | 90 | */ |
91 | 91 | function wysiwyg_openwysiwyg_settings($editor, $config, $theme) { |
92 | 92 | $settings = array( |
93 | - 'path' => base_path() . $editor['editor path'] . '/', |
|
93 | + 'path' => base_path().$editor['editor path'].'/', |
|
94 | 94 | 'Width' => '100%', |
95 | 95 | ); |
96 | 96 |
@@ -101,8 +101,7 @@ |
||
101 | 101 | if (isset($config['css_setting'])) { |
102 | 102 | if ($config['css_setting'] == 'theme') { |
103 | 103 | $settings['CSSFile'] = reset(wysiwyg_get_css()); |
104 | - } |
|
105 | - else if ($config['css_setting'] == 'self' && isset($config['css_path'])) { |
|
104 | + } else if ($config['css_setting'] == 'self' && isset($config['css_path'])) { |
|
106 | 105 | $settings['CSSFile'] = strtr($config['css_path'], array('%b' => base_path(), '%t' => path_to_theme())); |
107 | 106 | } |
108 | 107 | } |