@@ -26,82 +26,82 @@ discard block |
||
26 | 26 | * Implementation of hook_menu() |
27 | 27 | */ |
28 | 28 | function boincteam_menu() { |
29 | - $items = array(); |
|
30 | - $items['community/teams/%/assume-foundership'] = array( |
|
29 | + $items = array(); |
|
30 | + $items['community/teams/%/assume-foundership'] = array( |
|
31 | 31 | 'page callback' => 'boincteam_assume_foundership', |
32 | 32 | 'page arguments' => array(2), |
33 | 33 | 'access callback' => 'boincteam_is_member', |
34 | 34 | 'access arguments' => array(2), |
35 | 35 | 'type' => MENU_CALLBACK |
36 | - ); |
|
37 | - $items['community/teams/%/join'] = array( |
|
36 | + ); |
|
37 | + $items['community/teams/%/join'] = array( |
|
38 | 38 | 'page callback' => 'boincteam_join', |
39 | 39 | 'page arguments' => array(2), |
40 | 40 | 'access arguments' => array('join boincteam'), |
41 | 41 | 'type' => MENU_CALLBACK |
42 | - ); |
|
43 | - $items['community/teams/%/leave'] = array( |
|
42 | + ); |
|
43 | + $items['community/teams/%/leave'] = array( |
|
44 | 44 | 'page callback' => 'boincteam_leave', |
45 | 45 | 'page arguments' => array(2), |
46 | 46 | 'access arguments' => array('join boincteam'), |
47 | 47 | 'type' => MENU_CALLBACK |
48 | - ); |
|
49 | - $items['community/teams/%/delete'] = array( |
|
48 | + ); |
|
49 | + $items['community/teams/%/delete'] = array( |
|
50 | 50 | 'page callback' => 'boincteam_delete', |
51 | 51 | 'page arguments' => array(2), |
52 | 52 | 'access callback' => 'boincteam_is_founder', |
53 | 53 | 'access arguments' => array(2), |
54 | 54 | 'type' => MENU_CALLBACK |
55 | - ); |
|
56 | - $items['community/teams/%/deny-foundership-request'] = array( |
|
55 | + ); |
|
56 | + $items['community/teams/%/deny-foundership-request'] = array( |
|
57 | 57 | 'page callback' => 'boincteam_deny_foundership_request', |
58 | 58 | 'page arguments' => array(2), |
59 | 59 | 'access callback' => 'boincteam_is_founder', |
60 | 60 | 'access arguments' => array(2), |
61 | 61 | 'type' => MENU_CALLBACK |
62 | - ); |
|
63 | - $items['community/teams/%/edit/admins/remove/%'] = array( |
|
62 | + ); |
|
63 | + $items['community/teams/%/edit/admins/remove/%'] = array( |
|
64 | 64 | 'page callback' => 'boincteam_remove_admin', |
65 | 65 | 'page arguments' => array(2,6), |
66 | 66 | 'access callback' => 'boincteam_is_founder', |
67 | 67 | 'access arguments' => array(2), |
68 | 68 | 'type' => MENU_CALLBACK |
69 | - ); |
|
70 | - $items['community/teams/%/edit/founder/set/%'] = array( |
|
69 | + ); |
|
70 | + $items['community/teams/%/edit/founder/set/%'] = array( |
|
71 | 71 | 'page callback' => 'boincteam_set_founder', |
72 | 72 | 'page arguments' => array(2,6), |
73 | 73 | 'access callback' => 'boincteam_is_founder', |
74 | 74 | 'access arguments' => array(2), |
75 | 75 | 'type' => MENU_CALLBACK |
76 | - ); |
|
77 | - $items['community/teams/%/edit/members/remove/%'] = array( |
|
76 | + ); |
|
77 | + $items['community/teams/%/edit/members/remove/%'] = array( |
|
78 | 78 | 'page callback' => 'boincteam_remove_member', |
79 | 79 | 'page arguments' => array(2,6), |
80 | 80 | 'access callback' => 'boincteam_is_founder', |
81 | 81 | 'access arguments' => array(2), |
82 | 82 | 'type' => MENU_CALLBACK |
83 | - ); |
|
84 | - $items['community/teams/%/history/xml'] = array( |
|
83 | + ); |
|
84 | + $items['community/teams/%/history/xml'] = array( |
|
85 | 85 | 'page callback' => 'boincteam_history_xml', |
86 | 86 | 'page arguments' => array(2), |
87 | 87 | 'access callback' => 'boincteam_is_admin', |
88 | 88 | 'access arguments' => array(2), |
89 | 89 | 'type' => MENU_CALLBACK |
90 | - ); |
|
91 | - $items['community/teams/%/request-foundership'] = array( |
|
90 | + ); |
|
91 | + $items['community/teams/%/request-foundership'] = array( |
|
92 | 92 | 'page callback' => 'boincteam_request_foundership', |
93 | 93 | 'page arguments' => array(2), |
94 | 94 | 'access callback' => 'boincteam_is_member', |
95 | 95 | 'access arguments' => array(2), |
96 | 96 | 'type' => MENU_CALLBACK |
97 | - ); |
|
98 | - $items['community/teams/%/user-name-autocomplete'] = array( |
|
97 | + ); |
|
98 | + $items['community/teams/%/user-name-autocomplete'] = array( |
|
99 | 99 | 'page callback' => '_boincuser_user_name_autocomplete', |
100 | 100 | 'access callback' => 'boincteam_is_founder', |
101 | 101 | 'access arguments' => array(2), |
102 | 102 | 'type' => MENU_CALLBACK, |
103 | - ); |
|
104 | - $items['community/teams/%/message-all-members'] = array( |
|
103 | + ); |
|
104 | + $items['community/teams/%/message-all-members'] = array( |
|
105 | 105 | 'title' => bts('Send Message to Team', array(), NULL, 'boinc:team-manage'), |
106 | 106 | 'description' => bts('Send Message to Team', array(), NULL, 'boinc:team-manage'), |
107 | 107 | 'page callback' => 'drupal_get_form', |
@@ -109,8 +109,8 @@ discard block |
||
109 | 109 | 'access callback' => 'boincteam_is_admin', |
110 | 110 | 'access arguments' => array(2), |
111 | 111 | 'type' => MENU_CALLBACK, |
112 | - ); |
|
113 | - $items['admin/boinc/utility-team-delete'] = array( |
|
112 | + ); |
|
113 | + $items['admin/boinc/utility-team-delete'] = array( |
|
114 | 114 | 'title' => 'Utility: Delete SPAM Teams', |
115 | 115 | 'description' => 'Utililities to help delete BOINC teams created by SPAMMERs.', |
116 | 116 | 'page callback' => 'drupal_get_form', |
@@ -118,9 +118,9 @@ discard block |
||
118 | 118 | 'access arguments' => array('administer site configuration'), |
119 | 119 | 'type' => MENU_NORMAL_ITEM, |
120 | 120 | 'file' => 'boincteam.admin.inc', |
121 | - ); |
|
121 | + ); |
|
122 | 122 | |
123 | - return $items; |
|
123 | + return $items; |
|
124 | 124 | } |
125 | 125 | |
126 | 126 | /** |
@@ -137,41 +137,41 @@ discard block |
||
137 | 137 | |
138 | 138 | See https://www.drupal.org/node/945102 |
139 | 139 | */ |
140 | - return array( |
|
140 | + return array( |
|
141 | 141 | 'boincteam_utility_team_table' => array( |
142 | - 'arguments' => array('form' => NULL), |
|
143 | - 'file' => 'boincteam.admin.inc', |
|
142 | + 'arguments' => array('form' => NULL), |
|
143 | + 'file' => 'boincteam.admin.inc', |
|
144 | 144 | ), |
145 | - ); |
|
145 | + ); |
|
146 | 146 | } |
147 | 147 | |
148 | 148 | /** |
149 | 149 | * Implementation of hook_views_api(). |
150 | 150 | */ |
151 | 151 | function boincteam_views_api() { |
152 | - return array( |
|
152 | + return array( |
|
153 | 153 | 'api' => 2.0, |
154 | 154 | 'path' => drupal_get_path('module', 'boincteam') |
155 | - ); |
|
155 | + ); |
|
156 | 156 | } |
157 | 157 | |
158 | 158 | /** |
159 | 159 | * Implementation of hook_perm() |
160 | 160 | */ |
161 | 161 | function boincteam_perm() { |
162 | - return array('join boincteam', 'create boincteam', 'manage boincteam'); |
|
162 | + return array('join boincteam', 'create boincteam', 'manage boincteam'); |
|
163 | 163 | } |
164 | 164 | |
165 | 165 | /** |
166 | 166 | * Implementation of hook_cron() |
167 | 167 | */ |
168 | 168 | function boincteam_cron() { |
169 | - // Sync teams from BOINC DB every day to catch BOINC-wide team updates |
|
170 | - $last_sync = variable_get('boincteam_last_sync', 0); |
|
171 | - if ($last_sync < time() - 24*60*60) { |
|
169 | + // Sync teams from BOINC DB every day to catch BOINC-wide team updates |
|
170 | + $last_sync = variable_get('boincteam_last_sync', 0); |
|
171 | + if ($last_sync < time() - 24*60*60) { |
|
172 | 172 | boincteam_sync(); |
173 | 173 | variable_set('boincteam_last_sync', time()); |
174 | - } |
|
174 | + } |
|
175 | 175 | } |
176 | 176 | |
177 | 177 | /** |
@@ -185,41 +185,41 @@ discard block |
||
185 | 185 | * Implementation of hook_views_pre_execute(). |
186 | 186 | */ |
187 | 187 | function boincteam_views_pre_execute(&$view) { |
188 | - /* Specific boinc_teams sub-views use the boinc readonly replica |
|
188 | + /* Specific boinc_teams sub-views use the boinc readonly replica |
|
189 | 189 | * DB. These sub-views defined below by their title. If additional |
190 | 190 | * sub-views need to be added, add their title to the list of cases |
191 | 191 | * below. If a sub-view needs to be reverted to use the master DB, |
192 | 192 | * then remove it from the list of cases. |
193 | 193 | */ |
194 | - if ($view->name == 'boinc_teams') { |
|
194 | + if ($view->name == 'boinc_teams') { |
|
195 | 195 | switch ($view->display[$view->current_display]->display_title) { |
196 | 196 | case 'Top teams overview pane': |
197 | 197 | case 'Top teams pane': |
198 | 198 | case 'Page': |
199 | 199 | $view->base_database = 'boinc_ro'; |
200 | 200 | } |
201 | - } |
|
201 | + } |
|
202 | 202 | } |
203 | 203 | |
204 | 204 | /** |
205 | 205 | * Implementation of hook_cron_queue_info() |
206 | 206 | */ |
207 | 207 | function boincteam_cron_queue_info() { |
208 | - $queues = array(); |
|
209 | - $queues['queue_teamdelete'] = array( |
|
208 | + $queues = array(); |
|
209 | + $queues['queue_teamdelete'] = array( |
|
210 | 210 | 'worker callback' => 'boincteam_delete', |
211 | 211 | 'time' => 60, |
212 | - ); |
|
212 | + ); |
|
213 | 213 | } |
214 | 214 | |
215 | 215 | /** |
216 | 216 | * Implementation of hook_mail_alter() |
217 | 217 | */ |
218 | 218 | function boincteam_mail_alter(&$message) { |
219 | - if (isset($message['params']['boincteam_headers'])) { |
|
219 | + if (isset($message['params']['boincteam_headers'])) { |
|
220 | 220 | $message['headers']['Bcc'] = $message['params']['boincteam_headers']['Bcc']; |
221 | 221 | $message['to'] = ''; |
222 | - } |
|
222 | + } |
|
223 | 223 | } |
224 | 224 | |
225 | 225 | /* * * * * * * * * * * * * * * * * * * * * * * * * * * * |
@@ -231,49 +231,49 @@ discard block |
||
231 | 231 | * assume the role of founder |
232 | 232 | */ |
233 | 233 | function boincteam_assume_foundership($team_id) { |
234 | - global $user; |
|
235 | - $account = user_load($user->uid); |
|
236 | - $team = node_load($team_id); |
|
237 | - $boincteam_id = boincteam_lookup_id($team_id); |
|
238 | - $boincteam = boincteam_load($boincteam_id); |
|
239 | - $boincuser_id = $account->boincuser_id; |
|
234 | + global $user; |
|
235 | + $account = user_load($user->uid); |
|
236 | + $team = node_load($team_id); |
|
237 | + $boincteam_id = boincteam_lookup_id($team_id); |
|
238 | + $boincteam = boincteam_load($boincteam_id); |
|
239 | + $boincuser_id = $account->boincuser_id; |
|
240 | 240 | |
241 | - if (boincteam_foundership_transfer_ok($boincteam)) { |
|
241 | + if (boincteam_foundership_transfer_ok($boincteam)) { |
|
242 | 242 | if ($boincuser_id == $boincteam->ping_user) { |
243 | - db_set_active('boinc_rw'); |
|
244 | - db_query(" |
|
243 | + db_set_active('boinc_rw'); |
|
244 | + db_query(" |
|
245 | 245 | UPDATE {team} |
246 | 246 | SET userid = '%d', ping_user = '0', ping_time = '0' |
247 | 247 | WHERE id = '%d'", |
248 | 248 | $boincuser_id, $boincteam_id |
249 | - ); |
|
250 | - db_set_active('default'); |
|
251 | - drupal_set_message(t('You are now the founder of @team', array( |
|
249 | + ); |
|
250 | + db_set_active('default'); |
|
251 | + drupal_set_message(t('You are now the founder of @team', array( |
|
252 | 252 | '@team' => $team->title |
253 | - ))); |
|
254 | - watchdog('boincteam', 'User @user assumed foundership of team @nid', |
|
253 | + ))); |
|
254 | + watchdog('boincteam', 'User @user assumed foundership of team @nid', |
|
255 | 255 | array( |
256 | - '@current_user' => $account->uid, |
|
257 | - '@nid' => $team_id |
|
256 | + '@current_user' => $account->uid, |
|
257 | + '@nid' => $team_id |
|
258 | 258 | ), WATCHDOG_NOTICE |
259 | - ); |
|
259 | + ); |
|
260 | 260 | } |
261 | - } |
|
262 | - else { |
|
261 | + } |
|
262 | + else { |
|
263 | 263 | drupal_set_message(t('You are not allowed to assume foundership of this |
264 | 264 | team.' |
265 | 265 | )); |
266 | - } |
|
267 | - drupal_goto("community/teams/{$team_id}"); |
|
266 | + } |
|
267 | + drupal_goto("community/teams/{$team_id}"); |
|
268 | 268 | } |
269 | 269 | |
270 | 270 | /** |
271 | 271 | * Delete the team, if empty |
272 | 272 | */ |
273 | 273 | function boincteam_delete($team_id) { |
274 | - $team = node_load($team_id); |
|
275 | - $boincteam = boincteam_load(boincteam_lookup_id($team_id), TRUE); |
|
276 | - if ($boincteam->nusers == 1) { |
|
274 | + $team = node_load($team_id); |
|
275 | + $boincteam = boincteam_load(boincteam_lookup_id($team_id), TRUE); |
|
276 | + if ($boincteam->nusers == 1) { |
|
277 | 277 | require_boinc('team'); |
278 | 278 | $boincuser = boincuser_load(); |
279 | 279 | user_quit_team($boincuser); |
@@ -282,35 +282,35 @@ discard block |
||
282 | 282 | $team->uid = 0; |
283 | 283 | node_save($team); |
284 | 284 | drupal_set_message(t('@team has been removed.', |
285 | - array('@team' => $boincteam->name))); |
|
285 | + array('@team' => $boincteam->name))); |
|
286 | 286 | drupal_goto('community/teams'); |
287 | - } |
|
288 | - else { |
|
287 | + } |
|
288 | + else { |
|
289 | 289 | drupal_set_message(t('All members must be removed from @team before the |
290 | 290 | team can be deleted.', array('@team' => $boincteam->name)), 'error'); |
291 | 291 | drupal_goto(strstr($_GET['q'], '/delete', TRUE)); |
292 | - } |
|
292 | + } |
|
293 | 293 | } |
294 | 294 | |
295 | 295 | /** |
296 | 296 | * Deny a foundership transfer request |
297 | 297 | */ |
298 | 298 | function boincteam_deny_foundership_request($team_id) { |
299 | - $boincteam_id = boincteam_lookup_id($team_id); |
|
300 | - // Remove the request from the BOINC database |
|
301 | - db_set_active('boinc_rw'); |
|
302 | - db_query(" |
|
299 | + $boincteam_id = boincteam_lookup_id($team_id); |
|
300 | + // Remove the request from the BOINC database |
|
301 | + db_set_active('boinc_rw'); |
|
302 | + db_query(" |
|
303 | 303 | UPDATE {team} |
304 | 304 | SET ping_user=0 |
305 | 305 | WHERE id = '%d'", |
306 | 306 | $boincteam_id |
307 | - ); |
|
308 | - db_set_active('default'); |
|
307 | + ); |
|
308 | + db_set_active('default'); |
|
309 | 309 | |
310 | - drupal_set_message(t('The transfer request has been denied. No additional |
|
310 | + drupal_set_message(t('The transfer request has been denied. No additional |
|
311 | 311 | requests will be allowed until 90 days have passed since this request was |
312 | 312 | made.')); |
313 | - drupal_goto("community/teams/{$team_id}/edit/founder"); |
|
313 | + drupal_goto("community/teams/{$team_id}/edit/founder"); |
|
314 | 314 | } |
315 | 315 | |
316 | 316 | |
@@ -318,62 +318,62 @@ discard block |
||
318 | 318 | * Get the join date of a user |
319 | 319 | */ |
320 | 320 | function boincteam_get_member_join_date($boincteam_id, $boincuser_id = NULL) { |
321 | - if (!$boincuser_id) { |
|
321 | + if (!$boincuser_id) { |
|
322 | 322 | global $user; |
323 | 323 | $account = user_load($user->uid); |
324 | 324 | $boincuser_id = $account->boincuser_id; |
325 | - } |
|
326 | - db_set_active('boinc_rw'); |
|
327 | - $timestamp = db_result(db_query(" |
|
325 | + } |
|
326 | + db_set_active('boinc_rw'); |
|
327 | + $timestamp = db_result(db_query(" |
|
328 | 328 | SELECT timestamp FROM {team_delta} WHERE |
329 | 329 | userid = %d AND teamid = %d AND joining = 1 |
330 | 330 | ORDER BY timestamp DESC LIMIT 1", |
331 | 331 | $boincuser_id, $boincteam_id |
332 | - )); |
|
333 | - db_set_active('default'); |
|
334 | - return $timestamp; |
|
332 | + )); |
|
333 | + db_set_active('default'); |
|
334 | + return $timestamp; |
|
335 | 335 | } |
336 | 336 | |
337 | 337 | /** |
338 | 338 | * Get the team type for display |
339 | 339 | */ |
340 | 340 | function boincteam_get_type($team_id) { |
341 | - //$vid = boincteam_get_vocabulary_by_name('Teams'); $team->vid = $vid; |
|
342 | - $team = node_load($team_id); |
|
343 | - $terms = taxonomy_node_get_terms($team); |
|
344 | - if ($terms) { |
|
341 | + //$vid = boincteam_get_vocabulary_by_name('Teams'); $team->vid = $vid; |
|
342 | + $team = node_load($team_id); |
|
343 | + $terms = taxonomy_node_get_terms($team); |
|
344 | + if ($terms) { |
|
345 | 345 | $term = reset($terms); |
346 | 346 | return $term->name; |
347 | - } else { |
|
347 | + } else { |
|
348 | 348 | return null; |
349 | - } |
|
349 | + } |
|
350 | 350 | } |
351 | 351 | |
352 | 352 | /** |
353 | 353 | * Access a vocabulary of terms by name |
354 | 354 | */ |
355 | 355 | function boincteam_get_vocabulary_by_name($name) { |
356 | - $vocabs = taxonomy_get_vocabularies('team'); |
|
357 | - foreach ($vocabs as $vocab) { |
|
356 | + $vocabs = taxonomy_get_vocabularies('team'); |
|
357 | + foreach ($vocabs as $vocab) { |
|
358 | 358 | if ($vocab->name == $name) return $vocab->vid; |
359 | - } |
|
360 | - return null; |
|
359 | + } |
|
360 | + return null; |
|
361 | 361 | } |
362 | 362 | |
363 | 363 | /** |
364 | 364 | * Output the XML of the team history |
365 | 365 | */ |
366 | 366 | function boincteam_history_xml($team_id) { |
367 | - $team = node_load($team_id); |
|
368 | - $boincteam_id = boincteam_lookup_id($team_id); |
|
369 | - $team_history = array( |
|
367 | + $team = node_load($team_id); |
|
368 | + $boincteam_id = boincteam_lookup_id($team_id); |
|
369 | + $team_history = array( |
|
370 | 370 | 'actions' => array( |
371 | - 'action' => array(), |
|
371 | + 'action' => array(), |
|
372 | 372 | ), |
373 | - ); |
|
373 | + ); |
|
374 | 374 | |
375 | - db_set_active('boinc_rw'); |
|
376 | - $result = db_query(" |
|
375 | + db_set_active('boinc_rw'); |
|
376 | + $result = db_query(" |
|
377 | 377 | SELECT |
378 | 378 | td.userid AS id, |
379 | 379 | u.name, |
@@ -385,40 +385,40 @@ discard block |
||
385 | 385 | WHERE td.teamid = %d |
386 | 386 | ORDER BY timestamp ASC", |
387 | 387 | $boincteam_id |
388 | - ); |
|
389 | - db_set_active('default'); |
|
388 | + ); |
|
389 | + db_set_active('default'); |
|
390 | 390 | |
391 | - while ($record = db_fetch_array($result)) { |
|
391 | + while ($record = db_fetch_array($result)) { |
|
392 | 392 | $team_history['actions']['action'][] = $record; |
393 | - } |
|
393 | + } |
|
394 | 394 | |
395 | - header('Content-type: text/xml'); |
|
396 | - echo xml_to_text(array_to_xml($team_history)); |
|
395 | + header('Content-type: text/xml'); |
|
396 | + echo xml_to_text(array_to_xml($team_history)); |
|
397 | 397 | } |
398 | 398 | |
399 | 399 | /** |
400 | 400 | * Convert a BOINC team ID to a Drupal team ID |
401 | 401 | */ |
402 | 402 | function boincteam_lookup_nid($boinc_id) { |
403 | - $drupal_id = db_result(db_query("SELECT nid FROM {boincteam} WHERE team_id='%d'", $boinc_id)); |
|
404 | - return $drupal_id; |
|
403 | + $drupal_id = db_result(db_query("SELECT nid FROM {boincteam} WHERE team_id='%d'", $boinc_id)); |
|
404 | + return $drupal_id; |
|
405 | 405 | } |
406 | 406 | |
407 | 407 | /** |
408 | 408 | * Convert a Drupal team ID to a BOINC team ID |
409 | 409 | */ |
410 | 410 | function boincteam_lookup_id($nid) { |
411 | - $boinc_id = db_result(db_query("SELECT team_id FROM {boincteam} WHERE nid = '%d'", $nid)); |
|
412 | - return $boinc_id; |
|
411 | + $boinc_id = db_result(db_query("SELECT team_id FROM {boincteam} WHERE nid = '%d'", $nid)); |
|
412 | + return $boinc_id; |
|
413 | 413 | } |
414 | 414 | |
415 | 415 | /** |
416 | 416 | * Get a BOINC team object |
417 | 417 | */ |
418 | 418 | function boincteam_load($boincteam_id, $full_object = FALSE) { |
419 | - require_boinc(array('team')); |
|
420 | - $team = BoincTeam::lookup_id($boincteam_id); |
|
421 | - if ($team AND $full_object) { |
|
419 | + require_boinc(array('team')); |
|
420 | + $team = BoincTeam::lookup_id($boincteam_id); |
|
421 | + if ($team AND $full_object) { |
|
422 | 422 | $team->nusers = BoincUser::count("teamid={$team->id}"); |
423 | 423 | $team->nusers_worked = BoincUser::count("teamid={$team->id} and total_credit>0"); |
424 | 424 | $team->nusers_active = BoincUser::count("teamid={$team->id} and expavg_credit>0.1"); |
@@ -426,313 +426,313 @@ discard block |
||
426 | 426 | $team->new_members = new_member_list($boincteam_id); |
427 | 427 | $team->admins = admin_list($boincteam_id); |
428 | 428 | $team->founder = BoincUser::lookup_id($team->userid); |
429 | - } |
|
430 | - return $team; |
|
429 | + } |
|
430 | + return $team; |
|
431 | 431 | } |
432 | 432 | |
433 | 433 | /** |
434 | 434 | * Check if a user is the team founder |
435 | 435 | */ |
436 | 436 | function boincteam_is_founder($nid, $uid = NULL) { |
437 | - if (!$uid) { |
|
437 | + if (!$uid) { |
|
438 | 438 | global $user; |
439 | 439 | $uid = $user->uid; |
440 | - } |
|
441 | - if (!boincteam_is_member($nid, $uid)) { |
|
440 | + } |
|
441 | + if (!boincteam_is_member($nid, $uid)) { |
|
442 | 442 | return FALSE; |
443 | - } |
|
444 | - $team_id = boincteam_lookup_id($nid); |
|
445 | - require_boinc('team'); |
|
446 | - return is_team_founder(boincuser_load($uid, TRUE), boincteam_load($team_id)); |
|
443 | + } |
|
444 | + $team_id = boincteam_lookup_id($nid); |
|
445 | + require_boinc('team'); |
|
446 | + return is_team_founder(boincuser_load($uid, TRUE), boincteam_load($team_id)); |
|
447 | 447 | } |
448 | 448 | |
449 | 449 | /** |
450 | 450 | * Check if a user is a team admin |
451 | 451 | */ |
452 | 452 | function boincteam_is_admin($nid, $uid = NULL) { |
453 | - if (!$uid) { |
|
453 | + if (!$uid) { |
|
454 | 454 | global $user; |
455 | 455 | $uid = $user->uid; |
456 | - } |
|
457 | - if (!boincteam_is_member($nid, $uid)) { |
|
456 | + } |
|
457 | + if (!boincteam_is_member($nid, $uid)) { |
|
458 | 458 | return FALSE; |
459 | - } |
|
460 | - $team_id = boincteam_lookup_id($nid); |
|
461 | - require_boinc('team'); |
|
462 | - return is_team_admin(boincuser_load($uid, TRUE), boincteam_load($team_id)); |
|
459 | + } |
|
460 | + $team_id = boincteam_lookup_id($nid); |
|
461 | + require_boinc('team'); |
|
462 | + return is_team_admin(boincuser_load($uid, TRUE), boincteam_load($team_id)); |
|
463 | 463 | } |
464 | 464 | |
465 | 465 | /** |
466 | 466 | * Check if a user is a team member |
467 | 467 | */ |
468 | 468 | function boincteam_is_member($nid, $uid = NULL) { |
469 | - if (!$uid) { |
|
469 | + if (!$uid) { |
|
470 | 470 | global $user; |
471 | 471 | $uid = $user->uid; |
472 | - } |
|
473 | - $account = user_load($uid); |
|
474 | - return ($account->team == $nid); |
|
472 | + } |
|
473 | + $account = user_load($uid); |
|
474 | + return ($account->team == $nid); |
|
475 | 475 | } |
476 | 476 | |
477 | 477 | /** |
478 | 478 | * Display any persistent team messages |
479 | 479 | */ |
480 | 480 | function boincteam_show_messages() { |
481 | - global $user; |
|
482 | - $uid = $user->uid; |
|
483 | - $account = user_load($uid); |
|
484 | - if ($account->team) { |
|
481 | + global $user; |
|
482 | + $uid = $user->uid; |
|
483 | + $account = user_load($uid); |
|
484 | + if ($account->team) { |
|
485 | 485 | if (boincteam_is_founder($account->team, $account->uid)) { |
486 | - // Set a notice of any pending foundership requests |
|
487 | - $boincteam_id = boincteam_lookup_id($account->team); |
|
488 | - $boincteam = boincteam_load($boincteam_id); |
|
489 | - if ($boincteam->ping_user > 0) { |
|
486 | + // Set a notice of any pending foundership requests |
|
487 | + $boincteam_id = boincteam_lookup_id($account->team); |
|
488 | + $boincteam = boincteam_load($boincteam_id); |
|
489 | + if ($boincteam->ping_user > 0) { |
|
490 | 490 | $foundership_url = "community/teams/{$account->team}/edit/founder"; |
491 | 491 | if (substr($_GET['q'], 0, strlen($foundership_url)) != $foundership_url) { |
492 | - drupal_set_message( |
|
492 | + drupal_set_message( |
|
493 | 493 | bts( |
494 | - 'A foundership transfer request has been made for your team. Please !respond.', |
|
495 | - array('!respond' => l(bts('respond to the request', array(), NULL, 'boinc:team-founder-change'), $foundership_url)), |
|
496 | - NULL, 'boinc:team-founder-change'), |
|
494 | + 'A foundership transfer request has been made for your team. Please !respond.', |
|
495 | + array('!respond' => l(bts('respond to the request', array(), NULL, 'boinc:team-founder-change'), $foundership_url)), |
|
496 | + NULL, 'boinc:team-founder-change'), |
|
497 | 497 | 'warning', FALSE |
498 | - ); |
|
498 | + ); |
|
499 | + } |
|
499 | 500 | } |
500 | - } |
|
501 | 501 | } |
502 | - } |
|
502 | + } |
|
503 | 503 | } |
504 | 504 | |
505 | 505 | /** |
506 | 506 | * Add a user to a team |
507 | 507 | */ |
508 | 508 | function boincteam_join($team_id) { |
509 | - global $user; |
|
510 | - $account = user_load($user->uid); |
|
509 | + global $user; |
|
510 | + $account = user_load($user->uid); |
|
511 | 511 | |
512 | - $boincteam_id = boincteam_lookup_id($team_id); |
|
513 | - $boincteam = boincteam_load($boincteam_id); |
|
514 | - if ($boincteam->joinable AND $account->team != $team_id) { |
|
512 | + $boincteam_id = boincteam_lookup_id($team_id); |
|
513 | + $boincteam = boincteam_load($boincteam_id); |
|
514 | + if ($boincteam->joinable AND $account->team != $team_id) { |
|
515 | 515 | require_boinc('team'); |
516 | 516 | $boincuser = boincuser_load(); |
517 | 517 | if (user_join_team($boincteam, $boincuser)) { |
518 | - drupal_set_message(t('You are now a member of @team!', |
|
518 | + drupal_set_message(t('You are now a member of @team!', |
|
519 | 519 | array('@team' => $boincteam->name))); |
520 | - watchdog('boincteam', 'added user @uid to team @nid', |
|
520 | + watchdog('boincteam', 'added user @uid to team @nid', |
|
521 | 521 | array('@uid' => $user->uid, '@nid' => $team_id), WATCHDOG_NOTICE); |
522 | 522 | } |
523 | 523 | else { |
524 | - drupal_set_message(t('There was a problem joining @team, please try again |
|
524 | + drupal_set_message(t('There was a problem joining @team, please try again |
|
525 | 525 | later', array('@team' => $boincteam->name))); |
526 | - watchdog('boincteam', 'error adding user @uid to team @nid', |
|
526 | + watchdog('boincteam', 'error adding user @uid to team @nid', |
|
527 | 527 | array('@uid' => $user->uid, '@nid' => $team_id), WATCHDOG_ERROR); |
528 | 528 | } |
529 | - } |
|
530 | - drupal_goto("community/teams/{$team_id}"); |
|
529 | + } |
|
530 | + drupal_goto("community/teams/{$team_id}"); |
|
531 | 531 | } |
532 | 532 | |
533 | 533 | /** |
534 | 534 | * Leave a team |
535 | 535 | */ |
536 | 536 | function boincteam_leave($team_id) { |
537 | - global $user; |
|
538 | - $account = user_load($user->uid); |
|
537 | + global $user; |
|
538 | + $account = user_load($user->uid); |
|
539 | 539 | |
540 | - $boincteam_id = boincteam_lookup_id($team_id); |
|
541 | - $boincteam = boincteam_load($boincteam_id); |
|
542 | - if ($account->team == $team_id) { |
|
540 | + $boincteam_id = boincteam_lookup_id($team_id); |
|
541 | + $boincteam = boincteam_load($boincteam_id); |
|
542 | + if ($account->team == $team_id) { |
|
543 | 543 | require_boinc('team'); |
544 | 544 | $boincuser = boincuser_load(); |
545 | 545 | user_quit_team($boincuser); |
546 | 546 | drupal_set_message(t('You are no longer a member of @team.', |
547 | - array('@team' => $boincteam->name))); |
|
547 | + array('@team' => $boincteam->name))); |
|
548 | 548 | watchdog('boincteam', 'removed user @uid from team @nid', |
549 | - array('@uid' => $user->uid, '@nid' => $team_id), WATCHDOG_NOTICE); |
|
550 | - } |
|
551 | - else { |
|
552 | - drupal_set_message(t('You are not a member of @team, so you cannot revoke |
|
549 | + array('@uid' => $user->uid, '@nid' => $team_id), WATCHDOG_NOTICE); |
|
550 | + } |
|
551 | + else { |
|
552 | + drupal_set_message(t('You are not a member of @team, so you cannot revoke |
|
553 | 553 | your membership to it.', array('@team' => $boincteam->name))); |
554 | - } |
|
555 | - drupal_goto("community/teams/{$team_id}"); |
|
554 | + } |
|
555 | + drupal_goto("community/teams/{$team_id}"); |
|
556 | 556 | } |
557 | 557 | |
558 | 558 | /** |
559 | 559 | * Remove team admin status from a user |
560 | 560 | */ |
561 | 561 | function boincteam_remove_admin($team_id, $user_id) { |
562 | - global $user; |
|
563 | - $account = user_load($user_id); |
|
564 | - $team = node_load($team_id); |
|
565 | - $boincteam_id = boincteam_lookup_id($team_id); |
|
566 | - $boincuser_id = $account->boincuser_id; |
|
562 | + global $user; |
|
563 | + $account = user_load($user_id); |
|
564 | + $team = node_load($team_id); |
|
565 | + $boincteam_id = boincteam_lookup_id($team_id); |
|
566 | + $boincuser_id = $account->boincuser_id; |
|
567 | 567 | |
568 | - if (boincteam_is_admin($team_id, $account->uid)) { |
|
568 | + if (boincteam_is_admin($team_id, $account->uid)) { |
|
569 | 569 | // Update the team in the BOINC db |
570 | 570 | db_set_active('boinc_rw'); |
571 | 571 | db_query(" |
572 | 572 | DELETE FROM {team_admin} WHERE |
573 | 573 | teamid = '%d' AND userid = '%d'", |
574 | - $boincteam_id, |
|
575 | - $boincuser_id |
|
574 | + $boincteam_id, |
|
575 | + $boincuser_id |
|
576 | 576 | ); |
577 | 577 | db_set_active('default'); |
578 | 578 | drupal_set_message(t('@user is no longer an admin of @team.', |
579 | - array( |
|
579 | + array( |
|
580 | 580 | '@user' => $account->boincuser_name, |
581 | 581 | '@team' => $team->title |
582 | - ) |
|
582 | + ) |
|
583 | 583 | )); |
584 | 584 | watchdog('boincteam', 'User @current_user removed admin status for user |
585 | 585 | @uid from team @nid', |
586 | - array( |
|
586 | + array( |
|
587 | 587 | '@current_user' => $user->uid, |
588 | 588 | '@uid' => $account->uid, |
589 | 589 | '@nid' => $team_id |
590 | - ), WATCHDOG_NOTICE); |
|
591 | - } |
|
592 | - drupal_goto("community/teams/{$team_id}/edit/admins"); |
|
590 | + ), WATCHDOG_NOTICE); |
|
591 | + } |
|
592 | + drupal_goto("community/teams/{$team_id}/edit/admins"); |
|
593 | 593 | } |
594 | 594 | |
595 | 595 | /** |
596 | 596 | * Remove a user from a team |
597 | 597 | */ |
598 | 598 | function boincteam_remove_member($team_id, $user_id) { |
599 | - global $user; |
|
600 | - $account = user_load($user_id); |
|
599 | + global $user; |
|
600 | + $account = user_load($user_id); |
|
601 | 601 | |
602 | - $boincteam_id = boincteam_lookup_id($team_id); |
|
603 | - $boincteam = boincteam_load($boincteam_id); |
|
604 | - if ($account->team == $team_id) { |
|
602 | + $boincteam_id = boincteam_lookup_id($team_id); |
|
603 | + $boincteam = boincteam_load($boincteam_id); |
|
604 | + if ($account->team == $team_id) { |
|
605 | 605 | require_boinc('team'); |
606 | 606 | $boincuser = boincuser_load($user_id, TRUE); |
607 | 607 | user_quit_team($boincuser); |
608 | 608 | drupal_set_message(t('@user has been removed from @team.', |
609 | - array( |
|
609 | + array( |
|
610 | 610 | '@user' => $account->boincuser_name, |
611 | 611 | '@team' => $boincteam->name |
612 | - ) |
|
612 | + ) |
|
613 | 613 | )); |
614 | 614 | watchdog('boincteam', 'User @current_user removed user @uid from team @nid', |
615 | - array( |
|
615 | + array( |
|
616 | 616 | '@current_user' => $user->uid, |
617 | 617 | '@uid' => $account->uid, |
618 | 618 | '@nid' => $team_id |
619 | - ), WATCHDOG_NOTICE); |
|
620 | - } |
|
621 | - else { |
|
622 | - drupal_set_message(t('@user is not a member of @team, so you cannot |
|
619 | + ), WATCHDOG_NOTICE); |
|
620 | + } |
|
621 | + else { |
|
622 | + drupal_set_message(t('@user is not a member of @team, so you cannot |
|
623 | 623 | revoke the membership.', array( |
624 | - '@user' => $account->boincuser_name, |
|
625 | - '@team' => $boincteam->name |
|
624 | + '@user' => $account->boincuser_name, |
|
625 | + '@team' => $boincteam->name |
|
626 | 626 | ) |
627 | - )); |
|
628 | - } |
|
629 | - drupal_goto("community/teams/{$team_id}/edit/members"); |
|
627 | + )); |
|
628 | + } |
|
629 | + drupal_goto("community/teams/{$team_id}/edit/members"); |
|
630 | 630 | } |
631 | 631 | |
632 | 632 | /** |
633 | 633 | * Request a foundership transfer |
634 | 634 | */ |
635 | 635 | function boincteam_request_foundership($team_id) { |
636 | - global $user; |
|
637 | - $account = user_load($user->uid); |
|
638 | - $team = node_load($team_id); |
|
639 | - $boincteam_id = boincteam_lookup_id($team_id); |
|
640 | - $boincteam = boincteam_load($boincteam_id); |
|
641 | - $boincuser_id = $account->boincuser_id; |
|
636 | + global $user; |
|
637 | + $account = user_load($user->uid); |
|
638 | + $team = node_load($team_id); |
|
639 | + $boincteam_id = boincteam_lookup_id($team_id); |
|
640 | + $boincteam = boincteam_load($boincteam_id); |
|
641 | + $boincuser_id = $account->boincuser_id; |
|
642 | 642 | |
643 | - if (boincteam_is_founder($team_id, $account->uid)) { |
|
643 | + if (boincteam_is_founder($team_id, $account->uid)) { |
|
644 | 644 | // Shouldn't even be here... |
645 | 645 | drupal_set_message(t('@user is already the team founder.', |
646 | - array( |
|
646 | + array( |
|
647 | 647 | '@user' => $account->boincuser_name |
648 | - ) |
|
648 | + ) |
|
649 | 649 | ), 'warning'); |
650 | - } |
|
651 | - elseif (!boincteam_new_foundership_transfer_request_ok($team_id)) { |
|
650 | + } |
|
651 | + elseif (!boincteam_new_foundership_transfer_request_ok($team_id)) { |
|
652 | 652 | // It hasn't been long enough since the last transfer request |
653 | 653 | drupal_set_message(t('A foundership change was requested during the last 90 |
654 | 654 | days, so new requests are not allowed. Please try again later.' |
655 | 655 | ), 'warning'); |
656 | - } |
|
657 | - elseif (boincteam_is_member($team_id, $account->uid)) { |
|
656 | + } |
|
657 | + elseif (boincteam_is_member($team_id, $account->uid)) { |
|
658 | 658 | // Log the transfer request |
659 | 659 | db_set_active('boinc_rw'); |
660 | 660 | db_query(" |
661 | 661 | UPDATE {team} |
662 | 662 | SET ping_user = '%d', ping_time='%d' |
663 | 663 | WHERE id = '%d'", |
664 | - $boincuser_id, time(), $boincteam_id |
|
664 | + $boincuser_id, time(), $boincteam_id |
|
665 | 665 | ); |
666 | 666 | db_set_active('default'); |
667 | 667 | drupal_set_message(t('You have requested foundership of @team. The current |
668 | 668 | founder has 60 days to respond to this request.', |
669 | - array( |
|
669 | + array( |
|
670 | 670 | '@team' => $team->title |
671 | - ) |
|
671 | + ) |
|
672 | 672 | )); |
673 | 673 | watchdog('boincteam', 'User @user requested foundership of team @nid', |
674 | - array( |
|
674 | + array( |
|
675 | 675 | '@current_user' => $account->uid, |
676 | 676 | '@nid' => $team_id |
677 | - ), WATCHDOG_NOTICE); |
|
678 | - } |
|
679 | - drupal_goto("community/teams/{$team_id}"); |
|
677 | + ), WATCHDOG_NOTICE); |
|
678 | + } |
|
679 | + drupal_goto("community/teams/{$team_id}"); |
|
680 | 680 | } |
681 | 681 | |
682 | 682 | /** |
683 | 683 | * Transfer foundership to another team member |
684 | 684 | */ |
685 | 685 | function boincteam_set_founder($team_id, $user_id) { |
686 | - global $user; |
|
687 | - $account = user_load($user_id); |
|
688 | - $team = node_load($team_id); |
|
689 | - $boincteam_id = boincteam_lookup_id($team_id); |
|
690 | - $boincuser_id = $account->boincuser_id; |
|
686 | + global $user; |
|
687 | + $account = user_load($user_id); |
|
688 | + $team = node_load($team_id); |
|
689 | + $boincteam_id = boincteam_lookup_id($team_id); |
|
690 | + $boincuser_id = $account->boincuser_id; |
|
691 | 691 | |
692 | - if (boincteam_is_member($team_id, $account->uid)) { |
|
692 | + if (boincteam_is_member($team_id, $account->uid)) { |
|
693 | 693 | // Update the team in the BOINC db |
694 | 694 | db_set_active('boinc_rw'); |
695 | 695 | db_query(" |
696 | 696 | UPDATE {team} |
697 | 697 | SET userid = '%d', ping_user=0 |
698 | 698 | WHERE id = '%d'", |
699 | - $boincuser_id, $boincteam_id |
|
699 | + $boincuser_id, $boincteam_id |
|
700 | 700 | ); |
701 | 701 | db_set_active('default'); |
702 | 702 | drupal_set_message(t('Foundership of @team has been transfered to @user.', |
703 | - array( |
|
703 | + array( |
|
704 | 704 | '@user' => $account->boincuser_name, |
705 | 705 | '@team' => $team->title |
706 | - ) |
|
706 | + ) |
|
707 | 707 | )); |
708 | 708 | watchdog('boincteam', 'User @current_user transferred foundership of team |
709 | 709 | @nid to user @uid', |
710 | - array( |
|
710 | + array( |
|
711 | 711 | '@current_user' => $user->uid, |
712 | 712 | '@uid' => $account->uid, |
713 | 713 | '@nid' => $team_id |
714 | - ), WATCHDOG_NOTICE); |
|
715 | - } |
|
716 | - drupal_goto("community/teams/{$team_id}"); |
|
714 | + ), WATCHDOG_NOTICE); |
|
715 | + } |
|
716 | + drupal_goto("community/teams/{$team_id}"); |
|
717 | 717 | } |
718 | 718 | |
719 | 719 | /** |
720 | 720 | * See if a new foundership transfer request is allowed |
721 | 721 | */ |
722 | 722 | function boincteam_new_foundership_transfer_request_ok($team_id) { |
723 | - $boincteam_id = boincteam_lookup_id($team_id); |
|
724 | - $boincteam = boincteam_load($boincteam_id); |
|
725 | - $now = time(); |
|
726 | - if ($boincteam->ping_user <= 0) { |
|
723 | + $boincteam_id = boincteam_lookup_id($team_id); |
|
724 | + $boincteam = boincteam_load($boincteam_id); |
|
725 | + $now = time(); |
|
726 | + if ($boincteam->ping_user <= 0) { |
|
727 | 727 | if ($boincteam->ping_time < $now - 60 * (24*60*60)) { |
728 | - return TRUE; |
|
728 | + return TRUE; |
|
729 | 729 | } |
730 | 730 | return FALSE; |
731 | - } |
|
732 | - if ($boincteam->ping_time < $now - 90 * (24*60*60)) { |
|
731 | + } |
|
732 | + if ($boincteam->ping_time < $now - 90 * (24*60*60)) { |
|
733 | 733 | return TRUE; |
734 | - } |
|
735 | - return FALSE; |
|
734 | + } |
|
735 | + return FALSE; |
|
736 | 736 | } |
737 | 737 | |
738 | 738 | /** |
@@ -754,18 +754,18 @@ discard block |
||
754 | 754 | * Check if a user has an active foundership request with a team |
755 | 755 | */ |
756 | 756 | function boincteam_user_requested_foundership($team_id, $user_id = NULL) { |
757 | - if (!$user_id) { |
|
757 | + if (!$user_id) { |
|
758 | 758 | global $user; |
759 | 759 | $user_id = $user->uid; |
760 | - } |
|
761 | - $account = user_load($user_id); |
|
762 | - $boincteam_id = boincteam_lookup_id($team_id); |
|
763 | - $boincteam = boincteam_load($boincteam_id); |
|
760 | + } |
|
761 | + $account = user_load($user_id); |
|
762 | + $boincteam_id = boincteam_lookup_id($team_id); |
|
763 | + $boincteam = boincteam_load($boincteam_id); |
|
764 | 764 | |
765 | - if ($boincteam->ping_user == $account->boincuser_id) { |
|
765 | + if ($boincteam->ping_user == $account->boincuser_id) { |
|
766 | 766 | // Be sure the request is still active |
767 | 767 | return !boincteam_new_foundership_transfer_request_ok($team_id); |
768 | - } |
|
768 | + } |
|
769 | 769 | } |
770 | 770 | |
771 | 771 | |
@@ -777,125 +777,125 @@ discard block |
||
777 | 777 | * General info about team admins |
778 | 778 | */ |
779 | 779 | function boincteam_about_admins_panel() { |
780 | - $output = ''; |
|
781 | - $output .= '<h2 class="pane-title">' . bts('About team admins', array(), NULL, 'boinc:team-admins-panel') . '</h2>'; |
|
782 | - $output .= '<div>'; |
|
783 | - $output .= '<p>' . bts('Team admins can:', array(), NULL, 'boinc:team-admins-panel') . '</p>'; |
|
784 | - $output .= '<ul>'; |
|
785 | - $output .= ' <li>' . bts('Edit team information', array(), NULL, 'boinc:team-admins-panel') . '</li>'; |
|
786 | - $output .= ' <li>' . bts("View the team's join / quit history", array(), NULL, 'boinc:team-admins-panel') . '</li>'; |
|
787 | - $output .= ' <li>' . bts('Moderate the team forum', array(), NULL, 'boinc:team-admins-panel') . '</li>'; |
|
788 | - $output .= ' <li>' . bts('Remove members from the team', array(), NULL, 'boinc:team-admins-panel') . '</li>'; |
|
789 | - $output .= ' <li>' . bts('Disband a team if it has no members', array(), NULL, 'boinc:team-admins-panel') . '</li>'; |
|
790 | - $output .= '</ul>'; |
|
791 | - $output .= '</div>'; |
|
792 | - $output .= '<div>'; |
|
793 | - $output .= '<p>' . bts('Team admins cannot:', array(), NULL, 'boinc:team-admins-panel') . '</p>'; |
|
794 | - $output .= '<ul>'; |
|
795 | - $output .= ' <li>' . bts('Change the team founder', array(), NULL, 'boinc:team-admins-panel') . '</li>'; |
|
796 | - $output .= ' <li>' . bts('Remove members', array(), NULL, 'boinc:team-admins-panel') . '</li>'; |
|
797 | - $output .= ' <li>' . bts('Add / Remove team admins', array(), NULL, 'boinc:team-admins-panel') . '</li>'; |
|
798 | - $output .= '</ul>'; |
|
799 | - $output .= '</div>'; |
|
800 | - $output .= '<p>' . bts('If a team admin quits the team, they cease to be a' |
|
780 | + $output = ''; |
|
781 | + $output .= '<h2 class="pane-title">' . bts('About team admins', array(), NULL, 'boinc:team-admins-panel') . '</h2>'; |
|
782 | + $output .= '<div>'; |
|
783 | + $output .= '<p>' . bts('Team admins can:', array(), NULL, 'boinc:team-admins-panel') . '</p>'; |
|
784 | + $output .= '<ul>'; |
|
785 | + $output .= ' <li>' . bts('Edit team information', array(), NULL, 'boinc:team-admins-panel') . '</li>'; |
|
786 | + $output .= ' <li>' . bts("View the team's join / quit history", array(), NULL, 'boinc:team-admins-panel') . '</li>'; |
|
787 | + $output .= ' <li>' . bts('Moderate the team forum', array(), NULL, 'boinc:team-admins-panel') . '</li>'; |
|
788 | + $output .= ' <li>' . bts('Remove members from the team', array(), NULL, 'boinc:team-admins-panel') . '</li>'; |
|
789 | + $output .= ' <li>' . bts('Disband a team if it has no members', array(), NULL, 'boinc:team-admins-panel') . '</li>'; |
|
790 | + $output .= '</ul>'; |
|
791 | + $output .= '</div>'; |
|
792 | + $output .= '<div>'; |
|
793 | + $output .= '<p>' . bts('Team admins cannot:', array(), NULL, 'boinc:team-admins-panel') . '</p>'; |
|
794 | + $output .= '<ul>'; |
|
795 | + $output .= ' <li>' . bts('Change the team founder', array(), NULL, 'boinc:team-admins-panel') . '</li>'; |
|
796 | + $output .= ' <li>' . bts('Remove members', array(), NULL, 'boinc:team-admins-panel') . '</li>'; |
|
797 | + $output .= ' <li>' . bts('Add / Remove team admins', array(), NULL, 'boinc:team-admins-panel') . '</li>'; |
|
798 | + $output .= '</ul>'; |
|
799 | + $output .= '</div>'; |
|
800 | + $output .= '<p>' . bts('If a team admin quits the team, they cease to be a' |
|
801 | 801 | . ' team admin. We recommend only selecting people you know and trust', array(), NULL, 'boinc:team-admins-panel') |
802 | 802 | . '</p>'; |
803 | - return $output; |
|
803 | + return $output; |
|
804 | 804 | } |
805 | 805 | |
806 | 806 | /** |
807 | 807 | * General info about changing the team founder |
808 | 808 | */ |
809 | 809 | function boincteam_about_founder_panel() { |
810 | - $output = ''; |
|
811 | - $output .= '<h2 class="pane-title">' . bts('Changing the team founder', array(), NULL, 'boinc:team-founder-panel') |
|
810 | + $output = ''; |
|
811 | + $output .= '<h2 class="pane-title">' . bts('Changing the team founder', array(), NULL, 'boinc:team-founder-panel') |
|
812 | 812 | . '</h2>'; |
813 | - $output .= '<div>'; |
|
814 | - $output .= '<p>' . bts('Notes about changes in foundership:', array(), NULL, 'boinc:team-founder-panel') . '</p>'; |
|
815 | - $output .= '<ul>'; |
|
816 | - $output .= ' <li>' . bts('Any member of the team is eligible', array(), NULL, 'boinc:team-founder-panel') . '</li>'; |
|
817 | - $output .= ' <li>' . bts('Current founder becomes a normal user', array(), NULL, 'boinc:team-founder-panel') . '</li>'; |
|
818 | - $output .= '</ul>'; |
|
819 | - $output .= '</div>'; |
|
820 | - $output .= '<div>'; |
|
821 | - $output .= '<p>' . bts('Foundership can be requested by team members:', array(), NULL, 'boinc:team-founder-panel') |
|
813 | + $output .= '<div>'; |
|
814 | + $output .= '<p>' . bts('Notes about changes in foundership:', array(), NULL, 'boinc:team-founder-panel') . '</p>'; |
|
815 | + $output .= '<ul>'; |
|
816 | + $output .= ' <li>' . bts('Any member of the team is eligible', array(), NULL, 'boinc:team-founder-panel') . '</li>'; |
|
817 | + $output .= ' <li>' . bts('Current founder becomes a normal user', array(), NULL, 'boinc:team-founder-panel') . '</li>'; |
|
818 | + $output .= '</ul>'; |
|
819 | + $output .= '</div>'; |
|
820 | + $output .= '<div>'; |
|
821 | + $output .= '<p>' . bts('Foundership can be requested by team members:', array(), NULL, 'boinc:team-founder-panel') |
|
822 | 822 | . '</p>'; |
823 | - $output .= '<ul>'; |
|
824 | - $output .= ' <li>' . bts('One request is allowed at a time', array(), NULL, 'boinc:team-founder-panel') . '</li>'; |
|
825 | - $output .= ' <li>' . bts('It must be 60 days since any previous request', array(), NULL, 'boinc:team-founder-panel') |
|
823 | + $output .= '<ul>'; |
|
824 | + $output .= ' <li>' . bts('One request is allowed at a time', array(), NULL, 'boinc:team-founder-panel') . '</li>'; |
|
825 | + $output .= ' <li>' . bts('It must be 60 days since any previous request', array(), NULL, 'boinc:team-founder-panel') |
|
826 | 826 | . '</li>'; |
827 | - $output .= ' <li>' . bts('Any active request must be older than 90 days', array(), NULL, 'boinc:team-founder-panel') |
|
827 | + $output .= ' <li>' . bts('Any active request must be older than 90 days', array(), NULL, 'boinc:team-founder-panel') |
|
828 | 828 | . '</li>'; |
829 | - $output .= ' <li>' . bts('Current founder has 60 days to respond to a' |
|
829 | + $output .= ' <li>' . bts('Current founder has 60 days to respond to a' |
|
830 | 830 | . ' request', array(), NULL, 'boinc:team-founder-panel') . '</li>'; |
831 | - $output .= '</ul>'; |
|
832 | - $output .= '</div>'; |
|
833 | - return $output; |
|
831 | + $output .= '</ul>'; |
|
832 | + $output .= '</div>'; |
|
833 | + return $output; |
|
834 | 834 | } |
835 | 835 | |
836 | 836 | /** |
837 | 837 | * Link to create a new team |
838 | 838 | */ |
839 | 839 | function boincteam_create_team_link_panel() { |
840 | - global $user; |
|
841 | - $account = user_load($user->uid); |
|
842 | - $unrestricted_role = array_search('verified contributor', user_roles(true)); |
|
843 | - $output = ''; |
|
844 | - $output .= '<h2 class="pane-title">' . bts('Create a new team', array(), NULL, 'boinc:create-team-panel') . '</h2>'; |
|
845 | - $output .= '<p>' . bts('If you cannot find a team that is right for you, you' |
|
840 | + global $user; |
|
841 | + $account = user_load($user->uid); |
|
842 | + $unrestricted_role = array_search('verified contributor', user_roles(true)); |
|
843 | + $output = ''; |
|
844 | + $output .= '<h2 class="pane-title">' . bts('Create a new team', array(), NULL, 'boinc:create-team-panel') . '</h2>'; |
|
845 | + $output .= '<p>' . bts('If you cannot find a team that is right for you, you' |
|
846 | 846 | . ' can create a team.', array(), NULL, 'boinc:create-team-panel') . '</p>'; |
847 | - $output .= '<ul class="tab-list">'; |
|
848 | - $output .= ' <li class="first last tab">'; |
|
849 | - if (isset($account->roles[$unrestricted_role])) { |
|
847 | + $output .= '<ul class="tab-list">'; |
|
848 | + $output .= ' <li class="first last tab">'; |
|
849 | + if (isset($account->roles[$unrestricted_role])) { |
|
850 | 850 | $output .= l(bts('Create new team', array(), NULL, 'boinc:create-team-panel'), 'community/teams/add'); |
851 | - } elseif ($account->uid <= 0) { |
|
851 | + } elseif ($account->uid <= 0) { |
|
852 | 852 | $output .= l( |
853 | - bts('Login to create a new team', array(), NULL, 'boinc:create-team-panel'), |
|
854 | - 'user/login', |
|
855 | - array('query' => drupal_get_destination()) |
|
853 | + bts('Login to create a new team', array(), NULL, 'boinc:create-team-panel'), |
|
854 | + 'user/login', |
|
855 | + array('query' => drupal_get_destination()) |
|
856 | 856 | ); |
857 | - } else { |
|
857 | + } else { |
|
858 | 858 | $min_credit_needed = variable_get('boinc_comment_min_credit', 0); |
859 | 859 | $credit_needed = $min_credit_needed - $account->boincuser_total_credit; |
860 | 860 | $output .= '['; |
861 | 861 | if ($credit_needed == 1) { |
862 | - $output .= bts('You must earn 1 more credit!', array(), NULL, 'boinc:create-team-panel'); |
|
862 | + $output .= bts('You must earn 1 more credit!', array(), NULL, 'boinc:create-team-panel'); |
|
863 | 863 | } |
864 | 864 | else { |
865 | - $output .= bts('You must earn @count more credits!', |
|
865 | + $output .= bts('You must earn @count more credits!', |
|
866 | 866 | array('@count' => $credit_needed), |
867 | - NULL, 'boinc:create-team-panel' |
|
868 | - ); |
|
867 | + NULL, 'boinc:create-team-panel' |
|
868 | + ); |
|
869 | 869 | } |
870 | 870 | $output .= ']'; |
871 | - } |
|
872 | - $output .= ' </li>'; |
|
873 | - $output .= '</ul>'; |
|
874 | - return $output; |
|
871 | + } |
|
872 | + $output .= ' </li>'; |
|
873 | + $output .= '</ul>'; |
|
874 | + return $output; |
|
875 | 875 | } |
876 | 876 | |
877 | 877 | /** |
878 | 878 | * Create team form |
879 | 879 | */ |
880 | 880 | function boincteam_create_team_panel() { |
881 | - $output = ''; |
|
882 | - $output .= '<h2 class="pane-title">' . bts('Create a team', array(), NULL, 'boinc:create-team-panel') . '</h2>'; |
|
883 | - $output .= drupal_get_form('boincteam_create_form'); |
|
881 | + $output = ''; |
|
882 | + $output .= '<h2 class="pane-title">' . bts('Create a team', array(), NULL, 'boinc:create-team-panel') . '</h2>'; |
|
883 | + $output .= drupal_get_form('boincteam_create_form'); |
|
884 | 884 | |
885 | - return $output; |
|
885 | + return $output; |
|
886 | 886 | } |
887 | 887 | |
888 | 888 | /** |
889 | 889 | * Link to user's team |
890 | 890 | */ |
891 | 891 | function boincteam_dashboard_panel($uid = NULL) { |
892 | - global $user; |
|
893 | - if (!$uid) { |
|
892 | + global $user; |
|
893 | + if (!$uid) { |
|
894 | 894 | $uid = $user->uid; |
895 | - } |
|
896 | - $output = ''; |
|
897 | - $account = user_load($uid); |
|
898 | - if ($account->team) { |
|
895 | + } |
|
896 | + $output = ''; |
|
897 | + $account = user_load($uid); |
|
898 | + if ($account->team) { |
|
899 | 899 | $team = boincteam_load(boincteam_lookup_id($account->team)); |
900 | 900 | $output .= '<h2 class="pane-title">' . bts('Team', array(), NULL, 'boinc:team-dashboard') . '</h2>'; |
901 | 901 | $output .= '<div class="stats">'; |
@@ -914,254 +914,254 @@ discard block |
||
914 | 914 | $output .= ' <label>' . bts('Total credit', array(), NULL, 'boinc:user-or-team-total-credits') . ': </label>'; |
915 | 915 | $output .= ' <span>' . number_format($team->total_credit, 0) . '</span>'; |
916 | 916 | $output .= '</div>' . "\n"; |
917 | - } |
|
918 | - else if ($user->uid == $account->uid) { |
|
917 | + } |
|
918 | + else if ($user->uid == $account->uid) { |
|
919 | 919 | $output .= '<h2 class="pane-title">' . bts('Team (None)', array(), NULL, 'boinc:team-dashboard') . '</h2>'; |
920 | 920 | $output .= '<ul class="tab-list action-list">'; |
921 | 921 | $output .= '<li class="tab primary">'; |
922 | 922 | $output .= l(bts('Join a Team', array(), NULL, 'boinc:team-dashboard'), 'community/teams'); |
923 | 923 | $output .= '</li>'; |
924 | 924 | $output .= '</ul>'; |
925 | - } |
|
926 | - return $output; |
|
925 | + } |
|
926 | + return $output; |
|
927 | 927 | } |
928 | 928 | |
929 | 929 | /** |
930 | 930 | * Edit team form |
931 | 931 | */ |
932 | 932 | function boincteam_edit_team_panel($team_id) { |
933 | - $team = node_load($team_id); |
|
934 | - $output = ''; |
|
935 | - $output .= '<h2 class="pane-title">' . $team->title . '</h2>'; |
|
936 | - $output .= drupal_get_form('boincteam_edit_form', $team_id); |
|
933 | + $team = node_load($team_id); |
|
934 | + $output = ''; |
|
935 | + $output .= '<h2 class="pane-title">' . $team->title . '</h2>'; |
|
936 | + $output .= drupal_get_form('boincteam_edit_form', $team_id); |
|
937 | 937 | |
938 | - return $output; |
|
938 | + return $output; |
|
939 | 939 | } |
940 | 940 | |
941 | 941 | /** |
942 | 942 | * Link to join a team |
943 | 943 | */ |
944 | 944 | function boincteam_join_team_panel($team_id) { |
945 | - $team = node_load($team_id); |
|
946 | - $output = ''; |
|
947 | - $output .= '<h2 class="pane-title">' . bts('Join team', array(), NULL, 'boinc:join-team-panel') . '</h2>'; |
|
948 | - $output .= '<p>' . bts('Click here to become a member of @this_team', |
|
945 | + $team = node_load($team_id); |
|
946 | + $output = ''; |
|
947 | + $output .= '<h2 class="pane-title">' . bts('Join team', array(), NULL, 'boinc:join-team-panel') . '</h2>'; |
|
948 | + $output .= '<p>' . bts('Click here to become a member of @this_team', |
|
949 | 949 | array('@this_team' =>$team->title), NULL, 'boinc:join-team-panel') . '</p>'; |
950 | - $output .= '<ul class="tab-list">'; |
|
951 | - $output .= ' <li class="first last tab">' . |
|
950 | + $output .= '<ul class="tab-list">'; |
|
951 | + $output .= ' <li class="first last tab">' . |
|
952 | 952 | l(bts('Join this team', array(), NULL, 'boinc:join-team-panel'), "community/teams/{$team_id}/join") . '</li>'; |
953 | - $output .= '</ul>'; |
|
954 | - return $output; |
|
953 | + $output .= '</ul>'; |
|
954 | + return $output; |
|
955 | 955 | } |
956 | 956 | |
957 | 957 | /** |
958 | 958 | * Link to leave a team |
959 | 959 | */ |
960 | 960 | function boincteam_leave_team_panel($team_id) { |
961 | - $team = node_load($team_id); |
|
962 | - $output = ''; |
|
963 | - $output .= '<h2 class="pane-title">' . bts('Leave team', array(), NULL, 'boinc:leave-team-panel') . '</h2>'; |
|
964 | - $output .= '<p>' . bts('Click here to revoke your membership with' |
|
961 | + $team = node_load($team_id); |
|
962 | + $output = ''; |
|
963 | + $output .= '<h2 class="pane-title">' . bts('Leave team', array(), NULL, 'boinc:leave-team-panel') . '</h2>'; |
|
964 | + $output .= '<p>' . bts('Click here to revoke your membership with' |
|
965 | 965 | . ' @this_team', array('@this_team' =>$team->title), NULL, 'boinc:leave-team-panel') . '</p>'; |
966 | - $output .= '<ul class="tab-list">'; |
|
967 | - $output .= ' <li class="first last tab">' . |
|
966 | + $output .= '<ul class="tab-list">'; |
|
967 | + $output .= ' <li class="first last tab">' . |
|
968 | 968 | l(bts('Leave this team', array(), NULL, 'boinc:leave-team-panel'), "community/teams/{$team_id}/leave") . '</li>'; |
969 | - $output .= '</ul>'; |
|
970 | - return $output; |
|
969 | + $output .= '</ul>'; |
|
970 | + return $output; |
|
971 | 971 | } |
972 | 972 | |
973 | 973 | /** |
974 | 974 | * General info about team admins |
975 | 975 | */ |
976 | 976 | function boincteam_manage_admins_panel_header($team_id) { |
977 | - $output = ''; |
|
978 | - $output .= '<h4>' . bts('Add team admin', array(), NULL, 'boinc:team-manage-admins') . '</h4>'; |
|
979 | - $output .= drupal_get_form('boincteam_add_admin_form', $team_id); |
|
980 | - $output .= '<div class="clearfix"></div>'; |
|
981 | - $output .= '<h4>' . bts('Current team admins', array(), NULL, 'boinc:team-manage-admins') . '</h4>'; |
|
977 | + $output = ''; |
|
978 | + $output .= '<h4>' . bts('Add team admin', array(), NULL, 'boinc:team-manage-admins') . '</h4>'; |
|
979 | + $output .= drupal_get_form('boincteam_add_admin_form', $team_id); |
|
980 | + $output .= '<div class="clearfix"></div>'; |
|
981 | + $output .= '<h4>' . bts('Current team admins', array(), NULL, 'boinc:team-manage-admins') . '</h4>'; |
|
982 | 982 | |
983 | - return $output; |
|
983 | + return $output; |
|
984 | 984 | } |
985 | 985 | |
986 | 986 | /** |
987 | 987 | * Team management tools |
988 | 988 | */ |
989 | 989 | function boincteam_management_panel($team_id) { |
990 | - $is_founder = boincteam_is_founder($team_id); |
|
991 | - $team = node_load($team_id); |
|
990 | + $is_founder = boincteam_is_founder($team_id); |
|
991 | + $team = node_load($team_id); |
|
992 | 992 | |
993 | - $output = ''; |
|
994 | - $output .= '<h2 class="pane-title">' . bts('Manage team', array(), NULL, 'boinc:team-manage') . '</h2>'; |
|
993 | + $output = ''; |
|
994 | + $output .= '<h2 class="pane-title">' . bts('Manage team', array(), NULL, 'boinc:team-manage') . '</h2>'; |
|
995 | 995 | |
996 | - // PM all members |
|
997 | - if (module_exists('privatemsg')) { |
|
996 | + // PM all members |
|
997 | + if (module_exists('privatemsg')) { |
|
998 | 998 | $output .= '<div class="form-item">'; |
999 | 999 | $output .= ' <ul class="tab-list action-list">'; |
1000 | 1000 | $output .= ' <li class="first tab primary">' . |
1001 | - l('Send message to team', "community/teams/{$team_id}/message-all-members") . '</li>'; |
|
1001 | + l('Send message to team', "community/teams/{$team_id}/message-all-members") . '</li>'; |
|
1002 | 1002 | $output .= ' </ul>'; |
1003 | 1003 | $output .= ' <div class="description">'; |
1004 | 1004 | $output .= bts('Contact all team members using e-mail.', array(), NULL, 'boinc:team-manage'); |
1005 | 1005 | $output .= ' </div>'; |
1006 | 1006 | $output .= '</div>'; |
1007 | - } |
|
1007 | + } |
|
1008 | 1008 | |
1009 | - // Team forum |
|
1010 | - if (module_exists('boincteam_forum')) { |
|
1009 | + // Team forum |
|
1010 | + if (module_exists('boincteam_forum')) { |
|
1011 | 1011 | if ($is_founder) { |
1012 | - // Determine whether to create a forum or edit the existing forum |
|
1013 | - // (multiple forums per team could be supported in the future) |
|
1014 | - $team_forum_link_path = 'add'; |
|
1015 | - $team_forums = boincteam_forum_list(); |
|
1016 | - if ($team_forums) { |
|
1012 | + // Determine whether to create a forum or edit the existing forum |
|
1013 | + // (multiple forums per team could be supported in the future) |
|
1014 | + $team_forum_link_path = 'add'; |
|
1015 | + $team_forums = boincteam_forum_list(); |
|
1016 | + if ($team_forums) { |
|
1017 | 1017 | $team_forum = reset($team_forums); |
1018 | 1018 | $team_forum_link_path = "{$team_forum->tfid}/edit"; |
1019 | - } |
|
1020 | - $output .= '<div class="form-item">'; |
|
1021 | - $output .= ' <ul class="tab-list action-list">'; |
|
1022 | - $output .= ' <li class="first tab primary">' . |
|
1019 | + } |
|
1020 | + $output .= '<div class="form-item">'; |
|
1021 | + $output .= ' <ul class="tab-list action-list">'; |
|
1022 | + $output .= ' <li class="first tab primary">' . |
|
1023 | 1023 | l(bts('Manage team message board', array(), NULL, 'boinc:team-manage'), |
1024 | - "community/teams/{$team_id}/forum/{$team_forum_link_path}" |
|
1024 | + "community/teams/{$team_id}/forum/{$team_forum_link_path}" |
|
1025 | 1025 | ); |
1026 | - $output .= ' </li>'; |
|
1027 | - $output .= ' <div class="description">'; |
|
1028 | - $output .= bts('Create or manage message board', array(), NULL, 'boinc:team-manage'); |
|
1029 | - $output .= ' </div>'; |
|
1030 | - $output .= '</div>'; |
|
1026 | + $output .= ' </li>'; |
|
1027 | + $output .= ' <div class="description">'; |
|
1028 | + $output .= bts('Create or manage message board', array(), NULL, 'boinc:team-manage'); |
|
1029 | + $output .= ' </div>'; |
|
1030 | + $output .= '</div>'; |
|
1031 | + } |
|
1031 | 1032 | } |
1032 | - } |
|
1033 | 1033 | |
1034 | - // Team history |
|
1035 | - $output .= '<div class="form-item">'; |
|
1036 | - $output .= ' <label>' . bts('View change history', array(), NULL, 'boinc:team-manage') . '</label>'; |
|
1037 | - $output .= ' <ul class="tab-list">'; |
|
1038 | - $output .= ' <li class="first tab primary">' . |
|
1034 | + // Team history |
|
1035 | + $output .= '<div class="form-item">'; |
|
1036 | + $output .= ' <label>' . bts('View change history', array(), NULL, 'boinc:team-manage') . '</label>'; |
|
1037 | + $output .= ' <ul class="tab-list">'; |
|
1038 | + $output .= ' <li class="first tab primary">' . |
|
1039 | 1039 | l('HTML', "community/teams/{$team_id}/history") . '</li>'; |
1040 | - $output .= ' <li class="last tab primary">' . |
|
1040 | + $output .= ' <li class="last tab primary">' . |
|
1041 | 1041 | l('XML', "community/teams/{$team_id}/history/xml") . '</li>'; |
1042 | - $output .= ' </ul>'; |
|
1043 | - $output .= ' <div class="description">'; |
|
1044 | - $output .= bts('See member activity', array(), NULL, 'boinc:team-manage'); |
|
1045 | - $output .= ' </div>'; |
|
1046 | - $output .= '</div>'; |
|
1042 | + $output .= ' </ul>'; |
|
1043 | + $output .= ' <div class="description">'; |
|
1044 | + $output .= bts('See member activity', array(), NULL, 'boinc:team-manage'); |
|
1045 | + $output .= ' </div>'; |
|
1046 | + $output .= '</div>'; |
|
1047 | 1047 | |
1048 | - $output .= '<div class="form-item">'; |
|
1049 | - $output .= ' <ul class="tab-list action-list">'; |
|
1048 | + $output .= '<div class="form-item">'; |
|
1049 | + $output .= ' <ul class="tab-list action-list">'; |
|
1050 | 1050 | |
1051 | - // Edit team information |
|
1052 | - $output .= ' <li class="first tab primary">' . |
|
1051 | + // Edit team information |
|
1052 | + $output .= ' <li class="first tab primary">' . |
|
1053 | 1053 | l(bts('Edit team info', array(), NULL, 'boinc:team-manage'), "community/teams/{$team_id}/edit/info") . '</li>'; |
1054 | 1054 | |
1055 | - // Member list |
|
1056 | - $output .= ' <li class="tab primary">' . |
|
1055 | + // Member list |
|
1056 | + $output .= ' <li class="tab primary">' . |
|
1057 | 1057 | l(bts('View member list', array(), NULL, 'boinc:team-manage'), "community/teams/{$team_id}/members") . '</li>'; |
1058 | 1058 | |
1059 | - // Remove members |
|
1060 | - $output .= ' <li class="tab primary">' . |
|
1059 | + // Remove members |
|
1060 | + $output .= ' <li class="tab primary">' . |
|
1061 | 1061 | l(bts('Remove members', array(), NULL, 'boinc:team-admins-panel'), "community/teams/{$team_id}/edit/members") . '</li>'; |
1062 | 1062 | |
1063 | - if ($is_founder) { |
|
1063 | + if ($is_founder) { |
|
1064 | 1064 | |
1065 | 1065 | // Change founder |
1066 | 1066 | $output .= ' <li class="tab primary">' . |
1067 | - l(bts('Change founder', array(), NULL, 'boinc:team-manage'), "community/teams/{$team_id}/edit/founder") . '</li>'; |
|
1067 | + l(bts('Change founder', array(), NULL, 'boinc:team-manage'), "community/teams/{$team_id}/edit/founder") . '</li>'; |
|
1068 | 1068 | |
1069 | - // Manage admins |
|
1069 | + // Manage admins |
|
1070 | 1070 | $output .= ' <li class="tab primary">' . |
1071 | - l(bts('Manage team admins', array(), NULL, 'boinc:team-manage'), "community/teams/{$team_id}/edit/admins") . '</li>'; |
|
1071 | + l(bts('Manage team admins', array(), NULL, 'boinc:team-manage'), "community/teams/{$team_id}/edit/admins") . '</li>'; |
|
1072 | 1072 | |
1073 | 1073 | // Delete the team |
1074 | 1074 | $output .= ' <li class="last tab primary">' . |
1075 | - l(bts('Remove team', array(), NULL, 'boinc:team-manage'), "community/teams/{$team_id}/delete") . '</li>'; |
|
1076 | - } |
|
1075 | + l(bts('Remove team', array(), NULL, 'boinc:team-manage'), "community/teams/{$team_id}/delete") . '</li>'; |
|
1076 | + } |
|
1077 | 1077 | |
1078 | - $output .= ' </ul>'; |
|
1079 | - $output .= '</div>'; |
|
1078 | + $output .= ' </ul>'; |
|
1079 | + $output .= '</div>'; |
|
1080 | 1080 | |
1081 | - return $output; |
|
1081 | + return $output; |
|
1082 | 1082 | } |
1083 | 1083 | |
1084 | 1084 | /** |
1085 | 1085 | * Link to user's team |
1086 | 1086 | */ |
1087 | 1087 | function boincteam_member_link_panel() { |
1088 | - global $user; |
|
1089 | - $account = user_load($user->uid); |
|
1090 | - $team = node_load($account->team); |
|
1091 | - $output = ''; |
|
1092 | - $output .= '<h2 class="pane-title">' . bts('My team', array(), NULL, 'boinc:account-team-panel') . '</h2>'; |
|
1093 | - $output .= '<p>' . bts('You are a member of @team.', |
|
1088 | + global $user; |
|
1089 | + $account = user_load($user->uid); |
|
1090 | + $team = node_load($account->team); |
|
1091 | + $output = ''; |
|
1092 | + $output .= '<h2 class="pane-title">' . bts('My team', array(), NULL, 'boinc:account-team-panel') . '</h2>'; |
|
1093 | + $output .= '<p>' . bts('You are a member of @team.', |
|
1094 | 1094 | array('@team' => $team->title), NULL, 'boinc:account-team-panel') . '</p>'; |
1095 | - $output .= '<ul class="tab-list">'; |
|
1096 | - $output .= ' <li class="first last tab">' . |
|
1095 | + $output .= '<ul class="tab-list">'; |
|
1096 | + $output .= ' <li class="first last tab">' . |
|
1097 | 1097 | l(bts('View my team', array(), NULL, 'boinc:account-team-panel'), "community/teams/{$account->team}") . '</li>'; |
1098 | - $output .= '</ul>'; |
|
1099 | - return $output; |
|
1098 | + $output .= '</ul>'; |
|
1099 | + return $output; |
|
1100 | 1100 | } |
1101 | 1101 | |
1102 | 1102 | /** |
1103 | 1103 | * Link to request foundership transfer of a team |
1104 | 1104 | */ |
1105 | 1105 | function boincteam_request_foundership_panel($team_id) { |
1106 | - global $user; |
|
1107 | - $account = user_load($user->uid); |
|
1108 | - $team = node_load($team_id); |
|
1109 | - $boincteam_id = boincteam_lookup_id($team_id); |
|
1110 | - $boincteam = boincteam_load($boincteam_id); |
|
1111 | - $boincuser_id = $account->boincuser_id; |
|
1112 | - $output = ''; |
|
1113 | - $output .= '<h2 class="pane-title">' . bts('Request foundership', array(), NULL, 'boinc:team-request-foundership') . '</h2>'; |
|
1106 | + global $user; |
|
1107 | + $account = user_load($user->uid); |
|
1108 | + $team = node_load($team_id); |
|
1109 | + $boincteam_id = boincteam_lookup_id($team_id); |
|
1110 | + $boincteam = boincteam_load($boincteam_id); |
|
1111 | + $boincuser_id = $account->boincuser_id; |
|
1112 | + $output = ''; |
|
1113 | + $output .= '<h2 class="pane-title">' . bts('Request foundership', array(), NULL, 'boinc:team-request-foundership') . '</h2>'; |
|
1114 | 1114 | |
1115 | - if (boincteam_user_requested_foundership($team_id)) { |
|
1115 | + if (boincteam_user_requested_foundership($team_id)) { |
|
1116 | 1116 | $deadline = boincteam_foundership_transfer_ok_time($boincteam); |
1117 | 1117 | $days_to_deadline = ceil(($deadline - time()) / (24*60*60)); |
1118 | 1118 | $request_age = 60 - $days_to_deadline; |
1119 | 1119 | $days_to_respond = 30 + $days_to_deadline; |
1120 | 1120 | if (time() > $deadline) { |
1121 | - $output .= '<p>'; |
|
1122 | - if ($request_age == 1) { |
|
1121 | + $output .= '<p>'; |
|
1122 | + if ($request_age == 1) { |
|
1123 | 1123 | $output .= bts('1 day has elapsed since your request and' |
1124 | - . ' the founder has not responded.', array(), NULL, 'boinc:team-request-foundership'); |
|
1125 | - } |
|
1126 | - else { |
|
1124 | + . ' the founder has not responded.', array(), NULL, 'boinc:team-request-foundership'); |
|
1125 | + } |
|
1126 | + else { |
|
1127 | 1127 | $output .= bts('@count days have elapsed since your request and' |
1128 | - . ' the founder has not responded.', |
|
1129 | - array('@count' => $request_age), |
|
1130 | - NULL, 'boinc:team-request-foundership'); |
|
1131 | - } |
|
1132 | - $output .= ' '; |
|
1133 | - if ($days_to_respond == 1) { |
|
1128 | + . ' the founder has not responded.', |
|
1129 | + array('@count' => $request_age), |
|
1130 | + NULL, 'boinc:team-request-foundership'); |
|
1131 | + } |
|
1132 | + $output .= ' '; |
|
1133 | + if ($days_to_respond == 1) { |
|
1134 | 1134 | $output .= bts('You now have 1 day to assume foundership before' |
1135 | - . ' another team member may submit a request.', array(), NULL, 'boinc:team-request-foundership'); |
|
1136 | - } |
|
1137 | - else { |
|
1135 | + . ' another team member may submit a request.', array(), NULL, 'boinc:team-request-foundership'); |
|
1136 | + } |
|
1137 | + else { |
|
1138 | 1138 | $output .= bts('You now have @count days to assume foundership before' |
1139 | - . ' another team member may submit a request.', |
|
1140 | - array('@count' => $days_to_respond), |
|
1141 | - NULL, 'boinc:team-request-foundership'); |
|
1142 | - } |
|
1143 | - $output .= '</p>'; |
|
1144 | - $output .= '<ul class="tab-list">'; |
|
1145 | - $output .= ' <li class="first last tab">' . |
|
1139 | + . ' another team member may submit a request.', |
|
1140 | + array('@count' => $days_to_respond), |
|
1141 | + NULL, 'boinc:team-request-foundership'); |
|
1142 | + } |
|
1143 | + $output .= '</p>'; |
|
1144 | + $output .= '<ul class="tab-list">'; |
|
1145 | + $output .= ' <li class="first last tab">' . |
|
1146 | 1146 | l(bts('Assume foundership', array(), NULL, 'boinc:team-request-foundership'), "community/teams/{$team_id}/assume-foundership") . '</li>'; |
1147 | - $output .= '</ul>'; |
|
1147 | + $output .= '</ul>'; |
|
1148 | 1148 | } |
1149 | 1149 | else { |
1150 | - $output .= '<p>'; |
|
1151 | - if ($days_to_deadline == 1) { |
|
1150 | + $output .= '<p>'; |
|
1151 | + if ($days_to_deadline == 1) { |
|
1152 | 1152 | $output .= bts('The team founder has 1 day to respond to your' |
1153 | - . ' transfer request.', |
|
1154 | - NULL, 'boinc:team-request-foundership'); |
|
1155 | - } |
|
1156 | - else { |
|
1153 | + . ' transfer request.', |
|
1154 | + NULL, 'boinc:team-request-foundership'); |
|
1155 | + } |
|
1156 | + else { |
|
1157 | 1157 | $output .= bts('The team founder has @count days to respond to your' |
1158 | - . ' transfer request.', array('@count' => $days_to_deadline), |
|
1159 | - NULL, 'boinc:team-request-foundership'); |
|
1160 | - } |
|
1161 | - $output .= '</p>'; |
|
1158 | + . ' transfer request.', array('@count' => $days_to_deadline), |
|
1159 | + NULL, 'boinc:team-request-foundership'); |
|
1160 | + } |
|
1161 | + $output .= '</p>'; |
|
1162 | 1162 | } |
1163 | - } |
|
1164 | - elseif (!boincteam_new_foundership_transfer_request_ok($team_id)) { |
|
1163 | + } |
|
1164 | + elseif (!boincteam_new_foundership_transfer_request_ok($team_id)) { |
|
1165 | 1165 | // If this user does not have a transfer request pending, but new requests |
1166 | 1166 | // are not allowed, set the deadline to 90 days instead of 60 (as the user |
1167 | 1167 | // who made the request has 30 additional days to assume foundership if |
@@ -1170,131 +1170,131 @@ discard block |
||
1170 | 1170 | $days_to_deadline = ceil(($deadline - time()) / (24*60*60)) + 30; |
1171 | 1171 | $output .= '<p>'; |
1172 | 1172 | $output .= bts('A team foundership change was already requested recently.' |
1173 | - . ' Only one request is allowed within a period of 90 days.', |
|
1174 | - NULL, 'boinc:team-request-foundership'); |
|
1173 | + . ' Only one request is allowed within a period of 90 days.', |
|
1174 | + NULL, 'boinc:team-request-foundership'); |
|
1175 | 1175 | if ($days_to_deadline == 1) { |
1176 | - $output .= ' (' . bts('1 day remaining', array(), NULL, 'boinc:team-request-foundership') . ')'; |
|
1176 | + $output .= ' (' . bts('1 day remaining', array(), NULL, 'boinc:team-request-foundership') . ')'; |
|
1177 | 1177 | } |
1178 | 1178 | else { |
1179 | - $output .= ' (' . bts('@count days remaining', |
|
1179 | + $output .= ' (' . bts('@count days remaining', |
|
1180 | 1180 | array('@count' => $days_to_deadline), |
1181 | 1181 | NULL, 'boinc:team-request-foundership') . ')'; |
1182 | 1182 | } |
1183 | 1183 | $output .= '</p>'; |
1184 | - } |
|
1185 | - else { |
|
1184 | + } |
|
1185 | + else { |
|
1186 | 1186 | $output .= '<p>' . bts('If the team founder is not active and you want to' |
1187 | - . ' assume the role of founder, click below to request foundership of' |
|
1188 | - . ' @this_team.', |
|
1189 | - array('@this_team' =>$team->title), NULL, 'boinc:team-request-foundership') . '</p>'; |
|
1187 | + . ' assume the role of founder, click below to request foundership of' |
|
1188 | + . ' @this_team.', |
|
1189 | + array('@this_team' =>$team->title), NULL, 'boinc:team-request-foundership') . '</p>'; |
|
1190 | 1190 | $output .= '<ul class="tab-list">'; |
1191 | 1191 | $output .= ' <li class="first last tab">' . |
1192 | - l(bts('Initiate request', array(), NULL, 'boinc:team-request-foundership'), "community/teams/{$team_id}/request-foundership") . '</li>'; |
|
1192 | + l(bts('Initiate request', array(), NULL, 'boinc:team-request-foundership'), "community/teams/{$team_id}/request-foundership") . '</li>'; |
|
1193 | 1193 | $output .= '</ul>'; |
1194 | - } |
|
1195 | - return $output; |
|
1194 | + } |
|
1195 | + return $output; |
|
1196 | 1196 | } |
1197 | 1197 | |
1198 | 1198 | /** |
1199 | 1199 | * Respond to foundership transfer requests for a team |
1200 | 1200 | */ |
1201 | 1201 | function boincteam_request_foundership_response_panel($team_id) { |
1202 | - global $user; |
|
1203 | - $account = user_load($user->uid); |
|
1204 | - $team = node_load($team_id); |
|
1205 | - $boincteam_id = boincteam_lookup_id($team_id); |
|
1206 | - $boincteam = boincteam_load($boincteam_id); |
|
1207 | - $boincuser_id = $account->boincuser_id; |
|
1208 | - $output = ''; |
|
1202 | + global $user; |
|
1203 | + $account = user_load($user->uid); |
|
1204 | + $team = node_load($team_id); |
|
1205 | + $boincteam_id = boincteam_lookup_id($team_id); |
|
1206 | + $boincteam = boincteam_load($boincteam_id); |
|
1207 | + $boincuser_id = $account->boincuser_id; |
|
1208 | + $output = ''; |
|
1209 | 1209 | |
1210 | - if ($boincteam->ping_user) { |
|
1210 | + if ($boincteam->ping_user) { |
|
1211 | 1211 | if ($boincteam->ping_user < 0) { |
1212 | - $member = user_load(boincuser_lookup_uid(-$boincteam->ping_user)); |
|
1213 | - $output .= '<h2 class="pane-title">' . bts('Obsolete transfer request', array(), NULL, 'boinc:team-request-foundership-response') |
|
1212 | + $member = user_load(boincuser_lookup_uid(-$boincteam->ping_user)); |
|
1213 | + $output .= '<h2 class="pane-title">' . bts('Obsolete transfer request', array(), NULL, 'boinc:team-request-foundership-response') |
|
1214 | 1214 | . '</h2>'; |
1215 | - $output .= '<p>' . bts('Team member @name requested team foundership on' |
|
1215 | + $output .= '<p>' . bts('Team member @name requested team foundership on' |
|
1216 | 1216 | . ' @date, but then left the team. This request is now canceled.', |
1217 | 1217 | array( |
1218 | - '@name' => $member->boincuser_name, |
|
1219 | - '@date' => date('j M Y', $boincteam->ping_time), |
|
1218 | + '@name' => $member->boincuser_name, |
|
1219 | + '@date' => date('j M Y', $boincteam->ping_time), |
|
1220 | 1220 | ), |
1221 | 1221 | NULL, 'boinc:team-request-foundership-response') . '</p>'; |
1222 | - // Automatically cancel the request |
|
1223 | - db_set_active('boinc_rw'); |
|
1224 | - db_query(" |
|
1222 | + // Automatically cancel the request |
|
1223 | + db_set_active('boinc_rw'); |
|
1224 | + db_query(" |
|
1225 | 1225 | UPDATE {team} |
1226 | 1226 | SET ping_user=0 |
1227 | 1227 | WHERE id = '%d'", |
1228 | 1228 | $boincteam_id |
1229 | - ); |
|
1230 | - db_set_active('default'); |
|
1229 | + ); |
|
1230 | + db_set_active('default'); |
|
1231 | 1231 | } |
1232 | 1232 | else { |
1233 | - $member = user_load(boincuser_lookup_uid($boincteam->ping_user)); |
|
1234 | - $output .= '<h2 class="pane-title">' . bts('Respond to transfer request', array(), NULL, 'boinc:team-request-foundership-response') |
|
1233 | + $member = user_load(boincuser_lookup_uid($boincteam->ping_user)); |
|
1234 | + $output .= '<h2 class="pane-title">' . bts('Respond to transfer request', array(), NULL, 'boinc:team-request-foundership-response') |
|
1235 | 1235 | . '</h2>'; |
1236 | - $output .= '<p>' . bts('Team member @name has requested team foundership.' |
|
1236 | + $output .= '<p>' . bts('Team member @name has requested team foundership.' |
|
1237 | 1237 | . ' This may be because you left the team or have not had contact with' |
1238 | 1238 | . ' the team for a long time.', array( |
1239 | - '@name' => $member->boincuser_name, |
|
1239 | + '@name' => $member->boincuser_name, |
|
1240 | 1240 | ) |
1241 | - , array(), NULL, 'boinc:team-request-foundership-response') . '</p>'; |
|
1242 | - $output .= '<p>' . bts("If you don't decline the request by @date, @name" |
|
1241 | + , array(), NULL, 'boinc:team-request-foundership-response') . '</p>'; |
|
1242 | + $output .= '<p>' . bts("If you don't decline the request by @date, @name" |
|
1243 | 1243 | . ' will have the option of assuming team foundership. (note: To' |
1244 | 1244 | . ' accept the request, assign foundership to @name using the form' |
1245 | 1245 | . ' below)', |
1246 | 1246 | array( |
1247 | - '@name' => $member->boincuser_name, |
|
1248 | - '@date' => date('j M Y', boincteam_foundership_transfer_ok_time($boincteam)), |
|
1247 | + '@name' => $member->boincuser_name, |
|
1248 | + '@date' => date('j M Y', boincteam_foundership_transfer_ok_time($boincteam)), |
|
1249 | 1249 | ), |
1250 | 1250 | NULL, 'boinc:team-request-foundership-response') . '</p>'; |
1251 | - $output .= '<ul class="tab-list">'; |
|
1252 | - $output .= ' <li class="first last tab">' . |
|
1251 | + $output .= '<ul class="tab-list">'; |
|
1252 | + $output .= ' <li class="first last tab">' . |
|
1253 | 1253 | l(bts('Deny request', array(), NULL, 'boinc:team-request-foundership-response'), "community/teams/{$team_id}/deny-foundership-request") . '</li>'; |
1254 | - $output .= '</ul>'; |
|
1254 | + $output .= '</ul>'; |
|
1255 | 1255 | } |
1256 | - } |
|
1257 | - return $output; |
|
1256 | + } |
|
1257 | + return $output; |
|
1258 | 1258 | } |
1259 | 1259 | |
1260 | 1260 | function boincteam_search_panel() { |
1261 | - $output = ''; |
|
1262 | - if (module_exists('global_search_teams_solr')) { |
|
1261 | + $output = ''; |
|
1262 | + if (module_exists('global_search_teams_solr')) { |
|
1263 | 1263 | $output .= '<h2 class="pane-title">' . bts('Search teams', array(), NULL, 'boinc:search-team') . '</h2>'; |
1264 | 1264 | //$output .= '<p>' . bts('Render a search form here.', array(), NULL, 'boinc:search-team') . '</p>'; |
1265 | 1265 | $output .= '<p>' . boincteam_search_view() . '</p>'; |
1266 | - } |
|
1267 | - return $output; |
|
1266 | + } |
|
1267 | + return $output; |
|
1268 | 1268 | } |
1269 | 1269 | |
1270 | 1270 | function boincteam_search_view($type = 'team') { |
1271 | - // Get the team search form |
|
1272 | - $search_page = apachesolr_search_page_load('team_search'); |
|
1273 | - module_load_include('inc', 'apachesolr_search', 'apachesolr_search.pages'); |
|
1274 | - return drupal_get_form('apachesolr_search_custom_page_search_form', $search_page); |
|
1271 | + // Get the team search form |
|
1272 | + $search_page = apachesolr_search_page_load('team_search'); |
|
1273 | + module_load_include('inc', 'apachesolr_search', 'apachesolr_search.pages'); |
|
1274 | + return drupal_get_form('apachesolr_search_custom_page_search_form', $search_page); |
|
1275 | 1275 | } |
1276 | 1276 | |
1277 | 1277 | /** |
1278 | 1278 | * General info about the concept of teams |
1279 | 1279 | */ |
1280 | 1280 | function boincteam_topic_overview_panel() { |
1281 | - $site_name = variable_get('site_name', 'Drupal-BOINC'); |
|
1282 | - $output = ''; |
|
1283 | - $output .= '<h2 class="pane-title">' . bts('Teams', array(), NULL, 'boinc:team-general-info') . '</h2>'; |
|
1284 | - $output .= '<div class="">'; |
|
1285 | - $output .= '<p>' . bts('@project participants may form teams. You may belong' |
|
1281 | + $site_name = variable_get('site_name', 'Drupal-BOINC'); |
|
1282 | + $output = ''; |
|
1283 | + $output .= '<h2 class="pane-title">' . bts('Teams', array(), NULL, 'boinc:team-general-info') . '</h2>'; |
|
1284 | + $output .= '<div class="">'; |
|
1285 | + $output .= '<p>' . bts('@project participants may form teams. You may belong' |
|
1286 | 1286 | . ' to only one team. You can join or quit a team at any time. To join a' |
1287 | 1287 | . ' team, visit its team page and click "Join this team". Each team has a' |
1288 | 1288 | . ' founder who may:', array('@project' => $site_name), NULL, 'boinc:team-general-info') . '</p>'; |
1289 | - $output .= '<ul>'; |
|
1290 | - $output .= ' <li>' . bts('Private Message all team members', array(), NULL, 'boinc:team-general-info') . '</li>'; |
|
1291 | - $output .= ' <li>' . bts("edit the team's name and description", array(), NULL, 'boinc:team-general-info') . '</li>'; |
|
1292 | - $output .= ' <li>' . bts('add or remove team admins', array(), NULL, 'boinc:team-general-info') . '</li>'; |
|
1293 | - $output .= ' <li>' . bts('remove members from the team', array(), NULL, 'boinc:team-general-info') . '</li>'; |
|
1294 | - $output .= ' <li>' . bts('disband a team if it has no members', array(), NULL, 'boinc:team-general-info') . '</li>'; |
|
1295 | - $output .= '</ul>'; |
|
1296 | - $output .= '</div>'; |
|
1297 | - return $output; |
|
1289 | + $output .= '<ul>'; |
|
1290 | + $output .= ' <li>' . bts('Private Message all team members', array(), NULL, 'boinc:team-general-info') . '</li>'; |
|
1291 | + $output .= ' <li>' . bts("edit the team's name and description", array(), NULL, 'boinc:team-general-info') . '</li>'; |
|
1292 | + $output .= ' <li>' . bts('add or remove team admins', array(), NULL, 'boinc:team-general-info') . '</li>'; |
|
1293 | + $output .= ' <li>' . bts('remove members from the team', array(), NULL, 'boinc:team-general-info') . '</li>'; |
|
1294 | + $output .= ' <li>' . bts('disband a team if it has no members', array(), NULL, 'boinc:team-general-info') . '</li>'; |
|
1295 | + $output .= '</ul>'; |
|
1296 | + $output .= '</div>'; |
|
1297 | + return $output; |
|
1298 | 1298 | } |
1299 | 1299 | |
1300 | 1300 | /** |
@@ -1322,50 +1322,50 @@ discard block |
||
1322 | 1322 | * Link to view a team |
1323 | 1323 | */ |
1324 | 1324 | function boincteam_view_team_panel($team_id) { |
1325 | - $team = node_load($team_id); |
|
1326 | - if ($team->type != "team") { |
|
1325 | + $team = node_load($team_id); |
|
1326 | + if ($team->type != "team") { |
|
1327 | 1327 | return; |
1328 | - } |
|
1329 | - $boincteam = boincteam_load(boincteam_lookup_id($team_id), TRUE); |
|
1330 | - $founder = user_load(get_drupal_id($boincteam->userid)); |
|
1331 | - $new_members = array(); |
|
1332 | - if ($boincteam->new_members) { |
|
1328 | + } |
|
1329 | + $boincteam = boincteam_load(boincteam_lookup_id($team_id), TRUE); |
|
1330 | + $founder = user_load(get_drupal_id($boincteam->userid)); |
|
1331 | + $new_members = array(); |
|
1332 | + if ($boincteam->new_members) { |
|
1333 | 1333 | foreach ($boincteam->new_members as $member) { |
1334 | - $account = user_load(get_drupal_id($member->id)); |
|
1335 | - $new_members[] = l($account->boincuser_name, "account/{$account->uid}"); |
|
1334 | + $account = user_load(get_drupal_id($member->id)); |
|
1335 | + $new_members[] = l($account->boincuser_name, "account/{$account->uid}"); |
|
1336 | 1336 | } |
1337 | - } |
|
1338 | - $output = ''; |
|
1339 | - $output .= '<h2 class="pane-title">' . $boincteam->name . '</h2>'; |
|
1340 | - $output .= '<div>'; |
|
1341 | - $output .= '<div class="left-column">'; |
|
1342 | - $output .= '<ul class="stats">'; |
|
1343 | - $output .= ' <li>' . bts('Total credit', array(), NULL, 'boinc:user-or-team-total-credits') . ': ' . number_format($boincteam->total_credit, 0) . '</li>'; |
|
1344 | - $output .= ' <li>' . bts('Recent average credit', array(), NULL, 'boinc:user-or-team-RAC') . ': ' . number_format($boincteam->expavg_credit, 2) . '</li>'; |
|
1345 | - $output .= ' <li>' . bts('Country', array(), NULL, 'boinc:country-of-origin') . ': ' . $boincteam->country . '</li>'; |
|
1346 | - $output .= ' <li>' . bts('Type', array(), NULL, 'boinc:view-team-info') . ': ' . boincteam_get_type($team_id) . '</li>'; |
|
1347 | - $output .= '</ul>'; |
|
1348 | - $output .= '</div>'; |
|
1349 | - $output .= '<div class="right-column">'; |
|
1350 | - $output .= '<ul class="stats">'; |
|
1351 | - $output .= ' <li>' . bts('Founder', array(), NULL, 'boinc:view-team-info') . ': ' . l($founder->boincuser_name, "account/{$founder->uid}") . '</li>'; |
|
1352 | - $output .= ' <li>' . bts('New members in last day', array(), NULL, 'boinc:view-team-info') . ': ' . implode('·', $new_members) . '</li>'; |
|
1353 | - $output .= ' <li>' . bts('Total members', array(), NULL, 'boinc:view-team-info') . ': ' . l($boincteam->nusers, "community/teams/{$team_id}/members") . '</li>'; |
|
1354 | - $output .= ' <li>' . bts('Active members', array(), NULL, 'boinc:view-team-info') . ': ' . $boincteam->nusers_active . '</li>'; |
|
1355 | - $output .= ' <li>' . bts('Members with credit', array(), NULL, 'boinc:view-team-info') . ': ' . $boincteam->nusers_worked . '</li>'; |
|
1356 | - $output .= '</ul>'; |
|
1357 | - $output .= '</div>'; |
|
1358 | - $output .= '</div>'; |
|
1359 | - $output .= '<div class="clearfix"></div>'; |
|
1360 | - if ($boincteam->url) { |
|
1337 | + } |
|
1338 | + $output = ''; |
|
1339 | + $output .= '<h2 class="pane-title">' . $boincteam->name . '</h2>'; |
|
1340 | + $output .= '<div>'; |
|
1341 | + $output .= '<div class="left-column">'; |
|
1342 | + $output .= '<ul class="stats">'; |
|
1343 | + $output .= ' <li>' . bts('Total credit', array(), NULL, 'boinc:user-or-team-total-credits') . ': ' . number_format($boincteam->total_credit, 0) . '</li>'; |
|
1344 | + $output .= ' <li>' . bts('Recent average credit', array(), NULL, 'boinc:user-or-team-RAC') . ': ' . number_format($boincteam->expavg_credit, 2) . '</li>'; |
|
1345 | + $output .= ' <li>' . bts('Country', array(), NULL, 'boinc:country-of-origin') . ': ' . $boincteam->country . '</li>'; |
|
1346 | + $output .= ' <li>' . bts('Type', array(), NULL, 'boinc:view-team-info') . ': ' . boincteam_get_type($team_id) . '</li>'; |
|
1347 | + $output .= '</ul>'; |
|
1348 | + $output .= '</div>'; |
|
1349 | + $output .= '<div class="right-column">'; |
|
1350 | + $output .= '<ul class="stats">'; |
|
1351 | + $output .= ' <li>' . bts('Founder', array(), NULL, 'boinc:view-team-info') . ': ' . l($founder->boincuser_name, "account/{$founder->uid}") . '</li>'; |
|
1352 | + $output .= ' <li>' . bts('New members in last day', array(), NULL, 'boinc:view-team-info') . ': ' . implode('·', $new_members) . '</li>'; |
|
1353 | + $output .= ' <li>' . bts('Total members', array(), NULL, 'boinc:view-team-info') . ': ' . l($boincteam->nusers, "community/teams/{$team_id}/members") . '</li>'; |
|
1354 | + $output .= ' <li>' . bts('Active members', array(), NULL, 'boinc:view-team-info') . ': ' . $boincteam->nusers_active . '</li>'; |
|
1355 | + $output .= ' <li>' . bts('Members with credit', array(), NULL, 'boinc:view-team-info') . ': ' . $boincteam->nusers_worked . '</li>'; |
|
1356 | + $output .= '</ul>'; |
|
1357 | + $output .= '</div>'; |
|
1358 | + $output .= '</div>'; |
|
1359 | + $output .= '<div class="clearfix"></div>'; |
|
1360 | + if ($boincteam->url) { |
|
1361 | 1361 | $output .= '<div class="stats">'; |
1362 | 1362 | $output .= bts('Website', array(), NULL, 'boinc:website-of-user-or-team') . ': ' . l("http://{$boincteam->url}", "http://{$boincteam->url}"); |
1363 | 1363 | $output .= '</div>'; |
1364 | - } |
|
1365 | - if ($team->body) { |
|
1364 | + } |
|
1365 | + if ($team->body) { |
|
1366 | 1366 | $output .= '<h3>' . bts('Description', array(), NULL, 'boinc:team-description') . '</h3>'; |
1367 | 1367 | $output .= check_markup($team->body, $team->format); |
1368 | 1368 | $output .= '</div>'; |
1369 | - } |
|
1370 | - return $output; |
|
1369 | + } |
|
1370 | + return $output; |
|
1371 | 1371 | } |
@@ -15,41 +15,41 @@ discard block |
||
15 | 15 | */ |
16 | 16 | function boincteam_sync() { |
17 | 17 | |
18 | - // Get the list of teams to import |
|
19 | - db_set_active('boinc_rw'); |
|
20 | - $boinc_teams = db_query(' |
|
18 | + // Get the list of teams to import |
|
19 | + db_set_active('boinc_rw'); |
|
20 | + $boinc_teams = db_query(' |
|
21 | 21 | SELECT id, name, description, userid, create_time, seti_id |
22 | 22 | FROM team |
23 | 23 | WHERE mod_time > FROM_UNIXTIME(%d)', |
24 | 24 | variable_get('boincteam_last_sync', 0) |
25 | - ); |
|
26 | - db_set_active('default'); |
|
25 | + ); |
|
26 | + db_set_active('default'); |
|
27 | 27 | |
28 | - $existing_teams = array(); |
|
28 | + $existing_teams = array(); |
|
29 | 29 | |
30 | - // Get the list of teams already in Drupal to be sure we're not importing |
|
31 | - // any twice |
|
32 | - $result = db_query(' |
|
30 | + // Get the list of teams already in Drupal to be sure we're not importing |
|
31 | + // any twice |
|
32 | + $result = db_query(' |
|
33 | 33 | SELECT nid, team_id FROM {boincteam}' |
34 | - ); |
|
35 | - while ($row = db_fetch_object($result)) { |
|
34 | + ); |
|
35 | + while ($row = db_fetch_object($result)) { |
|
36 | 36 | $existing_teams[$row->team_id] = $row->nid; |
37 | - } |
|
37 | + } |
|
38 | 38 | |
39 | - while ($boinc_team = db_fetch_object($boinc_teams)) { |
|
39 | + while ($boinc_team = db_fetch_object($boinc_teams)) { |
|
40 | 40 | $success = NULL; |
41 | 41 | if (isset($existing_teams[$boinc_team->id])) { |
42 | - if ($boinc_team->seti_id > 0) { |
|
42 | + if ($boinc_team->seti_id > 0) { |
|
43 | 43 | // Sync BOINC-wide teams |
44 | 44 | $nid = $existing_teams[$boinc_team->id]; |
45 | 45 | $success = boincteam_import($boinc_team, $nid); |
46 | - } |
|
46 | + } |
|
47 | 47 | } |
48 | 48 | else { |
49 | - // Import new teams created by RPC or ops/team_import.php |
|
50 | - $success = boincteam_import($boinc_team); |
|
49 | + // Import new teams created by RPC or ops/team_import.php |
|
50 | + $success = boincteam_import($boinc_team); |
|
51 | + } |
|
51 | 52 | } |
52 | - } |
|
53 | 53 | } |
54 | 54 | |
55 | 55 | |
@@ -58,58 +58,58 @@ discard block |
||
58 | 58 | */ |
59 | 59 | function boincteam_import($boincteam, $nid = NULL) { |
60 | 60 | |
61 | - $input_format = variable_get('boincimport_input_format', 0); |
|
62 | - $team_type_map = variable_get('boincimport_team_types', array()); |
|
61 | + $input_format = variable_get('boincimport_input_format', 0); |
|
62 | + $team_type_map = variable_get('boincimport_team_types', array()); |
|
63 | 63 | |
64 | - // Save the team type affiliation |
|
65 | - $team_type_tid = $team_type_map[$boincteam->type]; |
|
64 | + // Save the team type affiliation |
|
65 | + $team_type_tid = $team_type_map[$boincteam->type]; |
|
66 | 66 | |
67 | - $boincteam->description = html_entity_decode($boincteam->description, ENT_QUOTES, 'utf-8'); |
|
68 | - // Be sure the text is filtered for the default input format |
|
69 | - $boincteam->description = check_markup($boincteam->description, $input_format); |
|
67 | + $boincteam->description = html_entity_decode($boincteam->description, ENT_QUOTES, 'utf-8'); |
|
68 | + // Be sure the text is filtered for the default input format |
|
69 | + $boincteam->description = check_markup($boincteam->description, $input_format); |
|
70 | 70 | |
71 | - $teaser = node_teaser($boincteam->description); |
|
71 | + $teaser = node_teaser($boincteam->description); |
|
72 | 72 | |
73 | - if ($nid) { |
|
73 | + if ($nid) { |
|
74 | 74 | // Update an existing node |
75 | 75 | $node = node_load($nid); |
76 | 76 | $node->title = $boincteam->name; |
77 | 77 | $node->body = $boincteam->description; |
78 | 78 | $node->teaser = $teaser; |
79 | 79 | $node->uid = boincuser_lookup_uid($boincteam->userid); |
80 | - } |
|
81 | - else { |
|
80 | + } |
|
81 | + else { |
|
82 | 82 | // Construct the team as a new node |
83 | 83 | $node = array( |
84 | - 'type' => 'team', |
|
85 | - 'title' => $boincteam->name, |
|
86 | - 'body' => $boincteam->description, |
|
87 | - 'teaser' => $teaser, |
|
88 | - 'uid' => boincuser_lookup_uid($boincteam->userid), |
|
89 | - 'path' => null, |
|
90 | - 'status' => 1, // published or not - always publish |
|
91 | - 'promote' => 0, |
|
92 | - 'created' => $boincteam->create_time, |
|
93 | - 'comment' => 0, // comments disabled |
|
94 | - 'moderate' => 0, |
|
95 | - 'sticky' => 0, |
|
96 | - 'format' => $input_format |
|
84 | + 'type' => 'team', |
|
85 | + 'title' => $boincteam->name, |
|
86 | + 'body' => $boincteam->description, |
|
87 | + 'teaser' => $teaser, |
|
88 | + 'uid' => boincuser_lookup_uid($boincteam->userid), |
|
89 | + 'path' => null, |
|
90 | + 'status' => 1, // published or not - always publish |
|
91 | + 'promote' => 0, |
|
92 | + 'created' => $boincteam->create_time, |
|
93 | + 'comment' => 0, // comments disabled |
|
94 | + 'moderate' => 0, |
|
95 | + 'sticky' => 0, |
|
96 | + 'format' => $input_format |
|
97 | 97 | ); |
98 | 98 | $node = (object) $node; // node_save requires an object form |
99 | - } |
|
99 | + } |
|
100 | 100 | |
101 | - $node->taxonomy[] = taxonomy_get_term($team_type_tid); |
|
101 | + $node->taxonomy[] = taxonomy_get_term($team_type_tid); |
|
102 | 102 | |
103 | - // Save the team node |
|
104 | - node_save($node); |
|
105 | - $success = ($node->nid) ? TRUE : FALSE; |
|
103 | + // Save the team node |
|
104 | + node_save($node); |
|
105 | + $success = ($node->nid) ? TRUE : FALSE; |
|
106 | 106 | |
107 | - if (!$nid) { |
|
107 | + if (!$nid) { |
|
108 | 108 | // Save the team IDs to a BOINC <--> Drupal reference table, if needed |
109 | 109 | db_query('INSERT INTO {boincteam} (team_id, nid) VALUES (%d, %d)', $boincteam->id, $node->nid); |
110 | - } |
|
110 | + } |
|
111 | 111 | |
112 | - return $success; |
|
112 | + return $success; |
|
113 | 113 | } |
114 | 114 | |
115 | 115 | /** |
@@ -126,25 +126,25 @@ discard block |
||
126 | 126 | * respected. This is useful the list of users are to be contacted. |
127 | 127 | */ |
128 | 128 | function _boincteam_userids($boincteamid, $boincid=TRUE, $respectprivacy=TRUE) { |
129 | - $sql = 'SELECT user.id as id FROM {user} user WHERE user.teamid=%s'; |
|
130 | - if ($respectprivacy) { |
|
129 | + $sql = 'SELECT user.id as id FROM {user} user WHERE user.teamid=%s'; |
|
130 | + if ($respectprivacy) { |
|
131 | 131 | $sql .= ' AND user.send_email=1'; |
132 | - } |
|
132 | + } |
|
133 | 133 | |
134 | - db_set_active('boinc_ro'); |
|
135 | - $dbres = db_query($sql, $boincteamid); |
|
136 | - db_set_active('default'); |
|
134 | + db_set_active('boinc_ro'); |
|
135 | + $dbres = db_query($sql, $boincteamid); |
|
136 | + db_set_active('default'); |
|
137 | 137 | |
138 | - $ids = array(); |
|
139 | - while (($result = db_fetch_object($dbres)) != FALSE) { |
|
138 | + $ids = array(); |
|
139 | + while (($result = db_fetch_object($dbres)) != FALSE) { |
|
140 | 140 | $ids[] = $result->id; |
141 | - } |
|
142 | - if ($boincid) { |
|
141 | + } |
|
142 | + if ($boincid) { |
|
143 | 143 | return $ids; |
144 | - } |
|
145 | - else { |
|
144 | + } |
|
145 | + else { |
|
146 | 146 | return array_map('boincuser_lookup_uid', $ids); |
147 | - } |
|
147 | + } |
|
148 | 148 | } |
149 | 149 | |
150 | 150 | /** |
@@ -158,18 +158,18 @@ discard block |
||
158 | 158 | * respected. This is useful the list of users are to be contacted. |
159 | 159 | */ |
160 | 160 | function _boincteam_emails($boincteamid, $respectprivacy=TRUE) { |
161 | - $sql = 'SELECT user.email_addr as email_addr FROM {user} user WHERE user.teamid=%s'; |
|
162 | - if ($respectprivacy) { |
|
161 | + $sql = 'SELECT user.email_addr as email_addr FROM {user} user WHERE user.teamid=%s'; |
|
162 | + if ($respectprivacy) { |
|
163 | 163 | $sql .= ' AND user.send_email=1'; |
164 | - } |
|
164 | + } |
|
165 | 165 | |
166 | - db_set_active('boinc_ro'); |
|
167 | - $dbres = db_query($sql, $boincteamid); |
|
168 | - db_set_active('default'); |
|
166 | + db_set_active('boinc_ro'); |
|
167 | + $dbres = db_query($sql, $boincteamid); |
|
168 | + db_set_active('default'); |
|
169 | 169 | |
170 | - $emails = array(); |
|
171 | - while (($result = db_fetch_object($dbres)) != FALSE) { |
|
170 | + $emails = array(); |
|
171 | + while (($result = db_fetch_object($dbres)) != FALSE) { |
|
172 | 172 | $emails[] = $result->email_addr; |
173 | - } |
|
174 | - return $emails; |
|
173 | + } |
|
174 | + return $emails; |
|
175 | 175 | } |
@@ -14,9 +14,9 @@ discard block |
||
14 | 14 | * The definition of the create team form |
15 | 15 | */ |
16 | 16 | function boincteam_create_form(&$form_state) { |
17 | - $form = array(); |
|
17 | + $form = array(); |
|
18 | 18 | |
19 | - $default = array( |
|
19 | + $default = array( |
|
20 | 20 | 'name' => '', |
21 | 21 | 'name_html' => '', |
22 | 22 | 'website' => '', |
@@ -24,105 +24,105 @@ discard block |
||
24 | 24 | 'country' => 0, |
25 | 25 | 'joinable' => TRUE, |
26 | 26 | 'description' => '', |
27 | - ); |
|
27 | + ); |
|
28 | 28 | |
29 | - // Standard option sets |
|
30 | - $form['boolean_options'] = array( |
|
29 | + // Standard option sets |
|
30 | + $form['boolean_options'] = array( |
|
31 | 31 | '#type' => 'value', |
32 | 32 | '#value' => array(1 => bts('yes', array(), NULL, 'boinc:form-yes-no:-1:binary-form-option-pairs-with-no'), 0 => bts('no', array(), NULL, 'boinc:form-yes-no:-1:binary-form-option-pairs-with-yes')), |
33 | - ); |
|
33 | + ); |
|
34 | 34 | |
35 | - // Vocabulary based option sets |
|
36 | - $form['type_options'] = array( |
|
35 | + // Vocabulary based option sets |
|
36 | + $form['type_options'] = array( |
|
37 | 37 | '#type' => 'value', |
38 | 38 | '#value' => array(0 => bts('Choose type', array(), NULL, 'boinc:form-choose')) |
39 | - ); |
|
40 | - $vocabs = taxonomy_get_vocabularies(NULL); |
|
41 | - foreach ($vocabs as $vocab) { |
|
39 | + ); |
|
40 | + $vocabs = taxonomy_get_vocabularies(NULL); |
|
41 | + foreach ($vocabs as $vocab) { |
|
42 | 42 | switch ($vocab->name) { |
43 | 43 | case 'Teams': |
44 | 44 | $team_types = taxonomy_get_tree($vocab->vid); |
45 | - if (module_exists('internationalization')) { |
|
45 | + if (module_exists('internationalization')) { |
|
46 | 46 | $team_types = i18ntaxonomy_localize_terms($team_types); |
47 | - } |
|
48 | - foreach ($team_types as $team_type) { |
|
47 | + } |
|
48 | + foreach ($team_types as $team_type) { |
|
49 | 49 | $form['type_options']['#value'][$team_type->tid] = $team_type->name; |
50 | - } |
|
51 | - break; |
|
50 | + } |
|
51 | + break; |
|
52 | 52 | default: |
53 | 53 | } |
54 | - } |
|
55 | - $form['country_options'] = array( |
|
54 | + } |
|
55 | + $form['country_options'] = array( |
|
56 | 56 | '#type' => 'value', |
57 | 57 | '#value' => boinccore_get_country_list(), |
58 | - ); |
|
58 | + ); |
|
59 | 59 | |
60 | - // Form elements |
|
61 | - $form['name'] = array( |
|
60 | + // Form elements |
|
61 | + $form['name'] = array( |
|
62 | 62 | '#title' => bts('Team name', array(), NULL, 'boinc:team-create/edit'), |
63 | 63 | '#type' => 'textfield', |
64 | 64 | '#default_value' => $default['name'], |
65 | 65 | '#size' => 34, |
66 | 66 | '#description' => bts('Text only, no HTML tags', array(), NULL, 'boinc:team-form-help'), |
67 | - ); |
|
68 | - $form['name_html'] = array( |
|
67 | + ); |
|
68 | + $form['name_html'] = array( |
|
69 | 69 | '#title' => bts('Team name -- HTML version (optional)', array(), NULL, 'boinc:team-create/edit'), |
70 | 70 | '#type' => 'textfield', |
71 | 71 | '#default_value' => $default['name_html'], |
72 | 72 | '#size' => 34, |
73 | 73 | '#description' => bts('You may use limited HTML tags', array(), NULL, 'boinc:team-form-help'), |
74 | - ); |
|
75 | - $form['website'] = array( |
|
74 | + ); |
|
75 | + $form['website'] = array( |
|
76 | 76 | '#title' => bts('Team website (optional)', array(), NULL, 'boinc:team-create/edit'), |
77 | 77 | '#type' => 'textfield', |
78 | 78 | '#default_value' => $default['website'], |
79 | 79 | '#size' => 34, |
80 | 80 | '#description' => bts("Displayed on the team's page", array(), NULL, 'boinc:team-create/edit'), |
81 | - ); |
|
82 | - $form['type'] = array( |
|
81 | + ); |
|
82 | + $form['type'] = array( |
|
83 | 83 | '#title' => bts('Type of team', array(), NULL, 'boinc:team-create/edit'), |
84 | 84 | '#type' => 'select', |
85 | 85 | '#options' => $form['type_options']['#value'], |
86 | 86 | '#default_value' => $default['type'], |
87 | - ); |
|
88 | - $form['country'] = array( |
|
87 | + ); |
|
88 | + $form['country'] = array( |
|
89 | 89 | '#title' => bts('Country', array(), NULL, 'boinc:country-of-origin'), |
90 | 90 | '#type' => 'select', |
91 | 91 | '#options' => $form['country_options']['#value'], |
92 | 92 | '#default_value' => $default['country'], |
93 | - ); |
|
94 | - $form['joinable'] = array( |
|
93 | + ); |
|
94 | + $form['joinable'] = array( |
|
95 | 95 | '#title' => bts('Accept new members?', array(), NULL, 'boinc:team-create/edit'), |
96 | 96 | '#type' => 'radios', |
97 | 97 | '#options' => $form['boolean_options']['#value'], |
98 | 98 | '#attributes' => array('class' => 'fancy'), |
99 | 99 | '#default_value' => $default['joinable'], |
100 | 100 | '#size' => 34, |
101 | - ); |
|
102 | - $form['description'] = array( |
|
101 | + ); |
|
102 | + $form['description'] = array( |
|
103 | 103 | '#title' => bts('Description of team', array(), NULL, 'boinc:team-create/edit'), |
104 | 104 | '#type' => 'textarea', |
105 | 105 | '#default_value' => $default['description'], |
106 | 106 | '#size' => 5, |
107 | 107 | '#description' => NULL, |
108 | - ); |
|
109 | - $form['format'] = filter_form(); |
|
108 | + ); |
|
109 | + $form['format'] = filter_form(); |
|
110 | 110 | |
111 | - // Form control |
|
112 | - $form['form control tabs prefix'] = array( |
|
111 | + // Form control |
|
112 | + $form['form control tabs prefix'] = array( |
|
113 | 113 | '#value' => '<ul class="form-control tab-list">' |
114 | - ); |
|
115 | - $form['submit'] = array( |
|
114 | + ); |
|
115 | + $form['submit'] = array( |
|
116 | 116 | '#prefix' => '<li class="first tab">', |
117 | 117 | '#type' => 'submit', |
118 | 118 | '#value' => bts('Save team', array(), NULL, 'boinc:team-form-save'), |
119 | 119 | '#suffix' => '</li>', |
120 | - ); |
|
121 | - $form['form control tabs'] = array( |
|
120 | + ); |
|
121 | + $form['form control tabs'] = array( |
|
122 | 122 | '#value' => '<li class="tab">' . l(bts('Cancel', array(), NULL, 'boinc:form-cancel'), $_GET['q']) . '</li>' |
123 | - ); |
|
123 | + ); |
|
124 | 124 | |
125 | - return $form; |
|
125 | + return $form; |
|
126 | 126 | } |
127 | 127 | |
128 | 128 | /** |
@@ -130,41 +130,41 @@ discard block |
||
130 | 130 | */ |
131 | 131 | function boincteam_create_form_validate($form, &$form_state) { |
132 | 132 | |
133 | - $values = $form_state['values']; |
|
134 | - $name = $values['name']; |
|
133 | + $values = $form_state['values']; |
|
134 | + $name = $values['name']; |
|
135 | 135 | |
136 | - if (!$name) { |
|
136 | + if (!$name) { |
|
137 | 137 | form_set_error('name', bts('Team name is required.', array(), NULL, 'boinc:team-create/edit')); |
138 | - } |
|
139 | - else { |
|
138 | + } |
|
139 | + else { |
|
140 | 140 | require_boinc('boinc_db'); |
141 | 141 | if (BoincTeam::lookup_name($name)) { |
142 | - form_set_error('name', bts('A team named "@name" already exists.', |
|
142 | + form_set_error('name', bts('A team named "@name" already exists.', |
|
143 | 143 | array('@name' => $name), NULL, 'boinc:team-create/edit')); |
144 | 144 | } |
145 | - } |
|
145 | + } |
|
146 | 146 | |
147 | - if (!$values['type'] OR !isset($values['type_options'][$values['type']])) { |
|
147 | + if (!$values['type'] OR !isset($values['type_options'][$values['type']])) { |
|
148 | 148 | form_set_error('type', bts('Please select a team type.', array(), NULL, 'boinc:team-create/edit')); |
149 | - } |
|
149 | + } |
|
150 | 150 | } |
151 | 151 | |
152 | 152 | /** |
153 | 153 | * The create team submit handler |
154 | 154 | */ |
155 | 155 | function boincteam_create_form_submit($form, &$form_state) { |
156 | - global $user; |
|
157 | - $account = user_load($user->uid); |
|
158 | - $values = $form_state['values']; |
|
159 | - //drupal_set_message('<pre>' . print_r($values,true) . '</pre>'); |
|
156 | + global $user; |
|
157 | + $account = user_load($user->uid); |
|
158 | + $values = $form_state['values']; |
|
159 | + //drupal_set_message('<pre>' . print_r($values,true) . '</pre>'); |
|
160 | 160 | |
161 | - $input_format = !empty($values['format']) ? $values['format'] : 4; |
|
162 | - $values['description'] = check_markup($values['description'], $input_format); |
|
161 | + $input_format = !empty($values['format']) ? $values['format'] : 4; |
|
162 | + $values['description'] = check_markup($values['description'], $input_format); |
|
163 | 163 | |
164 | - // Create the team in the BOINC db |
|
164 | + // Create the team in the BOINC db |
|
165 | 165 | |
166 | - require_boinc(array('user','team')); |
|
167 | - $boinc_team = make_team( |
|
166 | + require_boinc(array('user','team')); |
|
167 | + $boinc_team = make_team( |
|
168 | 168 | $account->boincuser_id, |
169 | 169 | $values['name'], |
170 | 170 | $values['website'], |
@@ -172,27 +172,27 @@ discard block |
||
172 | 172 | $values['name_html'], |
173 | 173 | $values['description'], |
174 | 174 | $values['country'] |
175 | - ); |
|
175 | + ); |
|
176 | 176 | |
177 | - if ($boinc_team) { |
|
177 | + if ($boinc_team) { |
|
178 | 178 | $boinc_user = BoincUser::lookup_id($account->boincuser_id); |
179 | 179 | user_join_team($boinc_team, $boinc_user); |
180 | - } |
|
181 | - else { |
|
180 | + } |
|
181 | + else { |
|
182 | 182 | drupal_set_message(t('Teams cannot be created at this time. Please |
183 | 183 | contact the @project administrators!', array('@project' => PROJECT))); |
184 | 184 | watchdog('BOINC team', 'BOINC teams cannot be created for an unknown |
185 | 185 | reason.', 'error'); |
186 | 186 | return FALSE; |
187 | - } |
|
187 | + } |
|
188 | 188 | |
189 | - // Create the team node in Drupal |
|
189 | + // Create the team node in Drupal |
|
190 | 190 | |
191 | - $teaser = node_teaser($values['description']); |
|
192 | - $created_time = time(); |
|
193 | - $input_format = variable_get('filter_default_format', 1); |
|
191 | + $teaser = node_teaser($values['description']); |
|
192 | + $created_time = time(); |
|
193 | + $input_format = variable_get('filter_default_format', 1); |
|
194 | 194 | |
195 | - $node = array( |
|
195 | + $node = array( |
|
196 | 196 | 'type' => 'team', |
197 | 197 | 'title' => $values['name'], |
198 | 198 | 'body' => $values['description'], |
@@ -206,21 +206,21 @@ discard block |
||
206 | 206 | 'moderate' => 0, |
207 | 207 | 'sticky' => 0, |
208 | 208 | 'format' => $input_format |
209 | - ); |
|
209 | + ); |
|
210 | 210 | |
211 | - // Use pathauto function, if available, to clean up the path |
|
212 | - if (module_exists('pathauto')) { |
|
211 | + // Use pathauto function, if available, to clean up the path |
|
212 | + if (module_exists('pathauto')) { |
|
213 | 213 | module_load_include('inc', 'pathauto', 'pathauto'); |
214 | 214 | $node['path'] = pathauto_cleanstring($values['name']); |
215 | - } |
|
216 | - else { |
|
215 | + } |
|
216 | + else { |
|
217 | 217 | drupal_set_message(t('Teams cannot be created at this time. Please |
218 | 218 | contact the @project administrators!', array('@project' => PROJECT))); |
219 | 219 | watchdog('BOINC team', 'BOINC teams require the Pathauto module. Teams |
220 | 220 | cannot be created.', 'error'); |
221 | - } |
|
221 | + } |
|
222 | 222 | |
223 | - /* |
|
223 | + /* |
|
224 | 224 | // Add special organic group properties |
225 | 225 | $node['og_description'] = strip_tags($boincteam->description); |
226 | 226 | $node['og_selective'] = OG_OPEN; |
@@ -229,26 +229,26 @@ discard block |
||
229 | 229 | $node['og_private'] = 0; |
230 | 230 | */ |
231 | 231 | |
232 | - $node = (object) $node; // node_save requires an object form |
|
232 | + $node = (object) $node; // node_save requires an object form |
|
233 | 233 | |
234 | - /* |
|
234 | + /* |
|
235 | 235 | $node->field_description[]['value'] = $boincteam->description; |
236 | 236 | $node->field_url[]['value'] = $boincteam->url; |
237 | 237 | $node->field_country[]['value'] = $boincteam->country; |
238 | 238 | */ |
239 | 239 | |
240 | - $node->taxonomy[] = taxonomy_get_term($values['type']); |
|
240 | + $node->taxonomy[] = taxonomy_get_term($values['type']); |
|
241 | 241 | |
242 | - // Save the team node |
|
243 | - node_save($node); |
|
242 | + // Save the team node |
|
243 | + node_save($node); |
|
244 | 244 | |
245 | - // Save the team IDs to a BOINC <--> Drupal reference table. |
|
246 | - db_query('INSERT INTO {boincteam} (team_id, nid) VALUES (%d, %d)', $boinc_team->id, $node->nid); |
|
245 | + // Save the team IDs to a BOINC <--> Drupal reference table. |
|
246 | + db_query('INSERT INTO {boincteam} (team_id, nid) VALUES (%d, %d)', $boinc_team->id, $node->nid); |
|
247 | 247 | |
248 | - drupal_set_message(t('Team "@name" has been created.', |
|
248 | + drupal_set_message(t('Team "@name" has been created.', |
|
249 | 249 | array('@name' => $values['name']))); |
250 | 250 | |
251 | - $form_state['redirect'] = "community/teams/{$node->nid}"; |
|
251 | + $form_state['redirect'] = "community/teams/{$node->nid}"; |
|
252 | 252 | } |
253 | 253 | |
254 | 254 | /* * * * * * * * * * * * * * * * * * * * * * * * * * * * |
@@ -259,17 +259,17 @@ discard block |
||
259 | 259 | * The definition of the edit team form |
260 | 260 | */ |
261 | 261 | function boincteam_edit_form(&$form_state, $team_id) { |
262 | - $form = array(); |
|
262 | + $form = array(); |
|
263 | 263 | |
264 | - $team = node_load($team_id); |
|
265 | - $boincteam = boincteam_load(boincteam_lookup_id($team_id)); |
|
264 | + $team = node_load($team_id); |
|
265 | + $boincteam = boincteam_load(boincteam_lookup_id($team_id)); |
|
266 | 266 | |
267 | - $is_boinc_wide = ($boincteam->seti_id > 0) ? TRUE : FALSE; |
|
267 | + $is_boinc_wide = ($boincteam->seti_id > 0) ? TRUE : FALSE; |
|
268 | 268 | |
269 | - $form_state['storage']['team_id'] = $team_id; |
|
270 | - $form_state['storage']['is_boinc_wide'] = $is_boinc_wide; |
|
269 | + $form_state['storage']['team_id'] = $team_id; |
|
270 | + $form_state['storage']['is_boinc_wide'] = $is_boinc_wide; |
|
271 | 271 | |
272 | - $default = array( |
|
272 | + $default = array( |
|
273 | 273 | 'name' => $boincteam->name, |
274 | 274 | 'name_html' => $boincteam->name_html, |
275 | 275 | 'website' => $boincteam->url, |
@@ -277,79 +277,79 @@ discard block |
||
277 | 277 | 'country' => $boincteam->country, |
278 | 278 | 'joinable' => $boincteam->joinable, |
279 | 279 | 'description' => $boincteam->description, |
280 | - ); |
|
280 | + ); |
|
281 | 281 | |
282 | - // Standard option sets |
|
283 | - $form['boolean_options'] = array( |
|
282 | + // Standard option sets |
|
283 | + $form['boolean_options'] = array( |
|
284 | 284 | '#type' => 'value', |
285 | 285 | '#value' => array(1 => bts('yes', array(), NULL, 'boinc:form-yes-no:-1:binary-form-option-pairs-with-no'), 0 => bts('no', array(), NULL, 'boinc:form-yes-no:-1:binary-form-option-pairs-with-yes')), |
286 | - ); |
|
286 | + ); |
|
287 | 287 | |
288 | - // Vocabulary based option sets |
|
289 | - $form['type_options'] = array( |
|
288 | + // Vocabulary based option sets |
|
289 | + $form['type_options'] = array( |
|
290 | 290 | '#type' => 'value', |
291 | 291 | '#value' => array(0 => bts('Choose type', array(), NULL, 'boinc:form-choose')) |
292 | - ); |
|
293 | - $vocabs = taxonomy_get_vocabularies(NULL); |
|
294 | - foreach ($vocabs as $vocab) { |
|
292 | + ); |
|
293 | + $vocabs = taxonomy_get_vocabularies(NULL); |
|
294 | + foreach ($vocabs as $vocab) { |
|
295 | 295 | switch ($vocab->name) { |
296 | 296 | case 'Teams': |
297 | 297 | $team_types = taxonomy_get_tree($vocab->vid); |
298 | - if (module_exists('internationalization')) { |
|
298 | + if (module_exists('internationalization')) { |
|
299 | 299 | $team_types = i18ntaxonomy_localize_terms($team_types); |
300 | - } |
|
301 | - foreach ($team_types as $team_type) { |
|
300 | + } |
|
301 | + foreach ($team_types as $team_type) { |
|
302 | 302 | $form['type_options']['#value'][$team_type->tid] = $team_type->name; |
303 | - } |
|
304 | - break; |
|
303 | + } |
|
304 | + break; |
|
305 | 305 | default: |
306 | 306 | } |
307 | - } |
|
308 | - $form['country_options'] = array( |
|
307 | + } |
|
308 | + $form['country_options'] = array( |
|
309 | 309 | '#type' => 'value', |
310 | 310 | '#value' => boinccore_get_country_list(), |
311 | - ); |
|
311 | + ); |
|
312 | 312 | |
313 | - // Form elements |
|
314 | - $form['name'] = array( |
|
313 | + // Form elements |
|
314 | + $form['name'] = array( |
|
315 | 315 | '#title' => bts('Team name', array(), NULL, 'boinc:team-create/edit'), |
316 | 316 | '#type' => 'textfield', |
317 | 317 | '#default_value' => $default['name'], |
318 | 318 | '#size' => 34, |
319 | 319 | '#description' => bts('Text only, no HTML tags', array(), NULL, 'boinc:team-form-help'), |
320 | 320 | '#disabled' => $is_boinc_wide, |
321 | - ); |
|
322 | - $form['name_html'] = array( |
|
321 | + ); |
|
322 | + $form['name_html'] = array( |
|
323 | 323 | '#title' => bts('Team name -- HTML version (optional)', array(), NULL, 'boinc:team-create/edit'), |
324 | 324 | '#type' => 'textfield', |
325 | 325 | '#default_value' => $default['name_html'], |
326 | 326 | '#size' => 34, |
327 | 327 | '#description' => bts('You may use limited HTML tags', array(), NULL, 'boinc:team-form-help'), |
328 | 328 | '#disabled' => $is_boinc_wide, |
329 | - ); |
|
330 | - $form['website'] = array( |
|
329 | + ); |
|
330 | + $form['website'] = array( |
|
331 | 331 | '#title' => bts('Team website (optional)', array(), NULL, 'boinc:team-create/edit'), |
332 | 332 | '#type' => 'textfield', |
333 | 333 | '#default_value' => $default['website'], |
334 | 334 | '#size' => 34, |
335 | 335 | '#description' => bts("Displayed on the team's page", array(), NULL, 'boinc:team-create/edit'), |
336 | 336 | '#disabled' => $is_boinc_wide, |
337 | - ); |
|
338 | - $form['type'] = array( |
|
337 | + ); |
|
338 | + $form['type'] = array( |
|
339 | 339 | '#title' => bts('Type of team', array(), NULL, 'boinc:team-create/edit'), |
340 | 340 | '#type' => 'select', |
341 | 341 | '#options' => $form['type_options']['#value'], |
342 | 342 | '#default_value' => $default['type'], |
343 | 343 | '#disabled' => $is_boinc_wide, |
344 | - ); |
|
345 | - $form['country'] = array( |
|
344 | + ); |
|
345 | + $form['country'] = array( |
|
346 | 346 | '#title' => bts('Country', array(), NULL, 'boinc:country-of-origin'), |
347 | 347 | '#type' => 'select', |
348 | 348 | '#options' => $form['country_options']['#value'], |
349 | 349 | '#default_value' => $default['country'], |
350 | 350 | '#disabled' => $is_boinc_wide, |
351 | - ); |
|
352 | - $form['joinable'] = array( |
|
351 | + ); |
|
352 | + $form['joinable'] = array( |
|
353 | 353 | '#title' => bts('Accept new members?', array(), NULL, 'boinc:team-create/edit'), |
354 | 354 | '#type' => 'radios', |
355 | 355 | '#options' => $form['boolean_options']['#value'], |
@@ -357,49 +357,49 @@ discard block |
||
357 | 357 | '#default_value' => $default['joinable'], |
358 | 358 | '#size' => 34, |
359 | 359 | '#disabled' => $is_boinc_wide, |
360 | - ); |
|
361 | - if (!$is_boinc_wide) { |
|
360 | + ); |
|
361 | + if (!$is_boinc_wide) { |
|
362 | 362 | $form['description'] = array( |
363 | - '#title' => bts('Description of team', array(), NULL, 'boinc:team-create/edit'), |
|
364 | - '#type' => 'textarea', |
|
365 | - '#default_value' => $default['description'], |
|
366 | - '#size' => 5, |
|
367 | - '#description' => NULL, |
|
363 | + '#title' => bts('Description of team', array(), NULL, 'boinc:team-create/edit'), |
|
364 | + '#type' => 'textarea', |
|
365 | + '#default_value' => $default['description'], |
|
366 | + '#size' => 5, |
|
367 | + '#description' => NULL, |
|
368 | 368 | ); |
369 | 369 | $form['format'] = filter_form(); |
370 | 370 | |
371 | 371 | // Form control |
372 | 372 | $form['form control tabs prefix'] = array( |
373 | - '#value' => '<ul class="form-control tab-list">' |
|
373 | + '#value' => '<ul class="form-control tab-list">' |
|
374 | 374 | ); |
375 | 375 | $form['submit'] = array( |
376 | - '#prefix' => '<li class="first tab">', |
|
377 | - '#type' => 'submit', |
|
378 | - '#value' => bts('Save changes', array(), NULL, 'boinc:form-save'), |
|
379 | - '#suffix' => '</li>', |
|
376 | + '#prefix' => '<li class="first tab">', |
|
377 | + '#type' => 'submit', |
|
378 | + '#value' => bts('Save changes', array(), NULL, 'boinc:form-save'), |
|
379 | + '#suffix' => '</li>', |
|
380 | 380 | ); |
381 | 381 | $form['form control tabs'] = array( |
382 | - '#value' => '<li class="tab">' . l(bts('Cancel', array(), NULL, 'boinc:form-cancel'), strstr($_GET['q'], '/edit', TRUE)) . '</li>' |
|
382 | + '#value' => '<li class="tab">' . l(bts('Cancel', array(), NULL, 'boinc:form-cancel'), strstr($_GET['q'], '/edit', TRUE)) . '</li>' |
|
383 | 383 | ); |
384 | - } |
|
385 | - else { |
|
384 | + } |
|
385 | + else { |
|
386 | 386 | $form['description'] = array( |
387 | - '#prefix' => '<div class="form-item"><label>' . bts('Description', array(), NULL, 'boinc:team-description') . ':</label></div><div class="form-item">', |
|
388 | - '#value' => $default['description'], |
|
389 | - '#suffix' => '</div>', |
|
387 | + '#prefix' => '<div class="form-item"><label>' . bts('Description', array(), NULL, 'boinc:team-description') . ':</label></div><div class="form-item">', |
|
388 | + '#value' => $default['description'], |
|
389 | + '#suffix' => '</div>', |
|
390 | 390 | ); |
391 | 391 | drupal_set_message( |
392 | - bts('This is a BOINC-wide team. Changes can be made at the !site.', |
|
392 | + bts('This is a BOINC-wide team. Changes can be made at the !site.', |
|
393 | 393 | array('!site' => l(bts('BOINC-wide teams site', array(), NULL, 'boinc:link-to-BOINC-wide-teams-Website'), |
394 | - 'http://boinc.berkeley.edu/teams/' |
|
394 | + 'http://boinc.berkeley.edu/teams/' |
|
395 | 395 | )), |
396 | 396 | NULL, 'boinc:team-edit-warning-message'), |
397 | - 'warning'); |
|
398 | - } |
|
397 | + 'warning'); |
|
398 | + } |
|
399 | 399 | |
400 | - $form['#redirect'] = "community/teams/{$team_id}"; |
|
400 | + $form['#redirect'] = "community/teams/{$team_id}"; |
|
401 | 401 | |
402 | - return $form; |
|
402 | + return $form; |
|
403 | 403 | } |
404 | 404 | |
405 | 405 | /** |
@@ -407,32 +407,32 @@ discard block |
||
407 | 407 | */ |
408 | 408 | function boincteam_edit_form_validate($form, &$form_state) { |
409 | 409 | |
410 | - $values = $form_state['values']; |
|
411 | - $name = $values['name']; |
|
410 | + $values = $form_state['values']; |
|
411 | + $name = $values['name']; |
|
412 | 412 | |
413 | - if ($form_state['storage']['is_boinc_wide']) { |
|
413 | + if ($form_state['storage']['is_boinc_wide']) { |
|
414 | 414 | form_set_error('none', bts('This team is managed by the BOINC-wide teams system and cannot be updated here.', array(), NULL, 'boinc:team-create/edit')); |
415 | - } |
|
416 | - else { |
|
415 | + } |
|
416 | + else { |
|
417 | 417 | if (!$name) { |
418 | - form_set_error('name', bts('Team name is required.', array(), NULL, 'boinc:team-create/edit')); |
|
418 | + form_set_error('name', bts('Team name is required.', array(), NULL, 'boinc:team-create/edit')); |
|
419 | 419 | } |
420 | 420 | else { |
421 | - $team = node_load($form_state['storage']['team_id']); |
|
422 | - if ($name != $team->title) { |
|
421 | + $team = node_load($form_state['storage']['team_id']); |
|
422 | + if ($name != $team->title) { |
|
423 | 423 | // If changing the name ("title" in Drupal terms), check that the new name is available |
424 | 424 | require_boinc('boinc_db'); |
425 | 425 | if (BoincTeam::lookup_name($name)) { |
426 | - form_set_error('name', bts('A team named "@name" already exists.', |
|
426 | + form_set_error('name', bts('A team named "@name" already exists.', |
|
427 | 427 | array('@name' => $name), NULL, 'boinc:team-create/edit')); |
428 | 428 | } |
429 | - } |
|
429 | + } |
|
430 | 430 | } |
431 | 431 | |
432 | 432 | if (!$values['type'] OR !isset($values['type_options'][$values['type']])) { |
433 | - form_set_error('type', bts('Please select a team type.', array(), NULL, 'boinc:team-create/edit')); |
|
433 | + form_set_error('type', bts('Please select a team type.', array(), NULL, 'boinc:team-create/edit')); |
|
434 | + } |
|
434 | 435 | } |
435 | - } |
|
436 | 436 | } |
437 | 437 | |
438 | 438 | /** |
@@ -440,18 +440,18 @@ discard block |
||
440 | 440 | */ |
441 | 441 | function boincteam_edit_form_submit($form, &$form_state) { |
442 | 442 | |
443 | - $team_id = $form_state['storage']['team_id']; |
|
444 | - $values = $form_state['values']; |
|
443 | + $team_id = $form_state['storage']['team_id']; |
|
444 | + $values = $form_state['values']; |
|
445 | 445 | |
446 | - $team = node_load($team_id); |
|
447 | - $boincteam_id = boincteam_lookup_id($team_id); |
|
446 | + $team = node_load($team_id); |
|
447 | + $boincteam_id = boincteam_lookup_id($team_id); |
|
448 | 448 | |
449 | - $input_format = !empty($values['format']) ? $values['format'] : 4; |
|
450 | - $values['description'] = check_markup($values['description'], $input_format); |
|
449 | + $input_format = !empty($values['format']) ? $values['format'] : 4; |
|
450 | + $values['description'] = check_markup($values['description'], $input_format); |
|
451 | 451 | |
452 | - // Update the team in the BOINC db |
|
453 | - db_set_active('boinc_rw'); |
|
454 | - db_query(" |
|
452 | + // Update the team in the BOINC db |
|
453 | + db_set_active('boinc_rw'); |
|
454 | + db_query(" |
|
455 | 455 | UPDATE {team} SET |
456 | 456 | name = '%s', |
457 | 457 | name_lc = '%s', |
@@ -471,32 +471,32 @@ discard block |
||
471 | 471 | $values['country'], |
472 | 472 | $values['joinable'], |
473 | 473 | $boincteam_id |
474 | - ); |
|
475 | - db_set_active('default'); |
|
474 | + ); |
|
475 | + db_set_active('default'); |
|
476 | 476 | |
477 | - // Update the team node in Drupal |
|
477 | + // Update the team node in Drupal |
|
478 | 478 | |
479 | - $team->title = $values['name']; |
|
480 | - $team->body = $values['description']; |
|
481 | - $team->teaser = node_teaser($values['description']); |
|
479 | + $team->title = $values['name']; |
|
480 | + $team->body = $values['description']; |
|
481 | + $team->teaser = node_teaser($values['description']); |
|
482 | 482 | |
483 | - /* |
|
483 | + /* |
|
484 | 484 | $node->field_description[]['value'] = $boincteam->description; |
485 | 485 | $node->field_url[]['value'] = $boincteam->url; |
486 | 486 | $node->field_country[]['value'] = $boincteam->country; |
487 | 487 | */ |
488 | 488 | |
489 | - // Replace any existing taxonomy with the new one |
|
490 | - $team->taxonomy = array(taxonomy_get_term($values['type'])); |
|
489 | + // Replace any existing taxonomy with the new one |
|
490 | + $team->taxonomy = array(taxonomy_get_term($values['type'])); |
|
491 | 491 | |
492 | - // Save the team node |
|
493 | - node_save($team); |
|
492 | + // Save the team node |
|
493 | + node_save($team); |
|
494 | 494 | |
495 | - drupal_set_message(t('Details for "@team" have been updated.', |
|
495 | + drupal_set_message(t('Details for "@team" have been updated.', |
|
496 | 496 | array('@team' => $values['name']))); |
497 | 497 | |
498 | - // The storage variable quietly kills redirection for some reason... unset it |
|
499 | - unset($form_state['storage']); |
|
498 | + // The storage variable quietly kills redirection for some reason... unset it |
|
499 | + unset($form_state['storage']); |
|
500 | 500 | } |
501 | 501 | |
502 | 502 | |
@@ -508,44 +508,44 @@ discard block |
||
508 | 508 | * The definition of the add team admin form |
509 | 509 | */ |
510 | 510 | function boincteam_add_admin_form(&$form_state, $team_id) { |
511 | - $form = array(); |
|
511 | + $form = array(); |
|
512 | 512 | |
513 | - $team = node_load($team_id); |
|
514 | - $boincteam = boincteam_load(boincteam_lookup_id($team_id)); |
|
513 | + $team = node_load($team_id); |
|
514 | + $boincteam = boincteam_load(boincteam_lookup_id($team_id)); |
|
515 | 515 | |
516 | - $form_state['storage']['team_id'] = $team_id; |
|
516 | + $form_state['storage']['team_id'] = $team_id; |
|
517 | 517 | |
518 | - $default = array( |
|
518 | + $default = array( |
|
519 | 519 | 'username' => '', |
520 | - ); |
|
520 | + ); |
|
521 | 521 | |
522 | - // Form elements |
|
523 | - $form['username'] = array( |
|
522 | + // Form elements |
|
523 | + $form['username'] = array( |
|
524 | 524 | '#title' => bts('Enter BOINC username', array(), NULL, 'boinc:team--add-admin'), |
525 | 525 | '#description' => bts('The number appearing in the suffix is the BOINC id. You can find a user\'s BOINC id on their user profile page.'), |
526 | 526 | '#type' => 'textfield', |
527 | 527 | '#default_value' => $default['username'], |
528 | 528 | '#size' => 34, |
529 | 529 | '#autocomplete_path' => "community/teams/${team_id}/user-name-autocomplete", |
530 | - ); |
|
530 | + ); |
|
531 | 531 | |
532 | - // Form control |
|
533 | - $form['form control tabs prefix'] = array( |
|
532 | + // Form control |
|
533 | + $form['form control tabs prefix'] = array( |
|
534 | 534 | '#value' => '<ul class="form-control tab-list">' |
535 | - ); |
|
536 | - $form['submit'] = array( |
|
535 | + ); |
|
536 | + $form['submit'] = array( |
|
537 | 537 | '#prefix' => '<li class="first tab">', |
538 | 538 | '#type' => 'submit', |
539 | 539 | '#value' => bts('Add', array(), NULL, 'boinc:form-add'), |
540 | 540 | '#suffix' => '</li>', |
541 | - ); |
|
542 | - $form['form control tabs'] = array( |
|
541 | + ); |
|
542 | + $form['form control tabs'] = array( |
|
543 | 543 | '#value' => '<li class="tab">' . l(bts('Cancel', array(), NULL, 'boinc:form-cancel'), strstr($_GET['q'], '/edit', TRUE)) . '</li>' |
544 | - ); |
|
544 | + ); |
|
545 | 545 | |
546 | - //$form['#redirect'] = "community/teams/{$team_id}"; |
|
546 | + //$form['#redirect'] = "community/teams/{$team_id}"; |
|
547 | 547 | |
548 | - return $form; |
|
548 | + return $form; |
|
549 | 549 | } |
550 | 550 | |
551 | 551 | /** |
@@ -553,45 +553,45 @@ discard block |
||
553 | 553 | */ |
554 | 554 | function boincteam_add_admin_form_validate($form, &$form_state) { |
555 | 555 | |
556 | - $team_id = $form_state['storage']['team_id']; |
|
557 | - $values = $form_state['values']; |
|
558 | - $team = node_load($team_id); |
|
556 | + $team_id = $form_state['storage']['team_id']; |
|
557 | + $values = $form_state['values']; |
|
558 | + $team = node_load($team_id); |
|
559 | 559 | |
560 | - if (!$values['username']) { |
|
560 | + if (!$values['username']) { |
|
561 | 561 | form_set_error('username', bts('BOINC username is required.', array(), NULL, 'boinc:team-add-admin')); |
562 | - } |
|
563 | - else { |
|
562 | + } |
|
563 | + else { |
|
564 | 564 | // Load user account associated with username |
565 | 565 | $account = boincuser_privatemsg_name_lookup($values['username']); |
566 | 566 | // Validate the account |
567 | 567 | if ((!$account) OR ($account->team != $team_id)) { |
568 | - form_set_error('username', bts('There is no user on your team with name @username.', |
|
568 | + form_set_error('username', bts('There is no user on your team with name @username.', |
|
569 | 569 | array( |
570 | - '@username' => $account->boincuser_name |
|
570 | + '@username' => $account->boincuser_name |
|
571 | 571 | ), |
572 | - NULL, 'boinc:team-add-admin')); |
|
572 | + NULL, 'boinc:team-add-admin')); |
|
573 | 573 | } |
574 | 574 | elseif (boincteam_is_founder($team_id, $account->uid)) { |
575 | - form_set_error('username', bts('@user is the founder of @team! Team founder already have all admin privileges.', |
|
575 | + form_set_error('username', bts('@user is the founder of @team! Team founder already have all admin privileges.', |
|
576 | 576 | array( |
577 | - '@user' => $account->boincuser_name, |
|
578 | - '@team' => $team->title, |
|
577 | + '@user' => $account->boincuser_name, |
|
578 | + '@team' => $team->title, |
|
579 | 579 | ), |
580 | 580 | NULL, 'boinc:team-add-admin')); |
581 | 581 | } |
582 | 582 | elseif (boincteam_is_admin($team_id, $account->uid)) { |
583 | - form_set_error('username', bts('@user is already an admin of @team.', |
|
583 | + form_set_error('username', bts('@user is already an admin of @team.', |
|
584 | 584 | array( |
585 | - '@user' => $account->boincuser_name, |
|
586 | - '@team' => $team->title, |
|
585 | + '@user' => $account->boincuser_name, |
|
586 | + '@team' => $team->title, |
|
587 | 587 | ), |
588 | 588 | NULL, 'boinc:team-add-admin')); |
589 | 589 | } |
590 | 590 | else { |
591 | - $form_state['storage']['boincuser_id'] = $account->boincuser_id; |
|
592 | - $form_state['storage']['boincuser_name'] = $account->boincuser_name; |
|
591 | + $form_state['storage']['boincuser_id'] = $account->boincuser_id; |
|
592 | + $form_state['storage']['boincuser_name'] = $account->boincuser_name; |
|
593 | + } |
|
593 | 594 | } |
594 | - } |
|
595 | 595 | } |
596 | 596 | |
597 | 597 | /** |
@@ -599,17 +599,17 @@ discard block |
||
599 | 599 | */ |
600 | 600 | function boincteam_add_admin_form_submit($form, &$form_state) { |
601 | 601 | |
602 | - $team_id = $form_state['storage']['team_id']; |
|
603 | - $boincuser_id = $form_state['storage']['boincuser_id']; |
|
604 | - $user_name = $form_state['storage']['boincuser_name']; |
|
605 | - $values = $form_state['values']; |
|
602 | + $team_id = $form_state['storage']['team_id']; |
|
603 | + $boincuser_id = $form_state['storage']['boincuser_id']; |
|
604 | + $user_name = $form_state['storage']['boincuser_name']; |
|
605 | + $values = $form_state['values']; |
|
606 | 606 | |
607 | - $team = node_load($team_id); |
|
608 | - $boincteam_id = boincteam_lookup_id($team_id); |
|
607 | + $team = node_load($team_id); |
|
608 | + $boincteam_id = boincteam_lookup_id($team_id); |
|
609 | 609 | |
610 | - // Update the team in the BOINC db |
|
611 | - db_set_active('boinc_rw'); |
|
612 | - db_query(" |
|
610 | + // Update the team in the BOINC db |
|
611 | + db_set_active('boinc_rw'); |
|
612 | + db_query(" |
|
613 | 613 | INSERT INTO {team_admin} SET |
614 | 614 | teamid = '%d', |
615 | 615 | userid = '%d', |
@@ -617,17 +617,17 @@ discard block |
||
617 | 617 | $boincteam_id, |
618 | 618 | $boincuser_id, |
619 | 619 | time() |
620 | - ); |
|
621 | - db_set_active('default'); |
|
620 | + ); |
|
621 | + db_set_active('default'); |
|
622 | 622 | |
623 | - // Could assign a role in Drupal here, as needed |
|
623 | + // Could assign a role in Drupal here, as needed |
|
624 | 624 | |
625 | 625 | |
626 | - drupal_set_message(t('@user has been added as an admin.', |
|
626 | + drupal_set_message(t('@user has been added as an admin.', |
|
627 | 627 | array('@user' => $user_name))); |
628 | 628 | |
629 | - // The storage variable quietly kills redirection for some reason... unset it |
|
630 | - unset($form_state['storage']); |
|
629 | + // The storage variable quietly kills redirection for some reason... unset it |
|
630 | + unset($form_state['storage']); |
|
631 | 631 | } |
632 | 632 | |
633 | 633 | /* * * * * * * * * * * * * * * * * * * * * * * * * * * * |
@@ -639,80 +639,80 @@ discard block |
||
639 | 639 | * Send all team members an email message function |
640 | 640 | */ |
641 | 641 | function boincteam_sendmessagetoteam(&$form_state, $team_id) { |
642 | - global $user; |
|
643 | - $form = array(); |
|
642 | + global $user; |
|
643 | + $form = array(); |
|
644 | 644 | |
645 | - if (isset($form_state['values'])) { |
|
645 | + if (isset($form_state['values'])) { |
|
646 | 646 | $subject = $form_state['values']['subject']; |
647 | 647 | $body = $form_state['values']['body']; |
648 | - } |
|
649 | - else { |
|
648 | + } |
|
649 | + else { |
|
650 | 650 | $subject = ''; |
651 | 651 | $body = ''; |
652 | - } |
|
652 | + } |
|
653 | 653 | |
654 | - // Title |
|
655 | - $mytitle = bts('Send E-mail To All Team Members', array(), NULL, 'boinc:team-message-form'); |
|
656 | - drupal_set_title($mytitle); |
|
654 | + // Title |
|
655 | + $mytitle = bts('Send E-mail To All Team Members', array(), NULL, 'boinc:team-message-form'); |
|
656 | + drupal_set_title($mytitle); |
|
657 | 657 | |
658 | - $form['emailteam']['header'] = array( |
|
658 | + $form['emailteam']['header'] = array( |
|
659 | 659 | '#value' => '<h1>' . $mytitle . '</h1>', |
660 | 660 | '#weight' => '-10', |
661 | 661 | '#prefix' => "<div id='sendmessageteammembers-header'>", |
662 | 662 | '#suffix' => "</div>", |
663 | - ); |
|
663 | + ); |
|
664 | 664 | |
665 | - $form['emailteam']['instructions'] = array( |
|
665 | + $form['emailteam']['instructions'] = array( |
|
666 | 666 | '#value' => bts('This will send an email to all team members. If a team member has opt-ed out of notification e-mails, they will not receive your message. At the bottom of your message, there will be a link allowing team members to send you a Direct Message. This link is added automatically, you do not need to add it below in the Message box. Your email address will not be shown to the recipients.', array(), NULL, 'boinc:team-message-form'), |
667 | 667 | '#weight' => '-8', |
668 | 668 | '#prefix' => "<div id='sendmessageteammembers-instructions'>", |
669 | 669 | '#suffix' => "</div>", |
670 | - ); |
|
670 | + ); |
|
671 | 671 | |
672 | - // Subject |
|
673 | - $form['emailteam']['subject'] = array( |
|
672 | + // Subject |
|
673 | + $form['emailteam']['subject'] = array( |
|
674 | 674 | '#type' => 'textfield', |
675 | 675 | '#title' => bts('Subject', array(), NULL, 'boinc:team-message-form'), |
676 | 676 | '#size' => 50, |
677 | 677 | '#maxlength' => 255, |
678 | 678 | '#default_value' => $subject, |
679 | 679 | '#weight' => -5, |
680 | - ); |
|
680 | + ); |
|
681 | 681 | |
682 | - // Body |
|
683 | - $form['emailteam']['body'] = array( |
|
682 | + // Body |
|
683 | + $form['emailteam']['body'] = array( |
|
684 | 684 | '#type' => 'textarea', |
685 | 685 | '#title' => bts('Message', array(), NULL, 'boinc:team-message-form'), |
686 | 686 | '#rows' => 8, |
687 | 687 | '#weight' => 0, |
688 | 688 | '#default_value' => $body, |
689 | 689 | '#resizable' => TRUE, |
690 | - ); |
|
690 | + ); |
|
691 | 691 | |
692 | - // checkbox for 'sent to self' |
|
693 | - $form['emailteam']['selfsend'] = array( |
|
692 | + // checkbox for 'sent to self' |
|
693 | + $form['emailteam']['selfsend'] = array( |
|
694 | 694 | '#type' => 'checkbox', |
695 | 695 | '#title' => bts('Check this box if you wish to be sent a copy of your message to your email address.', array(), NULL, 'boinc:team-message-form'), |
696 | 696 | '#weight' => 10, |
697 | 697 | '#prefix' => '<div class="clearfix" id="confirm-checkbox">', |
698 | 698 | '#suffix' => '</div>', |
699 | - ); |
|
699 | + ); |
|
700 | 700 | |
701 | - // Add a captcha to form |
|
702 | - if (module_exists('captcha')) { |
|
701 | + // Add a captcha to form |
|
702 | + if (module_exists('captcha')) { |
|
703 | 703 | $form['register_captcha'] = array( |
704 | 704 | '#type' => 'captcha', |
705 | 705 | '#weight' => 1000, |
706 | 706 | ); |
707 | - } |
|
707 | + } |
|
708 | 708 | |
709 | - // form buttons |
|
710 | - $form['emailteam']['form control tabs prefix'] = array( |
|
709 | + // form buttons |
|
710 | + $form['emailteam']['form control tabs prefix'] = array( |
|
711 | 711 | '#value' => '<ul class="form-control tab-list">', |
712 | 712 | '#weight' => 1000, |
713 | - ); |
|
713 | + ); |
|
714 | 714 | |
715 | - $form['emailteam']['submit'] = array( |
|
715 | + $form['emailteam']['submit'] = array( |
|
716 | 716 | '#type' => 'submit', |
717 | 717 | '#value' => bts('Send message', array(), NULL, 'boinc:form-submit'), |
718 | 718 | '#submit' => array('boincteam_sendmessagetoteam_submit'), |
@@ -720,130 +720,130 @@ discard block |
||
720 | 720 | '#weight' => 1001, |
721 | 721 | '#prefix' => '<li class="first tab">', |
722 | 722 | '#suffix' => '</li>' |
723 | - ); |
|
723 | + ); |
|
724 | 724 | |
725 | - $title = bts('Cancel', array(), NULL, 'boinc:form-cancel'); |
|
726 | - $url = "community/teams/{$team_id}"; |
|
727 | - $form['emailteam']['cancel'] = array( |
|
725 | + $title = bts('Cancel', array(), NULL, 'boinc:form-cancel'); |
|
726 | + $url = "community/teams/{$team_id}"; |
|
727 | + $form['emailteam']['cancel'] = array( |
|
728 | 728 | '#value' => l($title, $url, array('attributes' => array('id' => 'edit-cancel'))), |
729 | 729 | '#weight' => 1005, |
730 | 730 | '#prefix' => '<li class="tab">', |
731 | 731 | '#suffix' => '</li>' |
732 | - ); |
|
732 | + ); |
|
733 | 733 | |
734 | - $form['emailteam']['form control tabs suffix'] = array( |
|
734 | + $form['emailteam']['form control tabs suffix'] = array( |
|
735 | 735 | '#value' => '</ul>', |
736 | 736 | '#weight' => 1010, |
737 | - ); |
|
737 | + ); |
|
738 | 738 | |
739 | - // Add team id information to form_state |
|
740 | - $form['_team_id'] = array( |
|
739 | + // Add team id information to form_state |
|
740 | + $form['_team_id'] = array( |
|
741 | 741 | '#type' => 'value', |
742 | 742 | '#value' => $team_id, |
743 | - ); |
|
743 | + ); |
|
744 | 744 | |
745 | - // Add sender user object to form_state |
|
746 | - $form['_senderuid'] = array( |
|
745 | + // Add sender user object to form_state |
|
746 | + $form['_senderuid'] = array( |
|
747 | 747 | '#type' => 'value', |
748 | 748 | '#value' => $user->uid, |
749 | - ); |
|
749 | + ); |
|
750 | 750 | |
751 | - // redirect after sending message |
|
752 | - $form['#redirect'] = "community/teams/{$team_id}"; |
|
751 | + // redirect after sending message |
|
752 | + $form['#redirect'] = "community/teams/{$team_id}"; |
|
753 | 753 | |
754 | - return $form; |
|
754 | + return $form; |
|
755 | 755 | } |
756 | 756 | |
757 | 757 | /** |
758 | 758 | * Send all team members validation handler |
759 | 759 | */ |
760 | 760 | function boincteam_sendmessagetoteam_validate($form, &$form_state) { |
761 | - $message = $form_state['values']; |
|
762 | - $message['timestamp'] = time(); |
|
763 | - // Avoid subjects which only consist of a space as these can not be clicked. |
|
764 | - $message['subject'] = trim($message['subject']); |
|
761 | + $message = $form_state['values']; |
|
762 | + $message['timestamp'] = time(); |
|
763 | + // Avoid subjects which only consist of a space as these can not be clicked. |
|
764 | + $message['subject'] = trim($message['subject']); |
|
765 | 765 | |
766 | - $trimed_body = trim(truncate_utf8(strip_tags($message['body']), 50, TRUE, TRUE)); |
|
767 | - if (empty($message['subject']) && !empty($trimed_body)) { |
|
766 | + $trimed_body = trim(truncate_utf8(strip_tags($message['body']), 50, TRUE, TRUE)); |
|
767 | + if (empty($message['subject']) && !empty($trimed_body)) { |
|
768 | 768 | $message['subject'] = $trimed_body; |
769 | 769 | $form_state['values']['subject'] = $message['subject']; |
770 | - } |
|
770 | + } |
|
771 | 771 | |
772 | - // Check subject line |
|
773 | - $message['subject'] = trim($message['subject']); |
|
774 | - if (empty($message['subject'])) { |
|
772 | + // Check subject line |
|
773 | + $message['subject'] = trim($message['subject']); |
|
774 | + if (empty($message['subject'])) { |
|
775 | 775 | form_set_error('subject', |
776 | - bts('Not allowed to send a message without subject', array(), NULL, 'boinc:team-message-form') |
|
776 | + bts('Not allowed to send a message without subject', array(), NULL, 'boinc:team-message-form') |
|
777 | 777 | ); |
778 | - } |
|
778 | + } |
|
779 | 779 | |
780 | - // Check body |
|
781 | - if ( ($message['body'] === NULL || $message['body'] === '') ) { |
|
780 | + // Check body |
|
781 | + if ( ($message['body'] === NULL || $message['body'] === '') ) { |
|
782 | 782 | form_set_error('body', |
783 | - bts('Not allowed to send an empty message.', array(), NULL, 'boinc:team-message-form') |
|
783 | + bts('Not allowed to send an empty message.', array(), NULL, 'boinc:team-message-form') |
|
784 | 784 | ); |
785 | - } |
|
785 | + } |
|
786 | 786 | |
787 | - // Check team id |
|
788 | - if (empty($message['_team_id'])) { |
|
787 | + // Check team id |
|
788 | + if (empty($message['_team_id'])) { |
|
789 | 789 | form_set_error('team_id', |
790 | - bts('Error, no team_id supplied.', array(), NULL, 'boinc:team-message-form') |
|
790 | + bts('Error, no team_id supplied.', array(), NULL, 'boinc:team-message-form') |
|
791 | 791 | ); |
792 | - } |
|
792 | + } |
|
793 | 793 | |
794 | - $form_state['validated_built_message'] = $message; |
|
794 | + $form_state['validated_built_message'] = $message; |
|
795 | 795 | } |
796 | 796 | |
797 | 797 | /** |
798 | 798 | * Send all team members submit handler |
799 | 799 | */ |
800 | 800 | function boincteam_sendmessagetoteam_submit($form, &$form_state) { |
801 | - module_load_include('inc', 'rules', 'modules/system.rules'); |
|
802 | - global $base_url; |
|
803 | - global $base_path; |
|
804 | - |
|
805 | - $suid = $form_state['values']['_senderuid']; |
|
806 | - $account = user_load(array('uid' => $suid )); |
|
807 | - $site_url = $base_url . $base_path . "/messages/new/" . $suid; |
|
808 | - |
|
809 | - // Form is validated, now send to all team members. Lookup boinc |
|
810 | - // id of all team members, and then use user_load() to load user |
|
811 | - // object. Send message using email. |
|
812 | - // |
|
813 | - $boinc_id = boincteam_lookup_id($form_state['values']['_team_id']); |
|
814 | - // Email addresses, with those who have opt-ed out of notification |
|
815 | - // emails removed. |
|
816 | - $member_emails = _boincteam_emails($boinc_id); |
|
817 | - // Remove sender's email address, unless selfsend is true. |
|
818 | - if ( !$form_state['values']['selfsend'] ) { |
|
801 | + module_load_include('inc', 'rules', 'modules/system.rules'); |
|
802 | + global $base_url; |
|
803 | + global $base_path; |
|
804 | + |
|
805 | + $suid = $form_state['values']['_senderuid']; |
|
806 | + $account = user_load(array('uid' => $suid )); |
|
807 | + $site_url = $base_url . $base_path . "/messages/new/" . $suid; |
|
808 | + |
|
809 | + // Form is validated, now send to all team members. Lookup boinc |
|
810 | + // id of all team members, and then use user_load() to load user |
|
811 | + // object. Send message using email. |
|
812 | + // |
|
813 | + $boinc_id = boincteam_lookup_id($form_state['values']['_team_id']); |
|
814 | + // Email addresses, with those who have opt-ed out of notification |
|
815 | + // emails removed. |
|
816 | + $member_emails = _boincteam_emails($boinc_id); |
|
817 | + // Remove sender's email address, unless selfsend is true. |
|
818 | + if ( !$form_state['values']['selfsend'] ) { |
|
819 | 819 | $pos = array_search($account->mail, $member_emails); |
820 | 820 | unset($member_emails[$pos]); |
821 | - } |
|
821 | + } |
|
822 | 822 | |
823 | - // Add link at bottom of body |
|
824 | - $mybody = $form_state['validated_built_message']['body']; |
|
825 | - $mybody .= "\n\n" |
|
826 | - . "To reply to the sender using a Direct Message (DM), please use this link:\n" |
|
827 | - . "${site_url}"; |
|
823 | + // Add link at bottom of body |
|
824 | + $mybody = $form_state['validated_built_message']['body']; |
|
825 | + $mybody .= "\n\n" |
|
826 | + . "To reply to the sender using a Direct Message (DM), please use this link:\n" |
|
827 | + . "${site_url}"; |
|
828 | 828 | |
829 | - $emailsettings = array( |
|
829 | + $emailsettings = array( |
|
830 | 830 | 'from' => '', |
831 | 831 | 'to' => "webmaster@{$base_url}", |
832 | 832 | 'boincteam_headers' => array( |
833 | - 'Bcc' => implode(',', $member_emails), |
|
833 | + 'Bcc' => implode(',', $member_emails), |
|
834 | 834 | ), |
835 | 835 | 'subject' => $form_state['validated_built_message']['subject'], |
836 | 836 | 'message' => $mybody, |
837 | - ); |
|
838 | - rules_action_mail($emailsettings); |
|
837 | + ); |
|
838 | + rules_action_mail($emailsettings); |
|
839 | 839 | |
840 | - $om = bts( |
|
840 | + $om = bts( |
|
841 | 841 | 'Sent your email message to !number team members.', |
842 | 842 | array( '!number' => count($member_emails) ), |
843 | 843 | 'NULL', |
844 | 844 | 'boinc:team-message-sent' |
845 | - ); |
|
846 | - drupal_set_message($om, 'info'); |
|
845 | + ); |
|
846 | + drupal_set_message($om, 'info'); |
|
847 | 847 | |
848 | - $form_state['redirect'] = "community/teams/{$form_state['values']['_team_id']}"; |
|
848 | + $form_state['redirect'] = "community/teams/{$form_state['values']['_team_id']}"; |
|
849 | 849 | } |