@@ -35,10 +35,10 @@ discard block |
||
35 | 35 | start_table(); |
36 | 36 | |
37 | 37 | switch($table){ |
38 | - case "platform": |
|
39 | - break; |
|
40 | - case "app": |
|
41 | - break; |
|
38 | + case "platform": |
|
39 | + break; |
|
40 | + case "app": |
|
41 | + break; |
|
42 | 42 | case "app_version": |
43 | 43 | print_detail_field(); |
44 | 44 | print_query_field(); |
@@ -89,8 +89,8 @@ discard block |
||
89 | 89 | case "user": |
90 | 90 | print_query_field(); |
91 | 91 | break; |
92 | - default: |
|
93 | - echo "Unknown table name\n"; |
|
92 | + default: |
|
93 | + echo "Unknown table name\n"; |
|
94 | 94 | exit(); |
95 | 95 | } |
96 | 96 |
@@ -14,19 +14,19 @@ discard block |
||
14 | 14 | * Implementation of hook_menu() |
15 | 15 | */ |
16 | 16 | function boinc_solr_comments_menu() { |
17 | - $items = array(); |
|
18 | - $base_path = 'admin/settings/apachesolr/indexcomments'; |
|
19 | - $items[$base_path] = array( |
|
20 | - 'title' => 'Index Comments', |
|
21 | - 'description' => 'Administer Indexing of Comments', |
|
22 | - 'page callback' => 'drupal_get_form', |
|
23 | - 'page arguments' => array('boinc_solr_comments_form'), |
|
24 | - 'access arguments' => array('administer search'), |
|
25 | - 'file' => 'boinc_solr_comments.admin.inc', |
|
26 | - 'weight' => '10', |
|
27 | - ); |
|
28 | - |
|
29 | - return $items; |
|
17 | + $items = array(); |
|
18 | + $base_path = 'admin/settings/apachesolr/indexcomments'; |
|
19 | + $items[$base_path] = array( |
|
20 | + 'title' => 'Index Comments', |
|
21 | + 'description' => 'Administer Indexing of Comments', |
|
22 | + 'page callback' => 'drupal_get_form', |
|
23 | + 'page arguments' => array('boinc_solr_comments_form'), |
|
24 | + 'access arguments' => array('administer search'), |
|
25 | + 'file' => 'boinc_solr_comments.admin.inc', |
|
26 | + 'weight' => '10', |
|
27 | + ); |
|
28 | + |
|
29 | + return $items; |
|
30 | 30 | } |
31 | 31 | |
32 | 32 | |
@@ -58,11 +58,11 @@ discard block |
||
58 | 58 | * Environment ID for apache solr. |
59 | 59 | */ |
60 | 60 | function boinc_solr_comments_apachesolr_index_documents_alter(array &$documents, $entity, $entity_type, $env_id) { |
61 | - $comdocs = array(); |
|
61 | + $comdocs = array(); |
|
62 | 62 | |
63 | - // Array of node types that will have comments indexed. |
|
64 | - $node_types = variable_get('boinc_solr_comments_nodetypes', ''); |
|
65 | - if (empty($node_types)) { |
|
63 | + // Array of node types that will have comments indexed. |
|
64 | + $node_types = variable_get('boinc_solr_comments_nodetypes', ''); |
|
65 | + if (empty($node_types)) { |
|
66 | 66 | // If the variable has not been set, then by default index |
67 | 67 | // comments for all known node types. |
68 | 68 | $node_types = array( |
@@ -72,28 +72,28 @@ discard block |
||
72 | 72 | 'story' => 'story', |
73 | 73 | 'team_forum' => 'team_forum', |
74 | 74 | ); |
75 | - } |
|
75 | + } |
|
76 | 76 | |
77 | - // Loop over all documents and alter: |
|
78 | - foreach ($documents as $document) { |
|
77 | + // Loop over all documents and alter: |
|
78 | + foreach ($documents as $document) { |
|
79 | 79 | //dd($document, "index documents alter - document"); |
80 | 80 | |
81 | 81 | $to_process = ( array_key_exists($document->bundle, $node_types) AND $node_types[$document->bundle] ); |
82 | 82 | if ( $document->entity_type=='node' AND $to_process) { |
83 | 83 | |
84 | - // Remove ts_comments if present. |
|
85 | - if (isset($document->ts_comments)) { |
|
84 | + // Remove ts_comments if present. |
|
85 | + if (isset($document->ts_comments)) { |
|
86 | 86 | unset($document->ts_comments); |
87 | - } |
|
88 | - // Node information. |
|
89 | - $nid = $document->entity_id; |
|
90 | - $node = node_load($nid); |
|
91 | - |
|
92 | - // Query database for comments of node. Only return comments |
|
93 | - // with status 0 (0 is published for comments). |
|
94 | - $sql = 'SELECT cid from {comments} WHERE nid = %d AND status = 0 ORDER by timestamp DESC'; |
|
95 | - $resource = db_query($sql, $nid); |
|
96 | - while ($row = db_fetch_array($resource)) { |
|
87 | + } |
|
88 | + // Node information. |
|
89 | + $nid = $document->entity_id; |
|
90 | + $node = node_load($nid); |
|
91 | + |
|
92 | + // Query database for comments of node. Only return comments |
|
93 | + // with status 0 (0 is published for comments). |
|
94 | + $sql = 'SELECT cid from {comments} WHERE nid = %d AND status = 0 ORDER by timestamp DESC'; |
|
95 | + $resource = db_query($sql, $nid); |
|
96 | + while ($row = db_fetch_array($resource)) { |
|
97 | 97 | // Load the comment from cid. |
98 | 98 | $comment = _comment_load($row['cid']); |
99 | 99 | |
@@ -116,10 +116,10 @@ discard block |
||
116 | 116 | // Comment object has no language |
117 | 117 | $comment_document->ss_language = 'und'; |
118 | 118 | if (function_exists('drupal_get_path_alias')) { |
119 | - $output = drupal_get_path_alias($comment_document->path, NULL); |
|
120 | - if ($output && $output != $document->path) { |
|
119 | + $output = drupal_get_path_alias($comment_document->path, NULL); |
|
120 | + if ($output && $output != $document->path) { |
|
121 | 121 | $comment_document->path_alias = $output; |
122 | - } |
|
122 | + } |
|
123 | 123 | } |
124 | 124 | |
125 | 125 | // Code derived from apachesolr_index_node_solr_document |
@@ -129,13 +129,13 @@ discard block |
||
129 | 129 | |
130 | 130 | // Author information |
131 | 131 | if ($comment->uid == 0 || strlen($comment->name) == 0) { |
132 | - // @see user_validate_name(). !'0' === TRUE. |
|
133 | - $comment_document->ss_name = '0'; |
|
132 | + // @see user_validate_name(). !'0' === TRUE. |
|
133 | + $comment_document->ss_name = '0'; |
|
134 | 134 | } |
135 | 135 | else { |
136 | - $comment_document->ss_name = $comment->name; |
|
137 | - // We want the name to be searchable for keywords. |
|
138 | - $comment_document->tos_name = $comment->name; |
|
136 | + $comment_document->ss_name = $comment->name; |
|
137 | + // We want the name to be searchable for keywords. |
|
138 | + $comment_document->tos_name = $comment->name; |
|
139 | 139 | } |
140 | 140 | |
141 | 141 | // Index formatted username so it can be searched and sorted |
@@ -157,59 +157,59 @@ discard block |
||
157 | 157 | // Unset the following fields (if set) that don't make sense |
158 | 158 | // for a comment. |
159 | 159 | if (isset($comment_document->bs_sticky)) { |
160 | - unset($comment_document->bs_sticky); |
|
160 | + unset($comment_document->bs_sticky); |
|
161 | 161 | } |
162 | 162 | if (isset($comment_document->bs_promote)) { |
163 | - unset($comment_document->bs_promote); |
|
163 | + unset($comment_document->bs_promote); |
|
164 | 164 | } |
165 | 165 | if (isset($comment_document->is_tnid)) { |
166 | - unset($comment_document->is_tnid); |
|
166 | + unset($comment_document->is_tnid); |
|
167 | 167 | } |
168 | 168 | if (isset($comment_document->bs_translate)) { |
169 | - unset($comment_document->bs_translate); |
|
169 | + unset($comment_document->bs_translate); |
|
170 | 170 | } |
171 | 171 | if (isset($comment_document->ts_last_comment_timestamp)) { |
172 | - unset($comment_document->ts_last_comment_timestamp); |
|
172 | + unset($comment_document->ts_last_comment_timestamp); |
|
173 | 173 | } |
174 | 174 | if (isset($comment_document->ds_last_comment_or_change)) { |
175 | - unset($comment_document->ds_last_comment_or_change); |
|
175 | + unset($comment_document->ds_last_comment_or_change); |
|
176 | 176 | } |
177 | 177 | if (isset($comment_document->is_comment_count)) { |
178 | - unset($comment_document->is_comment_count); |
|
178 | + unset($comment_document->is_comment_count); |
|
179 | 179 | } |
180 | 180 | |
181 | 181 | // Loop over fields in document and copy relevant values into |
182 | 182 | // comment_document. |
183 | 183 | foreach ($document as $fieldName => $fieldValue) { |
184 | 184 | |
185 | - // Copy over fields [im_taxonomy_vid_1], [tid], [im_vid_1], |
|
186 | - // [im_vid_Forums], [tm_vid_1_names] |
|
187 | - if ( ( preg_match('/tid/', $fieldName) OR preg_match('/vid/', $fieldName) ) AND is_array($fieldValue) ) { |
|
185 | + // Copy over fields [im_taxonomy_vid_1], [tid], [im_vid_1], |
|
186 | + // [im_vid_Forums], [tm_vid_1_names] |
|
187 | + if ( ( preg_match('/tid/', $fieldName) OR preg_match('/vid/', $fieldName) ) AND is_array($fieldValue) ) { |
|
188 | 188 | foreach ($fieldValue as $subkey => $subvalue) { |
189 | - $comment_document->addField($fieldName, $subvalue); |
|
189 | + $comment_document->addField($fieldName, $subvalue); |
|
190 | 190 | } |
191 | - }// if preg_match |
|
191 | + }// if preg_match |
|
192 | 192 | |
193 | - // Set the access keys so this module will work with |
|
194 | - // apachesolr_access. |
|
195 | - if (module_exists('apachesolr_access')) { |
|
193 | + // Set the access keys so this module will work with |
|
194 | + // apachesolr_access. |
|
195 | + if (module_exists('apachesolr_access')) { |
|
196 | 196 | if (preg_match('/^access/', $fieldName) AND is_array($fieldValue)) { |
197 | - foreach ($fieldValue as $subkey => $subvalue) { |
|
197 | + foreach ($fieldValue as $subkey => $subvalue) { |
|
198 | 198 | $comment_document->addField($fieldName, $subvalue); |
199 | - } |
|
199 | + } |
|
200 | 200 | }// if preg_match |
201 | - }// if module_exist |
|
201 | + }// if module_exist |
|
202 | 202 | |
203 | 203 | }// foreach document |
204 | 204 | |
205 | 205 | $comdocs[] = $comment_document; |
206 | - }// while |
|
206 | + }// while |
|
207 | 207 | }// if entity_type=node |
208 | - }// documents |
|
208 | + }// documents |
|
209 | 209 | |
210 | - // Merge the comment documents with the input documents array. These |
|
211 | - // documents will now be added to the Solr search index. |
|
212 | - $documents = array_merge($documents, $comdocs); |
|
210 | + // Merge the comment documents with the input documents array. These |
|
211 | + // documents will now be added to the Solr search index. |
|
212 | + $documents = array_merge($documents, $comdocs); |
|
213 | 213 | } |
214 | 214 | |
215 | 215 | /** |
@@ -225,19 +225,19 @@ discard block |
||
225 | 225 | * The Solr query used for the search. |
226 | 226 | */ |
227 | 227 | function boinc_solr_comments_apachesolr_process_results(&$results, DrupalSolrQueryInterface $query) { |
228 | - //dpm($query->getSolrParams(), "process_results query getSolrParams"); |
|
229 | - foreach($results as $id => $result) { |
|
228 | + //dpm($query->getSolrParams(), "process_results query getSolrParams"); |
|
229 | + foreach($results as $id => $result) { |
|
230 | 230 | if ($result['entity_type']=='comment') { |
231 | 231 | $results[$id]['type'] = 'Comment'; |
232 | 232 | $results[$id]['date'] = $result['fields']['changed']; |
233 | 233 | if (isset($result['fields']['is_uid'])) { |
234 | - $uid = $result['fields']['is_uid']; |
|
235 | - $results[$id]['uid'] = $uid; |
|
236 | - $results[$id]['user'] = theme('username', user_load($uid)); |
|
234 | + $uid = $result['fields']['is_uid']; |
|
235 | + $results[$id]['uid'] = $uid; |
|
236 | + $results[$id]['user'] = theme('username', user_load($uid)); |
|
237 | 237 | } |
238 | 238 | } //if result entity_type == comment |
239 | - }// foreach $result |
|
240 | - //dpm($results, "process_results array_results"); |
|
239 | + }// foreach $result |
|
240 | + //dpm($results, "process_results array_results"); |
|
241 | 241 | } |
242 | 242 | |
243 | 243 | /** |
@@ -251,8 +251,8 @@ discard block |
||
251 | 251 | * The Solr query used for the search. |
252 | 252 | */ |
253 | 253 | function boinc_solr_comments_apachesolr_query_alter($query) { |
254 | - // Add custom field to query results |
|
255 | - $query->addParam('fl','tos_content_extra'); |
|
254 | + // Add custom field to query results |
|
255 | + $query->addParam('fl','tos_content_extra'); |
|
256 | 256 | } |
257 | 257 | |
258 | 258 | /* * * * * * * * * * * * * * * * * * * * * * * * * * * * |
@@ -265,9 +265,9 @@ discard block |
||
265 | 265 | * |
266 | 266 | */ |
267 | 267 | function boinc_solr_comments_nodeapi(&$node, $op, $a3 = NULL, $a4 = NULL) { |
268 | - // Array of node types that will have comments indexed. |
|
269 | - $node_types = variable_get('boinc_solr_comments_nodetypes', ''); |
|
270 | - if (empty($node_types)) { |
|
268 | + // Array of node types that will have comments indexed. |
|
269 | + $node_types = variable_get('boinc_solr_comments_nodetypes', ''); |
|
270 | + if (empty($node_types)) { |
|
271 | 271 | // If the variable has not been set, then by default index |
272 | 272 | // comments for all known node types. |
273 | 273 | $node_types = array( |
@@ -277,16 +277,16 @@ discard block |
||
277 | 277 | 'story' => 'story', |
278 | 278 | 'team_forum' => 'team_forum', |
279 | 279 | ); |
280 | - } |
|
280 | + } |
|
281 | 281 | |
282 | - switch ($op) { |
|
282 | + switch ($op) { |
|
283 | 283 | case 'delete': |
284 | 284 | // Only call delete function on certain node types |
285 | 285 | if (in_array( $node->type, $node_types)) { |
286 | 286 | boinc_solr_comments_delete($node); |
287 | - } |
|
288 | - break; |
|
289 | - } //switch |
|
287 | + } |
|
288 | + break; |
|
289 | + } //switch |
|
290 | 290 | } |
291 | 291 | |
292 | 292 | |
@@ -303,30 +303,30 @@ discard block |
||
303 | 303 | * Returns TRUE if the comment was deleted, otherwise return FALSE. |
304 | 304 | */ |
305 | 305 | function boinc_solr_comments_delete($node) { |
306 | - // Load the Solr environment. |
|
307 | - $env_id = apachesolr_default_environment(); |
|
308 | - // Check to see if Solr is read-only. |
|
309 | - if (apachesolr_environment_variable_get($env_id, 'apachesolr_read_only', APACHESOLR_READ_WRITE) == APACHESOLR_READ_ONLY) { |
|
306 | + // Load the Solr environment. |
|
307 | + $env_id = apachesolr_default_environment(); |
|
308 | + // Check to see if Solr is read-only. |
|
309 | + if (apachesolr_environment_variable_get($env_id, 'apachesolr_read_only', APACHESOLR_READ_WRITE) == APACHESOLR_READ_ONLY) { |
|
310 | 310 | return FALSE; |
311 | - } |
|
311 | + } |
|
312 | 312 | |
313 | - // Code derived from apachesolr_index_delete_entity_from_index |
|
314 | - try { |
|
313 | + // Code derived from apachesolr_index_delete_entity_from_index |
|
314 | + try { |
|
315 | 315 | $solr = apachesolr_get_solr($env_id); |
316 | 316 | // Custom query to find all comments with parent nid of the node bing deleted. |
317 | 317 | $query = "entity_type:comment AND tos_content_extra:" . $node->nid; |
318 | 318 | $solr->deleteByQuery($query); |
319 | 319 | // Log the query used for deletion. |
320 | 320 | watchdog('Apache Solr', 'Deleted documents from index with query @query', array('@query' => $query), WATCHDOG_INFO); |
321 | - } |
|
322 | - catch (Exception $e) { |
|
323 | - watchdog('Apache Solr', nl2br(check_plain($e->getMessage())), NULL, WATCHDOG_ERROR); |
|
324 | - return FALSE; |
|
325 | - }// try |
|
326 | - |
|
327 | - // all deletions sucessful |
|
328 | - apachesolr_set_last_index_updated($env_id, APACHESOLR_REQUEST_TIME); |
|
329 | - return TRUE; |
|
321 | + } |
|
322 | + catch (Exception $e) { |
|
323 | + watchdog('Apache Solr', nl2br(check_plain($e->getMessage())), NULL, WATCHDOG_ERROR); |
|
324 | + return FALSE; |
|
325 | + }// try |
|
326 | + |
|
327 | + // all deletions sucessful |
|
328 | + apachesolr_set_last_index_updated($env_id, APACHESOLR_REQUEST_TIME); |
|
329 | + return TRUE; |
|
330 | 330 | } |
331 | 331 | |
332 | 332 | /** |
@@ -334,15 +334,15 @@ discard block |
||
334 | 334 | * |
335 | 335 | */ |
336 | 336 | function boinc_solr_comments_comment(&$a1, $op) { |
337 | - switch ($op) { |
|
337 | + switch ($op) { |
|
338 | 338 | case 'view': |
339 | 339 | case 'update': |
340 | 340 | break; |
341 | 341 | case 'delete': |
342 | 342 | // $a1 should be a comment object |
343 | 343 | boinc_solr_comments_deletecomment($a1); |
344 | - break; |
|
345 | - }// switch |
|
344 | + break; |
|
345 | + }// switch |
|
346 | 346 | } |
347 | 347 | |
348 | 348 | /** |
@@ -358,16 +358,16 @@ discard block |
||
358 | 358 | * Returns TRUE if the comment was deleted, otherwise return FALSE. |
359 | 359 | */ |
360 | 360 | function boinc_solr_comments_deletecomment($comment) { |
361 | - // Load the Solr environment. |
|
362 | - $env_id = apachesolr_default_environment(); |
|
363 | - // Check to see if Solr is read-only. |
|
364 | - if (apachesolr_environment_variable_get($env_id, 'apachesolr_read_only', APACHESOLR_READ_WRITE) == APACHESOLR_READ_ONLY) { |
|
361 | + // Load the Solr environment. |
|
362 | + $env_id = apachesolr_default_environment(); |
|
363 | + // Check to see if Solr is read-only. |
|
364 | + if (apachesolr_environment_variable_get($env_id, 'apachesolr_read_only', APACHESOLR_READ_WRITE) == APACHESOLR_READ_ONLY) { |
|
365 | 365 | return FALSE; |
366 | - } |
|
367 | - //dd($comment->cid, "delete - nid begin"); |
|
366 | + } |
|
367 | + //dd($comment->cid, "delete - nid begin"); |
|
368 | 368 | |
369 | - // Code derived from apachesolr_index_delete_entity_from_index. |
|
370 | - try { |
|
369 | + // Code derived from apachesolr_index_delete_entity_from_index. |
|
370 | + try { |
|
371 | 371 | $solr = apachesolr_get_solr($env_id); |
372 | 372 | $entity_id = $comment->cid; |
373 | 373 | $entity_type = 'comment'; |
@@ -377,14 +377,14 @@ discard block |
||
377 | 377 | // Log the query used for deletion. |
378 | 378 | watchdog('Apache Solr', 'Deleted documents from index with query @query', array('@query' => $query), WATCHDOG_INFO); |
379 | 379 | } |
380 | - catch (Exception $e) { |
|
380 | + catch (Exception $e) { |
|
381 | 381 | watchdog('Apache Solr', nl2br(check_plain($e->getMessage())), NULL, WATCHDOG_ERROR); |
382 | 382 | return FALSE; |
383 | - }// try |
|
383 | + }// try |
|
384 | 384 | |
385 | - // deletion sucessful |
|
386 | - apachesolr_set_last_index_updated($env_id, APACHESOLR_REQUEST_TIME); |
|
387 | - return TRUE; |
|
385 | + // deletion sucessful |
|
386 | + apachesolr_set_last_index_updated($env_id, APACHESOLR_REQUEST_TIME); |
|
387 | + return TRUE; |
|
388 | 388 | } |
389 | 389 | |
390 | 390 | |
@@ -399,7 +399,7 @@ discard block |
||
399 | 399 | */ |
400 | 400 | |
401 | 401 | function boinc_solr_comments_enable() { |
402 | - drupal_set_message( bts('Warning: Your content <a href="@url">must be re-indexed</a> before Apache Solr will search comments.', array('@url' => url('admin/settings/apachesolr/index')), NULL, 'boinc:admin-solr-index-comments-message'), 'warning'); |
|
402 | + drupal_set_message( bts('Warning: Your content <a href="@url">must be re-indexed</a> before Apache Solr will search comments.', array('@url' => url('admin/settings/apachesolr/index')), NULL, 'boinc:admin-solr-index-comments-message'), 'warning'); |
|
403 | 403 | } |
404 | 404 | |
405 | 405 | /** |
@@ -410,12 +410,12 @@ discard block |
||
410 | 410 | * The comment to be published (unhidden). |
411 | 411 | */ |
412 | 412 | function boinc_solr_comments_publish($comment) { |
413 | - if ( ($comment->cid) AND ($comment->nid) ) { |
|
413 | + if ( ($comment->cid) AND ($comment->nid) ) { |
|
414 | 414 | $node = node_load($comment->nid); |
415 | 415 | // Tell Solr that the node has been updated, so the comment can be |
416 | 416 | // indexed. |
417 | 417 | apachesolr_entity_update($node, 'node'); |
418 | - } |
|
418 | + } |
|
419 | 419 | } |
420 | 420 | |
421 | 421 | /** |
@@ -426,9 +426,9 @@ discard block |
||
426 | 426 | * The comment to be unpublished (hidden). |
427 | 427 | */ |
428 | 428 | function boinc_solr_comments_unpublish($comment) { |
429 | - if ( ($comment->cid) ) { |
|
429 | + if ( ($comment->cid) ) { |
|
430 | 430 | // Call the deletecomment function for hook comment. |
431 | 431 | boinc_solr_comments_deletecomment($comment); |
432 | - } |
|
432 | + } |
|
433 | 433 | } |
434 | 434 |
@@ -28,13 +28,13 @@ discard block |
||
28 | 28 | }*/ |
29 | 29 | |
30 | 30 | /** |
31 | - * The BOINC environment form allows paths to be set to connect Drupal to an |
|
32 | - * existing BOINC web interface. |
|
33 | - */ |
|
31 | + * The BOINC environment form allows paths to be set to connect Drupal to an |
|
32 | + * existing BOINC web interface. |
|
33 | + */ |
|
34 | 34 | function boincuser_admin_environment(&$form_state) { |
35 | - global $base_url; |
|
36 | - $form = array(); |
|
37 | - $default = array( |
|
35 | + global $base_url; |
|
36 | + $form = array(); |
|
37 | + $default = array( |
|
38 | 38 | 'boinc_root_dir' => variable_get('boinc_root_dir', ''), |
39 | 39 | 'boinc_config_xml_dir' => variable_get('boinc_config_xml_dir', ''), |
40 | 40 | 'boinc_html_inc_dir' => variable_get('boinc_html_inc_dir', ''), |
@@ -47,303 +47,303 @@ discard block |
||
47 | 47 | 'boinc_admin_mailing_list_subject_tag' => variable_get('boinc_admin_mailing_list_subject_tag', ''), |
48 | 48 | 'boinc_debug_mode' => variable_get('boinc_debug_mode', 0), |
49 | 49 | 'boinc_project_config_keywords' => variable_get('boinc_project_config_keywords', ''), |
50 | - ); |
|
51 | - //drupal_set_message(print_r($default, true)); |
|
52 | - //drupal_set_message(print_r($form_state, true)); |
|
53 | - // Show overrides if the root dir is set and others have not been detected |
|
54 | - $show_overrides = FALSE; |
|
55 | - if ($default['boinc_root_dir']) { |
|
50 | + ); |
|
51 | + //drupal_set_message(print_r($default, true)); |
|
52 | + //drupal_set_message(print_r($form_state, true)); |
|
53 | + // Show overrides if the root dir is set and others have not been detected |
|
54 | + $show_overrides = FALSE; |
|
55 | + if ($default['boinc_root_dir']) { |
|
56 | 56 | foreach ($default as $key => $dir) { |
57 | - switch ($key) { |
|
58 | - case 'boinc_config_xml_dir': |
|
57 | + switch ($key) { |
|
58 | + case 'boinc_config_xml_dir': |
|
59 | 59 | case 'boinc_html_inc_dir': |
60 | 60 | case 'boinc_project_config_dir': |
61 | 61 | case 'boinc_user_image_dir': |
62 | 62 | // If any of these values are not set, show the overrides section |
63 | 63 | if (!$dir) { |
64 | - $default[$key] = $form_state['values'][$key]; |
|
65 | - $show_overrides = TRUE; |
|
66 | - break; |
|
64 | + $default[$key] = $form_state['values'][$key]; |
|
65 | + $show_overrides = TRUE; |
|
66 | + break; |
|
67 | 67 | } |
68 | 68 | break; |
69 | - default: |
|
69 | + default: |
|
70 | 70 | } |
71 | - if ($show_overrides) { |
|
71 | + if ($show_overrides) { |
|
72 | 72 | break; |
73 | - } |
|
73 | + } |
|
74 | + } |
|
74 | 75 | } |
75 | - } |
|
76 | - // Define the form |
|
77 | - $form['boinc_root_dir'] = array( |
|
76 | + // Define the form |
|
77 | + $form['boinc_root_dir'] = array( |
|
78 | 78 | '#type' => 'textfield', |
79 | 79 | '#title' => t('BOINC project root directory'), |
80 | 80 | '#default_value' => $default['boinc_root_dir'], |
81 | 81 | '#description' => t('The filesystem path to the BOINC project root. This |
82 | 82 | directory should contain config.xml as well as the html subdirectory, |
83 | 83 | which itself contains inc/, project/, and user_profile/.'), |
84 | - ); |
|
85 | - $form['overrides'] = array( |
|
84 | + ); |
|
85 | + $form['overrides'] = array( |
|
86 | 86 | '#title' => t('Overrides'), |
87 | 87 | '#type' => 'fieldset', |
88 | 88 | '#description' => '', |
89 | 89 | '#collapsible' => TRUE, |
90 | 90 | '#collapsed' => !$show_overrides, |
91 | 91 | '#attributes' => array('class' => 'advanced-settings') |
92 | - ); |
|
93 | - $form['overrides']['boinc_config_xml_dir'] = array( |
|
92 | + ); |
|
93 | + $form['overrides']['boinc_config_xml_dir'] = array( |
|
94 | 94 | '#type' => 'textfield', |
95 | 95 | '#title' => t('BOINC config.xml directory'), |
96 | 96 | '#default_value' => $default['boinc_config_xml_dir'], |
97 | 97 | '#description' => t('The filesystem path that contains config.xml'), |
98 | - ); |
|
99 | - $form['overrides']['boinc_html_inc_dir'] = array( |
|
98 | + ); |
|
99 | + $form['overrides']['boinc_html_inc_dir'] = array( |
|
100 | 100 | '#type' => 'textfield', |
101 | 101 | '#title' => t('BOINC web includes directory'), |
102 | 102 | '#default_value' => $default['boinc_html_inc_dir'], |
103 | 103 | '#description' => t('The filesystem path to the html/inc/ directory that |
104 | 104 | contains util.inc'), |
105 | - ); |
|
106 | - $form['overrides']['boinc_project_config_dir'] = array( |
|
105 | + ); |
|
106 | + $form['overrides']['boinc_project_config_dir'] = array( |
|
107 | 107 | '#type' => 'textfield', |
108 | 108 | '#title' => t('BOINC project config directory'), |
109 | 109 | '#default_value' => $default['boinc_project_config_dir'], |
110 | 110 | '#description' => t('The filesystem path to the project/ directory that |
111 | 111 | contains project.inc'), |
112 | - ); |
|
113 | - $form['overrides']['boinc_user_image_dir'] = array( |
|
112 | + ); |
|
113 | + $form['overrides']['boinc_user_image_dir'] = array( |
|
114 | 114 | '#type' => 'textfield', |
115 | 115 | '#title' => t('BOINC user profile image directory'), |
116 | 116 | '#default_value' => $default['boinc_user_image_dir'], |
117 | 117 | '#description' => t('The filesystem directory that contains user images'), |
118 | - ); |
|
119 | - $form['boinc_server_status_url'] = array( |
|
118 | + ); |
|
119 | + $form['boinc_server_status_url'] = array( |
|
120 | 120 | '#type' => 'textfield', |
121 | 121 | '#title' => t('BOINC server status page URL (optional)'), |
122 | 122 | '#default_value' => $default['boinc_server_status_url'], |
123 | 123 | '#description' => t('An absolute URL or path relative to the site base to the server status page (e.g. %full_url or just %relative_url).', |
124 | - array( |
|
124 | + array( |
|
125 | 125 | '%full_url' => $base_url . '/server_status.php', |
126 | 126 | '%relative_url' => 'server_status.php', |
127 | - ) |
|
127 | + ) |
|
128 | 128 | ), |
129 | - ); |
|
130 | - $form['boinc_app_list_url'] = array( |
|
129 | + ); |
|
130 | + $form['boinc_app_list_url'] = array( |
|
131 | 131 | '#type' => 'textfield', |
132 | 132 | '#title' => t('BOINC applications page URL (optional)'), |
133 | 133 | '#default_value' => $default['boinc_app_list_url'], |
134 | 134 | '#description' => t('An absolute URL or path relative to the site base to the applications page (e.g. %full_url or just %relative_url).', |
135 | - array( |
|
135 | + array( |
|
136 | 136 | '%full_url' => $base_url . '/apps.php', |
137 | 137 | '%relative_url' => 'apps.php', |
138 | - ) |
|
138 | + ) |
|
139 | 139 | ), |
140 | - ); |
|
141 | - $form['boinc_host_sched_logs_dir'] = array( |
|
140 | + ); |
|
141 | + $form['boinc_host_sched_logs_dir'] = array( |
|
142 | 142 | '#type' => 'textfield', |
143 | 143 | '#title' => t('BOINC host scheduler log directory (optional)'), |
144 | 144 | '#default_value' => $default['boinc_host_sched_logs_dir'], |
145 | 145 | '#description' => t('The filesystem directory that contains host scheduler logs'), |
146 | - ); |
|
147 | - $form['boinc_admin_mailing_list'] = array( |
|
146 | + ); |
|
147 | + $form['boinc_admin_mailing_list'] = array( |
|
148 | 148 | '#type' => 'textfield', |
149 | 149 | '#title' => t('Admin mailing list'), |
150 | 150 | '#default_value' => $default['boinc_admin_mailing_list'], |
151 | 151 | '#description' => t('Enter an email-address which will be used to contact admisistrators. If empty, the site email configured in Settings -> Site Information will be used.'), |
152 | - ); |
|
153 | - $form['boinc_admin_mailing_list_subject_tag'] = array( |
|
152 | + ); |
|
153 | + $form['boinc_admin_mailing_list_subject_tag'] = array( |
|
154 | 154 | '#type' => 'textfield', |
155 | 155 | '#title' => t('Admin mailing list - subject tag'), |
156 | 156 | '#default_value' => $default['boinc_admin_mailing_list_subject_tag'], |
157 | 157 | '#description' => t('Text which will appear at the beginning of the subject for any admin notification emails. If empty, no tag will be included. Examples: [drupal-error].'), |
158 | - ); |
|
159 | - $form['boinc_debug_mode'] = array( |
|
158 | + ); |
|
159 | + $form['boinc_debug_mode'] = array( |
|
160 | 160 | '#type' => 'checkbox', |
161 | 161 | '#title' => t('Show debug messages in system log'), |
162 | 162 | '#default_value' => $default['boinc_debug_mode'] |
163 | - ); |
|
164 | - $form['boinc_project_config_keywords'] = array( |
|
163 | + ); |
|
164 | + $form['boinc_project_config_keywords'] = array( |
|
165 | 165 | '#type' => 'textarea', |
166 | 166 | '#title' => t('Project/Job Keywords for get_project_config RPC'), |
167 | 167 | '#default_value' => $default['boinc_project_config_keywords'], |
168 | 168 | '#description' => t('XML from this text box will be appended to the XML output from the get_project_config RPC. There is no check for XML validity! See !link for more details. It is okay to leave this blank.', |
169 | 169 | array( |
170 | - '!link' => l('BOINC wiki page', 'https://boinc.berkeley.edu/trac/wiki/JobKeywords') |
|
170 | + '!link' => l('BOINC wiki page', 'https://boinc.berkeley.edu/trac/wiki/JobKeywords') |
|
171 | 171 | )), |
172 | - ); |
|
173 | - return system_settings_form($form); |
|
172 | + ); |
|
173 | + return system_settings_form($form); |
|
174 | 174 | } |
175 | 175 | |
176 | 176 | /** |
177 | - * Validate the BOINC environment form. |
|
178 | - */ |
|
177 | + * Validate the BOINC environment form. |
|
178 | + */ |
|
179 | 179 | function boincuser_admin_environment_validate($form, &$form_state) { |
180 | - $values = $form_state['values']; |
|
181 | - if (!$values['boinc_root_dir']) { |
|
180 | + $values = $form_state['values']; |
|
181 | + if (!$values['boinc_root_dir']) { |
|
182 | 182 | form_set_error('boinc_root_dir', t('BOINC project root directory must be |
183 | 183 | defined!')); |
184 | - } |
|
185 | - elseif (!is_dir($values['boinc_root_dir'])) { |
|
184 | + } |
|
185 | + elseif (!is_dir($values['boinc_root_dir'])) { |
|
186 | 186 | form_set_error('boinc_root_dir', t('BOINC project root not found at %directory', |
187 | - array('%directory' => $values['boinc_root_dir']) |
|
187 | + array('%directory' => $values['boinc_root_dir']) |
|
188 | 188 | )); |
189 | - } |
|
190 | - else { |
|
189 | + } |
|
190 | + else { |
|
191 | 191 | // By default, try to automatically set specific directories from the root |
192 | 192 | if (!$values['boinc_config_xml_dir']) { |
193 | - $values['boinc_config_xml_dir'] = $values['boinc_root_dir']; |
|
194 | - form_set_value($form['overrides']['boinc_config_xml_dir'], $values['boinc_config_xml_dir'], $form_state); |
|
193 | + $values['boinc_config_xml_dir'] = $values['boinc_root_dir']; |
|
194 | + form_set_value($form['overrides']['boinc_config_xml_dir'], $values['boinc_config_xml_dir'], $form_state); |
|
195 | 195 | } |
196 | 196 | if (!$values['boinc_html_inc_dir']) { |
197 | - $values['boinc_html_inc_dir'] = "{$values['boinc_root_dir']}/html/inc"; |
|
198 | - form_set_value($form['overrides']['boinc_html_inc_dir'], $values['boinc_html_inc_dir'], $form_state); |
|
197 | + $values['boinc_html_inc_dir'] = "{$values['boinc_root_dir']}/html/inc"; |
|
198 | + form_set_value($form['overrides']['boinc_html_inc_dir'], $values['boinc_html_inc_dir'], $form_state); |
|
199 | 199 | } |
200 | 200 | if (!$values['boinc_project_config_dir']) { |
201 | - $values['boinc_project_config_dir'] = "{$values['boinc_root_dir']}/html/project"; |
|
202 | - form_set_value($form['overrides']['boinc_project_config_dir'], $values['boinc_project_config_dir'], $form_state); |
|
201 | + $values['boinc_project_config_dir'] = "{$values['boinc_root_dir']}/html/project"; |
|
202 | + form_set_value($form['overrides']['boinc_project_config_dir'], $values['boinc_project_config_dir'], $form_state); |
|
203 | 203 | } |
204 | 204 | if (!$values['boinc_user_image_dir']) { |
205 | - $values['boinc_user_image_dir'] = "{$values['boinc_root_dir']}/html/user_profile/images"; |
|
206 | - form_set_value($form['overrides']['boinc_user_image_dir'], $values['boinc_user_image_dir'], $form_state); |
|
205 | + $values['boinc_user_image_dir'] = "{$values['boinc_root_dir']}/html/user_profile/images"; |
|
206 | + form_set_value($form['overrides']['boinc_user_image_dir'], $values['boinc_user_image_dir'], $form_state); |
|
207 | 207 | } |
208 | 208 | // Validate that required BOINC content is found |
209 | 209 | if (!is_readable("{$values['boinc_config_xml_dir']}/config.xml")) { |
210 | - form_set_error('boinc_config_xml_dir', t('@file not found in %directory', |
|
210 | + form_set_error('boinc_config_xml_dir', t('@file not found in %directory', |
|
211 | 211 | array( |
212 | - '@file' => 'config.xml', |
|
213 | - '%directory' => "{$values['boinc_config_xml_dir']}/" |
|
212 | + '@file' => 'config.xml', |
|
213 | + '%directory' => "{$values['boinc_config_xml_dir']}/" |
|
214 | 214 | ) |
215 | - )); |
|
215 | + )); |
|
216 | 216 | } |
217 | 217 | if (!is_readable("{$values['boinc_html_inc_dir']}/util.inc")) { |
218 | - form_set_error('boinc_html_inc_dir', t('@file not found in %directory', |
|
218 | + form_set_error('boinc_html_inc_dir', t('@file not found in %directory', |
|
219 | 219 | array( |
220 | - '@file' => 'util.inc', |
|
221 | - '%directory' => "{$values['boinc_html_inc_dir']}/" |
|
220 | + '@file' => 'util.inc', |
|
221 | + '%directory' => "{$values['boinc_html_inc_dir']}/" |
|
222 | 222 | ) |
223 | - )); |
|
223 | + )); |
|
224 | 224 | } |
225 | 225 | if (!is_readable("{$values['boinc_project_config_dir']}/project.inc")) { |
226 | - form_set_error('boinc_project_config_dir', t('@file not found in %directory', |
|
226 | + form_set_error('boinc_project_config_dir', t('@file not found in %directory', |
|
227 | 227 | array( |
228 | - '@file' => 'project.inc', |
|
229 | - '%directory' => "{$values['boinc_project_config_dir']}/" |
|
228 | + '@file' => 'project.inc', |
|
229 | + '%directory' => "{$values['boinc_project_config_dir']}/" |
|
230 | 230 | ) |
231 | - )); |
|
231 | + )); |
|
232 | 232 | } |
233 | 233 | if (!is_dir($values['boinc_user_image_dir'])) { |
234 | - form_set_error('boinc_user_image_dir', t('Profile image directory not found |
|
234 | + form_set_error('boinc_user_image_dir', t('Profile image directory not found |
|
235 | 235 | at %directory', array('%directory' => $values['boinc_user_image_dir']) |
236 | - )); |
|
236 | + )); |
|
237 | 237 | } |
238 | 238 | if ($values['boinc_host_sched_logs_dir'] |
239 | 239 | AND !is_dir($values['boinc_host_sched_logs_dir']) |
240 | - ) { |
|
241 | - form_set_error('boinc_host_sched_logs_dir', t('Host scheduler log |
|
240 | + ) { |
|
241 | + form_set_error('boinc_host_sched_logs_dir', t('Host scheduler log |
|
242 | 242 | directory not found at %directory', |
243 | 243 | array('%directory' => $values['boinc_host_sched_logs_dir']) |
244 | - )); |
|
244 | + )); |
|
245 | + } |
|
245 | 246 | } |
246 | - } |
|
247 | 247 | } |
248 | 248 | |
249 | 249 | /** |
250 | - * Handle post-validation submission of BOINC environment form. |
|
251 | - */ |
|
250 | + * Handle post-validation submission of BOINC environment form. |
|
251 | + */ |
|
252 | 252 | function boincuser_admin_environment_submit($form, &$form_state) { |
253 | - unset($_SESSION['boinc_env']); |
|
254 | - drupal_set_message(t('BOINC environment settings have been updated.')); |
|
253 | + unset($_SESSION['boinc_env']); |
|
254 | + drupal_set_message(t('BOINC environment settings have been updated.')); |
|
255 | 255 | } |
256 | 256 | |
257 | 257 | /** |
258 | - * The BOINC scheduler form provides options for how scheduler tags are |
|
259 | - * inserted into the front page |
|
260 | - */ |
|
258 | + * The BOINC scheduler form provides options for how scheduler tags are |
|
259 | + * inserted into the front page |
|
260 | + */ |
|
261 | 261 | function boincuser_admin_scheduler(&$form_state) { |
262 | - $form = array(); |
|
263 | - $config_cgi_url = ''; |
|
264 | - if ($config_xml_dir = variable_get('boinc_config_xml_dir', '')) { |
|
262 | + $form = array(); |
|
263 | + $config_cgi_url = ''; |
|
264 | + if ($config_xml_dir = variable_get('boinc_config_xml_dir', '')) { |
|
265 | 265 | // Get the cgi_url option from the config file as the default scheduler URL |
266 | 266 | $xml = new DOMDocument(); |
267 | 267 | if ($xml->load("{$config_xml_dir}/config.xml")) { |
268 | - $config = xml_to_array($xml); |
|
269 | - if (isset($config['boinc']['config']['cgi_url']['@value'])) { |
|
268 | + $config = xml_to_array($xml); |
|
269 | + if (isset($config['boinc']['config']['cgi_url']['@value'])) { |
|
270 | 270 | $config_cgi_url = rtrim(trim($config['boinc']['config']['cgi_url']['@value']), '/'); |
271 | 271 | $config_cgi_url .= '/cgi'; |
272 | - } |
|
272 | + } |
|
273 | 273 | } |
274 | - } |
|
275 | - $default = array( |
|
274 | + } |
|
275 | + $default = array( |
|
276 | 276 | 'boinc_scheduler_urls' => variable_get('boinc_scheduler_urls', $config_cgi_url), |
277 | 277 | 'boinc_scheduler_tag_format_old' => variable_get('boinc_scheduler_tag_format_old', 1), |
278 | 278 | 'boinc_scheduler_tag_format_new' => variable_get('boinc_scheduler_tag_format_new', 1) |
279 | - ); |
|
279 | + ); |
|
280 | 280 | |
281 | - // Define the form |
|
282 | - $form['boinc_scheduler_urls'] = array( |
|
281 | + // Define the form |
|
282 | + $form['boinc_scheduler_urls'] = array( |
|
283 | 283 | '#type' => 'textarea', |
284 | 284 | '#title' => t('Scheduling server URLs'), |
285 | 285 | '#default_value' => $default['boinc_scheduler_urls'], |
286 | 286 | '#cols' => 60, |
287 | 287 | '#rows' => 5, |
288 | 288 | '#description' => t('If there are multiple URLs, please enter one per line.'), |
289 | - ); |
|
290 | - $form['boinc_scheduler_tag_format_old'] = array( |
|
289 | + ); |
|
290 | + $form['boinc_scheduler_tag_format_old'] = array( |
|
291 | 291 | '#type' => 'checkbox', |
292 | 292 | '#title' => t('Old format (@scheduler tag)', array('@scheduler' => '<scheduler>')), |
293 | 293 | '#default_value' => $default['boinc_scheduler_tag_format_old'] |
294 | - ); |
|
295 | - $form['boinc_scheduler_tag_format_new'] = array( |
|
294 | + ); |
|
295 | + $form['boinc_scheduler_tag_format_new'] = array( |
|
296 | 296 | '#type' => 'checkbox', |
297 | 297 | '#title' => t('New format (@link tag)', array('@link' => '<link>')), |
298 | 298 | '#default_value' => $default['boinc_scheduler_tag_format_new'] |
299 | - ); |
|
299 | + ); |
|
300 | 300 | |
301 | - return system_settings_form($form); |
|
301 | + return system_settings_form($form); |
|
302 | 302 | } |
303 | 303 | |
304 | 304 | /** |
305 | - * Validate the BOINC scheduler form. |
|
306 | - */ |
|
305 | + * Validate the BOINC scheduler form. |
|
306 | + */ |
|
307 | 307 | function boincuser_admin_scheduler_validate($form, &$form_state) { |
308 | - $values = $form_state['values']; |
|
309 | - if (!$values['boinc_scheduler_urls']) { |
|
308 | + $values = $form_state['values']; |
|
309 | + if (!$values['boinc_scheduler_urls']) { |
|
310 | 310 | form_set_error('boinc_scheduler_urls', t('At least one scheduling server |
311 | 311 | URL must be specified.')); |
312 | - } |
|
313 | - else { |
|
312 | + } |
|
313 | + else { |
|
314 | 314 | $urls = explode("\r\n", $values['boinc_scheduler_urls']); |
315 | 315 | foreach ($urls as $key => $url) { |
316 | - if (!$url) { |
|
316 | + if (!$url) { |
|
317 | 317 | unset($urls[$key]); |
318 | 318 | continue; |
319 | - } |
|
320 | - if (!filter_var($url, FILTER_VALIDATE_URL)) { |
|
319 | + } |
|
320 | + if (!filter_var($url, FILTER_VALIDATE_URL)) { |
|
321 | 321 | form_set_error('boinc_scheduler_urls', t('@url is not a valid URL |
322 | 322 | format.', array('@url' => $url))); |
323 | 323 | break; |
324 | - } |
|
324 | + } |
|
325 | 325 | } |
326 | 326 | $form_state['values']['boinc_scheduler_urls'] = implode("\r\n", $urls); |
327 | - } |
|
327 | + } |
|
328 | 328 | } |
329 | 329 | |
330 | 330 | /** |
331 | - * Handle post-validation submission of BOINC scheduler form. |
|
332 | - */ |
|
331 | + * Handle post-validation submission of BOINC scheduler form. |
|
332 | + */ |
|
333 | 333 | function boincuser_admin_scheduler_submit($form, &$form_state) { |
334 | - drupal_set_message(t('BOINC scheduling server settings have been updated.')); |
|
334 | + drupal_set_message(t('BOINC scheduling server settings have been updated.')); |
|
335 | 335 | } |
336 | 336 | |
337 | 337 | |
338 | 338 | /** |
339 | - * Drupal-BOINC Web site related options. |
|
340 | - */ |
|
339 | + * Drupal-BOINC Web site related options. |
|
340 | + */ |
|
341 | 341 | function boincuser_admin_weboptions(&$form_state) { |
342 | - global $base_url; |
|
343 | - $form = array(); |
|
342 | + global $base_url; |
|
343 | + $form = array(); |
|
344 | 344 | |
345 | - //form defaults |
|
346 | - $default = array( |
|
345 | + //form defaults |
|
346 | + $default = array( |
|
347 | 347 | 'boinc_weboptions_enableaccountcreateRPC' => variable_get('boinc_weboptions_enableaccountcreateRPC', TRUE), |
348 | 348 | 'boinc_weboptions_registrationtitle' => variable_get('boinc_weboptions_registrationtitle', 'Please read and acknowledge our terms of use'), |
349 | 349 | 'boinc_weboptions_termsofuse' => variable_get('boinc_weboptions_termsofuse', ''), |
@@ -357,65 +357,65 @@ discard block |
||
357 | 357 | 'boinc_weboptions_rulespolicies' => variable_get('boinc_weboptions_rulespolicies', ''), |
358 | 358 | 'boinc_other_frontpage' => variable_get('boinc_other_frontpage', ''), |
359 | 359 | 'boinc_weboptions_blacklisted_usernames' => variable_get('boinc_weboptions_blacklisted_usernames', "admin\nadministrator\nmoderator"), |
360 | - ); |
|
360 | + ); |
|
361 | 361 | |
362 | - // Define the form |
|
363 | - $form['registrationtitle'] = array( |
|
362 | + // Define the form |
|
363 | + $form['registrationtitle'] = array( |
|
364 | 364 | '#value' => '<h3>BOINC Registration</h3>', |
365 | - ); |
|
365 | + ); |
|
366 | 366 | |
367 | - $form['boinc_weboptions_enableaccountcreateRPC'] = array( |
|
367 | + $form['boinc_weboptions_enableaccountcreateRPC'] = array( |
|
368 | 368 | '#type' => 'checkbox', |
369 | 369 | '#title' => t('Enable create_account.php RPC'), |
370 | 370 | '#default_value' => $default['boinc_weboptions_enableaccountcreateRPC'], |
371 | 371 | '#description' => t('If checked, users will be able to create an account remotely using the create_account.php RPC. This option is independent of the user regsitration option found in ') . l(t('User management -> User settings'), '/admin/user/settings') . '. If enabled, user <b>may not be able to see and agree to the terms-of-use</b> to your site\'s privacy and data retention policies!', |
372 | - ); |
|
372 | + ); |
|
373 | 373 | |
374 | - $form['boinc_weboptions_registrationtitle'] = array( |
|
374 | + $form['boinc_weboptions_registrationtitle'] = array( |
|
375 | 375 | '#type' => 'textfield', |
376 | 376 | '#title' => t('Title of regsistration page'), |
377 | 377 | '#description' => t('Title text presented above the terms of use text.'), |
378 | 378 | '#default_value' => $default['boinc_weboptions_registrationtitle'], |
379 | - ); |
|
379 | + ); |
|
380 | 380 | |
381 | - $form['boinc_weboptions_termsofuse'] = array( |
|
381 | + $form['boinc_weboptions_termsofuse'] = array( |
|
382 | 382 | '#type' => 'textarea', |
383 | 383 | '#title' => t('Terms of Use Message for User Registration Page'), |
384 | 384 | '#default_value' => $default['boinc_weboptions_termsofuse'], |
385 | 385 | '#cols' => 60, |
386 | 386 | '#rows' => 8, |
387 | 387 | '#description' => t('Text to be displayed on site\'s user registration page. Privacy policy and other data retention information goes here. If empty, there will be no terms of use message, and the title above and checkbox below will not be shown.'), |
388 | - ); |
|
388 | + ); |
|
389 | 389 | |
390 | - $form['boinc_weboptions_overrideboinctou'] = array( |
|
390 | + $form['boinc_weboptions_overrideboinctou'] = array( |
|
391 | 391 | '#type' => 'checkbox', |
392 | 392 | '#title' => t('Override BOINC terms of use.'), |
393 | 393 | '#default_value' => $default['boinc_weboptions_overrideboinctou'], |
394 | 394 | '#description' => t('Override the BOINC terms_of_use.txt file for get_profject_config.php RPC. If TRUE, the get_project_config.php RPC will use the above terms of use text entered above. Otherwise, the original terms_of_use.txt text file in the project directory is used. And you will need to be responsible for keeping both the text file and the above terms of use text up-to-date and in sync with each other.'), |
395 | - ); |
|
395 | + ); |
|
396 | 396 | |
397 | - $form['boinc_weboptions_agreequestion'] = array( |
|
397 | + $form['boinc_weboptions_agreequestion'] = array( |
|
398 | 398 | '#type' => 'textfield', |
399 | 399 | '#title' => t('Terms of use agreement question'), |
400 | 400 | '#description' => t('This text is presented to the user as the question next to the \'I agree\' checkbox.'), |
401 | 401 | '#default_value' => $default['boinc_weboptions_agreequestion'], |
402 | - ); |
|
402 | + ); |
|
403 | 403 | |
404 | - $form['boinc_weboptions_registrationtitle2'] = array( |
|
404 | + $form['boinc_weboptions_registrationtitle2'] = array( |
|
405 | 405 | '#type' => 'textfield', |
406 | 406 | '#title' => t('Instructions for username/email/password questions'), |
407 | 407 | '#description' => t('Title text presented below terms of use and above username/email/password textfields.'), |
408 | 408 | '#default_value' => $default['boinc_weboptions_registrationtitle2'], |
409 | - ); |
|
409 | + ); |
|
410 | 410 | |
411 | - $form['boinc_weboptions_existinguser_tou'] = array( |
|
411 | + $form['boinc_weboptions_existinguser_tou'] = array( |
|
412 | 412 | '#type' => 'checkbox', |
413 | 413 | '#title' => t('Are existing users forced to agree to the Terms of Use?'), |
414 | 414 | '#default_value' => $default['boinc_weboptions_existinguser_tou'], |
415 | 415 | '#description' => t('If TRUE, existing users are forced to agree to a terms of use (if present) when the login and the system has detected they have not agreed. Otherwise they may login as normal. This option has no affect on whether or not new users must agree to the terms of use.'), |
416 | - ); |
|
416 | + ); |
|
417 | 417 | |
418 | - $form['boinc_weboptions_pathstoignore'] = array( |
|
418 | + $form['boinc_weboptions_pathstoignore'] = array( |
|
419 | 419 | '#type' => 'textarea', |
420 | 420 | '#title' => t('Paths to ignore the Terms of Use page'), |
421 | 421 | '#default_value' => $default['boinc_weboptions_pathstoignore'], |
@@ -424,80 +424,80 @@ discard block |
||
424 | 424 | '#description' => t('A list of Drupal URLs/paths to ignore for Terms of Use (ToU). If the option above \'Are existing users forced to agree to the Terms of Use?\' is activated, then some paths need to be ignored when checking if a user has agreed to the ToU. A good example is the logout path, "logout", or else users will not be able to logout! |
425 | 425 | <p>There is a default list of paths that must be ignored or else the site will not function. They are not included in this box. Here you may provide additional paths to be ignored, for example the privacy policy page may be accessible so that users may read it before agreeing to the site\'s ToU. |
426 | 426 | <p>Paths should be entered one per line. All paths should be <em>lower-case</em> and should not include a leading \'/\'. Example: account/info/edit will allow the user to visit ' . $base_url . '/account/info/edit without first agreeing to the ToU. Regexp are allowed. Example: account/* will allow the user to visit any path starting with ' . $base_url . '/account/.'), |
427 | - ); |
|
427 | + ); |
|
428 | 428 | |
429 | - $form['pathtitle'] = array( |
|
429 | + $form['pathtitle'] = array( |
|
430 | 430 | '#value' => '<h3>Path Options</h3>', |
431 | - ); |
|
431 | + ); |
|
432 | 432 | |
433 | - $form['boinc_weboptions_accountfinish'] = array ( |
|
433 | + $form['boinc_weboptions_accountfinish'] = array ( |
|
434 | 434 | '#type' => 'textfield', |
435 | 435 | '#title' => t('Path to a custom account_finish.php page, should be a path to a node'), |
436 | 436 | '#description' => t('Provide a path to a node which will serve as your site\'s landing page for users create an account using the BOINC client manager. They will be directed to this page after the account is created. If blank, a default account_finish page will be used.<br>Examples: account_finish, content/welcome, node/123'), |
437 | 437 | '#default_value' => $default['boinc_weboptions_accountfinish'], |
438 | - ); |
|
439 | - $form['boinc_weboptions_moderationpage'] = array ( |
|
438 | + ); |
|
439 | + $form['boinc_weboptions_moderationpage'] = array ( |
|
440 | 440 | '#type' => 'textfield', |
441 | 441 | '#title' => t('Path to the site\'s content moderation info page, should be a path to a node'), |
442 | 442 | '#description' => t('Provide a path to a node which will serve as your site\'s page for account/content moderation information. This will be used on the default account_finish page. If blank, no link to a moderation page will be provided. If a path is provided to the custom account_finish.php page (above), this field will be ignored.<br>Examples: moderation, content/moderation, node/456'), |
443 | 443 | '#default_value' => $default['boinc_weboptions_moderationpage'], |
444 | - ); |
|
445 | - $form['boinc_weboptions_rulespolicies'] = array ( |
|
444 | + ); |
|
445 | + $form['boinc_weboptions_rulespolicies'] = array ( |
|
446 | 446 | '#type' => 'textfield', |
447 | 447 | '#title' => t('Path to the site\'s rule and policies page, should be a path to a node'), |
448 | 448 | '#description' => t('Provide a path to a node which will serve as your site\'s rules and policies page. This will be used on the Join page shown to new users. If blank, no link to a rules and policies page will be provided.<br>Examples: rules-and-policies, node/789'), |
449 | 449 | '#default_value' => $default['boinc_weboptions_rulespolicies'], |
450 | - ); |
|
451 | - $form['boinc_other_frontpage'] = array ( |
|
450 | + ); |
|
451 | + $form['boinc_other_frontpage'] = array ( |
|
452 | 452 | '#type' => 'textarea', |
453 | 453 | '#title' => bts('Message for site\'s Home Page', array(), NULL, 'boinc:admin-boinc-other-options'), |
454 | 454 | '#default_value' => $default['boinc_other_frontpage'], |
455 | 455 | '#cols' => 60, |
456 | 456 | '#rows' => 8, |
457 | 457 | '#description' => bts('Text to be displayed on the site\'s Home landing page.', array(), NULL, 'boinc:admin-boinc-other-options'), |
458 | - ); |
|
458 | + ); |
|
459 | 459 | |
460 | - $form['Othertitle'] = array( |
|
460 | + $form['Othertitle'] = array( |
|
461 | 461 | '#value' => '<h3>Other Options</h3>', |
462 | - ); |
|
462 | + ); |
|
463 | 463 | |
464 | - $form['boinc_weboptions_blacklisted_usernames'] = array ( |
|
464 | + $form['boinc_weboptions_blacklisted_usernames'] = array ( |
|
465 | 465 | '#type' => 'textarea', |
466 | 466 | '#title' => t('BOINC username blacklist'), |
467 | 467 | '#default_value' => $default['boinc_weboptions_blacklisted_usernames'], |
468 | 468 | '#cols' => 60, |
469 | 469 | '#rows' => 7, |
470 | 470 | '#description' => t('Username blacklist: List of names that users will not be able to choose as their BOINC username. This will only affect Web registration and when a user changes their name using the Web site. Names should be entered one per line.<p>All names should be <em>lower-case</em>. The comparison made is case-insensitive.<p>If you wish to <em>disable</em> this feature, remove all names from this textbox; the blacklist will be empty.'), |
471 | - ); |
|
471 | + ); |
|
472 | 472 | |
473 | - return system_settings_form($form); |
|
473 | + return system_settings_form($form); |
|
474 | 474 | } |
475 | 475 | |
476 | 476 | /** |
477 | - * Validate BOINC other form |
|
478 | - */ |
|
477 | + * Validate BOINC other form |
|
478 | + */ |
|
479 | 479 | function boincuser_admin_weboptions_validate($form, &$form_state) { |
480 | - $values = $form_state['values']; |
|
480 | + $values = $form_state['values']; |
|
481 | 481 | |
482 | - $accountfinish = $values['boinc_weboptions_accountfinish']; |
|
483 | - if ( ($accountfinish) AND (!drupal_lookup_path('source', $accountfinish)) ) { |
|
482 | + $accountfinish = $values['boinc_weboptions_accountfinish']; |
|
483 | + if ( ($accountfinish) AND (!drupal_lookup_path('source', $accountfinish)) ) { |
|
484 | 484 | form_set_error('boinc weboptions_accountfinish', t('Path to custom account finish page not found. Please provide a valid path, or leave blank to unset.')); |
485 | - } |
|
485 | + } |
|
486 | 486 | |
487 | - $moderationpage = $values['boinc_weboptions_moderationpage']; |
|
488 | - if ( ($moderationpage) AND (!drupal_lookup_path('source', $moderationpage)) ) { |
|
487 | + $moderationpage = $values['boinc_weboptions_moderationpage']; |
|
488 | + if ( ($moderationpage) AND (!drupal_lookup_path('source', $moderationpage)) ) { |
|
489 | 489 | form_set_error('boinc weboptions_moderationpage', t('Path to moderation page not found. Please provide a valid path, or leave blank to unset.')); |
490 | - } |
|
490 | + } |
|
491 | 491 | |
492 | - $rulespolicies = $values['boinc_weboptions_rulespolicies']; |
|
493 | - if ( ($rulespolicies) AND (!drupal_lookup_path('source', $rulespolicies)) ) { |
|
492 | + $rulespolicies = $values['boinc_weboptions_rulespolicies']; |
|
493 | + if ( ($rulespolicies) AND (!drupal_lookup_path('source', $rulespolicies)) ) { |
|
494 | 494 | form_set_error('boinc weboptions_rulespolicies', t('Path to rules and policies page not found. Please provide a valid path, or leave blank to unset.')); |
495 | - } |
|
495 | + } |
|
496 | 496 | } |
497 | 497 | |
498 | 498 | /** |
499 | - * Submit BOINC other form |
|
500 | - */ |
|
499 | + * Submit BOINC other form |
|
500 | + */ |
|
501 | 501 | function boincuser_admin_weboptions_submit($form, &$form_state) { |
502 | - drupal_set_message( bts("Status: Drupa-BOINC Web site options have been updated", array(), NULL, 'boinc:admin-boinc-website-options') ); |
|
502 | + drupal_set_message( bts("Status: Drupa-BOINC Web site options have been updated", array(), NULL, 'boinc:admin-boinc-website-options') ); |
|
503 | 503 | } |
@@ -15,59 +15,59 @@ discard block |
||
15 | 15 | * Form validation handler for login |
16 | 16 | */ |
17 | 17 | function boincuser_login_validate($form, &$form_state) { |
18 | - /* // SAMPLE: To try validation with Drupal first... |
|
18 | + /* // SAMPLE: To try validation with Drupal first... |
|
19 | 19 | global $user; |
20 | 20 | if (!empty($user->uid)) { |
21 | 21 | // Authentication with Drupal was successful |
22 | 22 | return; |
23 | 23 | }*/ |
24 | 24 | |
25 | - // Set name for logging purposes |
|
26 | - $form_state['values']['name'] = $form_state['values']['email']; |
|
25 | + // Set name for logging purposes |
|
26 | + $form_state['values']['name'] = $form_state['values']['email']; |
|
27 | 27 | |
28 | - // Bypass BOINC validation if passed the name of user 1 |
|
29 | - $user_1 = user_load(1); |
|
30 | - if ($form_state['values']['email'] == $user_1->name) { |
|
28 | + // Bypass BOINC validation if passed the name of user 1 |
|
29 | + $user_1 = user_load(1); |
|
30 | + if ($form_state['values']['email'] == $user_1->name) { |
|
31 | 31 | user_authenticate($form_state['values']); |
32 | 32 | return; |
33 | - } |
|
33 | + } |
|
34 | 34 | |
35 | - // Call our custom authentication function to check for an existing BOINC user |
|
36 | - if (!boincuser_login_authenticate($form_state['values'])) { |
|
35 | + // Call our custom authentication function to check for an existing BOINC user |
|
36 | + if (!boincuser_login_authenticate($form_state['values'])) { |
|
37 | 37 | // Authentication failed; set an error accordingly |
38 | 38 | form_set_error('name', bts('Sorry, unrecognized email address or password.', array(), NULL, 'boinc:forgot-password') . ' ' . l(bts('Have you forgotten your password?', array(), NULL, 'boinc:forgot-password'), 'user/password')); |
39 | - } |
|
39 | + } |
|
40 | 40 | } |
41 | 41 | |
42 | 42 | /** |
43 | 43 | * Custom authentication function to check BOINC account information |
44 | 44 | */ |
45 | 45 | function boincuser_login_authenticate($form_values) { |
46 | - global $boincuser_authenticated; |
|
47 | - $lower_email_addr = strtolower($form_values['email']); |
|
48 | - $passwd = $form_values['pass']; |
|
49 | - $passwd_hash = md5($passwd.$lower_email_addr); |
|
46 | + global $boincuser_authenticated; |
|
47 | + $lower_email_addr = strtolower($form_values['email']); |
|
48 | + $passwd = $form_values['pass']; |
|
49 | + $passwd_hash = md5($passwd.$lower_email_addr); |
|
50 | 50 | |
51 | - // Include BOINC user library |
|
52 | - require_boinc('boinc_db'); |
|
53 | - require_boinc('user_util'); |
|
51 | + // Include BOINC user library |
|
52 | + require_boinc('boinc_db'); |
|
53 | + require_boinc('user_util'); |
|
54 | 54 | |
55 | - // Get the BOINC user and check credentials |
|
56 | - $boinc_user = BoincUser::lookup_email_addr($lower_email_addr); |
|
57 | - if (!$boinc_user) return false; |
|
55 | + // Get the BOINC user and check credentials |
|
56 | + $boinc_user = BoincUser::lookup_email_addr($lower_email_addr); |
|
57 | + if (!$boinc_user) return false; |
|
58 | 58 | |
59 | - if (!check_passwd_hash($boinc_user, $passwd_hash)) { |
|
59 | + if (!check_passwd_hash($boinc_user, $passwd_hash)) { |
|
60 | 60 | return false; |
61 | - } |
|
61 | + } |
|
62 | 62 | |
63 | - // BOINC authentication successful; log in and synchronize accounts |
|
64 | - boincuser_login_register($boinc_user); |
|
65 | - // Write session, update timestamp, run user 'login' hook. |
|
66 | - user_authenticate_finalize($form_values); |
|
67 | - // Use a global variable to save the fact that we did authentication. |
|
68 | - $boincuser_authenticated = true; |
|
63 | + // BOINC authentication successful; log in and synchronize accounts |
|
64 | + boincuser_login_register($boinc_user); |
|
65 | + // Write session, update timestamp, run user 'login' hook. |
|
66 | + user_authenticate_finalize($form_values); |
|
67 | + // Use a global variable to save the fact that we did authentication. |
|
68 | + $boincuser_authenticated = true; |
|
69 | 69 | |
70 | - return true; |
|
70 | + return true; |
|
71 | 71 | } |
72 | 72 | |
73 | 73 | /** |
@@ -75,18 +75,18 @@ discard block |
||
75 | 75 | * Drupal accounts |
76 | 76 | */ |
77 | 77 | function boincuser_login_register($boinc_user) { |
78 | - global $user; |
|
79 | - require_boinc('boinc_db'); |
|
80 | - // If a Drupal account already exists, log in |
|
81 | - $existing_user = user_load(array('mail' => $boinc_user->email_addr)); |
|
82 | - if (!empty($existing_user->uid)) { |
|
78 | + global $user; |
|
79 | + require_boinc('boinc_db'); |
|
80 | + // If a Drupal account already exists, log in |
|
81 | + $existing_user = user_load(array('mail' => $boinc_user->email_addr)); |
|
82 | + if (!empty($existing_user->uid)) { |
|
83 | 83 | $user = $existing_user; |
84 | - } else { |
|
84 | + } else { |
|
85 | 85 | // Create a Drupal user from the BOINC user |
86 | 86 | if ($user = boincuser_register_make_drupal_user($boinc_user)) { |
87 | - watchdog('user', 'New external user: %email using module %module.', array('%email' => $email_addr, '%module' => $module), WATCHDOG_NOTICE, l(t('edit'), 'user/'. $user->uid .'/edit')); |
|
87 | + watchdog('user', 'New external user: %email using module %module.', array('%email' => $email_addr, '%module' => $module), WATCHDOG_NOTICE, l(t('edit'), 'user/'. $user->uid .'/edit')); |
|
88 | + } |
|
88 | 89 | } |
89 | - } |
|
90 | 90 | } |
91 | 91 | |
92 | 92 | |
@@ -98,113 +98,113 @@ discard block |
||
98 | 98 | * New user registration validation handler. |
99 | 99 | */ |
100 | 100 | function boincuser_register_validate($form, &$form_state) { |
101 | - // Include BOINC database objects library |
|
102 | - require_boinc('boinc_db'); |
|
101 | + // Include BOINC database objects library |
|
102 | + require_boinc('boinc_db'); |
|
103 | 103 | |
104 | - // Check terms of use agreement |
|
105 | - $termsofuse = variable_get('boinc_weboptions_termsofuse', ''); |
|
106 | - if (!empty($termsofuse)) { |
|
104 | + // Check terms of use agreement |
|
105 | + $termsofuse = variable_get('boinc_weboptions_termsofuse', ''); |
|
106 | + if (!empty($termsofuse)) { |
|
107 | 107 | if (!$form_state['values']['termsofuse']['agreeTOU']) { |
108 | - form_set_error('termsofuse', bts('ERROR: You must acknowledge our terms of use by clicking the checkbox before registering for an account.', NULL, 'boinc:register-new-user')); |
|
109 | - return false; |
|
108 | + form_set_error('termsofuse', bts('ERROR: You must acknowledge our terms of use by clicking the checkbox before registering for an account.', NULL, 'boinc:register-new-user')); |
|
109 | + return false; |
|
110 | + } |
|
110 | 111 | } |
111 | - } |
|
112 | 112 | |
113 | - // Lower-case the email address |
|
114 | - $lower_email_addr = strtolower($form_state['values']['mail']); |
|
115 | - $tmp_user = BoincUser::lookup_prev_email_addr($lower_email_addr); |
|
116 | - if ($tmp_user) { |
|
113 | + // Lower-case the email address |
|
114 | + $lower_email_addr = strtolower($form_state['values']['mail']); |
|
115 | + $tmp_user = BoincUser::lookup_prev_email_addr($lower_email_addr); |
|
116 | + if ($tmp_user) { |
|
117 | 117 | // User already exists |
118 | 118 | rules_invoke_event('boincuser_change_email_error', $lower_email_addr, variable_get('boinc_admin_mailing_list_subject_tag', '')); |
119 | 119 | form_set_error('mail', |
120 | - bts('An account already exists for @email. The @project administrators have been notified.', |
|
120 | + bts('An account already exists for @email. The @project administrators have been notified.', |
|
121 | 121 | array( |
122 | - '@email' => $lower_email_addr, |
|
123 | - '@project' => variable_get('site_name', 'Drupal-BOINC') |
|
122 | + '@email' => $lower_email_addr, |
|
123 | + '@project' => variable_get('site_name', 'Drupal-BOINC') |
|
124 | 124 | ), NULL, 'boinc:register-new-user') |
125 | 125 | ); |
126 | - } |
|
126 | + } |
|
127 | 127 | |
128 | - // Check for an existing BOINC user |
|
129 | - // This is somewhat redundent as Drupal will also check if the email |
|
130 | - // is a duplicate. However, in the case where there is no Drupal |
|
131 | - // account, but a BOINC account exists with this email, the check |
|
132 | - // will fail. |
|
133 | - $boinc_user = BoincUser::lookup_email_addr($lower_email_addr); |
|
134 | - if ($boinc_user) { |
|
128 | + // Check for an existing BOINC user |
|
129 | + // This is somewhat redundent as Drupal will also check if the email |
|
130 | + // is a duplicate. However, in the case where there is no Drupal |
|
131 | + // account, but a BOINC account exists with this email, the check |
|
132 | + // will fail. |
|
133 | + $boinc_user = BoincUser::lookup_email_addr($lower_email_addr); |
|
134 | + if ($boinc_user) { |
|
135 | 135 | // User already exists |
136 | 136 | form_set_error('mail', bts('An account already exists for @email. Log in or request password assistance to access your @project account.', array('@email' => $lower_email_addr, '@project' => PROJECT), NULL, 'boinc:add-new-user')); |
137 | 137 | return false; |
138 | - } |
|
138 | + } |
|
139 | 139 | |
140 | - // Check Drupal name is not a duplicate, and create a proper drupal |
|
141 | - // name from the boinc username. |
|
142 | - $form_state['values']['name'] = create_proper_drupalname($form_state['values']['boincuser_name']); |
|
140 | + // Check Drupal name is not a duplicate, and create a proper drupal |
|
141 | + // name from the boinc username. |
|
142 | + $form_state['values']['name'] = create_proper_drupalname($form_state['values']['boincuser_name']); |
|
143 | 143 | |
144 | - return true; |
|
144 | + return true; |
|
145 | 145 | } |
146 | 146 | |
147 | 147 | /** |
148 | 148 | * Create BOINC account |
149 | 149 | */ |
150 | 150 | function boincuser_register_make_user($params) { |
151 | - // Include BOINC user library |
|
152 | - require_boinc('user_util'); |
|
153 | - // Create the BOINC user |
|
154 | - $boinc_user = make_user($params['email_addr'], $params['name'], $params['passwd_hash'], $params['country'], $params['postal_code']); |
|
155 | - return $boinc_user; |
|
151 | + // Include BOINC user library |
|
152 | + require_boinc('user_util'); |
|
153 | + // Create the BOINC user |
|
154 | + $boinc_user = make_user($params['email_addr'], $params['name'], $params['passwd_hash'], $params['country'], $params['postal_code']); |
|
155 | + return $boinc_user; |
|
156 | 156 | } |
157 | 157 | |
158 | 158 | /** |
159 | 159 | * Create Drupal account from existing BOINC account |
160 | 160 | */ |
161 | 161 | function boincuser_register_make_drupal_user($boinc_user) { |
162 | - $account = null; |
|
163 | - if (is_numeric($boinc_user)) { |
|
162 | + $account = null; |
|
163 | + if (is_numeric($boinc_user)) { |
|
164 | 164 | $boinc_user = boincuser_load($boinc_user); |
165 | - } |
|
166 | - if ($boinc_user) { |
|
165 | + } |
|
166 | + if ($boinc_user) { |
|
167 | 167 | $account = boincuser_create_drupal_user($boinc_user); |
168 | 168 | if ($account) { |
169 | - boincuser_create_drupal_profile($account, $boinc_user); |
|
169 | + boincuser_create_drupal_profile($account, $boinc_user); |
|
170 | + } |
|
170 | 171 | } |
171 | - } |
|
172 | - return $account; |
|
172 | + return $account; |
|
173 | 173 | } |
174 | 174 | |
175 | 175 | function boincuser_create_drupal_user($boinc_user) { |
176 | - require_boinc('forum_db'); |
|
177 | - BoincForumPrefs::lookup($boinc_user); |
|
178 | - $account = NULL; |
|
179 | - $module = 'boincuser'; |
|
176 | + require_boinc('forum_db'); |
|
177 | + BoincForumPrefs::lookup($boinc_user); |
|
178 | + $account = NULL; |
|
179 | + $module = 'boincuser'; |
|
180 | 180 | |
181 | - // Verify that this account has not already been imported |
|
182 | - $already_imported = db_result(db_query(' |
|
181 | + // Verify that this account has not already been imported |
|
182 | + $already_imported = db_result(db_query(' |
|
183 | 183 | SELECT COUNT(*) FROM {boincuser} WHERE boinc_id = %d', |
184 | 184 | $boinc_user->id) |
185 | - ); |
|
186 | - if ($already_imported) { |
|
185 | + ); |
|
186 | + if ($already_imported) { |
|
187 | 187 | return NULL; |
188 | - } |
|
188 | + } |
|
189 | 189 | |
190 | - // Email is limited to 64 characters... |
|
191 | - $boinc_email = substr($boinc_user->email_addr, 0, 64); |
|
190 | + // Email is limited to 64 characters... |
|
191 | + $boinc_email = substr($boinc_user->email_addr, 0, 64); |
|
192 | 192 | |
193 | - // Email should be unique |
|
194 | - $already_imported = db_result(db_query(" |
|
193 | + // Email should be unique |
|
194 | + $already_imported = db_result(db_query(" |
|
195 | 195 | SELECT COUNT(*) FROM {users} WHERE mail = '%s'", |
196 | 196 | $boinc_email) |
197 | - ); |
|
198 | - if ($already_imported) { |
|
197 | + ); |
|
198 | + if ($already_imported) { |
|
199 | 199 | drupal_set_message(t('An account for @email already exists', array('@email' => $boinc_email)), 'warning'); |
200 | 200 | watchdog('boincimport', 'An account for @email already exists', array('@email' => $boinc_email), WATCHDOG_WARNING); |
201 | 201 | return NULL; |
202 | - } |
|
202 | + } |
|
203 | 203 | |
204 | - // Make sure name is unique |
|
205 | - $unique_name = create_proper_drupalname($boinc_user->name); |
|
204 | + // Make sure name is unique |
|
205 | + $unique_name = create_proper_drupalname($boinc_user->name); |
|
206 | 206 | |
207 | - $userinfo = array( |
|
207 | + $userinfo = array( |
|
208 | 208 | 'name' => $unique_name, |
209 | 209 | 'pass' => $boinc_user->passwd_hash, |
210 | 210 | 'mail' => $boinc_email, |
@@ -214,126 +214,126 @@ discard block |
||
214 | 214 | 'status' => 1, |
215 | 215 | "authname_{$module}" => $boinc_email, |
216 | 216 | 'access' => time() |
217 | - ); |
|
217 | + ); |
|
218 | 218 | |
219 | - $in_penalty = ($boinc_user->prefs->banished_until > time()); |
|
219 | + $in_penalty = ($boinc_user->prefs->banished_until > time()); |
|
220 | 220 | |
221 | - // Add user to community member role (if no current penalty) |
|
222 | - if (!$in_penalty) { |
|
221 | + // Add user to community member role (if no current penalty) |
|
222 | + if (!$in_penalty) { |
|
223 | 223 | $community_role = array_search('community member', user_roles(true)); |
224 | 224 | $userinfo['roles'] = array( |
225 | - $community_role => '' |
|
225 | + $community_role => '' |
|
226 | 226 | ); |
227 | - } |
|
227 | + } |
|
228 | 228 | |
229 | - // Mark account as imported so a BOINC account is not created on Insert (i.e. user_save) |
|
230 | - $_SESSION['importedUser'] = true; |
|
231 | - $account = user_save('', $userinfo); |
|
229 | + // Mark account as imported so a BOINC account is not created on Insert (i.e. user_save) |
|
230 | + $_SESSION['importedUser'] = true; |
|
231 | + $account = user_save('', $userinfo); |
|
232 | 232 | |
233 | - // Drupal overrides the original registration date, so update to the correct date |
|
234 | - $account = user_save($account, array('created' => $userinfo['created'])); |
|
233 | + // Drupal overrides the original registration date, so update to the correct date |
|
234 | + $account = user_save($account, array('created' => $userinfo['created'])); |
|
235 | 235 | |
236 | - // Terminate if an error occured during user_save(). |
|
237 | - if (!$account) { |
|
236 | + // Terminate if an error occured during user_save(). |
|
237 | + if (!$account) { |
|
238 | 238 | drupal_set_message(t("Error saving user account."), 'error'); |
239 | 239 | return NULL; |
240 | - } |
|
240 | + } |
|
241 | 241 | |
242 | - // Cross reference the Drupal and BOINC accounts |
|
243 | - boincuser_account_cross_reference($account->uid, $boinc_user->id); |
|
242 | + // Cross reference the Drupal and BOINC accounts |
|
243 | + boincuser_account_cross_reference($account->uid, $boinc_user->id); |
|
244 | 244 | |
245 | - if ($in_penalty) { |
|
245 | + if ($in_penalty) { |
|
246 | 246 | // Import the timestamp of when the penalty period will be over |
247 | 247 | $boincuser_record = array( |
248 | - 'uid' => $account->uid, |
|
249 | - 'penalty_expiration' => $boinc_user->prefs->banished_until, |
|
248 | + 'uid' => $account->uid, |
|
249 | + 'penalty_expiration' => $boinc_user->prefs->banished_until, |
|
250 | 250 | ); |
251 | 251 | drupal_write_record('boincuser', $boincuser_record, 'uid'); |
252 | - } |
|
252 | + } |
|
253 | 253 | |
254 | - return $account; |
|
254 | + return $account; |
|
255 | 255 | } |
256 | 256 | |
257 | 257 | function boincuser_create_drupal_profile($account, $boinc_user) { |
258 | 258 | |
259 | - require_boinc('forum_db'); |
|
260 | - BoincForumPrefs::lookup($boinc_user); |
|
259 | + require_boinc('forum_db'); |
|
260 | + BoincForumPrefs::lookup($boinc_user); |
|
261 | 261 | |
262 | - $image_dir = boinc_get_path('user_image'); |
|
262 | + $image_dir = boinc_get_path('user_image'); |
|
263 | 263 | |
264 | - // Automatically create a content profile |
|
265 | - $now = time(); |
|
266 | - $profile_background = null; |
|
267 | - $profile_opinions = null; |
|
268 | - $profile_image = null; |
|
269 | - $avatar_image = null; |
|
270 | - $profile_approved = NULL; |
|
264 | + // Automatically create a content profile |
|
265 | + $now = time(); |
|
266 | + $profile_background = null; |
|
267 | + $profile_opinions = null; |
|
268 | + $profile_image = null; |
|
269 | + $avatar_image = null; |
|
270 | + $profile_approved = NULL; |
|
271 | 271 | |
272 | - // Load the BOINC profile, if available |
|
273 | - if ($boinc_user->has_profile) { |
|
272 | + // Load the BOINC profile, if available |
|
273 | + if ($boinc_user->has_profile) { |
|
274 | 274 | $boinc_profile = BoincProfile::lookup("userid={$boinc_user->id}"); |
275 | 275 | $profile_background = $boinc_profile->response1; |
276 | 276 | $profile_opinions = $boinc_profile->response2; |
277 | 277 | if ($boinc_profile->has_picture) { |
278 | - // Load picture; load validators; determine where to store it in Drupal |
|
279 | - $image_path = "{$image_dir}/{$boinc_user->id}.jpg"; |
|
280 | - $profile_image = get_cck_image_object($image_path, 'field_profile_image', 'profile', TRUE); |
|
281 | - // If the user does not have a different image as an avatar, use this one |
|
282 | - if (!$boinc_user->prefs->avatar) { |
|
278 | + // Load picture; load validators; determine where to store it in Drupal |
|
279 | + $image_path = "{$image_dir}/{$boinc_user->id}.jpg"; |
|
280 | + $profile_image = get_cck_image_object($image_path, 'field_profile_image', 'profile', TRUE); |
|
281 | + // If the user does not have a different image as an avatar, use this one |
|
282 | + if (!$boinc_user->prefs->avatar) { |
|
283 | 283 | $avatar_image = get_cck_image_object($image_path, 'field_image', 'profile', TRUE); |
284 | - } |
|
284 | + } |
|
285 | 285 | } |
286 | 286 | if ($boinc_user->prefs->avatar) { |
287 | - $image_path = "{$image_dir}/{$boinc_user->id}_avatar.jpg"; |
|
288 | - $avatar_image = get_cck_image_object($image_path, 'field_image', 'profile', TRUE); |
|
287 | + $image_path = "{$image_dir}/{$boinc_user->id}_avatar.jpg"; |
|
288 | + $avatar_image = get_cck_image_object($image_path, 'field_image', 'profile', TRUE); |
|
289 | 289 | } |
290 | 290 | $profile_approved = $boinc_profile->verification ? TRUE : FALSE; |
291 | - } |
|
292 | - $default_input_format = db_result(db_query(" |
|
291 | + } |
|
292 | + $default_input_format = db_result(db_query(" |
|
293 | 293 | SELECT format FROM {filter_formats} WHERE name = '%s'", 'Rich text')); |
294 | - if (!$default_input_format) $default_input_format = 1; |
|
295 | - |
|
296 | - // Populate the profile object |
|
297 | - $profile_node = new stdClass(); |
|
298 | - $profile_node->title = $boinc_user->name; |
|
299 | - $profile_node->uid = $account->uid; |
|
300 | - $profile_node->body = ''; |
|
301 | - $profile_node->type = 'profile'; |
|
302 | - $profile_node->created = $now; |
|
303 | - $profile_node->changed = $now; |
|
304 | - $profile_node->status = 1; |
|
305 | - $profile_node->promote = 0; |
|
306 | - $profile_node->sticky = 0; |
|
307 | - $profile_node->format = $default_input_format; |
|
308 | - $profile_node->name = $account->name; // Set to link profile to account uid! |
|
309 | - $profile_node->field_country[]['value'] = $boinc_user->country; |
|
310 | - $profile_node->field_zip[]['value'] = $boinc_user->postal_code; |
|
311 | - $profile_node->field_url[]['value'] = $boinc_user->url; |
|
312 | - $profile_node->field_background[]['value'] = $profile_background; |
|
313 | - $profile_node->field_opinions[]['value'] = $profile_opinions; |
|
314 | - $profile_node->field_image[] = $avatar_image; |
|
315 | - $profile_node->field_profile_image[] = $profile_image; |
|
316 | - |
|
317 | - // Save the profile object to the database |
|
318 | - // This will automatically set the author uid if node->name has been set |
|
319 | - $profile_node = node_submit($profile_node); |
|
320 | - node_save($profile_node); |
|
321 | - |
|
322 | - // Mark profile as approved if it has already been vetted somehow |
|
323 | - if ($profile_approved OR !$boinc_user->has_profile) { |
|
294 | + if (!$default_input_format) $default_input_format = 1; |
|
295 | + |
|
296 | + // Populate the profile object |
|
297 | + $profile_node = new stdClass(); |
|
298 | + $profile_node->title = $boinc_user->name; |
|
299 | + $profile_node->uid = $account->uid; |
|
300 | + $profile_node->body = ''; |
|
301 | + $profile_node->type = 'profile'; |
|
302 | + $profile_node->created = $now; |
|
303 | + $profile_node->changed = $now; |
|
304 | + $profile_node->status = 1; |
|
305 | + $profile_node->promote = 0; |
|
306 | + $profile_node->sticky = 0; |
|
307 | + $profile_node->format = $default_input_format; |
|
308 | + $profile_node->name = $account->name; // Set to link profile to account uid! |
|
309 | + $profile_node->field_country[]['value'] = $boinc_user->country; |
|
310 | + $profile_node->field_zip[]['value'] = $boinc_user->postal_code; |
|
311 | + $profile_node->field_url[]['value'] = $boinc_user->url; |
|
312 | + $profile_node->field_background[]['value'] = $profile_background; |
|
313 | + $profile_node->field_opinions[]['value'] = $profile_opinions; |
|
314 | + $profile_node->field_image[] = $avatar_image; |
|
315 | + $profile_node->field_profile_image[] = $profile_image; |
|
316 | + |
|
317 | + // Save the profile object to the database |
|
318 | + // This will automatically set the author uid if node->name has been set |
|
319 | + $profile_node = node_submit($profile_node); |
|
320 | + node_save($profile_node); |
|
321 | + |
|
322 | + // Mark profile as approved if it has already been vetted somehow |
|
323 | + if ($profile_approved OR !$boinc_user->has_profile) { |
|
324 | 324 | $profile_node->moderate = 0; |
325 | 325 | node_save($profile_node); |
326 | - } |
|
326 | + } |
|
327 | 327 | |
328 | - return; |
|
328 | + return; |
|
329 | 329 | } |
330 | 330 | |
331 | 331 | function boincuser_account_cross_reference($uid, $boinc_id) { |
332 | 332 | // Cross reference Drupal account with BOINC |
333 | 333 | $reference = db_query("INSERT INTO {boincuser} SET uid=%d, boinc_id=%d", $uid, $boinc_id); |
334 | 334 | if (!$reference) { |
335 | - drupal_set_message(t("Error connecting BOINC account."), 'error'); |
|
336 | - return false; |
|
335 | + drupal_set_message(t("Error connecting BOINC account."), 'error'); |
|
336 | + return false; |
|
337 | 337 | } |
338 | 338 | return true; |
339 | 339 | } |
@@ -342,35 +342,35 @@ discard block |
||
342 | 342 | * Convert any BOINC forum thread subscriptions to Drupal flag subscriptions |
343 | 343 | */ |
344 | 344 | function boincuser_pull_subscriptions($account = NULL) { |
345 | - if (!$account) { |
|
345 | + if (!$account) { |
|
346 | 346 | global $user; |
347 | 347 | $account = user_load($user->id); |
348 | - } |
|
349 | - elseif (is_numeric($account)) { |
|
348 | + } |
|
349 | + elseif (is_numeric($account)) { |
|
350 | 350 | $account = user_load($account); |
351 | - } |
|
351 | + } |
|
352 | 352 | |
353 | - // Get any subscriptions for this user |
|
354 | - db_set_active('boinc_rw'); |
|
355 | - $subscriptions = db_query(' |
|
353 | + // Get any subscriptions for this user |
|
354 | + db_set_active('boinc_rw'); |
|
355 | + $subscriptions = db_query(' |
|
356 | 356 | SELECT threadid FROM {subscriptions} |
357 | 357 | WHERE userid = %d', $account->boincuser_id); |
358 | - db_set_active('default'); |
|
358 | + db_set_active('default'); |
|
359 | 359 | |
360 | - $flag = flag_get_flag('subscriptions') or die('no "subscriptions" flag defined'); |
|
361 | - $count = 0; |
|
362 | - while ($thread_id = db_result($subscriptions)) { |
|
360 | + $flag = flag_get_flag('subscriptions') or die('no "subscriptions" flag defined'); |
|
361 | + $count = 0; |
|
362 | + while ($thread_id = db_result($subscriptions)) { |
|
363 | 363 | // For each BOINC thread ID subscribed, look up the corresponding node ID |
364 | 364 | $nid = db_result(db_query(' |
365 | 365 | SELECT nid FROM {boincimport_temp_topic} |
366 | 366 | WHERE topic_id = %d', $thread_id)); |
367 | 367 | // Flag this node for the user |
368 | 368 | if ($nid > 0) { |
369 | - $flag->flag('flag', $nid, $account); |
|
370 | - $count++; |
|
369 | + $flag->flag('flag', $nid, $account); |
|
370 | + $count++; |
|
371 | + } |
|
371 | 372 | } |
372 | - } |
|
373 | - return $count; |
|
373 | + return $count; |
|
374 | 374 | } |
375 | 375 | |
376 | 376 | |
@@ -382,12 +382,12 @@ discard block |
||
382 | 382 | * User account update validation handler. |
383 | 383 | */ |
384 | 384 | function boincuser_account_validate($edit, $account) { |
385 | - // Include BOINC database objects library, load BOINC account data |
|
386 | - require_boinc('boinc_db'); |
|
387 | - $boinc_user = BoincUser::lookup_email_addr($account->mail); |
|
388 | - $changing_email = ($edit['mail'] AND $edit['mail'] != $account->mail) ? true : false; |
|
389 | - $changing_pass = ($edit['pass']) ? true : false; |
|
390 | - if ($changing_email) { |
|
385 | + // Include BOINC database objects library, load BOINC account data |
|
386 | + require_boinc('boinc_db'); |
|
387 | + $boinc_user = BoincUser::lookup_email_addr($account->mail); |
|
388 | + $changing_email = ($edit['mail'] AND $edit['mail'] != $account->mail) ? true : false; |
|
389 | + $changing_pass = ($edit['pass']) ? true : false; |
|
390 | + if ($changing_email) { |
|
391 | 391 | // E-mail address is set to change; check for an existing BOINC user |
392 | 392 | // Check previous email addresses as well, this user's current |
393 | 393 | // email cannot be the same as another user's previous email |
@@ -398,50 +398,50 @@ discard block |
||
398 | 398 | |
399 | 399 | $boinc_user_already_exists = ( BoincUser::lookup_email_addr($edit['mail']) || BoincUser::lookup_prev_email_addr($edit['mail']) ); |
400 | 400 | if ($boinc_user_already_exists) { |
401 | - form_set_error('mail', bts('A BOINC account already exists for @email.', array('@email' => $edit['mail']), NULL, 'boinc:add-new-user')); |
|
401 | + form_set_error('mail', bts('A BOINC account already exists for @email.', array('@email' => $edit['mail']), NULL, 'boinc:add-new-user')); |
|
402 | 402 | } |
403 | 403 | |
404 | 404 | // Check email has not been changed in last X days (default X=7). |
405 | 405 | $duration = 86400 * 7; |
406 | 406 | if ( (($boinc_user->email_addr_change_time + $duration) > time()) and (!(user_access('administer users'))) ) { |
407 | - form_set_error('email_addr_change_time', |
|
407 | + form_set_error('email_addr_change_time', |
|
408 | 408 | bts('Your email address was changed within the past seven (7) days. You must wait until !futuredate to change your email again. If you need to reverse this change, please look for an email sent to !prev_email_addr.', |
409 | 409 | array( |
410 | - '!futuredate' => date('F j, Y \a\t H:i T', $boinc_user->email_addr_change_time + $duration), |
|
411 | - '!prev_email_addr' => $boinc_user->previous_email_addr, |
|
410 | + '!futuredate' => date('F j, Y \a\t H:i T', $boinc_user->email_addr_change_time + $duration), |
|
411 | + '!prev_email_addr' => $boinc_user->previous_email_addr, |
|
412 | 412 | ), |
413 | 413 | NULL, 'boinc:account-credentials-change') |
414 | - ); |
|
414 | + ); |
|
415 | + } |
|
415 | 416 | } |
416 | - } |
|
417 | 417 | |
418 | - // If user is changing email or password, require that the current |
|
419 | - // password has been given as well. |
|
420 | - if (($changing_email OR $changing_pass) AND !user_access('administer users')) { |
|
418 | + // If user is changing email or password, require that the current |
|
419 | + // password has been given as well. |
|
420 | + if (($changing_email OR $changing_pass) AND !user_access('administer users')) { |
|
421 | 421 | // If changing email or password, require current password |
422 | 422 | // (except in cases where password is being reset) |
423 | 423 | if (isset($_SESSION['reset_pass'])) { |
424 | - unset($_SESSION['reset_pass']); |
|
424 | + unset($_SESSION['reset_pass']); |
|
425 | 425 | } |
426 | 426 | else { |
427 | - $given_hash = md5($edit['current_pass'] . strtolower($account->mail)); |
|
428 | - if (!$edit['current_pass']) { |
|
427 | + $given_hash = md5($edit['current_pass'] . strtolower($account->mail)); |
|
428 | + if (!$edit['current_pass']) { |
|
429 | 429 | form_set_error('current_pass', bts('Authentication is required when changing E-mail address or setting new password.', array(), NULL, 'boinc:account-credentials-change')); |
430 | - } |
|
431 | - elseif ( (!password_verify($given_hash, $boinc_user->passwd_hash)) and ($given_hash != $boinc_user->passwd_hash) ) { |
|
430 | + } |
|
431 | + elseif ( (!password_verify($given_hash, $boinc_user->passwd_hash)) and ($given_hash != $boinc_user->passwd_hash) ) { |
|
432 | 432 | form_set_error('current_pass', bts('Password entered is not valid. Please verify that it is correct.', array(), NULL, 'boinc:account-credentials-change')); |
433 | - } |
|
433 | + } |
|
434 | 434 | |
435 | 435 | } |
436 | - } |
|
436 | + } |
|
437 | 437 | |
438 | - // If an admin tries to change the email and NOT the password, show |
|
439 | - // error message. BOINC requires both to be changed together. |
|
440 | - if ($changing_email AND !$changing_pass AND user_access('administer users')) { |
|
438 | + // If an admin tries to change the email and NOT the password, show |
|
439 | + // error message. BOINC requires both to be changed together. |
|
440 | + if ($changing_email AND !$changing_pass AND user_access('administer users')) { |
|
441 | 441 | form_set_error('pass', bts('If changing a user\'s email, you must also change the password simultaneously.', array(), NULL, 'boinc:account-credentials-change')); |
442 | - } |
|
442 | + } |
|
443 | 443 | |
444 | - // Expansion required to allow account key in place of passwd...? |
|
444 | + // Expansion required to allow account key in place of passwd...? |
|
445 | 445 | |
446 | 446 | } |
447 | 447 | |
@@ -454,12 +454,12 @@ discard block |
||
454 | 454 | * Password request validation handler. |
455 | 455 | */ |
456 | 456 | function boincuser_request_pass_validate($form, &$form_state) { |
457 | - $edit = $form_state['values']; |
|
458 | - // The Drupal submit function expects a "name" field, even though |
|
459 | - // it contains an email address and we will not allow a user name |
|
460 | - if (!$edit['name']) form_set_error('name', bts('Please enter your email address', array(), NULL, 'boinc:forgot-password')); |
|
461 | - elseif (!valid_email_address($edit['name'])) form_set_error('name', bts('@email is not a well formed email address, please verify', array('@email' => $edit['name']), NULL, 'boinc:forgot-password')); |
|
462 | - else { |
|
457 | + $edit = $form_state['values']; |
|
458 | + // The Drupal submit function expects a "name" field, even though |
|
459 | + // it contains an email address and we will not allow a user name |
|
460 | + if (!$edit['name']) form_set_error('name', bts('Please enter your email address', array(), NULL, 'boinc:forgot-password')); |
|
461 | + elseif (!valid_email_address($edit['name'])) form_set_error('name', bts('@email is not a well formed email address, please verify', array('@email' => $edit['name']), NULL, 'boinc:forgot-password')); |
|
462 | + else { |
|
463 | 463 | // set email addrress to lower case |
464 | 464 | $lower_email_addr = strtolower($edit['name']); |
465 | 465 | |
@@ -469,110 +469,110 @@ discard block |
||
469 | 469 | require_boinc('boinc_db'); |
470 | 470 | $boinc_user = BoincUser::lookup_email_addr($lower_email_addr); |
471 | 471 | if ($boinc_user) { |
472 | - // If the user is in BOINC but not Drupal, bring them over... |
|
473 | - boincuser_register_make_drupal_user($boinc_user); |
|
472 | + // If the user is in BOINC but not Drupal, bring them over... |
|
473 | + boincuser_register_make_drupal_user($boinc_user); |
|
474 | 474 | } else { |
475 | - // If there is no existing BOINC user either, show an error |
|
476 | - form_set_error('name', bts('No account exists for @email -- please create an account using a BOINC client -- !instructions', |
|
477 | - array( |
|
478 | - '@email' => $edit['name'], |
|
479 | - '!instructions' => l(bts('Instructions', array(), NULL, 'boinc:forgot-password'), 'join') |
|
480 | - ), NULL, 'boinc:forgot-password')); |
|
481 | - } |
|
482 | - } |
|
475 | + // If there is no existing BOINC user either, show an error |
|
476 | + form_set_error('name', bts('No account exists for @email -- please create an account using a BOINC client -- !instructions', |
|
477 | + array( |
|
478 | + '@email' => $edit['name'], |
|
479 | + '!instructions' => l(bts('Instructions', array(), NULL, 'boinc:forgot-password'), 'join') |
|
480 | + ), NULL, 'boinc:forgot-password')); |
|
481 | + } |
|
482 | + } |
|
483 | 483 | } |
484 | 484 | |
485 | 485 | /** |
486 | 486 | * The definition of the authenticator login form. |
487 | 487 | */ |
488 | 488 | function boincuser_authloginform() { |
489 | - $headers = apache_request_headers(); |
|
490 | - $project_name = variable_get('site_name', 'Drupal-BOINC'); |
|
491 | - $project_domain = $headers['Host']; |
|
492 | - $form['heading'] = array( |
|
489 | + $headers = apache_request_headers(); |
|
490 | + $project_name = variable_get('site_name', 'Drupal-BOINC'); |
|
491 | + $project_domain = $headers['Host']; |
|
492 | + $form['heading'] = array( |
|
493 | 493 | '#type' => 'markup', |
494 | 494 | '#value' => '<h3>' . bts("If you forgot your account's email address, or you can't receive email there:", array(), NULL, 'boinc:authenticator-login-page') . '</h3>' |
495 | - ); |
|
496 | - $form['instructions'] = array( |
|
495 | + ); |
|
496 | + $form['instructions'] = array( |
|
497 | 497 | '#type' => 'markup', |
498 | 498 | '#value' => '' . |
499 | - '<p>' . bts("If you have run BOINC under the account, you can still access it. Here's how:", array(), NULL, 'boinc:authenticator-login-page') . |
|
500 | - ' <ul>' . |
|
501 | - ' <li>' . bts('Go to the BOINC data directory on your computer (see !boinc_wiki for help finding this).', array('!boinc_wiki' => l(bts('BOINC documentation', array(), NULL, 'boinc:authenticator-login-page'), 'http://boinc.berkeley.edu/wiki/BOINC_Data_directory')), NULL, 'boinc:authenticator-login-page') . '</li>' . |
|
502 | - ' <li>' . bts('Find your account file for this project; it will have a name like %file (where the project URL is %url).', array('%file' => "account_{$project_domain}.xml", '%url' => "http://{$project_domain}"), NULL, 'boinc:authenticator-login-page') . '</li>' . |
|
503 | - ' <li>' . bts("Open the file in a text editor like Notepad. You'll see something like:", array(), NULL, 'boinc:authenticator-login-page') . |
|
504 | - ' <pre>' . |
|
505 | - '<account>' . "\n" . |
|
506 | - " <master_url>http://{$project_domain}/</master_url>" . "\n" . |
|
507 | - ' <authenticator>8b8496fdd26df7dc0423ecd43c09a56b</authenticator>' . "\n" . |
|
508 | - " <project_name>{$project_name}</project_name>" . "\n" . |
|
509 | - ' ...' . "\n" . |
|
510 | - '</account>' . |
|
511 | - ' </pre>' . |
|
512 | - ' </li>' . |
|
513 | - ' <li>' . bts('Select and Copy the string between <authenticator> and </authenticator> (%auth in the above example).', array('%auth' => '8b8496fdd26df7dc0423ecd43c09a56b'), NULL, 'boinc:authenticator-login-page') . '</li>' . |
|
514 | - ' <li>' . bts('Paste the string into the field below, and click OK.', array(), NULL, 'boinc:authenticator-login-page') . '</li>' . |
|
515 | - ' <li>' . bts('You will now be logged in to your account; update the email and password of your account.', array(), NULL, 'boinc:authenticator-login-page') . '</li>' . |
|
516 | - ' </ul>' . |
|
517 | - '</p>' |
|
518 | - ); |
|
519 | - $form['authenticator'] = array( |
|
499 | + '<p>' . bts("If you have run BOINC under the account, you can still access it. Here's how:", array(), NULL, 'boinc:authenticator-login-page') . |
|
500 | + ' <ul>' . |
|
501 | + ' <li>' . bts('Go to the BOINC data directory on your computer (see !boinc_wiki for help finding this).', array('!boinc_wiki' => l(bts('BOINC documentation', array(), NULL, 'boinc:authenticator-login-page'), 'http://boinc.berkeley.edu/wiki/BOINC_Data_directory')), NULL, 'boinc:authenticator-login-page') . '</li>' . |
|
502 | + ' <li>' . bts('Find your account file for this project; it will have a name like %file (where the project URL is %url).', array('%file' => "account_{$project_domain}.xml", '%url' => "http://{$project_domain}"), NULL, 'boinc:authenticator-login-page') . '</li>' . |
|
503 | + ' <li>' . bts("Open the file in a text editor like Notepad. You'll see something like:", array(), NULL, 'boinc:authenticator-login-page') . |
|
504 | + ' <pre>' . |
|
505 | + '<account>' . "\n" . |
|
506 | + " <master_url>http://{$project_domain}/</master_url>" . "\n" . |
|
507 | + ' <authenticator>8b8496fdd26df7dc0423ecd43c09a56b</authenticator>' . "\n" . |
|
508 | + " <project_name>{$project_name}</project_name>" . "\n" . |
|
509 | + ' ...' . "\n" . |
|
510 | + '</account>' . |
|
511 | + ' </pre>' . |
|
512 | + ' </li>' . |
|
513 | + ' <li>' . bts('Select and Copy the string between <authenticator> and </authenticator> (%auth in the above example).', array('%auth' => '8b8496fdd26df7dc0423ecd43c09a56b'), NULL, 'boinc:authenticator-login-page') . '</li>' . |
|
514 | + ' <li>' . bts('Paste the string into the field below, and click OK.', array(), NULL, 'boinc:authenticator-login-page') . '</li>' . |
|
515 | + ' <li>' . bts('You will now be logged in to your account; update the email and password of your account.', array(), NULL, 'boinc:authenticator-login-page') . '</li>' . |
|
516 | + ' </ul>' . |
|
517 | + '</p>' |
|
518 | + ); |
|
519 | + $form['authenticator'] = array( |
|
520 | 520 | '#title' => bts('Log in with authenticator', array(), NULL, 'boinc:authenticator-login-page'), |
521 | 521 | '#type' => 'textfield', |
522 | 522 | '#size' => 60, |
523 | 523 | '#maxlength' => 32, |
524 | 524 | '#required' => TRUE, |
525 | 525 | '#description' => null |
526 | - ); |
|
526 | + ); |
|
527 | 527 | |
528 | - // Form control |
|
529 | - $form['form control tabs prefix'] = array( |
|
528 | + // Form control |
|
529 | + $form['form control tabs prefix'] = array( |
|
530 | 530 | '#value' => '<ul class="form-control tab-list">', |
531 | 531 | '#weight' => 1001, |
532 | - ); |
|
533 | - $form['submit'] = array( |
|
532 | + ); |
|
533 | + $form['submit'] = array( |
|
534 | 534 | '#prefix' => '<li class="first tab">', |
535 | 535 | '#type' => 'submit', |
536 | 536 | '#value' => bts('OK', array(), NULL, 'boinc:form-ok'), |
537 | 537 | '#suffix' => '</li>', |
538 | 538 | '#weight' => 1002, |
539 | - ); |
|
540 | - $form['form control tabs'] = array( |
|
539 | + ); |
|
540 | + $form['form control tabs'] = array( |
|
541 | 541 | '#value' => '<li class="tab">' . l(bts('Cancel', array(), NULL, 'boinc:form-cancel'), 'user/password') . '</li>', |
542 | 542 | '#weight' => 1003, |
543 | - ); |
|
544 | - $form['form control tabs suffix'] = array( |
|
543 | + ); |
|
544 | + $form['form control tabs suffix'] = array( |
|
545 | 545 | '#value' => '</ul>', |
546 | 546 | '#weight' => 1004, |
547 | - ); |
|
548 | - return $form; |
|
547 | + ); |
|
548 | + return $form; |
|
549 | 549 | } |
550 | 550 | |
551 | 551 | /** |
552 | 552 | * The authenticator login validation handler |
553 | 553 | */ |
554 | 554 | function boincuser_authloginform_validate($form, &$form_state) { |
555 | - $authenticator = $form_state['values']['authenticator']; |
|
556 | - if (strlen($authenticator) != 32) { |
|
555 | + $authenticator = $form_state['values']['authenticator']; |
|
556 | + if (strlen($authenticator) != 32) { |
|
557 | 557 | // We notify the form API that this field has failed validation. |
558 | 558 | form_set_error('authenticator', bts('That authenticator is not valid.', array(), NULL, 'boinc:authenticator-login-page')); |
559 | - } else { |
|
559 | + } else { |
|
560 | 560 | require_boinc('boinc_db'); |
561 | 561 | $boinc_user = BoincUser::lookup("authenticator='".addslashes($authenticator)."'"); |
562 | 562 | if (!$boinc_user) form_set_error('authenticator', bts('There is no account with that authenticator.', array(), NULL, 'boinc:authenticator-login-page')); |
563 | - } |
|
563 | + } |
|
564 | 564 | } |
565 | 565 | |
566 | 566 | /** |
567 | 567 | * The authenticator login submit handler |
568 | 568 | */ |
569 | 569 | function boincuser_authloginform_submit($form, &$form_state) { |
570 | - global $user; |
|
571 | - $authenticator = $form_state['values']['authenticator']; |
|
572 | - require_boinc('boinc_db'); |
|
573 | - $boinc_user = BoincUser::lookup("authenticator='".addslashes($authenticator)."'"); |
|
574 | - if (!$user = user_load(get_drupal_id($boinc_user->id))) drupal_set_message(t('An unresolved error occurred while logging into this account.')); |
|
575 | - else $form_state['redirect'] = 'account/info/edit'; |
|
570 | + global $user; |
|
571 | + $authenticator = $form_state['values']['authenticator']; |
|
572 | + require_boinc('boinc_db'); |
|
573 | + $boinc_user = BoincUser::lookup("authenticator='".addslashes($authenticator)."'"); |
|
574 | + if (!$user = user_load(get_drupal_id($boinc_user->id))) drupal_set_message(t('An unresolved error occurred while logging into this account.')); |
|
575 | + else $form_state['redirect'] = 'account/info/edit'; |
|
576 | 576 | } |
577 | 577 | |
578 | 578 | |
@@ -580,44 +580,44 @@ discard block |
||
580 | 580 | * The definition of the moderator reject user profile form. |
581 | 581 | */ |
582 | 582 | function boincuser_moderate_profile_reject_form(&$form_state, $uid) { |
583 | - $form_state['storage']['reject_profile_uid'] = $uid; |
|
584 | - $form['reason'] = array( |
|
583 | + $form_state['storage']['reject_profile_uid'] = $uid; |
|
584 | + $form['reason'] = array( |
|
585 | 585 | '#title' => bts('Reason for rejecting this profile', array(), NULL, 'boinc:moderate-user'), |
586 | 586 | '#type' => 'textarea', |
587 | 587 | '#description' => bts('This reason will be included in an email to the user. Please write a brief explanation of the problem and how to fix it.', array(), NULL, 'boinc:moderate-user'), |
588 | 588 | '#default_value' => '', |
589 | - ); |
|
589 | + ); |
|
590 | 590 | |
591 | - // Form control |
|
592 | - $form['form control tabs prefix'] = array( |
|
591 | + // Form control |
|
592 | + $form['form control tabs prefix'] = array( |
|
593 | 593 | '#value' => '<ul class="form-control tab-list">', |
594 | 594 | '#weight' => 1001, |
595 | - ); |
|
596 | - $form['submit'] = array( |
|
595 | + ); |
|
596 | + $form['submit'] = array( |
|
597 | 597 | '#prefix' => '<li class="first tab">', |
598 | 598 | '#type' => 'submit', |
599 | 599 | '#value' => bts('Submit', array(), NULL, 'boinc:form-submit'), |
600 | 600 | '#suffix' => '</li>', |
601 | 601 | '#weight' => 1002, |
602 | - ); |
|
603 | - $form['form control tabs'] = array( |
|
602 | + ); |
|
603 | + $form['form control tabs'] = array( |
|
604 | 604 | '#value' => '<li class="tab">' . l(bts('Cancel', array(), NULL, 'boinc:form-cancel'), "account/{$uid}") . '</li>', |
605 | 605 | '#weight' => 1003, |
606 | - ); |
|
607 | - $form['form control tabs suffix'] = array( |
|
606 | + ); |
|
607 | + $form['form control tabs suffix'] = array( |
|
608 | 608 | '#value' => '</ul>', |
609 | 609 | '#weight' => 1004, |
610 | - ); |
|
611 | - return $form; |
|
610 | + ); |
|
611 | + return $form; |
|
612 | 612 | } |
613 | 613 | |
614 | 614 | /** |
615 | 615 | * The moderator reject user profile submit handler |
616 | 616 | */ |
617 | 617 | function boincuser_moderate_profile_reject_form_submit($form, &$form_state) { |
618 | - $uid = $form_state['storage']['reject_profile_uid']; |
|
619 | - $reason = $form_state['values']['reason']; |
|
620 | - boincuser_moderate_profile_reject($uid, $reason); |
|
618 | + $uid = $form_state['storage']['reject_profile_uid']; |
|
619 | + $reason = $form_state['values']['reason']; |
|
620 | + boincuser_moderate_profile_reject($uid, $reason); |
|
621 | 621 | } |
622 | 622 | |
623 | 623 | |
@@ -625,52 +625,52 @@ discard block |
||
625 | 625 | * The definition of the ban user form. |
626 | 626 | */ |
627 | 627 | function boincuser_moderate_user_ban_form(&$form_state, $uid) { |
628 | - $form_state['storage']['ban_user_uid'] = $uid; |
|
629 | - $form['reason'] = array( |
|
628 | + $form_state['storage']['ban_user_uid'] = $uid; |
|
629 | + $form['reason'] = array( |
|
630 | 630 | '#title' => bts('Reason for banning this user', array(), NULL, 'boinc:moderate-user'), |
631 | 631 | '#type' => 'textarea', |
632 | 632 | '#description' => bts('This reason will be included in an email to the user. Please write a brief explanation of why the user is being banned.', array(), NULL, 'boinc:moderate-user'), |
633 | 633 | '#default_value' => '', |
634 | - ); |
|
635 | - $form['duration'] = array( |
|
634 | + ); |
|
635 | + $form['duration'] = array( |
|
636 | 636 | '#title' => bts('Duration of the ban', array(), NULL, 'boinc:moderate-user'), |
637 | 637 | '#type' => 'textfield', |
638 | 638 | '#description' => bts('The number of days until the ban expires. Set to 0 to ban permanently.', array(), NULL, 'boinc:moderate-user'), |
639 | 639 | '#default_value' => '', |
640 | - ); |
|
640 | + ); |
|
641 | 641 | |
642 | - // Form control |
|
643 | - $form['form control tabs prefix'] = array( |
|
642 | + // Form control |
|
643 | + $form['form control tabs prefix'] = array( |
|
644 | 644 | '#value' => '<ul class="form-control tab-list">', |
645 | 645 | '#weight' => 1001, |
646 | - ); |
|
647 | - $form['submit'] = array( |
|
646 | + ); |
|
647 | + $form['submit'] = array( |
|
648 | 648 | '#prefix' => '<li class="first tab">', |
649 | 649 | '#type' => 'submit', |
650 | 650 | '#value' => bts('Submit', array(), NULL, 'boinc:form-submit'), |
651 | 651 | '#suffix' => '</li>', |
652 | 652 | '#weight' => 1002, |
653 | - ); |
|
654 | - $form['form control tabs'] = array( |
|
653 | + ); |
|
654 | + $form['form control tabs'] = array( |
|
655 | 655 | '#value' => '<li class="tab">' . l(bts('Cancel', array(), NULL, 'boinc:form-cancel'), "account/{$uid}") . '</li>', |
656 | 656 | '#weight' => 1003, |
657 | - ); |
|
658 | - $form['form control tabs suffix'] = array( |
|
657 | + ); |
|
658 | + $form['form control tabs suffix'] = array( |
|
659 | 659 | '#value' => '</ul>', |
660 | 660 | '#weight' => 1004, |
661 | - ); |
|
662 | - return $form; |
|
661 | + ); |
|
662 | + return $form; |
|
663 | 663 | } |
664 | 664 | |
665 | 665 | /** |
666 | 666 | * The ban user submit handler |
667 | 667 | */ |
668 | 668 | function boincuser_moderate_user_ban_form_submit($form, &$form_state) { |
669 | - $uid = $form_state['storage']['ban_user_uid']; |
|
670 | - $reason = $form_state['values']['reason']; |
|
671 | - $duration = $form_state['values']['duration']; |
|
672 | - if ($duration) $duration = $duration * 24*60*60; |
|
673 | - boincuser_moderate_user_ban($uid, $reason, $duration); |
|
669 | + $uid = $form_state['storage']['ban_user_uid']; |
|
670 | + $reason = $form_state['values']['reason']; |
|
671 | + $duration = $form_state['values']['duration']; |
|
672 | + if ($duration) $duration = $duration * 24*60*60; |
|
673 | + boincuser_moderate_user_ban($uid, $reason, $duration); |
|
674 | 674 | } |
675 | 675 | |
676 | 676 | |
@@ -678,10 +678,10 @@ discard block |
||
678 | 678 | * Hack to fix submission of the flag friend unfriend form |
679 | 679 | */ |
680 | 680 | function boincuser_fix_unfriend_form_submit($form, &$form_state) { |
681 | - // Leaving action as "unfriend" causes problems |
|
682 | - if ($form_state['values']['action'] == 'unfriend') { |
|
681 | + // Leaving action as "unfriend" causes problems |
|
682 | + if ($form_state['values']['action'] == 'unfriend') { |
|
683 | 683 | $form_state['values']['action'] = 'unflag'; |
684 | - } |
|
684 | + } |
|
685 | 685 | } |
686 | 686 | |
687 | 687 | /* * * * * * * * * * * * * * * * * * * * * * * * * * * * |
@@ -689,102 +689,102 @@ discard block |
||
689 | 689 | * * * * * * * * * * * * * * * * * * * * * * * * * * * */ |
690 | 690 | |
691 | 691 | function boincuser_termsofuse_form() { |
692 | - global $user; |
|
692 | + global $user; |
|
693 | 693 | |
694 | - // If user has already signed terms of use, and got to this form in error, send them to site home. |
|
695 | - if (boincuser_check_termsofuse($user)) { |
|
694 | + // If user has already signed terms of use, and got to this form in error, send them to site home. |
|
695 | + if (boincuser_check_termsofuse($user)) { |
|
696 | 696 | drupal_goto(); |
697 | - } |
|
697 | + } |
|
698 | 698 | |
699 | - drupal_set_message( bts('WARNING: You have not agreed to our terms of use. Please agree to the terms of use before continuing.', array(), NULL, 'boinc:termsofuse-form'), 'warning' ); |
|
699 | + drupal_set_message( bts('WARNING: You have not agreed to our terms of use. Please agree to the terms of use before continuing.', array(), NULL, 'boinc:termsofuse-form'), 'warning' ); |
|
700 | 700 | |
701 | - $form = array(); |
|
702 | - drupal_add_js(drupal_get_path('module', 'boincuser') . '/boincuser.js'); |
|
703 | - $termsofuse = variable_get('boinc_weboptions_termsofuse', ''); |
|
701 | + $form = array(); |
|
702 | + drupal_add_js(drupal_get_path('module', 'boincuser') . '/boincuser.js'); |
|
703 | + $termsofuse = variable_get('boinc_weboptions_termsofuse', ''); |
|
704 | 704 | |
705 | - // Fieldset to hold all of the form as a container |
|
706 | - $form['termsofuse'] = array( |
|
705 | + // Fieldset to hold all of the form as a container |
|
706 | + $form['termsofuse'] = array( |
|
707 | 707 | '#type' => 'fieldset', |
708 | 708 | '#prefix' => '<div id="termsofuse-wrapper">', // This is our wrapper div. |
709 | 709 | '#suffix' => '</div>', |
710 | 710 | '#tree' => TRUE, |
711 | - ); |
|
711 | + ); |
|
712 | 712 | |
713 | - $form['termsofuse']['title1'] = array( |
|
713 | + $form['termsofuse']['title1'] = array( |
|
714 | 714 | '#weight' => -12, |
715 | 715 | '#value' => '<h2>' . bts( variable_get('boinc_weboptions_registrationtitle', 'Please read and acknowledge our terms of use'), array(), NULL, 'project:termsofuse-form' ) . '</h2>', |
716 | 716 | '#prefix' => '<div id="register-title1">', |
717 | 717 | '#suffix' => '</div>', |
718 | - ); |
|
718 | + ); |
|
719 | 719 | |
720 | - // Terms of use section |
|
721 | - $form['termsofuse']['body'] = array( |
|
720 | + // Terms of use section |
|
721 | + $form['termsofuse']['body'] = array( |
|
722 | 722 | '#weight' => -10, |
723 | 723 | '#value' => bts($termsofuse, array(), NULL, 'project:termsofuse-form'), |
724 | 724 | '#prefix' => '<div id="register-termsofuse">', |
725 | 725 | '#suffix' => '</div>', |
726 | - ); |
|
726 | + ); |
|
727 | 727 | |
728 | - $form['termsofuse']['agreeTOU'] = array( |
|
728 | + $form['termsofuse']['agreeTOU'] = array( |
|
729 | 729 | '#type' => 'checkbox', |
730 | 730 | '#title' => bts(variable_get('boinc_weboptions_agreequestion', 'Do you agree with the above terms of use?'), array(), NULL, 'project:termsofuse-form'), |
731 | 731 | '#weight' => -8, |
732 | 732 | '#prefix' => '<div id="register-checkbox">', |
733 | 733 | '#suffix' => '</div>', |
734 | - ); |
|
734 | + ); |
|
735 | 735 | |
736 | - $form['termsofuse']['spacer'] = array( |
|
736 | + $form['termsofuse']['spacer'] = array( |
|
737 | 737 | '#prefix' => '<div class="clearfix" id="register-title2">', |
738 | 738 | '#value' => ' ', |
739 | 739 | '#suffix' => '</div>', |
740 | - ); |
|
740 | + ); |
|
741 | 741 | |
742 | - // Form Control |
|
743 | - $form['submit'] = array( |
|
742 | + // Form Control |
|
743 | + $form['submit'] = array( |
|
744 | 744 | '#prefix' => '<p><p><p><li class="first tab" id="register-submit">', |
745 | 745 | '#type' => 'submit', |
746 | 746 | '#value' => bts('Yes', array(), NULL, 'boinc:form-submit'), |
747 | 747 | '#suffix' => '</li>', |
748 | - ); |
|
749 | - $form['form control tabs'] = array( |
|
748 | + ); |
|
749 | + $form['form control tabs'] = array( |
|
750 | 750 | '#value' => '<li class="tab">' . l(bts('NO - LOGOUT', array(), NULL, 'boinc:form-cancel'), '/logout') . '</li>', |
751 | - ); |
|
752 | - if (module_exists('boincuser_delete')) { |
|
751 | + ); |
|
752 | + if (module_exists('boincuser_delete')) { |
|
753 | 753 | $deletelink = '/user/' . $user->uid . '/delete'; |
754 | 754 | $form['deleteaccount'] = array( |
755 | - '#value' => '<li class="tab">' . l(bts('NO - DELETE ACCOUNT', array(), NULL, 'boinc:form-delete-user'), $deletelink) . '</li>', |
|
755 | + '#value' => '<li class="tab">' . l(bts('NO - DELETE ACCOUNT', array(), NULL, 'boinc:form-delete-user'), $deletelink) . '</li>', |
|
756 | 756 | ); |
757 | - } |
|
757 | + } |
|
758 | 758 | |
759 | - // Set form redirect |
|
760 | - $form['#redirect'] = $_REQUEST['destination']; |
|
759 | + // Set form redirect |
|
760 | + $form['#redirect'] = $_REQUEST['destination']; |
|
761 | 761 | |
762 | - // Add the current user's data into the form |
|
763 | - $form['#account'] = $user; |
|
762 | + // Add the current user's data into the form |
|
763 | + $form['#account'] = $user; |
|
764 | 764 | |
765 | - return $form; |
|
765 | + return $form; |
|
766 | 766 | } |
767 | 767 | |
768 | 768 | function boincuser_termsofuse_form_validate($form, &$form_state) { |
769 | - // Check TOU agreement |
|
770 | - if (!$form_state['values']['termsofuse']['agreeTOU']) { |
|
769 | + // Check TOU agreement |
|
770 | + if (!$form_state['values']['termsofuse']['agreeTOU']) { |
|
771 | 771 | form_set_error('termsofuse', bts('ERROR: You must acknowledge our terms of use by clicking the checkbox before registering for an account.', array(), NULL, 'boinc:termsofuse-form')); |
772 | - } |
|
772 | + } |
|
773 | 773 | } |
774 | 774 | |
775 | 775 | function boincuser_termsofuse_form_submit($form, &$form_state) { |
776 | - $user = $form['#account']; |
|
777 | - if (!boincuser_consentto_termsofuse($user)) { |
|
776 | + $user = $form['#account']; |
|
777 | + if (!boincuser_consentto_termsofuse($user)) { |
|
778 | 778 | form_set_error('termsofuse', |
779 | - bts('There was an error in agreeing to the terms of use. The @project administrators have been notified.', |
|
779 | + bts('There was an error in agreeing to the terms of use. The @project administrators have been notified.', |
|
780 | 780 | array('@project' => variable_get('site_name', 'Drupal-BOINC')), NULL, 'boinc:termsofuse-form') |
781 | 781 | ); |
782 | - } |
|
782 | + } |
|
783 | 783 | |
784 | - // Delete session messages |
|
785 | - if ($_SESSION['messages']['warning']) { |
|
784 | + // Delete session messages |
|
785 | + if ($_SESSION['messages']['warning']) { |
|
786 | 786 | unset($_SESSION['messages']['warning']); |
787 | - } |
|
787 | + } |
|
788 | 788 | } |
789 | 789 | |
790 | 790 | /** |
@@ -793,89 +793,89 @@ discard block |
||
793 | 793 | * removed after used. |
794 | 794 | */ |
795 | 795 | function boincuser_revertemail(&$form_state, $token) { |
796 | - require_boinc('token'); |
|
797 | - require_boinc('util'); |
|
796 | + require_boinc('token'); |
|
797 | + require_boinc('util'); |
|
798 | 798 | |
799 | - global $user; |
|
800 | - $form = array(); |
|
799 | + global $user; |
|
800 | + $form = array(); |
|
801 | 801 | |
802 | - // drupal JS for dynamic password validation |
|
803 | - _user_password_dynamic_validation(); |
|
802 | + // drupal JS for dynamic password validation |
|
803 | + _user_password_dynamic_validation(); |
|
804 | 804 | |
805 | - // check BOINC user exists |
|
806 | - $account = user_load(array('uid' => $user->uid)); |
|
807 | - $uid = $user->uid; |
|
808 | - $boincid = $account->boincuser_id; |
|
809 | - // check $token is valid |
|
810 | - if (!is_valid_token($boincid, $token, 'E')) { |
|
805 | + // check BOINC user exists |
|
806 | + $account = user_load(array('uid' => $user->uid)); |
|
807 | + $uid = $user->uid; |
|
808 | + $boincid = $account->boincuser_id; |
|
809 | + // check $token is valid |
|
810 | + if (!is_valid_token($boincid, $token, 'E')) { |
|
811 | 811 | drupal_set_message(bts('ERROR: You have supplied an incorrect (most likely expired) token. Please obtain a new token by !link your email address.', |
812 | 812 | array( |
813 | - '!link' => l(bts('changing', array(), NULL, 'boinc:revert-email-change'), "/account/info/edit"), |
|
813 | + '!link' => l(bts('changing', array(), NULL, 'boinc:revert-email-change'), "/account/info/edit"), |
|
814 | 814 | ), |
815 | 815 | NULL, 'boinc:revert-email-change'), 'error'); |
816 | 816 | drupal_goto(); |
817 | - } |
|
817 | + } |
|
818 | 818 | |
819 | - // Attach account and token to this form. |
|
820 | - $form['_account'] = array('#type' => 'value', '#value' => $account); |
|
821 | - $form['_token'] = array('#type' => 'value', '#value' => $token); |
|
819 | + // Attach account and token to this form. |
|
820 | + $form['_account'] = array('#type' => 'value', '#value' => $account); |
|
821 | + $form['_token'] = array('#type' => 'value', '#value' => $token); |
|
822 | 822 | |
823 | - // Instructions |
|
824 | - $form['main']['instructions1'] = array( |
|
823 | + // Instructions |
|
824 | + $form['main']['instructions1'] = array( |
|
825 | 825 | '#value' => '<p>'. |
826 | 826 | bts('In order to change your email back to your previous email address, <strong>!prev_email</strong>, you must also change your password.', |
827 | - array( |
|
827 | + array( |
|
828 | 828 | '!prev_email' => $account->boincuser_previous_email_addr, |
829 | - ), |
|
830 | - NULL, 'boinc:revert-email-change'). |
|
829 | + ), |
|
830 | + NULL, 'boinc:revert-email-change'). |
|
831 | 831 | '</p>', |
832 | - ); |
|
832 | + ); |
|
833 | 833 | |
834 | - $form['main']['pass'] = array( |
|
834 | + $form['main']['pass'] = array( |
|
835 | 835 | '#type' => 'password_confirm', |
836 | 836 | '#description' => 'Enter a new password in both fields', |
837 | 837 | '#size' => 17, |
838 | - ); |
|
839 | - |
|
840 | - // Wrap action buttons for styling consistency |
|
841 | - $form['buttons']['form control tabs prefix'] = array( |
|
842 | - '#value' => '<ul class="form-control tab-list">', |
|
843 | - '#weight' => 1001, |
|
844 | - ); |
|
845 | - $form['buttons']['submit']['#type'] = 'submit'; |
|
846 | - $form['buttons']['submit']['#prefix'] = '<li class="first tab">'; |
|
847 | - $form['buttons']['submit']['#value'] = bts('Submit', array(), NULL, 'boinc:form-submit'); |
|
848 | - $form['buttons']['submit']['#suffix'] = '</li>'; |
|
849 | - $form['buttons']['submit']['#weight'] = 1002; |
|
850 | - $form['buttons']['cancel'] = array( |
|
851 | - '#value' => '<li class="tab">' . l(bts('Cancel', array(), NULL, 'boinc:form-cancel'), 'user/info/edit') . '</li>', |
|
852 | - '#weight' => 1005, |
|
853 | - ); |
|
854 | - $form['buttons']['form control tabs suffix'] = array( |
|
855 | - '#value' => '</ul>', |
|
856 | - '#weight' => 1010, |
|
857 | - ); |
|
858 | - |
|
859 | - return $form; |
|
838 | + ); |
|
839 | + |
|
840 | + // Wrap action buttons for styling consistency |
|
841 | + $form['buttons']['form control tabs prefix'] = array( |
|
842 | + '#value' => '<ul class="form-control tab-list">', |
|
843 | + '#weight' => 1001, |
|
844 | + ); |
|
845 | + $form['buttons']['submit']['#type'] = 'submit'; |
|
846 | + $form['buttons']['submit']['#prefix'] = '<li class="first tab">'; |
|
847 | + $form['buttons']['submit']['#value'] = bts('Submit', array(), NULL, 'boinc:form-submit'); |
|
848 | + $form['buttons']['submit']['#suffix'] = '</li>'; |
|
849 | + $form['buttons']['submit']['#weight'] = 1002; |
|
850 | + $form['buttons']['cancel'] = array( |
|
851 | + '#value' => '<li class="tab">' . l(bts('Cancel', array(), NULL, 'boinc:form-cancel'), 'user/info/edit') . '</li>', |
|
852 | + '#weight' => 1005, |
|
853 | + ); |
|
854 | + $form['buttons']['form control tabs suffix'] = array( |
|
855 | + '#value' => '</ul>', |
|
856 | + '#weight' => 1010, |
|
857 | + ); |
|
858 | + |
|
859 | + return $form; |
|
860 | 860 | } |
861 | 861 | |
862 | 862 | /** |
863 | 863 | * Validation handler for revertemail form |
864 | 864 | */ |
865 | 865 | function boincuser_revertemail_validate($form, &$form_state) { |
866 | - // Load account and boincuser |
|
867 | - $account = $form_state['values']['_account']; |
|
868 | - $boinc_user = BoincUser::lookup_id_nocache($account->boincuser_id); |
|
866 | + // Load account and boincuser |
|
867 | + $account = $form_state['values']['_account']; |
|
868 | + $boinc_user = BoincUser::lookup_id_nocache($account->boincuser_id); |
|
869 | 869 | |
870 | - if (BoincUser::lookup_email_addr($boinc_user->previous_email_addr)) { |
|
870 | + if (BoincUser::lookup_email_addr($boinc_user->previous_email_addr)) { |
|
871 | 871 | rules_invoke_event('boincuser_revert_email_error', $boinc_user->previous_email_addr, variable_get('boinc_admin_mailing_list_subject_tag', '')); |
872 | 872 | form_set_error('mail', |
873 | - bts('An account already exists for @email. Previous email address cannot be used because another account is using it as their email address. The @project administrators have been notified.', |
|
873 | + bts('An account already exists for @email. Previous email address cannot be used because another account is using it as their email address. The @project administrators have been notified.', |
|
874 | 874 | array( |
875 | - '@email' => $boinc_user->previous_email_addr, |
|
876 | - '@project' => variable_get('site_name', 'Drupal-BOINC'), |
|
875 | + '@email' => $boinc_user->previous_email_addr, |
|
876 | + '@project' => variable_get('site_name', 'Drupal-BOINC'), |
|
877 | 877 | ), NULL, 'boinc:add-new-user')); |
878 | - } |
|
878 | + } |
|
879 | 879 | |
880 | 880 | } |
881 | 881 | |
@@ -883,25 +883,25 @@ discard block |
||
883 | 883 | * Submit handler for revertemail form |
884 | 884 | */ |
885 | 885 | function boincuser_revertemail_submit($form, &$form_state) { |
886 | - require_boinc('password_compat/password'); |
|
886 | + require_boinc('password_compat/password'); |
|
887 | 887 | |
888 | - // Load account and boincuser |
|
889 | - $account = $form_state['values']['_account']; |
|
890 | - $boinc_user = BoincUser::lookup_id_nocache($account->boincuser_id); |
|
888 | + // Load account and boincuser |
|
889 | + $account = $form_state['values']['_account']; |
|
890 | + $boinc_user = BoincUser::lookup_id_nocache($account->boincuser_id); |
|
891 | 891 | |
892 | - $pem = strtolower($boinc_user->previous_email_addr); |
|
892 | + $pem = strtolower($boinc_user->previous_email_addr); |
|
893 | 893 | |
894 | - // Set new password based on previous email address and entered |
|
895 | - // password. |
|
896 | - $new_passwd_hash = password_hash( md5($form_state['values']['pass'].$pem), PASSWORD_DEFAULT); |
|
894 | + // Set new password based on previous email address and entered |
|
895 | + // password. |
|
896 | + $new_passwd_hash = password_hash( md5($form_state['values']['pass'].$pem), PASSWORD_DEFAULT); |
|
897 | 897 | |
898 | - $boinc_user->update("email_addr='${pem}', previous_email_addr='', email_addr_change_time=0, passwd_hash='${new_passwd_hash}'"); |
|
898 | + $boinc_user->update("email_addr='${pem}', previous_email_addr='', email_addr_change_time=0, passwd_hash='${new_passwd_hash}'"); |
|
899 | 899 | |
900 | - // Set email in drupal database to previous email |
|
901 | - user_save($account, array('mail' => $pem)); |
|
900 | + // Set email in drupal database to previous email |
|
901 | + user_save($account, array('mail' => $pem)); |
|
902 | 902 | |
903 | - // delete the token |
|
904 | - $result = delete_token($account->boincuser_id, $form_state['values']['_token'], 'E'); |
|
903 | + // delete the token |
|
904 | + $result = delete_token($account->boincuser_id, $form_state['values']['_token'], 'E'); |
|
905 | 905 | |
906 | - drupal_goto('account'); |
|
906 | + drupal_goto('account'); |
|
907 | 907 | } |
@@ -13,255 +13,255 @@ discard block |
||
13 | 13 | */ |
14 | 14 | function boincuser_views_data() { |
15 | 15 | |
16 | - // ----------------------------------------------------------------------------------------------- |
|
17 | - // Definition for user table |
|
18 | - // ----------------------------------------------------------------------------------------------- |
|
16 | + // ----------------------------------------------------------------------------------------------- |
|
17 | + // Definition for user table |
|
18 | + // ----------------------------------------------------------------------------------------------- |
|
19 | 19 | |
20 | - $data['user']['table']['group'] = t('BOINC'); |
|
20 | + $data['user']['table']['group'] = t('BOINC'); |
|
21 | 21 | |
22 | - $data['user']['table']['base'] = array( |
|
23 | - 'field' => 'id', |
|
24 | - 'title' => t('BOINC user'), |
|
25 | - 'help' => t('BOINC account data for a user'), |
|
26 | - 'database' => 'boinc_ro' |
|
27 | - ); |
|
22 | + $data['user']['table']['base'] = array( |
|
23 | + 'field' => 'id', |
|
24 | + 'title' => t('BOINC user'), |
|
25 | + 'help' => t('BOINC account data for a user'), |
|
26 | + 'database' => 'boinc_ro' |
|
27 | + ); |
|
28 | 28 | |
29 | - // Describe each of the individual fields in this table to Views. For |
|
30 | - // each field, you may define what field, sort, argument, and/or filter |
|
31 | - // handlers it supports. This will determine where in the Views interface you |
|
32 | - // may use the field. |
|
29 | + // Describe each of the individual fields in this table to Views. For |
|
30 | + // each field, you may define what field, sort, argument, and/or filter |
|
31 | + // handlers it supports. This will determine where in the Views interface you |
|
32 | + // may use the field. |
|
33 | 33 | |
34 | - // Primary keys allowed as arguments |
|
34 | + // Primary keys allowed as arguments |
|
35 | 35 | |
36 | - $data['user']['id'] = array( |
|
36 | + $data['user']['id'] = array( |
|
37 | 37 | 'title' => bts('Id', array(), NULL, 'boinc:user-id'), |
38 | 38 | 'help' => t('The BOINC ID of the user account.'), |
39 | 39 | 'field' => array( |
40 | - 'handler' => 'views_handler_field_numeric', |
|
41 | - 'click sortable' => TRUE |
|
40 | + 'handler' => 'views_handler_field_numeric', |
|
41 | + 'click sortable' => TRUE |
|
42 | 42 | ), |
43 | 43 | 'argument' => array( |
44 | - 'handler' => 'views_handler_argument_boincuser_id', // custom handler |
|
45 | - 'name field' => 'title', // the field to display in the summary. |
|
46 | - 'numeric' => TRUE, |
|
47 | - 'validate type' => 'id' |
|
44 | + 'handler' => 'views_handler_argument_boincuser_id', // custom handler |
|
45 | + 'name field' => 'title', // the field to display in the summary. |
|
46 | + 'numeric' => TRUE, |
|
47 | + 'validate type' => 'id' |
|
48 | 48 | ), |
49 | 49 | 'filter' => array( |
50 | - 'handler' => 'views_handler_filter_numeric' |
|
50 | + 'handler' => 'views_handler_filter_numeric' |
|
51 | 51 | ), |
52 | 52 | 'sort' => array( |
53 | - 'handler' => 'views_handler_sort_numeric' |
|
53 | + 'handler' => 'views_handler_sort_numeric' |
|
54 | 54 | ) |
55 | - ); |
|
56 | - $data['user']['teamid'] = array( |
|
55 | + ); |
|
56 | + $data['user']['teamid'] = array( |
|
57 | 57 | 'title' => bts('Team ID', array(), NULL, 'boinc:team-id'), |
58 | 58 | 'help' => t('The ID of the user\'s team.'), |
59 | 59 | 'field' => array( |
60 | - 'handler' => 'views_handler_field_numeric', |
|
61 | - 'click sortable' => TRUE, |
|
60 | + 'handler' => 'views_handler_field_numeric', |
|
61 | + 'click sortable' => TRUE, |
|
62 | 62 | ), |
63 | 63 | 'argument' => array( |
64 | - 'handler' => 'views_handler_argument_boincteam_id', // custom handler |
|
65 | - 'name field' => 'title', // the field to display in the summary. |
|
66 | - 'numeric' => TRUE, |
|
67 | - 'validate type' => 'id' |
|
64 | + 'handler' => 'views_handler_argument_boincteam_id', // custom handler |
|
65 | + 'name field' => 'title', // the field to display in the summary. |
|
66 | + 'numeric' => TRUE, |
|
67 | + 'validate type' => 'id' |
|
68 | 68 | ), |
69 | 69 | 'filter' => array( |
70 | - 'handler' => 'views_handler_filter_numeric' |
|
70 | + 'handler' => 'views_handler_filter_numeric' |
|
71 | 71 | ), |
72 | 72 | 'sort' => array( |
73 | - 'handler' => 'views_handler_sort_numeric' |
|
73 | + 'handler' => 'views_handler_sort_numeric' |
|
74 | 74 | ) |
75 | - ); |
|
75 | + ); |
|
76 | 76 | |
77 | - // Descriptions of general host fields (alphabetized) |
|
77 | + // Descriptions of general host fields (alphabetized) |
|
78 | 78 | |
79 | - $data['user']['authenticator'] = array( |
|
79 | + $data['user']['authenticator'] = array( |
|
80 | 80 | 'title' => bts('Account Key', array(), NULL, 'boinc:user-info'), |
81 | 81 | 'help' => t('The BOINC account key of the user.'), |
82 | 82 | 'field' => array( |
83 | - 'handler' => 'views_handler_field', |
|
84 | - 'click sortable' => TRUE |
|
83 | + 'handler' => 'views_handler_field', |
|
84 | + 'click sortable' => TRUE |
|
85 | 85 | ), |
86 | 86 | 'filter' => array( |
87 | - 'handler' => 'views_handler_filter_string' |
|
87 | + 'handler' => 'views_handler_filter_string' |
|
88 | 88 | ), |
89 | 89 | 'sort' => array( |
90 | - 'handler' => 'views_handler_sort_string' |
|
90 | + 'handler' => 'views_handler_sort_string' |
|
91 | 91 | ) |
92 | - ); |
|
93 | - $data['user']['country'] = array( |
|
92 | + ); |
|
93 | + $data['user']['country'] = array( |
|
94 | 94 | 'title' => bts('Country', array(), NULL, 'boinc:country-of-origin'), |
95 | 95 | 'help' => t('The country of the user.'), |
96 | 96 | 'field' => array( |
97 | - 'handler' => 'views_handler_field', |
|
98 | - 'click sortable' => TRUE |
|
97 | + 'handler' => 'views_handler_field', |
|
98 | + 'click sortable' => TRUE |
|
99 | 99 | ), |
100 | 100 | 'filter' => array( |
101 | - 'handler' => 'views_handler_filter_string' |
|
101 | + 'handler' => 'views_handler_filter_string' |
|
102 | 102 | ), |
103 | 103 | 'sort' => array( |
104 | - 'handler' => 'views_handler_sort_string' |
|
104 | + 'handler' => 'views_handler_sort_string' |
|
105 | 105 | ) |
106 | - ); |
|
107 | - $data['user']['create_time'] = array( |
|
106 | + ); |
|
107 | + $data['user']['create_time'] = array( |
|
108 | 108 | 'title' => bts('Member since', array(), NULL, 'boinc:user-info'), |
109 | 109 | 'help' => t('When the BOINC account was created.'), |
110 | 110 | 'field' => array( |
111 | - 'handler' => 'views_handler_field_date', |
|
112 | - 'click sortable' => TRUE |
|
111 | + 'handler' => 'views_handler_field_date', |
|
112 | + 'click sortable' => TRUE |
|
113 | 113 | ), |
114 | 114 | 'filter' => array( |
115 | - 'handler' => 'views_handler_filter_date' |
|
115 | + 'handler' => 'views_handler_filter_date' |
|
116 | 116 | ), |
117 | 117 | 'sort' => array( |
118 | - 'handler' => 'views_handler_sort_date' |
|
118 | + 'handler' => 'views_handler_sort_date' |
|
119 | 119 | ) |
120 | - ); |
|
121 | - $data['user']['cross_project_id'] = array( |
|
120 | + ); |
|
121 | + $data['user']['cross_project_id'] = array( |
|
122 | 122 | 'title' => bts('CPID', array(), NULL, 'boinc:user-info'), |
123 | 123 | 'help' => t('The cross project user identifier.'), |
124 | 124 | 'field' => array( |
125 | - 'handler' => 'views_handler_field', |
|
126 | - 'click sortable' => TRUE |
|
125 | + 'handler' => 'views_handler_field', |
|
126 | + 'click sortable' => TRUE |
|
127 | 127 | ), |
128 | 128 | 'filter' => array( |
129 | - 'handler' => 'views_handler_filter_string' |
|
129 | + 'handler' => 'views_handler_filter_string' |
|
130 | 130 | ), |
131 | 131 | 'sort' => array( |
132 | - 'handler' => 'views_handler_sort_string' |
|
132 | + 'handler' => 'views_handler_sort_string' |
|
133 | 133 | ) |
134 | - ); |
|
135 | - $data['user']['email_addr'] = array( |
|
136 | - 'title' => bts('Email Address', array(), NULL, 'boinc:user-info'), |
|
134 | + ); |
|
135 | + $data['user']['email_addr'] = array( |
|
136 | + 'title' => bts('Email Address', array(), NULL, 'boinc:user-info'), |
|
137 | 137 | 'help' => t('The BOINC account email address.'), |
138 | 138 | 'field' => array( |
139 | - 'handler' => 'views_handler_field', |
|
140 | - 'click sortable' => TRUE |
|
139 | + 'handler' => 'views_handler_field', |
|
140 | + 'click sortable' => TRUE |
|
141 | 141 | ), |
142 | 142 | 'filter' => array( |
143 | - 'handler' => 'views_handler_filter_string' |
|
143 | + 'handler' => 'views_handler_filter_string' |
|
144 | 144 | ), |
145 | 145 | 'sort' => array( |
146 | - 'handler' => 'views_handler_sort_string' |
|
146 | + 'handler' => 'views_handler_sort_string' |
|
147 | 147 | ) |
148 | - ); |
|
149 | - $data['user']['expavg_credit'] = array( |
|
148 | + ); |
|
149 | + $data['user']['expavg_credit'] = array( |
|
150 | 150 | 'title' => bts('Recent average credit', array(), NULL, 'boinc:user-or-team-RAC'), |
151 | 151 | 'help' => t('A decaying average of credit per day for the user.'), |
152 | 152 | 'field' => array( |
153 | - 'handler' => 'views_handler_field_numeric', |
|
154 | - 'click sortable' => TRUE, |
|
155 | - 'float' => TRUE |
|
153 | + 'handler' => 'views_handler_field_numeric', |
|
154 | + 'click sortable' => TRUE, |
|
155 | + 'float' => TRUE |
|
156 | 156 | ), |
157 | 157 | 'filter' => array( |
158 | - 'handler' => 'views_handler_filter_numeric' |
|
158 | + 'handler' => 'views_handler_filter_numeric' |
|
159 | 159 | ), |
160 | 160 | 'sort' => array( |
161 | - 'handler' => 'views_handler_sort_numeric' |
|
161 | + 'handler' => 'views_handler_sort_numeric' |
|
162 | 162 | ) |
163 | - ); |
|
164 | - $data['user']['name'] = array( |
|
163 | + ); |
|
164 | + $data['user']['name'] = array( |
|
165 | 165 | 'title' => bts('Name', array(), NULL, 'boinc:user-or-team-name'), |
166 | 166 | 'help' => t('The BOINC account user name.'), |
167 | 167 | 'field' => array( |
168 | - 'handler' => 'views_handler_field', |
|
169 | - 'click sortable' => TRUE |
|
168 | + 'handler' => 'views_handler_field', |
|
169 | + 'click sortable' => TRUE |
|
170 | 170 | ), |
171 | 171 | 'filter' => array( |
172 | - 'handler' => 'views_handler_filter_string' |
|
172 | + 'handler' => 'views_handler_filter_string' |
|
173 | 173 | ), |
174 | 174 | 'sort' => array( |
175 | - 'handler' => 'views_handler_sort_string' |
|
175 | + 'handler' => 'views_handler_sort_string' |
|
176 | 176 | ) |
177 | - ); |
|
178 | - $data['user']['passwd_hash'] = array( |
|
177 | + ); |
|
178 | + $data['user']['passwd_hash'] = array( |
|
179 | 179 | 'title' => bts('Password Hash', array(), NULL, 'boinc:user-info'), |
180 | 180 | 'help' => t('The user password hash'), |
181 | 181 | 'field' => array( |
182 | - 'handler' => 'views_handler_field', |
|
183 | - 'click sortable' => TRUE |
|
182 | + 'handler' => 'views_handler_field', |
|
183 | + 'click sortable' => TRUE |
|
184 | 184 | ), |
185 | 185 | 'filter' => array( |
186 | - 'handler' => 'views_handler_filter_string' |
|
186 | + 'handler' => 'views_handler_filter_string' |
|
187 | 187 | ), |
188 | 188 | 'sort' => array( |
189 | - 'handler' => 'views_handler_sort_string' |
|
189 | + 'handler' => 'views_handler_sort_string' |
|
190 | 190 | ) |
191 | - ); |
|
192 | - $data['user']['postal_code'] = array( |
|
191 | + ); |
|
192 | + $data['user']['postal_code'] = array( |
|
193 | 193 | 'title' => bts('Postal Code', array(), NULL, 'boinc:user-info'), |
194 | 194 | 'help' => t('The postal code of the user.'), |
195 | 195 | 'field' => array( |
196 | - 'handler' => 'views_handler_field', |
|
197 | - 'click sortable' => TRUE |
|
196 | + 'handler' => 'views_handler_field', |
|
197 | + 'click sortable' => TRUE |
|
198 | 198 | ), |
199 | 199 | 'filter' => array( |
200 | - 'handler' => 'views_handler_filter_string' |
|
200 | + 'handler' => 'views_handler_filter_string' |
|
201 | 201 | ), |
202 | 202 | 'sort' => array( |
203 | - 'handler' => 'views_handler_sort_string' |
|
203 | + 'handler' => 'views_handler_sort_string' |
|
204 | 204 | ) |
205 | - ); |
|
206 | - $data['user']['send_email'] = array( |
|
205 | + ); |
|
206 | + $data['user']['send_email'] = array( |
|
207 | 207 | 'title' => bts('Send Email', array(), NULL, 'boinc:user-info'), |
208 | 208 | 'help' => t('User preference to allow email communications.'), |
209 | 209 | 'field' => array( |
210 | - 'handler' => 'views_handler_field_numeric', |
|
211 | - 'click sortable' => TRUE |
|
210 | + 'handler' => 'views_handler_field_numeric', |
|
211 | + 'click sortable' => TRUE |
|
212 | 212 | ), |
213 | 213 | 'filter' => array( |
214 | - 'handler' => 'views_handler_filter_numeric' |
|
214 | + 'handler' => 'views_handler_filter_numeric' |
|
215 | 215 | ), |
216 | 216 | 'sort' => array( |
217 | - 'handler' => 'views_handler_sort_numeric' |
|
217 | + 'handler' => 'views_handler_sort_numeric' |
|
218 | 218 | ) |
219 | - ); |
|
220 | - $data['user']['show_hosts'] = array( |
|
219 | + ); |
|
220 | + $data['user']['show_hosts'] = array( |
|
221 | 221 | 'title' => bts('Show Hosts', array(), NULL, 'boinc:user-info'), |
222 | 222 | 'help' => t('User preference to display owned computers.'), |
223 | 223 | 'field' => array( |
224 | - 'handler' => 'views_handler_field_numeric', |
|
225 | - 'click sortable' => TRUE |
|
224 | + 'handler' => 'views_handler_field_numeric', |
|
225 | + 'click sortable' => TRUE |
|
226 | 226 | ), |
227 | 227 | 'filter' => array( |
228 | - 'handler' => 'views_handler_filter_numeric' |
|
228 | + 'handler' => 'views_handler_filter_numeric' |
|
229 | 229 | ), |
230 | 230 | 'sort' => array( |
231 | - 'handler' => 'views_handler_sort_numeric' |
|
231 | + 'handler' => 'views_handler_sort_numeric' |
|
232 | 232 | ) |
233 | - ); |
|
234 | - $data['user']['total_credit'] = array( |
|
233 | + ); |
|
234 | + $data['user']['total_credit'] = array( |
|
235 | 235 | 'title' => bts('Total credit', array(), NULL, 'boinc:user-or-team-total-credits'), |
236 | 236 | 'help' => t('The total accumulated BOINC credit for the user.'), |
237 | 237 | 'field' => array( |
238 | - 'handler' => 'views_handler_field_numeric', |
|
239 | - 'click sortable' => TRUE, |
|
240 | - 'float' => TRUE |
|
238 | + 'handler' => 'views_handler_field_numeric', |
|
239 | + 'click sortable' => TRUE, |
|
240 | + 'float' => TRUE |
|
241 | 241 | ), |
242 | 242 | 'filter' => array( |
243 | - 'handler' => 'views_handler_filter_numeric' |
|
243 | + 'handler' => 'views_handler_filter_numeric' |
|
244 | 244 | ), |
245 | 245 | 'sort' => array( |
246 | - 'handler' => 'views_handler_sort_numeric' |
|
246 | + 'handler' => 'views_handler_sort_numeric' |
|
247 | 247 | ) |
248 | - ); |
|
249 | - $data['user']['url'] = array( |
|
248 | + ); |
|
249 | + $data['user']['url'] = array( |
|
250 | 250 | 'title' => bts('URL', array(), NULL, 'boinc:website-of-user-or-team'), |
251 | 251 | 'help' => t('The URL provided by the user'), |
252 | 252 | 'field' => array( |
253 | - 'handler' => 'views_handler_field', |
|
254 | - 'click sortable' => TRUE |
|
253 | + 'handler' => 'views_handler_field', |
|
254 | + 'click sortable' => TRUE |
|
255 | 255 | ), |
256 | 256 | 'filter' => array( |
257 | - 'handler' => 'views_handler_filter_string' |
|
257 | + 'handler' => 'views_handler_filter_string' |
|
258 | 258 | ), |
259 | 259 | 'sort' => array( |
260 | - 'handler' => 'views_handler_sort_string' |
|
260 | + 'handler' => 'views_handler_sort_string' |
|
261 | 261 | ) |
262 | - ); |
|
262 | + ); |
|
263 | 263 | |
264 | - return $data; |
|
264 | + return $data; |
|
265 | 265 | } |
266 | 266 | |
267 | 267 | /* |
@@ -272,17 +272,17 @@ discard block |
||
272 | 272 | */ |
273 | 273 | |
274 | 274 | function boincuser_views_handlers() { |
275 | - return array( |
|
275 | + return array( |
|
276 | 276 | 'info' => array( |
277 | - 'path' => drupal_get_path('module', 'boincuser') . '/views', |
|
277 | + 'path' => drupal_get_path('module', 'boincuser') . '/views', |
|
278 | 278 | ), |
279 | 279 | 'handlers' => array( |
280 | - 'views_handler_argument_boincuser_id' => array( |
|
280 | + 'views_handler_argument_boincuser_id' => array( |
|
281 | 281 | 'parent' => 'views_handler_argument_numeric' |
282 | - ), |
|
283 | - 'views_handler_argument_boincteam_id' => array( |
|
282 | + ), |
|
283 | + 'views_handler_argument_boincteam_id' => array( |
|
284 | 284 | 'parent' => 'views_handler_argument_numeric' |
285 | - ), |
|
285 | + ), |
|
286 | 286 | ) |
287 | - ); |
|
287 | + ); |
|
288 | 288 | } |
@@ -11,56 +11,56 @@ discard block |
||
11 | 11 | * at a time and avoid exhausting memory. |
12 | 12 | */ |
13 | 13 | |
14 | - require_once('./includes/bootstrap.inc'); |
|
15 | - drupal_bootstrap(DRUPAL_BOOTSTRAP_FULL); |
|
16 | - require_boinc('db'); |
|
14 | + require_once('./includes/bootstrap.inc'); |
|
15 | + drupal_bootstrap(DRUPAL_BOOTSTRAP_FULL); |
|
16 | + require_boinc('db'); |
|
17 | 17 | |
18 | - // Parse arguments |
|
19 | - $team_id = isset($argv[1]) ? $argv[1] : null; |
|
20 | - $team_type_tid = isset($argv[2]) ? $argv[2] : null; |
|
21 | - $input_format = isset($argv[3]) ? $argv[3] : null; |
|
18 | + // Parse arguments |
|
19 | + $team_id = isset($argv[1]) ? $argv[1] : null; |
|
20 | + $team_type_tid = isset($argv[2]) ? $argv[2] : null; |
|
21 | + $input_format = isset($argv[3]) ? $argv[3] : null; |
|
22 | 22 | |
23 | - $count = 0; |
|
23 | + $count = 0; |
|
24 | 24 | |
25 | - // Get teams from BOINC |
|
26 | - db_set_active('boinc_rw'); |
|
27 | - $boincteam = db_fetch_object(db_query('SELECT * FROM team WHERE id=%d', array($team_id))); |
|
28 | - $boincteam_members = db_query('SELECT id FROM user WHERE teamid=%d', array($team_id)); |
|
29 | - $boincteam_admin = (int) db_result(db_query('SELECT userid FROM team_admin WHERE teamid=%d', array($team_id))); |
|
30 | - db_set_active('default'); |
|
25 | + // Get teams from BOINC |
|
26 | + db_set_active('boinc_rw'); |
|
27 | + $boincteam = db_fetch_object(db_query('SELECT * FROM team WHERE id=%d', array($team_id))); |
|
28 | + $boincteam_members = db_query('SELECT id FROM user WHERE teamid=%d', array($team_id)); |
|
29 | + $boincteam_admin = (int) db_result(db_query('SELECT userid FROM team_admin WHERE teamid=%d', array($team_id))); |
|
30 | + db_set_active('default'); |
|
31 | 31 | |
32 | - $team_exists = db_query('SELECT team_id FROM {boincteam} WHERE team_id = %d', $boincteam->id); |
|
33 | - // FIXME: $team_exists==FALSE should be handled as an error and return an error code! |
|
32 | + $team_exists = db_query('SELECT team_id FROM {boincteam} WHERE team_id = %d', $boincteam->id); |
|
33 | + // FIXME: $team_exists==FALSE should be handled as an error and return an error code! |
|
34 | 34 | |
35 | - if ($team_exists != FALSE && db_fetch_object($team_exists) == FALSE) { |
|
35 | + if ($team_exists != FALSE && db_fetch_object($team_exists) == FALSE) { |
|
36 | 36 | $boincteam->description = _boincimport_text_sanitize($boincteam->description); |
37 | 37 | $teaser = node_teaser($boincteam->description); |
38 | 38 | |
39 | 39 | // Construct the team as an organic group node |
40 | 40 | $node = array( |
41 | - 'type' => 'team', |
|
42 | - 'title' => $boincteam->name, |
|
43 | - 'body' => $boincteam->description, |
|
44 | - 'teaser' => $teaser, |
|
45 | - 'uid' => boincuser_lookup_uid($boincteam->userid), |
|
46 | - 'path' => null, |
|
47 | - 'status' => 1, // published or not - always publish |
|
48 | - 'promote' => 0, |
|
49 | - 'created' => $boincteam->create_time, |
|
50 | - 'comment' => 0, // comments disabled |
|
51 | - 'moderate' => 0, |
|
52 | - 'sticky' => 0, |
|
53 | - 'format' => $input_format |
|
41 | + 'type' => 'team', |
|
42 | + 'title' => $boincteam->name, |
|
43 | + 'body' => $boincteam->description, |
|
44 | + 'teaser' => $teaser, |
|
45 | + 'uid' => boincuser_lookup_uid($boincteam->userid), |
|
46 | + 'path' => null, |
|
47 | + 'status' => 1, // published or not - always publish |
|
48 | + 'promote' => 0, |
|
49 | + 'created' => $boincteam->create_time, |
|
50 | + 'comment' => 0, // comments disabled |
|
51 | + 'moderate' => 0, |
|
52 | + 'sticky' => 0, |
|
53 | + 'format' => $input_format |
|
54 | 54 | ); |
55 | 55 | |
56 | 56 | // Use pathauto function, if available, to clean up the path |
57 | 57 | if (module_exists('pathauto')) { |
58 | - module_load_include('inc', 'pathauto', 'pathauto'); |
|
59 | - $node['path'] = pathauto_cleanstring($boincteam->name); |
|
58 | + module_load_include('inc', 'pathauto', 'pathauto'); |
|
59 | + $node['path'] = pathauto_cleanstring($boincteam->name); |
|
60 | 60 | } |
61 | 61 | else { |
62 | - echo 'Pathauto module is required!'; |
|
63 | - exit; |
|
62 | + echo 'Pathauto module is required!'; |
|
63 | + exit; |
|
64 | 64 | } |
65 | 65 | |
66 | 66 | $node = (object) $node; // node_save requires an object form |
@@ -72,22 +72,22 @@ discard block |
||
72 | 72 | |
73 | 73 | // Save the team IDs to a BOINC <--> Drupal reference table. |
74 | 74 | db_query('INSERT INTO {boincteam} (team_id, nid) VALUES (%d, %d)', $boincteam->id, $node->nid); |
75 | - } |
|
76 | - |
|
77 | - // Determine team membership |
|
78 | - db_set_active('boinc_rw'); |
|
79 | - $boincteam_member_ids = array(); |
|
80 | - while ($boincuser = db_fetch_object($boincteam_members)) $boincteam_member_ids[] = $boincuser->id; |
|
81 | - db_set_active('default'); |
|
82 | - if ($boincteam_member_ids) { |
|
75 | + } |
|
76 | + |
|
77 | + // Determine team membership |
|
78 | + db_set_active('boinc_rw'); |
|
79 | + $boincteam_member_ids = array(); |
|
80 | + while ($boincuser = db_fetch_object($boincteam_members)) $boincteam_member_ids[] = $boincuser->id; |
|
81 | + db_set_active('default'); |
|
82 | + if ($boincteam_member_ids) { |
|
83 | 83 | $team_members = db_query('SELECT uid FROM {boincuser} WHERE boinc_id IN(%s)', implode(',', $boincteam_member_ids)); |
84 | 84 | $team_admin = (int) db_result(db_query('SELECT uid FROM {boincuser} WHERE boinc_id=%d', $boincteam_admin)); |
85 | 85 | |
86 | 86 | while ($drupal_user = db_fetch_object($team_members)) { |
87 | - // Add action to take on member accounts? |
|
88 | - $count++; |
|
87 | + // Add action to take on member accounts? |
|
88 | + $count++; |
|
89 | + } |
|
89 | 90 | } |
90 | - } |
|
91 | 91 | |
92 | - echo $count; |
|
92 | + echo $count; |
|
93 | 93 |
@@ -5,45 +5,45 @@ discard block |
||
5 | 5 | * Callback admin/boinc/import/settings |
6 | 6 | */ |
7 | 7 | function boincimport_admin_settings() { |
8 | - global $conf ; |
|
9 | - global $db_url; |
|
10 | - global $base_url; |
|
11 | - $stage = variable_get('boincimport_config_stage', 0); |
|
8 | + global $conf ; |
|
9 | + global $db_url; |
|
10 | + global $base_url; |
|
11 | + $stage = variable_get('boincimport_config_stage', 0); |
|
12 | 12 | |
13 | - // Start with a quick sanity check on the BOINC environment |
|
14 | - boinc_get_path(); |
|
13 | + // Start with a quick sanity check on the BOINC environment |
|
14 | + boinc_get_path(); |
|
15 | 15 | |
16 | - //We'll be checking that the setup is complete. |
|
17 | - //If it is not complete, the migration will not go ahead. |
|
18 | - $ready_for_migration = 1; |
|
16 | + //We'll be checking that the setup is complete. |
|
17 | + //If it is not complete, the migration will not go ahead. |
|
18 | + $ready_for_migration = 1; |
|
19 | 19 | |
20 | - // Checking that the migration has been tested on a copy first. |
|
21 | - $form['test'] = array( |
|
20 | + // Checking that the migration has been tested on a copy first. |
|
21 | + $form['test'] = array( |
|
22 | 22 | '#type' => 'fieldset', |
23 | 23 | '#title' => t('Test on copy first'), |
24 | 24 | '#collapsible' => TRUE, |
25 | 25 | '#collapsed' => TRUE, |
26 | - ); |
|
26 | + ); |
|
27 | 27 | |
28 | - $output = ''; |
|
29 | - if (!variable_get('boincimport_tested', 0)) { |
|
28 | + $output = ''; |
|
29 | + if (!variable_get('boincimport_tested', 0)) { |
|
30 | 30 | $form['test']['#collapsed']= FALSE; |
31 | 31 | $output = '<span class="marker">'; |
32 | 32 | $ready_for_migration = 0; |
33 | - } |
|
34 | - $output .= '<p>' . t('The migration will modify and even destroy some data. You |
|
33 | + } |
|
34 | + $output .= '<p>' . t('The migration will modify and even destroy some data. You |
|
35 | 35 | must test this module on a copy of your data first, several times if necessary. |
36 | 36 | Only use this module on your live data when you are familiar with the procedure |
37 | 37 | and you\'re confident everything will run smoothly.') . '</p><p>' . t('Also, you |
38 | 38 | should make a full backup of your database just prior to performing the |
39 | 39 | migration on the live data. It is better to turn off both the BOINC site and the |
40 | 40 | Drupal site during the migration.') . '</p>'; |
41 | - if (!variable_get('boincimport_tested', 0)) { |
|
41 | + if (!variable_get('boincimport_tested', 0)) { |
|
42 | 42 | $output .= '</span>'; |
43 | - } |
|
44 | - $form['test']['intro'] = array('#value' => $output); |
|
43 | + } |
|
44 | + $form['test']['intro'] = array('#value' => $output); |
|
45 | 45 | |
46 | - $form['test']['boincimport_tested'] = array( |
|
46 | + $form['test']['boincimport_tested'] = array( |
|
47 | 47 | '#type' => 'checkbox', |
48 | 48 | '#title' => t('I am running a trial migration on a disposable copy of the database |
49 | 49 | OR I have already done so and I am running this on my live site, confident that |
@@ -51,64 +51,64 @@ discard block |
||
51 | 51 | '#return_value' => 1, |
52 | 52 | '#default_value' => variable_get('boincimport_tested', 0), |
53 | 53 | '#description' => '', |
54 | - ); |
|
54 | + ); |
|
55 | 55 | |
56 | - // Where is BOINC data? |
|
57 | - $pre = variable_get('boincimport_table_prefix', ''); |
|
58 | - $tables = array($pre .'forum', $pre .'post', $pre .'thread', $pre .'user'); |
|
59 | - $db = (is_array($db_url) AND isset($db_url['boinc_rw'])) ? 'boinc_rw' : 'default'; |
|
60 | - $result = _boincimport_check_tables($tables, $db, 0); |
|
56 | + // Where is BOINC data? |
|
57 | + $pre = variable_get('boincimport_table_prefix', ''); |
|
58 | + $tables = array($pre .'forum', $pre .'post', $pre .'thread', $pre .'user'); |
|
59 | + $db = (is_array($db_url) AND isset($db_url['boinc_rw'])) ? 'boinc_rw' : 'default'; |
|
60 | + $result = _boincimport_check_tables($tables, $db, 0); |
|
61 | 61 | |
62 | - $config_path = conf_path(); |
|
63 | - $form['boinc_data'] = array( |
|
62 | + $config_path = conf_path(); |
|
63 | + $form['boinc_data'] = array( |
|
64 | 64 | '#type' => 'fieldset', |
65 | 65 | '#title' => t('Location of BOINC data'), |
66 | 66 | '#collapsible' => TRUE, |
67 | 67 | '#collapsed' => TRUE, |
68 | - ); |
|
69 | - $form['boinc_data']['boincimport_db_configured'] = array( |
|
68 | + ); |
|
69 | + $form['boinc_data']['boincimport_db_configured'] = array( |
|
70 | 70 | '#type' => 'checkbox', |
71 | 71 | '#title' => t('There is a \'boinc\' database connection string configured in %file', |
72 | - array('%file' => "{$config_path}/settings.php")), |
|
72 | + array('%file' => "{$config_path}/settings.php")), |
|
73 | 73 | '#return_value' => 1, |
74 | 74 | '#default_value' => variable_get('boincimport_db_configured', 1), |
75 | 75 | '#description' => '', |
76 | 76 | '#disabled' => ($result['result']) ? TRUE : FALSE |
77 | - ); |
|
78 | - if (variable_get('boincimport_db_configured', 1) != 1) { |
|
77 | + ); |
|
78 | + if (variable_get('boincimport_db_configured', 1) != 1) { |
|
79 | 79 | $default_db_url = is_array($db_url) ? end($db_url) : $db_url; |
80 | 80 | $url = variable_get('boincimport_db_url', $default_db_url); |
81 | 81 | if (!preg_match('{(mysql|pgsql):\/\/(.+):(.*?)@(.+)/(\w+)}i', $url)) { |
82 | - $output = '<p class="marker">'. t('Set the address of the BOINC database |
|
82 | + $output = '<p class="marker">'. t('Set the address of the BOINC database |
|
83 | 83 | according to the following format:') . '<br /><pre> |
84 | 84 | mysql://boinc_username:boinc_password@localhost/boinc_database |
85 | 85 | </pre></p>'; |
86 | - $ready_for_migration = 0; |
|
87 | - $form['boinc_data']['#collapsed'] = FALSE; |
|
88 | - $form['boinc_data']['db_connect_string_note'] = array('#value' => $output); |
|
86 | + $ready_for_migration = 0; |
|
87 | + $form['boinc_data']['#collapsed'] = FALSE; |
|
88 | + $form['boinc_data']['db_connect_string_note'] = array('#value' => $output); |
|
89 | 89 | } |
90 | 90 | |
91 | 91 | $form['boinc_data']['boincimport_db_url'] = array( |
92 | - '#type' => 'textfield', |
|
93 | - '#title' => t('BOINC database location'), |
|
94 | - '#default_value' => variable_get('boincimport_db_url', $default_db_url), |
|
95 | - '#size' => 80, |
|
96 | - '#maxlength' => 255, |
|
97 | - '#description' => '', |
|
92 | + '#type' => 'textfield', |
|
93 | + '#title' => t('BOINC database location'), |
|
94 | + '#default_value' => variable_get('boincimport_db_url', $default_db_url), |
|
95 | + '#size' => 80, |
|
96 | + '#maxlength' => 255, |
|
97 | + '#description' => '', |
|
98 | 98 | ); |
99 | - } |
|
99 | + } |
|
100 | 100 | |
101 | - $output = '<p>' . t('Note that due to a limitation within Drupal core, we cannot |
|
101 | + $output = '<p>' . t('Note that due to a limitation within Drupal core, we cannot |
|
102 | 102 | import messages from one database type to another database type. E.g, we |
103 | 103 | cannot import BOINC from a myqsl DB, to a postgresql DB. You need to import |
104 | 104 | the data into the same type of database first (import all the BOINC data, as is, |
105 | 105 | from mysql to postgresql).') . '</p><p>' . t('If both BOINC and Drupal are on |
106 | 106 | postgresql, see !this_issue.', array('!this_issue' => l(t('this issue'), |
107 | 107 | 'http://drupal.org/node/64877', array('attributes' => array('target' => '_blank'))))) . '</p>'; |
108 | - $form['boinc_data']['note'] = array('#value' => $output); |
|
108 | + $form['boinc_data']['note'] = array('#value' => $output); |
|
109 | 109 | |
110 | - // BOINC table prefix |
|
111 | - $form['boinc_data']['boincimport_table_prefix'] = array( |
|
110 | + // BOINC table prefix |
|
111 | + $form['boinc_data']['boincimport_table_prefix'] = array( |
|
112 | 112 | '#type' => 'textfield', |
113 | 113 | '#title' => t('BOINC table prefix'), |
114 | 114 | '#default_value' => variable_get('boincimport_table_prefix', ''), |
@@ -116,30 +116,30 @@ discard block |
||
116 | 116 | '#maxlength' => 255, |
117 | 117 | '#description' => t('What prefix is used for your BOINC tables?'), |
118 | 118 | '#disabled' => ($result['result']) ? TRUE : FALSE |
119 | - ); |
|
119 | + ); |
|
120 | 120 | |
121 | - $output = $result['html']; |
|
122 | - if ($result['result'] != 1) { |
|
121 | + $output = $result['html']; |
|
122 | + if ($result['result'] != 1) { |
|
123 | 123 | $ready_for_migration = 0; |
124 | 124 | $form['boinc_data']['#collapsed']= FALSE; |
125 | 125 | $output .= '<span class="marker">'; |
126 | 126 | $output .= t('Some tables couldn\'t be found. Are the database settings correct? |
127 | 127 | Please correct the errors so that the BOINC tables can be accessed.'); |
128 | 128 | $output .= '</span>'; |
129 | - } |
|
129 | + } |
|
130 | 130 | |
131 | - $form['boinc_data']['result'] = array('#value' => $output); |
|
131 | + $form['boinc_data']['result'] = array('#value' => $output); |
|
132 | 132 | |
133 | - // USERS settings |
|
134 | - $form['users'] = array( |
|
133 | + // USERS settings |
|
134 | + $form['users'] = array( |
|
135 | 135 | '#type' => 'fieldset', |
136 | 136 | '#title' => t('User import'), |
137 | 137 | '#collapsible' => TRUE, |
138 | 138 | '#collapsed' => TRUE, |
139 | - ); |
|
139 | + ); |
|
140 | 140 | |
141 | - // User import batch size |
|
142 | - $form['users']['boincimport_user_batch_size'] = array( |
|
141 | + // User import batch size |
|
142 | + $form['users']['boincimport_user_batch_size'] = array( |
|
143 | 143 | '#type' => 'textfield', |
144 | 144 | '#title' => t('Number of accounts to process at a time'), |
145 | 145 | '#default_value' => variable_get('boincimport_user_batch_size', 50), |
@@ -148,10 +148,10 @@ discard block |
||
148 | 148 | '#description' => t('Due to memory intensive API calls, this value may have to |
149 | 149 | be adjusted to avoid exhausting system resources. The default value is a |
150 | 150 | balance between performance and reliability.') |
151 | - ); |
|
151 | + ); |
|
152 | 152 | |
153 | - // Import users who have never posted? |
|
154 | - $form['users']['boincimport_import_lurkers'] = array( |
|
153 | + // Import users who have never posted? |
|
154 | + $form['users']['boincimport_import_lurkers'] = array( |
|
155 | 155 | '#type' => 'checkbox', |
156 | 156 | '#title' => t('Import users who have never posted?'), |
157 | 157 | '#return_value' => 1, |
@@ -160,199 +160,199 @@ discard block |
||
160 | 160 | involvement? This may not be desired, as it can take a very long time to |
161 | 161 | import tens or hundreds of thousands of accounts. (note that users who |
162 | 162 | are not imported now will still be imported on-the-fly upon login)'), |
163 | - ); |
|
163 | + ); |
|
164 | 164 | |
165 | - // Input format settings |
|
166 | - $form['input'] = array( |
|
165 | + // Input format settings |
|
166 | + $form['input'] = array( |
|
167 | 167 | '#type' => 'fieldset', |
168 | 168 | '#title' => t('Input format settings'), |
169 | 169 | '#collapsible' => TRUE, |
170 | 170 | '#collapsed' => TRUE |
171 | - ); |
|
172 | - $output = '<p>'. t('Select which !input_format should be used for the imported |
|
171 | + ); |
|
172 | + $output = '<p>'. t('Select which !input_format should be used for the imported |
|
173 | 173 | messages. It is highly-recommended that this value be left as it is, as the |
174 | 174 | Full HTML and PHP code formats can be very dangerous!', |
175 | 175 | array('!input_format' => l(t('input format'), 'admin/settings/filters'))) .'</p>'; |
176 | - $form['input']['intro'] = array('#value' => $output); |
|
176 | + $form['input']['intro'] = array('#value' => $output); |
|
177 | 177 | |
178 | - $formats = db_query('SELECT format, name FROM {filter_formats}'); |
|
179 | - while ($format = db_fetch_array($formats)) { |
|
178 | + $formats = db_query('SELECT format, name FROM {filter_formats}'); |
|
179 | + while ($format = db_fetch_array($formats)) { |
|
180 | 180 | $input_formats[$format['format']]= $format['name']; |
181 | - } |
|
181 | + } |
|
182 | 182 | |
183 | - // By default, use the format named "Rich text"; fall back to Filtered HTML |
|
184 | - $default_input_format = db_result(db_query(" |
|
183 | + // By default, use the format named "Rich text"; fall back to Filtered HTML |
|
184 | + $default_input_format = db_result(db_query(" |
|
185 | 185 | SELECT format FROM {filter_formats} WHERE name = '%s'", 'Rich text')); |
186 | - if (!$default_input_format) $default_input_format = 1; |
|
186 | + if (!$default_input_format) $default_input_format = 1; |
|
187 | 187 | |
188 | - $input_format = variable_get('boincimport_input_format', $default_input_format); |
|
189 | - $form['input']['boincimport_input_format'] = array( |
|
188 | + $input_format = variable_get('boincimport_input_format', $default_input_format); |
|
189 | + $form['input']['boincimport_input_format'] = array( |
|
190 | 190 | '#type' => 'radios', |
191 | 191 | '#title' => t('Input format'), |
192 | 192 | '#default_value' => $input_format, |
193 | 193 | '#options' => $input_formats |
194 | - ); |
|
195 | - if (!$input_format) { |
|
194 | + ); |
|
195 | + if (!$input_format) { |
|
196 | 196 | $ready_for_migration = 0; |
197 | 197 | $form['input']['#collapsed']= FALSE; |
198 | - } |
|
199 | - $output = '<p><em>'. t('This setting will be applied to all posts and private |
|
198 | + } |
|
199 | + $output = '<p><em>'. t('This setting will be applied to all posts and private |
|
200 | 200 | messages.') .'</em></p>'; |
201 | - $form['input']['result'] = array('#value' => $output); |
|
201 | + $form['input']['result'] = array('#value' => $output); |
|
202 | 202 | |
203 | - // BBcode settings |
|
204 | - $form['bbcode'] = array( |
|
203 | + // BBcode settings |
|
204 | + $form['bbcode'] = array( |
|
205 | 205 | '#type' => 'fieldset', |
206 | 206 | '#title' => t('BBcode settings'), |
207 | 207 | '#collapsible' => TRUE, |
208 | 208 | '#collapsed' => TRUE, |
209 | - ); |
|
209 | + ); |
|
210 | 210 | |
211 | - $output = '<p>' . t('BOINC posts are often formatted in BBcode. During the |
|
211 | + $output = '<p>' . t('BOINC posts are often formatted in BBcode. During the |
|
212 | 212 | import process, BBcode can be handled in two diffent ways') . ':</p>'; |
213 | - $output .= '<ul><li>' . t('Leave the BBcode as is and use the !bbcode_module |
|
213 | + $output .= '<ul><li>' . t('Leave the BBcode as is and use the !bbcode_module |
|
214 | 214 | after the migration to filter the imported posts. In this case, the module |
215 | 215 | is not required during the migration, but will need to be installed and |
216 | 216 | configured later.', |
217 | 217 | array('!bbcode_module' => l(t('bbcode module'), 'http://drupal.org/project/bbcode', |
218 | 218 | array('attributes' => array('target' => '_blank'))))) . '</li>'; |
219 | - $output .= '<li>' . t('Filter the BBcode now and replace it with plain HTML. |
|
219 | + $output .= '<li>' . t('Filter the BBcode now and replace it with plain HTML. |
|
220 | 220 | The BBcode module will be required during the migration process, but can |
221 | 221 | be disabled afterwards.') . '</li></ul>'; |
222 | - $output .= '<p>' . t('An appropriate input filter should be chosen, as well, |
|
222 | + $output .= '<p>' . t('An appropriate input filter should be chosen, as well, |
|
223 | 223 | as it will affect how the post is displayed. For example, if BBcode is |
224 | 224 | removed and replaced by HTML, some HTML tags will be stripped by the |
225 | 225 | "Filtered HTML" input format unless they are first added to the list of |
226 | 226 | allowed tags in that format. See the !input_formats page.', |
227 | 227 | array('!input_formats' => l(t('input formats'), 'admin/settings/filters'))) . '</p>'; |
228 | 228 | |
229 | - $form['bbcode']['intro'] = array('#value' => $output); |
|
230 | - $form['bbcode']['boincimport_bbcode'] = array( |
|
229 | + $form['bbcode']['intro'] = array('#value' => $output); |
|
230 | + $form['bbcode']['boincimport_bbcode'] = array( |
|
231 | 231 | '#type' => 'radios', |
232 | 232 | '#title' => t('BBcode handling'), |
233 | 233 | '#default_value' => variable_get('boincimport_bbcode', 0), |
234 | 234 | '#options' => array(t('Leave BBcode as is.'), t('Transform BBcode into HTML.')), |
235 | 235 | '#description' => '', |
236 | - ); |
|
236 | + ); |
|
237 | 237 | |
238 | - $module_status = _boincimport_check_module('bbcode'); |
|
239 | - $bbcode_disabled = ($module_status['result'] == 0) ? true : false; |
|
240 | - $output = $module_status['html']; |
|
238 | + $module_status = _boincimport_check_module('bbcode'); |
|
239 | + $bbcode_disabled = ($module_status['result'] == 0) ? true : false; |
|
240 | + $output = $module_status['html']; |
|
241 | 241 | |
242 | - if (variable_get('boincimport_bbcode', 0)) { |
|
242 | + if (variable_get('boincimport_bbcode', 0)) { |
|
243 | 243 | if ($bbcode_disabled) { |
244 | - $ready_for_migration = 0; |
|
245 | - $form['bbcode']['#collapsed'] = FALSE; |
|
246 | - $output .= '<p><span class="marker">'; |
|
247 | - $output .= t('The !bbcode_module is required to transform BBcode into HTML. |
|
244 | + $ready_for_migration = 0; |
|
245 | + $form['bbcode']['#collapsed'] = FALSE; |
|
246 | + $output .= '<p><span class="marker">'; |
|
247 | + $output .= t('The !bbcode_module is required to transform BBcode into HTML. |
|
248 | 248 | You first need to !enable_bbcode', array( |
249 | - '!bbcode_module' => l(t('bbcode module'), 'http://drupal.org/project/bbcode', array('attributes' => array('target' => '_blank'))), |
|
250 | - '!enable_bbcode' => l(t('enable the bbcode module'), 'admin/build/modules'))); |
|
251 | - $output .= '</span></p>'; |
|
249 | + '!bbcode_module' => l(t('bbcode module'), 'http://drupal.org/project/bbcode', array('attributes' => array('target' => '_blank'))), |
|
250 | + '!enable_bbcode' => l(t('enable the bbcode module'), 'admin/build/modules'))); |
|
251 | + $output .= '</span></p>'; |
|
252 | 252 | } |
253 | 253 | $sql = "SELECT COUNT(*) FROM {filters} WHERE module = 'bbcode' AND format = %d"; |
254 | 254 | $result = db_query($sql, $input_format); |
255 | 255 | if (!db_result($result)) { |
256 | - $form['bbcode']['#collapsed'] = FALSE; |
|
257 | - $output .= '<p class="marker">'. t('You need to !enable_bbcode_input and |
|
256 | + $form['bbcode']['#collapsed'] = FALSE; |
|
257 | + $output .= '<p class="marker">'. t('You need to !enable_bbcode_input and |
|
258 | 258 | then !configure_bbcode_options', array( |
259 | - '!enable_bbcode_input' => l(t('enable BBcode in the selected input format'), "admin/settings/filters/{$input_format}"), |
|
260 | - '!configure_bbcode_options' => l(t('configure BBcode options'), "admin/settings/filters/{$input_format}/configure"))) .'</p>'; |
|
259 | + '!enable_bbcode_input' => l(t('enable BBcode in the selected input format'), "admin/settings/filters/{$input_format}"), |
|
260 | + '!configure_bbcode_options' => l(t('configure BBcode options'), "admin/settings/filters/{$input_format}/configure"))) .'</p>'; |
|
261 | 261 | } |
262 | 262 | $output .= '<p>'. t('For best results, !disable_all_options', |
263 | 263 | array('!disable_all_options' => l(t('all four BBcode configure options should be disabled'), "admin/settings/filters/{$input_format}/configure"))) . '.</p>'; |
264 | - } else { |
|
264 | + } else { |
|
265 | 265 | if ($bbcode_disabled) { |
266 | - $form['bbcode']['#collapsed'] = FALSE; |
|
267 | - $output .= '<p>'. t('The !bbcode_module is recommended, but not required. |
|
266 | + $form['bbcode']['#collapsed'] = FALSE; |
|
267 | + $output .= '<p>'. t('The !bbcode_module is recommended, but not required. |
|
268 | 268 | You may !enable_bbcode after having installed it.', array( |
269 | - '!bbcode_module' => l(t('bbcode module'), 'http://drupal.org/project/bbcode', array('attributes' => array('target' => '_blank'))), |
|
270 | - '!enable_bbcode' => l(t('enable the bbcode module'), 'admin/build/modules'))) .'</p>'; |
|
269 | + '!bbcode_module' => l(t('bbcode module'), 'http://drupal.org/project/bbcode', array('attributes' => array('target' => '_blank'))), |
|
270 | + '!enable_bbcode' => l(t('enable the bbcode module'), 'admin/build/modules'))) .'</p>'; |
|
271 | 271 | } |
272 | 272 | $output .= '<p>' . t('Don\'t forget to !enable_bbcode_input and then !configure_bbcode_options.', array( |
273 | - '!enable_bbcode_input' => l(t('enable BBcode in the selected input format'), "admin/settings/filters/{$input_format}"), |
|
274 | - '!configure_bbcode_options' => l(t('configure BBcode options'), "admin/settings/filters/{$input_format}/configure"))) . '</p>'; |
|
273 | + '!enable_bbcode_input' => l(t('enable BBcode in the selected input format'), "admin/settings/filters/{$input_format}"), |
|
274 | + '!configure_bbcode_options' => l(t('configure BBcode options'), "admin/settings/filters/{$input_format}/configure"))) . '</p>'; |
|
275 | 275 | $output .= '<p>' . t('You may want to enable it for other input formats, too.') . '</p>'; |
276 | - } |
|
277 | - $output .= '<p><em>'. t('This setting will be applied to all posts, private |
|
276 | + } |
|
277 | + $output .= '<p><em>'. t('This setting will be applied to all posts, private |
|
278 | 278 | messages and the users\' signature.') .'</em></p>'; |
279 | 279 | |
280 | - $form['bbcode']['result'] = array('#value' => $output); |
|
280 | + $form['bbcode']['result'] = array('#value' => $output); |
|
281 | 281 | |
282 | - // URL transform settings |
|
283 | - $form['url_transforms'] = array( |
|
282 | + // URL transform settings |
|
283 | + $form['url_transforms'] = array( |
|
284 | 284 | '#type' => 'fieldset', |
285 | 285 | '#title' => t('URL transforms'), |
286 | 286 | '#collapsible' => TRUE, |
287 | 287 | '#collapsed' => TRUE, |
288 | - ); |
|
289 | - if (!variable_get('boincimport_base_url_boinc', 0)) { |
|
288 | + ); |
|
289 | + if (!variable_get('boincimport_base_url_boinc', 0)) { |
|
290 | 290 | $form['url_transforms']['#collapsed']= FALSE; |
291 | 291 | $output = '<span class="marker">'; |
292 | 292 | $ready_for_migration = 0; |
293 | - } |
|
293 | + } |
|
294 | 294 | |
295 | - // List of BOINC domains possible in URLs to transform |
|
296 | - $form['url_transforms']['boincimport_base_url_boinc'] = array( |
|
295 | + // List of BOINC domains possible in URLs to transform |
|
296 | + $form['url_transforms']['boincimport_base_url_boinc'] = array( |
|
297 | 297 | '#type' => 'textarea', |
298 | 298 | '#title' => t('BOINC base URLs to transform'), |
299 | 299 | '#default_value' => variable_get('boincimport_base_url_boinc', ''), |
300 | 300 | '#description' => t('List URL bases that should be transformed from |
301 | 301 | BOINC format to Drupal format (enter one domain per line, including http://).'), |
302 | - ); |
|
302 | + ); |
|
303 | 303 | |
304 | - // The Drupal domain to use in URL transform results |
|
305 | - $form['url_transforms']['boincimport_base_url_drupal'] = array( |
|
304 | + // The Drupal domain to use in URL transform results |
|
305 | + $form['url_transforms']['boincimport_base_url_drupal'] = array( |
|
306 | 306 | '#type' => 'textfield', |
307 | 307 | '#title' => t('Target Drupal base URL'), |
308 | 308 | '#default_value' => variable_get('boincimport_base_url_drupal', ''), |
309 | 309 | '#description' => t('Specify the URL base to use in transform results. If |
310 | 310 | left blank, the base_url configured in this Drupal environment will be |
311 | 311 | used (currently: %url)', array('%url' =>$base_url)), |
312 | - ); |
|
312 | + ); |
|
313 | 313 | |
314 | - // Are we ready for migration? |
|
315 | - $form['migration'] = array( |
|
314 | + // Are we ready for migration? |
|
315 | + $form['migration'] = array( |
|
316 | 316 | '#type' => 'fieldset', |
317 | 317 | '#title' => 'Migration', |
318 | 318 | '#collapsible' => TRUE, |
319 | 319 | '#collapsed' => FALSE, |
320 | - ); |
|
321 | - variable_set('boincimport_ready', $ready_for_migration); |
|
322 | - if ($ready_for_migration) { |
|
320 | + ); |
|
321 | + variable_set('boincimport_ready', $ready_for_migration); |
|
322 | + if ($ready_for_migration) { |
|
323 | 323 | $output = '<p>'. t('Check the settings above one more time. If everything |
324 | 324 | is ok, !proceed.', array('!proceed' => l(t('you can now proceed with the migration'), 'admin/boinc/import/process'))) .'</p>'; |
325 | - } else { |
|
325 | + } else { |
|
326 | 326 | $output = '<p class="marker">'. t('You are not ready for the migration yet. |
327 | 327 | Please check the settings above.') .'</p>'; |
328 | - } |
|
328 | + } |
|
329 | 329 | |
330 | - $form['migration']['info'] = array('#value' => $output); |
|
331 | - return system_settings_form($form); |
|
330 | + $form['migration']['info'] = array('#value' => $output); |
|
331 | + return system_settings_form($form); |
|
332 | 332 | } |
333 | 333 | |
334 | 334 | /** |
335 | 335 | * Callback admin/boinc/import/post_configuration |
336 | 336 | */ |
337 | 337 | function boincimport_post_configuration() { |
338 | - $output = '<p>'. t('This page will help to tie up any loose ends following |
|
338 | + $output = '<p>'. t('This page will help to tie up any loose ends following |
|
339 | 339 | the BOINC data import process. Before continuing, it may be best to have |
340 | 340 | already:') .'</p>'; |
341 | - $output .= '<ul>'; |
|
342 | - $output .= '<li>'. t('Imported users, teams, and forums using the BOINC |
|
341 | + $output .= '<ul>'; |
|
342 | + $output .= '<li>'. t('Imported users, teams, and forums using the BOINC |
|
343 | 343 | import module') .'</li>'; |
344 | - $output .= '<li>'. t('Imported any additional data using add on modules if |
|
344 | + $output .= '<li>'. t('Imported any additional data using add on modules if |
|
345 | 345 | available.') .'</li>'; |
346 | - $output .= '</ul>'; |
|
347 | - //User Set up |
|
348 | - $output .= '<h2>'. t('User settings') .'</h2>'; |
|
349 | - $output .= '<p>'. t('Make sure your !user_settings are correct. Specifically, |
|
346 | + $output .= '</ul>'; |
|
347 | + //User Set up |
|
348 | + $output .= '<h2>'. t('User settings') .'</h2>'; |
|
349 | + $output .= '<p>'. t('Make sure your !user_settings are correct. Specifically, |
|
350 | 350 | you can enable or disable signatures there. ', array( |
351 | - '!user_settings' => l(t('user settings'), 'admin/user/settings') |
|
351 | + '!user_settings' => l(t('user settings'), 'admin/user/settings') |
|
352 | 352 | )) .'</p>'; |
353 | - $output .= '<p>' . t('Note that avatar/picture support is not tied to user |
|
353 | + $output .= '<p>' . t('Note that avatar/picture support is not tied to user |
|
354 | 354 | settings Picture support at this time.') . '</p>'; |
355 | - /*$output .= '<p>' . t('In order to activate avatar/picture support, you need to |
|
355 | + /*$output .= '<p>' . t('In order to activate avatar/picture support, you need to |
|
356 | 356 | enable pictures on this page and also:') . '</p>'; |
357 | 357 | $output .= '<ul>'; |
358 | 358 | $output .= '<li>'. t('Tick the checkboxes to allow "User pictures in posts" and/or |
@@ -365,73 +365,73 @@ discard block |
||
365 | 365 | )) .'</li>'; |
366 | 366 | $output .= '</ul>'; */ |
367 | 367 | |
368 | - // Forum Set up |
|
369 | - $output .= '<h2>'. t('Forum settings') .'</h2>'; |
|
370 | - $output .= '<p>'. t('Check any additional changes to make on the |
|
368 | + // Forum Set up |
|
369 | + $output .= '<h2>'. t('Forum settings') .'</h2>'; |
|
370 | + $output .= '<p>'. t('Check any additional changes to make on the |
|
371 | 371 | !forum_settings page.', array( |
372 | - '!forum_settings' => l(t('forum settings'), 'admin/content/forum/settings') |
|
372 | + '!forum_settings' => l(t('forum settings'), 'admin/content/forum/settings') |
|
373 | 373 | )) .'</p>'; |
374 | - $output .= '<p>'. t('It also may be a good idea to look at the !forum_list to |
|
374 | + $output .= '<p>'. t('It also may be a good idea to look at the !forum_list to |
|
375 | 375 | verify that all necessary containers and forums are in place.', array( |
376 | - '!forum_list' => l(t('forum list'), 'admin/content/forum') |
|
376 | + '!forum_list' => l(t('forum list'), 'admin/content/forum') |
|
377 | 377 | )) .'</p>'; |
378 | - /*$output .= '<p>'. t('If need be, set up the private forums as explained in the |
|
378 | + /*$output .= '<p>'. t('If need be, set up the private forums as explained in the |
|
379 | 379 | !documentation.', array( |
380 | 380 | '!documentation' => l(t('documentation'), 'http://drupal.org/node/58969', array('attributes' => array('target' => '_blank'))) |
381 | 381 | )) .'</p>'; |
382 | 382 | */ |
383 | - /* |
|
383 | + /* |
|
384 | 384 | // Redirection from old URLs: |
385 | 385 | $output .= '<h2>'. t('Redirection from BOINC forum URLs to new Drupal forum URLs') .'</h2>'; |
386 | 386 | $output .= '<p>'. t('Enable the boincforum_redirect.module. This way, users |
387 | 387 | accessing URLs from your old BOINC installation will be redirected to your new |
388 | 388 | Drupal forum.') .'</p>'; |
389 | 389 | */ |
390 | - // BBcode |
|
391 | - $bbcode = variable_get('boincimport_bbcode', 0); |
|
392 | - if ($bbcode) { |
|
390 | + // BBcode |
|
391 | + $bbcode = variable_get('boincimport_bbcode', 0); |
|
392 | + if ($bbcode) { |
|
393 | 393 | $output .= '<h2>'. t('Remove BBcode module') .'</h2>'; |
394 | 394 | $output .= '<p>'. t('The BBcode has been cleaned from the posts. You shouldn\'t |
395 | 395 | need the bbcode module anymore. You can disable it.') .'</p>'; |
396 | - } else { |
|
396 | + } else { |
|
397 | 397 | $output .= '<h2>'. t('Configure BBcode module') .'</h2>'; |
398 | 398 | $output .= '<p>'. t('Most likely, there are many BOINC forum postings |
399 | 399 | formatted in BBcode. It would be a good idea to verify that BBcode is |
400 | 400 | being formatted correctly in the imported posts. Have a look around |
401 | 401 | !the_forum.', array( |
402 | 402 | '!the_forum' => l(t('the forum'), 'community') |
403 | - )) . '</p>'; |
|
404 | - } |
|
403 | + )) . '</p>'; |
|
404 | + } |
|
405 | 405 | |
406 | - return $output; |
|
406 | + return $output; |
|
407 | 407 | } |
408 | 408 | |
409 | 409 | /** |
410 | 410 | * Callback admin/boinc/import |
411 | 411 | */ |
412 | 412 | function boincimport_main() { |
413 | - // Start with a quick sanity check on the BOINC environment |
|
414 | - boinc_get_path(); |
|
415 | - // If that's ok, on with the show |
|
416 | - $output .= t('You may want to !check_documentation before starting.', array( |
|
413 | + // Start with a quick sanity check on the BOINC environment |
|
414 | + boinc_get_path(); |
|
415 | + // If that's ok, on with the show |
|
416 | + $output .= t('You may want to !check_documentation before starting.', array( |
|
417 | 417 | '!check_documentation' => l(t('check the documentation'), 'http://boinc.berkeley.edu/trac/wiki/InstallDrupal', array('attributes' =>array('target' => '_blank'))) |
418 | - )); |
|
419 | - $output = '<ol><li>'; |
|
420 | - $output .= l(t('Configure the migration'), 'admin/boinc/import/settings'); |
|
421 | - $output .= '</li>'; |
|
422 | - $output .= '<li>'; |
|
423 | - $output .= l(t('Execute the migration'), 'admin/boinc/import/process'); |
|
424 | - $output .= '</li>'; |
|
425 | - $output .= '<li>'; |
|
426 | - $output .= l(t('Post migration configuration'), 'admin/boinc/import/post_configuration'); |
|
427 | - $output .= '</li>'; |
|
428 | - $output .= '<li>'; |
|
429 | - $output .= t('!cleanup (Accessing this link will delete all the saved BOINC forum |
|
418 | + )); |
|
419 | + $output = '<ol><li>'; |
|
420 | + $output .= l(t('Configure the migration'), 'admin/boinc/import/settings'); |
|
421 | + $output .= '</li>'; |
|
422 | + $output .= '<li>'; |
|
423 | + $output .= l(t('Execute the migration'), 'admin/boinc/import/process'); |
|
424 | + $output .= '</li>'; |
|
425 | + $output .= '<li>'; |
|
426 | + $output .= l(t('Post migration configuration'), 'admin/boinc/import/post_configuration'); |
|
427 | + $output .= '</li>'; |
|
428 | + $output .= '<li>'; |
|
429 | + $output .= t('!cleanup (Accessing this link will delete all the saved BOINC forum |
|
430 | 430 | conversion settings: click only when you\'re done with all the above.)', array( |
431 | - '!cleanup' => l(t('Cleanup'), 'admin/boinc/import/cleanup') |
|
431 | + '!cleanup' => l(t('Cleanup'), 'admin/boinc/import/cleanup') |
|
432 | 432 | )); |
433 | - $output .= '</li>'; |
|
434 | - /*$output .= '<li>'; |
|
433 | + $output .= '</li>'; |
|
434 | + /*$output .= '<li>'; |
|
435 | 435 | $output .= t('Enable the boincforum_redirect module for seamless redirection |
436 | 436 | from the old forums to the new. This module requires !clean_urls to be active.', array( |
437 | 437 | '!clean_urls' => l(t('Clean URLs'), 'admin/settings/clean-urls') |
@@ -442,14 +442,14 @@ discard block |
||
442 | 442 | uninstall BOINC forum - This will delete tables necessary for redirection. You can, |
443 | 443 | however, deactivate the module safely.'); |
444 | 444 | $output .= '</li>';*/ |
445 | - $output .= '</ol>'; |
|
445 | + $output .= '</ol>'; |
|
446 | 446 | |
447 | - // process will die() if the link to the BOINC database is wrong: |
|
448 | - $output .= '<p>'. t('If the BOINC data is in another database, but you made a |
|
447 | + // process will die() if the link to the BOINC database is wrong: |
|
448 | + $output .= '<p>'. t('If the BOINC data is in another database, but you made a |
|
449 | 449 | mistake while setting up the data base url, you may be unable to access the |
450 | 450 | setting page due to some limitations of the core of Drupal. !reset_db_url.', array( |
451 | - '!reset_db_url' => l(t('Click here to reset the database url'), 'admin/boinc/import/reset') |
|
451 | + '!reset_db_url' => l(t('Click here to reset the database url'), 'admin/boinc/import/reset') |
|
452 | 452 | )) .'</p>'; |
453 | 453 | |
454 | - return $output; |
|
454 | + return $output; |
|
455 | 455 | } |
@@ -19,9 +19,9 @@ discard block |
||
19 | 19 | * Implementation of hook_menu() |
20 | 20 | */ |
21 | 21 | function boincimport_menu() { |
22 | - $items = array(); |
|
22 | + $items = array(); |
|
23 | 23 | |
24 | - $items['admin/boinc/import'] = array( |
|
24 | + $items['admin/boinc/import'] = array( |
|
25 | 25 | 'title' => 'Environment: Data import', |
26 | 26 | 'description' => 'Overview of the BOINC data import process.', |
27 | 27 | 'access callback' => 'user_access', |
@@ -29,8 +29,8 @@ discard block |
||
29 | 29 | 'page callback' => 'boincimport_main', |
30 | 30 | 'file' => 'boincimport.pages.inc', |
31 | 31 | 'type' => MENU_NORMAL_ITEM, |
32 | - ); |
|
33 | - $items['admin/boinc/import/post_configuration'] = array( |
|
32 | + ); |
|
33 | + $items['admin/boinc/import/post_configuration'] = array( |
|
34 | 34 | 'title' => 'Post-migration configuration', |
35 | 35 | 'description' => 'Tie up a few odds and ends in the system configuration |
36 | 36 | after data importation is complete.', |
@@ -39,44 +39,44 @@ discard block |
||
39 | 39 | 'page callback' => 'boincimport_post_configuration', |
40 | 40 | 'file' => 'boincimport.pages.inc', |
41 | 41 | 'type' => MENU_CALLBACK, |
42 | - ); |
|
43 | - $items['admin/boinc/import/cleanup'] = array( |
|
42 | + ); |
|
43 | + $items['admin/boinc/import/cleanup'] = array( |
|
44 | 44 | 'title' => 'Cleanup', |
45 | 45 | 'access callback' => 'user_access', |
46 | 46 | 'access arguments' => array('import boinc data'), |
47 | 47 | 'page callback' => 'boincimport_cleanup', |
48 | 48 | 'type' => MENU_CALLBACK, |
49 | - ); |
|
50 | - $items['admin/boinc/import/complete/%'] = array( |
|
49 | + ); |
|
50 | + $items['admin/boinc/import/complete/%'] = array( |
|
51 | 51 | 'title' => 'Complete', |
52 | 52 | 'access callback' => 'user_access', |
53 | 53 | 'access arguments' => array('import boinc data'), |
54 | 54 | 'page callback' => 'boincimport_complete', |
55 | 55 | 'page arguments' => array(4), |
56 | 56 | 'type' => MENU_CALLBACK, |
57 | - ); |
|
58 | - $items['admin/boinc/import/process'] = array( |
|
57 | + ); |
|
58 | + $items['admin/boinc/import/process'] = array( |
|
59 | 59 | 'title' => 'Execute migration', |
60 | 60 | 'access callback' => 'user_access', |
61 | 61 | 'access arguments' => array('import boinc data'), |
62 | 62 | 'page callback' => 'boincimport_process', |
63 | 63 | 'type' => MENU_CALLBACK, |
64 | - ); |
|
65 | - $items['admin/boinc/import/reset'] = array( |
|
64 | + ); |
|
65 | + $items['admin/boinc/import/reset'] = array( |
|
66 | 66 | 'title' => 'Reset BOINC database URL', |
67 | 67 | 'access callback' => 'user_access', |
68 | 68 | 'access arguments' => array('import boinc data'), |
69 | 69 | 'page callback' => 'boincimport_reset', |
70 | 70 | 'type' => MENU_CALLBACK, |
71 | - ); |
|
72 | - $items['admin/boinc/import/unlock'] = array( |
|
71 | + ); |
|
72 | + $items['admin/boinc/import/unlock'] = array( |
|
73 | 73 | 'title' => 'Unlock BOINC import process', |
74 | 74 | 'access callback' => 'user_access', |
75 | 75 | 'access arguments' => array('import boinc data'), |
76 | 76 | 'page callback' => 'boincimport_unlock', |
77 | 77 | 'type' => MENU_CALLBACK, |
78 | - ); |
|
79 | - $items['admin/boinc/import/settings'] = array( |
|
78 | + ); |
|
79 | + $items['admin/boinc/import/settings'] = array( |
|
80 | 80 | 'title' => 'BOINC data import settings', |
81 | 81 | 'description' => 'Configure the BOINC data import process in preparation |
82 | 82 | for pulling user accounts, teams, and forums into Drupal.', |
@@ -86,37 +86,37 @@ discard block |
||
86 | 86 | 'page arguments' => array('boincimport_admin_settings'), |
87 | 87 | 'file' => 'boincimport.pages.inc', |
88 | 88 | 'type' => MENU_CALLBACK, |
89 | - ); |
|
90 | - return $items; |
|
89 | + ); |
|
90 | + return $items; |
|
91 | 91 | } |
92 | 92 | |
93 | 93 | /** |
94 | 94 | * Implementation of hook_perm() |
95 | 95 | */ |
96 | 96 | function boincimport_perm() { |
97 | - return array('import boinc data'); |
|
97 | + return array('import boinc data'); |
|
98 | 98 | } |
99 | 99 | |
100 | 100 | /** |
101 | 101 | * Callback admin/boinc/import/reset |
102 | 102 | */ |
103 | 103 | function boincimport_reset() { |
104 | - global $db_url; |
|
105 | - $boinc_db_url = (is_array($db_url)) ? (isset($db_url['boinc_rw']) ? $db_url['boinc_rw'] : $db_url['default']) : $db_url; |
|
106 | - variable_set('boincimport_db_url', $boinc_db_url); |
|
107 | - variable_set('boincimport_ready', 0); |
|
108 | - return '<p>'. t('The BOINC database URL has been reset. You may now <a href="@configlink">go back to the configuration page</a>.', |
|
109 | - array('@configlink' => url('admin/boinc/import/settings'))) .'</p>'; |
|
104 | + global $db_url; |
|
105 | + $boinc_db_url = (is_array($db_url)) ? (isset($db_url['boinc_rw']) ? $db_url['boinc_rw'] : $db_url['default']) : $db_url; |
|
106 | + variable_set('boincimport_db_url', $boinc_db_url); |
|
107 | + variable_set('boincimport_ready', 0); |
|
108 | + return '<p>'. t('The BOINC database URL has been reset. You may now <a href="@configlink">go back to the configuration page</a>.', |
|
109 | + array('@configlink' => url('admin/boinc/import/settings'))) .'</p>'; |
|
110 | 110 | } |
111 | 111 | |
112 | 112 | /** |
113 | 113 | * Callback admin/boinc/import/unlock |
114 | 114 | */ |
115 | 115 | function boincimport_unlock() { |
116 | - variable_del('boincimport_process_locked'); |
|
117 | - return '<p>'. t('The BOINC data import process has been unlocked. You may |
|
116 | + variable_del('boincimport_process_locked'); |
|
117 | + return '<p>'. t('The BOINC data import process has been unlocked. You may |
|
118 | 118 | now !proceed_with_import.', array( |
119 | - '!proceed_with_import' => l(t('proceed with the import'), |
|
119 | + '!proceed_with_import' => l(t('proceed with the import'), |
|
120 | 120 | 'admin/boinc/import/process') |
121 | 121 | )) .'</p>'; |
122 | 122 | } |
@@ -125,7 +125,7 @@ discard block |
||
125 | 125 | * Callback admin/boinc/import/cleanup |
126 | 126 | */ |
127 | 127 | function boincimport_cleanup() { |
128 | - return boincimport_process_cleanup() .'<p>'. t('Drupal database cleaned.') .'</p>'; |
|
128 | + return boincimport_process_cleanup() .'<p>'. t('Drupal database cleaned.') .'</p>'; |
|
129 | 129 | } |
130 | 130 | |
131 | 131 | /** |
@@ -139,23 +139,23 @@ discard block |
||
139 | 139 | * want to test. Therefore, the test part of the code is not used, now. |
140 | 140 | */ |
141 | 141 | function _boincimport_db_connect($test= 0) { |
142 | - global $db_url; |
|
143 | - $db_ready = variable_get('boincimport_db_configured', 1); |
|
144 | - if (!$db_ready) { |
|
142 | + global $db_url; |
|
143 | + $db_ready = variable_get('boincimport_db_configured', 1); |
|
144 | + if (!$db_ready) { |
|
145 | 145 | if (is_array($db_url)) { |
146 | - $db_url2 = $db_url; |
|
146 | + $db_url2 = $db_url; |
|
147 | 147 | } else { |
148 | - $db_url2['default'] = $db_url; |
|
148 | + $db_url2['default'] = $db_url; |
|
149 | 149 | } |
150 | 150 | $db_url2['boinc_rw'] = variable_get('boincimport_db_url', $db_url); |
151 | 151 | $GLOBALS['db_url'] =& $db_url2; |
152 | 152 | if ($test) { |
153 | - if (!db_connect($db_url2['boinc_rw'])) { |
|
153 | + if (!db_connect($db_url2['boinc_rw'])) { |
|
154 | 154 | return 0; |
155 | - } |
|
155 | + } |
|
156 | 156 | } |
157 | - } |
|
158 | - return 1; |
|
157 | + } |
|
158 | + return 1; |
|
159 | 159 | |
160 | 160 | } |
161 | 161 | |
@@ -167,17 +167,17 @@ discard block |
||
167 | 167 | * $out['result'] = boolean. |
168 | 168 | */ |
169 | 169 | function _boincimport_check_module($module) { |
170 | - $out['html'] = '<ul>'; |
|
171 | - $result = module_exists($module); |
|
172 | - $out['result'] = $result; |
|
173 | - if ($result == 1) { |
|
170 | + $out['html'] = '<ul>'; |
|
171 | + $result = module_exists($module); |
|
172 | + $out['result'] = $result; |
|
173 | + if ($result == 1) { |
|
174 | 174 | $out['html'] .= '<li>'. t('Module %module is enabled. OK!', array('%module' => $module)) .'</li>'; |
175 | - } |
|
176 | - else { |
|
175 | + } |
|
176 | + else { |
|
177 | 177 | $out['html'] .= '<li><span class="marker">'. t('Module %module is disabled.', array('%module' => $module)) .'</span></li>'; |
178 | - } |
|
179 | - $out['html'] .= '</ul>'; |
|
180 | - return $out; |
|
178 | + } |
|
179 | + $out['html'] .= '</ul>'; |
|
180 | + return $out; |
|
181 | 181 | } |
182 | 182 | |
183 | 183 | /** |
@@ -188,259 +188,259 @@ discard block |
||
188 | 188 | * $out['result'] = boolean. |
189 | 189 | */ |
190 | 190 | function _boincimport_check_tables($tables = array(), $db = 'default' , $prefix = 1) { |
191 | - _boincimport_db_connect(); |
|
191 | + _boincimport_db_connect(); |
|
192 | 192 | |
193 | - $out['html'] = '<ul>'; |
|
194 | - $out['result']= 1; |
|
195 | - foreach ($tables as $table) { |
|
193 | + $out['html'] = '<ul>'; |
|
194 | + $out['result']= 1; |
|
195 | + foreach ($tables as $table) { |
|
196 | 196 | if ($prefix) { |
197 | - $table = db_prefix_tables('{'. $table .'}'); |
|
197 | + $table = db_prefix_tables('{'. $table .'}'); |
|
198 | 198 | } |
199 | 199 | |
200 | 200 | db_set_active($db); |
201 | 201 | if ($GLOBALS['db_type'] == 'pgsql') { |
202 | - // adapt from db_table_exists in database.pgsql.inc |
|
203 | - $result = (bool) db_result(db_query("SELECT COUNT(*) FROM pg_class WHERE relname = '%s'", $table)); |
|
202 | + // adapt from db_table_exists in database.pgsql.inc |
|
203 | + $result = (bool) db_result(db_query("SELECT COUNT(*) FROM pg_class WHERE relname = '%s'", $table)); |
|
204 | 204 | } |
205 | 205 | else { |
206 | - // adapt from db_table_exists in database.mysql.inc |
|
207 | - $result = (bool) db_fetch_object(db_query("SHOW TABLES LIKE '%s'", $table)); |
|
206 | + // adapt from db_table_exists in database.mysql.inc |
|
207 | + $result = (bool) db_fetch_object(db_query("SHOW TABLES LIKE '%s'", $table)); |
|
208 | 208 | } |
209 | 209 | db_set_active('default'); |
210 | 210 | if ($result) { |
211 | - $out['html'] .= '<li>'. t('Table %table: OK!', array('%table' => $table)) .'</li>'; |
|
211 | + $out['html'] .= '<li>'. t('Table %table: OK!', array('%table' => $table)) .'</li>'; |
|
212 | 212 | } |
213 | 213 | else { |
214 | - $out['html'] .= '<li><span class="marker">'. t('Table <strong>%table</strong> does not exist!', array('%table' => $table)) .'</span></li>'; |
|
215 | - $out['result']= 0; |
|
214 | + $out['html'] .= '<li><span class="marker">'. t('Table <strong>%table</strong> does not exist!', array('%table' => $table)) .'</span></li>'; |
|
215 | + $out['result']= 0; |
|
216 | 216 | } |
217 | - } |
|
218 | - $out['html'] .= '</ul>'; |
|
219 | - return $out; |
|
217 | + } |
|
218 | + $out['html'] .= '</ul>'; |
|
219 | + return $out; |
|
220 | 220 | } |
221 | 221 | |
222 | 222 | |
223 | 223 | |
224 | 224 | function boincimport_process() { |
225 | - // Start with a quick sanity check on the BOINC environment |
|
226 | - boinc_get_path(); |
|
225 | + // Start with a quick sanity check on the BOINC environment |
|
226 | + boinc_get_path(); |
|
227 | 227 | |
228 | - if (!variable_get('boincimport_ready', 0)) { |
|
228 | + if (!variable_get('boincimport_ready', 0)) { |
|
229 | 229 | return '<p>'. t('You cannot import the data now. Please <a href="@settings">complete the setup first</a>', array('@settings' => url('admin/boinc/import/settings'))) .'</p>'; |
230 | - } |
|
230 | + } |
|
231 | 231 | |
232 | - $output = 'BOINC import process form'; |
|
233 | - $output .= drupal_get_form('boincimport_process_form'); |
|
234 | - return $output; |
|
232 | + $output = 'BOINC import process form'; |
|
233 | + $output .= drupal_get_form('boincimport_process_form'); |
|
234 | + return $output; |
|
235 | 235 | } |
236 | 236 | |
237 | 237 | function boincimport_process_form() { |
238 | - $form = array(); |
|
239 | - _boincimport_db_connect() ; |
|
240 | - // Causes problems with form api redirect |
|
241 | - //ini_set('display_errors', TRUE); |
|
238 | + $form = array(); |
|
239 | + _boincimport_db_connect() ; |
|
240 | + // Causes problems with form api redirect |
|
241 | + //ini_set('display_errors', TRUE); |
|
242 | 242 | |
243 | - // Adjust how long you want the script to run... |
|
244 | - if (!ini_get('safe_mode')) { |
|
243 | + // Adjust how long you want the script to run... |
|
244 | + if (!ini_get('safe_mode')) { |
|
245 | 245 | // This will always be set on PHP7, but not on PHP5 with safe mode |
246 | 246 | set_time_limit(variable_get('boincimport_time_limit', 0)); |
247 | - } |
|
247 | + } |
|
248 | 248 | |
249 | - // Check for a lock on the import process |
|
250 | - if (variable_get('boincimport_process_locked', 0)) { |
|
249 | + // Check for a lock on the import process |
|
250 | + if (variable_get('boincimport_process_locked', 0)) { |
|
251 | 251 | drupal_set_message(t('The import process is locked. If you are sure that |
252 | 252 | it is no longer running, you may !unlock_it', |
253 | - array('!unlock_it' => l(t('release the lock'), |
|
253 | + array('!unlock_it' => l(t('release the lock'), |
|
254 | 254 | 'admin/boinc/import/unlock') |
255 | - )), 'warning'); |
|
255 | + )), 'warning'); |
|
256 | 256 | watchdog('boincimport', 'The import process is locked. If you are sure that |
257 | 257 | it is no longer running, you may !unlock_it', |
258 | - array('!unlock_it' => l(t('release the lock'), |
|
258 | + array('!unlock_it' => l(t('release the lock'), |
|
259 | 259 | 'admin/boinc/import/unlock') |
260 | - ), WATCHDOG_WARNING); |
|
261 | - } |
|
262 | - else { |
|
260 | + ), WATCHDOG_WARNING); |
|
261 | + } |
|
262 | + else { |
|
263 | 263 | $boincimport_functions = array( |
264 | - 'users' => t('Import users'), |
|
265 | - 'teams' => t('Import teams'), |
|
266 | - 'friends' => t('Import friendships'), |
|
267 | - 'preferences' => t('Import user preferences'), |
|
268 | - 'private messages' => t('Import private messages'), |
|
269 | - 'categories' => t('Import forum containers'), |
|
270 | - 'topics' => t('Import topics'), |
|
271 | - 'posts' => t('Import posts'), |
|
272 | - 'team forums' => t('Import team forums'), |
|
273 | - 'team topics' => t('Import team topics'), |
|
274 | - 'team posts' => t('Import team posts'), |
|
275 | - 'url' => t('Transform URLs'), |
|
264 | + 'users' => t('Import users'), |
|
265 | + 'teams' => t('Import teams'), |
|
266 | + 'friends' => t('Import friendships'), |
|
267 | + 'preferences' => t('Import user preferences'), |
|
268 | + 'private messages' => t('Import private messages'), |
|
269 | + 'categories' => t('Import forum containers'), |
|
270 | + 'topics' => t('Import topics'), |
|
271 | + 'posts' => t('Import posts'), |
|
272 | + 'team forums' => t('Import team forums'), |
|
273 | + 'team topics' => t('Import team topics'), |
|
274 | + 'team posts' => t('Import team posts'), |
|
275 | + 'url' => t('Transform URLs'), |
|
276 | 276 | ); |
277 | 277 | |
278 | 278 | $form['import'] = array( |
279 | - '#type' => 'select', |
|
280 | - '#title' => t('Next import to perform'), |
|
281 | - '#default_value' => $_SESSION['boincimport_stage_selected'], |
|
282 | - '#options' => $boincimport_functions, |
|
279 | + '#type' => 'select', |
|
280 | + '#title' => t('Next import to perform'), |
|
281 | + '#default_value' => $_SESSION['boincimport_stage_selected'], |
|
282 | + '#options' => $boincimport_functions, |
|
283 | 283 | ); |
284 | 284 | $form[] = array( |
285 | - '#type' => 'submit', |
|
286 | - '#value' => t('Import'), |
|
285 | + '#type' => 'submit', |
|
286 | + '#value' => t('Import'), |
|
287 | 287 | ); |
288 | - } |
|
289 | - return $form; |
|
288 | + } |
|
289 | + return $form; |
|
290 | 290 | } |
291 | 291 | |
292 | 292 | function boincimport_process_form_submit($form, $form_state) { |
293 | 293 | |
294 | - // Lock the import process |
|
295 | - if (!variable_get('boincimport_process_locked', 0)) { |
|
294 | + // Lock the import process |
|
295 | + if (!variable_get('boincimport_process_locked', 0)) { |
|
296 | 296 | variable_set('boincimport_process_locked', 1); |
297 | - } |
|
298 | - else { |
|
297 | + } |
|
298 | + else { |
|
299 | 299 | watchdog('boincimport', 'The import process is locked, but another process |
300 | 300 | is trying to access it...', array(), WATCHDOG_WARNING); |
301 | - } |
|
301 | + } |
|
302 | 302 | |
303 | - switch ($form_state['values']['import']) { |
|
303 | + switch ($form_state['values']['import']) { |
|
304 | 304 | case 'users': |
305 | 305 | boincimport_users(); |
306 | - break; |
|
306 | + break; |
|
307 | 307 | |
308 | 308 | case 'teams': |
309 | 309 | boincimport_teams(); |
310 | - if (!variable_get('boincimport_import_team_successful', 0)) { |
|
310 | + if (!variable_get('boincimport_import_team_successful', 0)) { |
|
311 | 311 | $_SESSION['boincimport_stage_selected'] = 'teams'; |
312 | - } |
|
313 | - else { |
|
312 | + } |
|
313 | + else { |
|
314 | 314 | $_SESSION['boincimport_stage_selected'] = 'friends'; |
315 | - } |
|
316 | - break; |
|
315 | + } |
|
316 | + break; |
|
317 | 317 | |
318 | 318 | case 'friends': |
319 | 319 | boincimport_friends(); |
320 | - if (!variable_get('boincimport_import_friend_successful', 0)) { |
|
320 | + if (!variable_get('boincimport_import_friend_successful', 0)) { |
|
321 | 321 | $_SESSION['boincimport_stage_selected'] = 'friends'; |
322 | - } |
|
323 | - else { |
|
322 | + } |
|
323 | + else { |
|
324 | 324 | $_SESSION['boincimport_stage_selected'] = 'preferences'; |
325 | - } |
|
326 | - break; |
|
325 | + } |
|
326 | + break; |
|
327 | 327 | |
328 | 328 | case 'preferences': |
329 | 329 | boincimport_preferences(); |
330 | - if (!variable_get('boincimport_import_preferences_successful', 0)) { |
|
330 | + if (!variable_get('boincimport_import_preferences_successful', 0)) { |
|
331 | 331 | $_SESSION['boincimport_stage_selected'] = 'preferences'; |
332 | - } |
|
333 | - else { |
|
332 | + } |
|
333 | + else { |
|
334 | 334 | $_SESSION['boincimport_stage_selected'] = 'private messages'; |
335 | - } |
|
336 | - break; |
|
335 | + } |
|
336 | + break; |
|
337 | 337 | |
338 | 338 | case 'private messages': |
339 | 339 | boincimport_private_msgs(); |
340 | - if (!variable_get('boincimport_import_private_msg_successful', 0)) { |
|
340 | + if (!variable_get('boincimport_import_private_msg_successful', 0)) { |
|
341 | 341 | $_SESSION['boincimport_stage_selected'] = 'private messages'; |
342 | - } |
|
343 | - else { |
|
342 | + } |
|
343 | + else { |
|
344 | 344 | $_SESSION['boincimport_stage_selected'] = 'categories'; |
345 | - } |
|
346 | - break; |
|
345 | + } |
|
346 | + break; |
|
347 | 347 | |
348 | 348 | case 'categories': |
349 | 349 | boincimport_forum_categories(); |
350 | - if (!variable_get('boincimport_import_category_successful', 0)) { |
|
350 | + if (!variable_get('boincimport_import_category_successful', 0)) { |
|
351 | 351 | $_SESSION['boincimport_stage_selected'] = 'categories'; |
352 | - } |
|
353 | - else { |
|
352 | + } |
|
353 | + else { |
|
354 | 354 | $_SESSION['boincimport_stage_selected'] = 'topics'; |
355 | - } |
|
356 | - break; |
|
355 | + } |
|
356 | + break; |
|
357 | 357 | |
358 | 358 | case 'topics': |
359 | 359 | boincimport_forum_topics(); |
360 | - if (!variable_get('boincimport_import_topic_successful', 0)) { |
|
360 | + if (!variable_get('boincimport_import_topic_successful', 0)) { |
|
361 | 361 | $_SESSION['boincimport_stage_selected'] = 'topics'; |
362 | - } |
|
363 | - else { |
|
362 | + } |
|
363 | + else { |
|
364 | 364 | $_SESSION['boincimport_stage_selected'] = 'posts'; |
365 | - } |
|
366 | - break; |
|
365 | + } |
|
366 | + break; |
|
367 | 367 | |
368 | 368 | case 'posts': |
369 | 369 | boincimport_forum_posts(); |
370 | - if (!variable_get('boincimport_import_post_successful', 0)) { |
|
370 | + if (!variable_get('boincimport_import_post_successful', 0)) { |
|
371 | 371 | $_SESSION['boincimport_stage_selected'] = 'posts'; |
372 | - } |
|
373 | - else { |
|
372 | + } |
|
373 | + else { |
|
374 | 374 | $_SESSION['boincimport_stage_selected'] = 'url'; |
375 | - } |
|
376 | - break; |
|
375 | + } |
|
376 | + break; |
|
377 | 377 | |
378 | 378 | case 'team forums': |
379 | 379 | boincimport_team_forums(); |
380 | - if (!variable_get('boincimport_team_forum_successful', 0)) { |
|
380 | + if (!variable_get('boincimport_team_forum_successful', 0)) { |
|
381 | 381 | $_SESSION['boincimport_stage_selected'] = 'team forums'; |
382 | - } |
|
383 | - else { |
|
382 | + } |
|
383 | + else { |
|
384 | 384 | $_SESSION['boincimport_stage_selected'] = 'team topics'; |
385 | - } |
|
386 | - break; |
|
385 | + } |
|
386 | + break; |
|
387 | 387 | |
388 | 388 | case 'team topics': |
389 | 389 | boincimport_team_forum_topics(); |
390 | - if (!variable_get('boincimport_team_topic_successful', 0)) { |
|
390 | + if (!variable_get('boincimport_team_topic_successful', 0)) { |
|
391 | 391 | $_SESSION['boincimport_stage_selected'] = 'team topics'; |
392 | - } |
|
393 | - else { |
|
392 | + } |
|
393 | + else { |
|
394 | 394 | $_SESSION['boincimport_stage_selected'] = 'team posts'; |
395 | - } |
|
396 | - break; |
|
395 | + } |
|
396 | + break; |
|
397 | 397 | |
398 | 398 | case 'team posts': |
399 | 399 | boincimport_team_forum_posts(); |
400 | - if (!variable_get('boincimport_team_post_successful', 0)) { |
|
400 | + if (!variable_get('boincimport_team_post_successful', 0)) { |
|
401 | 401 | $_SESSION['boincimport_stage_selected'] = 'team posts'; |
402 | - } |
|
403 | - else { |
|
402 | + } |
|
403 | + else { |
|
404 | 404 | $_SESSION['boincimport_stage_selected'] = 'url'; |
405 | - } |
|
406 | - break; |
|
405 | + } |
|
406 | + break; |
|
407 | 407 | |
408 | 408 | case 'url': |
409 | 409 | boincimport_replace_urls(); |
410 | - if (!variable_get('boincimport_replace_url_successful', 0)) { |
|
410 | + if (!variable_get('boincimport_replace_url_successful', 0)) { |
|
411 | 411 | $_SESSION['boincimport_stage_selected'] = 'url'; |
412 | - } |
|
413 | - else { |
|
412 | + } |
|
413 | + else { |
|
414 | 414 | drupal_set_message('Congratulations. Import Finished'); |
415 | 415 | drupal_set_message('Please visit the '. l('Post migration configuration', 'admin/boinc/import/post_configuration') .' page'); |
416 | 416 | watchdog('boincimport', 'Import process is complete', array(), WATCHDOG_INFO); |
417 | 417 | unset($_SESSION['boincimport_stage_selected']); |
418 | - } |
|
419 | - break; |
|
418 | + } |
|
419 | + break; |
|
420 | 420 | default: |
421 | 421 | $_SESSION['boincimport_stage_selected'] = 'users'; |
422 | - break; |
|
423 | - } |
|
422 | + break; |
|
423 | + } |
|
424 | 424 | } |
425 | 425 | |
426 | 426 | function boincimport_complete($section) { |
427 | - switch ($section) { |
|
428 | - case 'users': |
|
427 | + switch ($section) { |
|
428 | + case 'users': |
|
429 | 429 | // Set the user import successful flag in the variable table |
430 | 430 | variable_set('boincimport_import_user_successful', '1'); |
431 | 431 | $_SESSION['boincimport_stage_selected'] = 'teams'; |
432 | 432 | break; |
433 | - case 'teams': |
|
433 | + case 'teams': |
|
434 | 434 | |
435 | 435 | break; |
436 | 436 | |
437 | - default: |
|
437 | + default: |
|
438 | 438 | } |
439 | 439 | |
440 | - // Release the lock on the import process |
|
441 | - variable_del('boincimport_process_locked'); |
|
440 | + // Release the lock on the import process |
|
441 | + variable_del('boincimport_process_locked'); |
|
442 | 442 | |
443 | - drupal_goto('admin/boinc/import/process'); |
|
443 | + drupal_goto('admin/boinc/import/process'); |
|
444 | 444 | } |
445 | 445 | |
446 | 446 | |
@@ -452,26 +452,26 @@ discard block |
||
452 | 452 | * Import users (at least those required for further data import) |
453 | 453 | */ |
454 | 454 | function boincimport_users() { |
455 | - // Check whether the user table has been successfully imported already |
|
456 | - if (variable_get('boincimport_import_user_successful', 0)) { |
|
455 | + // Check whether the user table has been successfully imported already |
|
456 | + if (variable_get('boincimport_import_user_successful', 0)) { |
|
457 | 457 | drupal_set_message(t('Note: user import has already run successfully')); |
458 | 458 | watchdog( |
459 | - 'boincimport', 'Note: user import has already run successfully', |
|
460 | - array(), WATCHDOG_INFO |
|
459 | + 'boincimport', 'Note: user import has already run successfully', |
|
460 | + array(), WATCHDOG_INFO |
|
461 | 461 | ); |
462 | - } |
|
462 | + } |
|
463 | 463 | |
464 | - if (!variable_get('boincimport_import_user_started', 0)) { |
|
464 | + if (!variable_get('boincimport_import_user_started', 0)) { |
|
465 | 465 | // Could prepare database tables, if new fields are necessary, etc. |
466 | 466 | variable_set('boincimport_import_user_started', 1); |
467 | - } |
|
467 | + } |
|
468 | 468 | |
469 | - $pre = variable_get('boincimport_table_prefix', ''); |
|
470 | - $import_lurkers = variable_get('boincimport_import_lurkers', 1); |
|
469 | + $pre = variable_get('boincimport_table_prefix', ''); |
|
470 | + $import_lurkers = variable_get('boincimport_import_lurkers', 1); |
|
471 | 471 | |
472 | - // Determine which users need to be processed |
|
473 | - db_set_active('boinc_rw'); |
|
474 | - if ($import_lurkers) { |
|
472 | + // Determine which users need to be processed |
|
473 | + db_set_active('boinc_rw'); |
|
474 | + if ($import_lurkers) { |
|
475 | 475 | // Import all users, even those who have no community participation; other |
476 | 476 | // users will be imported when they first try to log into the drupal site |
477 | 477 | $boinc_accounts = db_query(' |
@@ -479,8 +479,8 @@ discard block |
||
479 | 479 | ORDER BY id ASC' |
480 | 480 | ); |
481 | 481 | $user_count = mysqli_num_rows($boinc_accounts); |
482 | - } |
|
483 | - else { |
|
482 | + } |
|
483 | + else { |
|
484 | 484 | // Need to import any user who is currently ignored in order to keep them |
485 | 485 | // ignored... not particularly clean (ignored users are stored in a string) |
486 | 486 | $ignored_user_list = array(0); |
@@ -491,7 +491,7 @@ discard block |
||
491 | 491 | ORDER BY userid ASC" |
492 | 492 | ); |
493 | 493 | while ($ignoring_user = db_fetch_object($ignoring_users)) { |
494 | - $ignored_user_list = $ignored_user_list + array_fill_keys(explode('|', trim($ignoring_user->ignorelist, '|')), 1); |
|
494 | + $ignored_user_list = $ignored_user_list + array_fill_keys(explode('|', trim($ignoring_user->ignorelist, '|')), 1); |
|
495 | 495 | } |
496 | 496 | $ignored_user_list = array_keys($ignored_user_list); |
497 | 497 | // Get IDs for all users who will need to be imported now |
@@ -507,86 +507,86 @@ discard block |
||
507 | 507 | (SELECT DISTINCT userid FROM {private_messages}) UNION |
508 | 508 | (SELECT DISTINCT senderid FROM {private_messages}) |
509 | 509 | ) AS usersToImport", |
510 | - implode(',', $ignored_user_list) |
|
510 | + implode(',', $ignored_user_list) |
|
511 | 511 | ); |
512 | 512 | $user_count = mysqli_num_rows($boinc_accounts); |
513 | - } |
|
514 | - db_set_active('default'); |
|
513 | + } |
|
514 | + db_set_active('default'); |
|
515 | 515 | |
516 | - if (!$user_count) { |
|
516 | + if (!$user_count) { |
|
517 | 517 | drupal_set_message( |
518 | - t('There were no users found: Aborting script'), 'error' |
|
518 | + t('There were no users found: Aborting script'), 'error' |
|
519 | 519 | ); |
520 | 520 | watchdog('boincimport', |
521 | - 'There were no users found: Aborting script', array(), WATCHDOG_INFO |
|
521 | + 'There were no users found: Aborting script', array(), WATCHDOG_INFO |
|
522 | 522 | ); |
523 | 523 | // Release the lock on the import process |
524 | 524 | variable_del('boincimport_process_locked'); |
525 | 525 | return t('There were no users found: Aborting script.'); |
526 | - } |
|
526 | + } |
|
527 | 527 | |
528 | - watchdog('boincimport', |
|
528 | + watchdog('boincimport', |
|
529 | 529 | 'Found %user_count users: Beginning import', |
530 | 530 | array('%user_count' => $user_count), WATCHDOG_INFO |
531 | - ); |
|
532 | - |
|
533 | - // User import relies on Drupal and BOINC APIs to manage data being read |
|
534 | - // from one database and saved to the other. This approach keeps things |
|
535 | - // clean and simple, but since a sizable user base will wreak havoc on system |
|
536 | - // resources, the job is broken into batches here and each batch is processed |
|
537 | - // by a separate process. |
|
538 | - |
|
539 | - //$batch_size = variable_get('boincimport_user_batch_size', 50); |
|
540 | - //$batch_count = $user_count - ($user_count % $batch_size) + $batch_size; |
|
541 | - $operations = array(); |
|
542 | - $existing_users = array(); |
|
543 | - $duplicates = array(); |
|
544 | - |
|
545 | - // Get the list of users already in Drupal to be sure we're not importing |
|
546 | - // any twice |
|
547 | - $result = db_query(' |
|
531 | + ); |
|
532 | + |
|
533 | + // User import relies on Drupal and BOINC APIs to manage data being read |
|
534 | + // from one database and saved to the other. This approach keeps things |
|
535 | + // clean and simple, but since a sizable user base will wreak havoc on system |
|
536 | + // resources, the job is broken into batches here and each batch is processed |
|
537 | + // by a separate process. |
|
538 | + |
|
539 | + //$batch_size = variable_get('boincimport_user_batch_size', 50); |
|
540 | + //$batch_count = $user_count - ($user_count % $batch_size) + $batch_size; |
|
541 | + $operations = array(); |
|
542 | + $existing_users = array(); |
|
543 | + $duplicates = array(); |
|
544 | + |
|
545 | + // Get the list of users already in Drupal to be sure we're not importing |
|
546 | + // any twice |
|
547 | + $result = db_query(' |
|
548 | 548 | SELECT uid, boinc_id FROM {boincuser}' |
549 | - ); |
|
550 | - while ($row = db_fetch_object($result)) { |
|
549 | + ); |
|
550 | + while ($row = db_fetch_object($result)) { |
|
551 | 551 | $existing_users[$row->boinc_id] = $row->uid; |
552 | - } |
|
552 | + } |
|
553 | 553 | |
554 | - // Create batches to process |
|
555 | - while ($boinc_account = db_fetch_object($boinc_accounts)) { |
|
556 | - if (isset($existing_users[$boinc_account->id])) { |
|
557 | - // This user has already been imported |
|
558 | - $duplicates[] = $boinc_account->id; |
|
554 | + // Create batches to process |
|
555 | + while ($boinc_account = db_fetch_object($boinc_accounts)) { |
|
556 | + if (isset($existing_users[$boinc_account->id])) { |
|
557 | + // This user has already been imported |
|
558 | + $duplicates[] = $boinc_account->id; |
|
559 | 559 | } |
560 | 560 | else { |
561 | - $operations[] = array( |
|
561 | + $operations[] = array( |
|
562 | 562 | 'boincimport_users_op', array( |
563 | - $boinc_account->id |
|
563 | + $boinc_account->id |
|
564 | 564 | ) |
565 | - ); |
|
565 | + ); |
|
566 | + } |
|
566 | 567 | } |
567 | - } |
|
568 | 568 | |
569 | - if ($duplicates) { |
|
569 | + if ($duplicates) { |
|
570 | 570 | drupal_set_message(t( |
571 | - 'Skipped @count accounts that were already imported', |
|
572 | - array('@count' => count($duplicates)) |
|
571 | + 'Skipped @count accounts that were already imported', |
|
572 | + array('@count' => count($duplicates)) |
|
573 | 573 | )); |
574 | 574 | watchdog('boincimport', |
575 | - 'Skipped @count accounts that were already imported', |
|
576 | - array('@count' => count($duplicates)), WATCHDOG_INFO |
|
575 | + 'Skipped @count accounts that were already imported', |
|
576 | + array('@count' => count($duplicates)), WATCHDOG_INFO |
|
577 | 577 | ); |
578 | - } |
|
578 | + } |
|
579 | 579 | |
580 | - $batch = array( |
|
580 | + $batch = array( |
|
581 | 581 | 'operations' => $operations, |
582 | 582 | 'finished' => 'boincimport_users_finished', |
583 | 583 | 'title' => t('Importing users'), |
584 | 584 | 'init_message' => t('Beginning user import...'), |
585 | 585 | 'progress_message' => t('Processed @current out of @total users.'), |
586 | 586 | 'error_message' => t('User import has encountered an error.'), |
587 | - ); |
|
587 | + ); |
|
588 | 588 | |
589 | - batch_set($batch); |
|
589 | + batch_set($batch); |
|
590 | 590 | } |
591 | 591 | |
592 | 592 | /** |
@@ -594,81 +594,81 @@ discard block |
||
594 | 594 | */ |
595 | 595 | function boincimport_users_op($boinc_id, &$context) { |
596 | 596 | |
597 | - // Use the $context['sandbox'] to store information needed to track progress |
|
598 | - // between successive calls. |
|
599 | - if (!isset($context['sandbox']['progress'])) { |
|
597 | + // Use the $context['sandbox'] to store information needed to track progress |
|
598 | + // between successive calls. |
|
599 | + if (!isset($context['sandbox']['progress'])) { |
|
600 | 600 | $context['sandbox']['progress'] = 0; |
601 | 601 | $context['sandbox']['current_user'] = 0; |
602 | 602 | $context['sandbox']['max'] = 1; |
603 | - } |
|
603 | + } |
|
604 | 604 | |
605 | - // Note about batch size: When a batch is processed, the batch update engine |
|
606 | - // determines whether it should continue processing in the same request or |
|
607 | - // provide progress feedback to the user and wait for the next request. |
|
605 | + // Note about batch size: When a batch is processed, the batch update engine |
|
606 | + // determines whether it should continue processing in the same request or |
|
607 | + // provide progress feedback to the user and wait for the next request. |
|
608 | 608 | |
609 | - // Grab the BOINC user object and create a Drupal user from it |
|
610 | - $account = boincuser_register_make_drupal_user($boinc_id); |
|
611 | - $message = ''; |
|
612 | - if ($account) { |
|
609 | + // Grab the BOINC user object and create a Drupal user from it |
|
610 | + $account = boincuser_register_make_drupal_user($boinc_id); |
|
611 | + $message = ''; |
|
612 | + if ($account) { |
|
613 | 613 | // Store some result for post-processing in the finished callback. |
614 | 614 | $context['results']['success'][] = $boinc_id; |
615 | 615 | $message = "Successfully imported user {$boinc_id}"; |
616 | - } |
|
617 | - else { |
|
616 | + } |
|
617 | + else { |
|
618 | 618 | $context['results']['failure'][] = $boinc_id; |
619 | 619 | $message = "Failed to import user {$boinc_id}!"; |
620 | 620 | watchdog('boincimport', |
621 | - 'Failed to import user @id!', |
|
622 | - array('@id' => $boinc_id), WATCHDOG_WARNING |
|
621 | + 'Failed to import user @id!', |
|
622 | + array('@id' => $boinc_id), WATCHDOG_WARNING |
|
623 | 623 | ); |
624 | - } |
|
624 | + } |
|
625 | 625 | |
626 | - // Update our progress information. |
|
627 | - $context['sandbox']['progress']++; |
|
628 | - $context['sandbox']['current_user'] = $boinc_id; |
|
629 | - $context['message'] = $message; |
|
626 | + // Update our progress information. |
|
627 | + $context['sandbox']['progress']++; |
|
628 | + $context['sandbox']['current_user'] = $boinc_id; |
|
629 | + $context['message'] = $message; |
|
630 | 630 | |
631 | - // Update the progress for the batch engine |
|
632 | - if ($context['sandbox']['progress'] >= $context['sandbox']['max']) { |
|
631 | + // Update the progress for the batch engine |
|
632 | + if ($context['sandbox']['progress'] >= $context['sandbox']['max']) { |
|
633 | 633 | $context['finished'] = 1; |
634 | - } |
|
635 | - else { |
|
634 | + } |
|
635 | + else { |
|
636 | 636 | $context['finished'] = $context['sandbox']['progress'] / $context['sandbox']['max']; |
637 | - } |
|
637 | + } |
|
638 | 638 | } |
639 | 639 | |
640 | 640 | /** |
641 | 641 | * Batch 'finished' callback |
642 | 642 | */ |
643 | 643 | function boincimport_users_finished($success, $results, $operations) { |
644 | - if ($success) { |
|
644 | + if ($success) { |
|
645 | 645 | // Let's count our successes |
646 | 646 | $total_imported = count($results['success']); |
647 | 647 | $total_failures = count($results['failure']); |
648 | 648 | $message = t( |
649 | - 'Successfully imported @count users (@fail_count failures)', |
|
650 | - array('@count' => $total_imported, '@fail_count' => $total_failures) |
|
649 | + 'Successfully imported @count users (@fail_count failures)', |
|
650 | + array('@count' => $total_imported, '@fail_count' => $total_failures) |
|
651 | 651 | ); |
652 | 652 | watchdog('boincimport', |
653 | - 'Successfully imported @count users (@fail_count failures).', |
|
654 | - array('@count' => $total_imported, '@fail_count' => $total_failures), |
|
655 | - WATCHDOG_INFO |
|
653 | + 'Successfully imported @count users (@fail_count failures).', |
|
654 | + array('@count' => $total_imported, '@fail_count' => $total_failures), |
|
655 | + WATCHDOG_INFO |
|
656 | 656 | ); |
657 | 657 | // Set the user import successful flag in the variable table |
658 | 658 | variable_set('boincimport_import_user_successful', '1'); |
659 | 659 | $_SESSION['boincimport_stage_selected'] = 'teams'; |
660 | - } |
|
661 | - else { |
|
660 | + } |
|
661 | + else { |
|
662 | 662 | // An error occurred. |
663 | 663 | // $operations contains the operations that remained unprocessed. |
664 | 664 | $error_operation = reset($operations); |
665 | 665 | $message = 'An error occurred while processing ' . $error_operation[0] . ' with arguments :' . print_r($error_operation[0], TRUE); |
666 | - } |
|
667 | - drupal_set_message($message); |
|
666 | + } |
|
667 | + drupal_set_message($message); |
|
668 | 668 | |
669 | - // Release the lock on the import process |
|
670 | - variable_del('boincimport_process_locked'); |
|
671 | - drupal_goto('admin/boinc/import/process'); |
|
669 | + // Release the lock on the import process |
|
670 | + variable_del('boincimport_process_locked'); |
|
671 | + drupal_goto('admin/boinc/import/process'); |
|
672 | 672 | } |
673 | 673 | |
674 | 674 | |
@@ -681,23 +681,23 @@ discard block |
||
681 | 681 | */ |
682 | 682 | function boincimport_teams() { |
683 | 683 | |
684 | - // Check whether the team table has been successfully imported already |
|
685 | - if (variable_get('boincimport_import_team_successful', 0)) { |
|
684 | + // Check whether the team table has been successfully imported already |
|
685 | + if (variable_get('boincimport_import_team_successful', 0)) { |
|
686 | 686 | drupal_set_message(t('Note: team import has already run successfully')); |
687 | 687 | watchdog( |
688 | - 'boincimport', 'Note: team import has already run successfully', |
|
689 | - array(), WATCHDOG_INFO |
|
688 | + 'boincimport', 'Note: team import has already run successfully', |
|
689 | + array(), WATCHDOG_INFO |
|
690 | 690 | ); |
691 | - } |
|
691 | + } |
|
692 | 692 | |
693 | - if (!variable_get('boincimport_import_team_started', 0)) { |
|
693 | + if (!variable_get('boincimport_import_team_started', 0)) { |
|
694 | 694 | // Could prepare database tables, if new fields are necessary, etc. |
695 | 695 | variable_set('boincimport_import_team_started', 1); |
696 | - } |
|
696 | + } |
|
697 | 697 | |
698 | - // Initialize the map of BOINC team types to taxonomy IDs, if needed |
|
699 | - $team_type_map = variable_get('boincimport_team_types', array()); |
|
700 | - if (!$team_type_map) { |
|
698 | + // Initialize the map of BOINC team types to taxonomy IDs, if needed |
|
699 | + $team_type_map = variable_get('boincimport_team_types', array()); |
|
700 | + if (!$team_type_map) { |
|
701 | 701 | // Import team types from BOINC to a Drupal vocabulary |
702 | 702 | require_boinc('team_types'); |
703 | 703 | global $team_types; |
@@ -705,112 +705,112 @@ discard block |
||
705 | 705 | // Create vocabulary if it isn't set |
706 | 706 | $team_vid = db_result(db_query('SELECT vid FROM {vocabulary} WHERE name="%s"', 'Teams')); |
707 | 707 | if (!$team_vid) { |
708 | - $team_vocab = array( |
|
708 | + $team_vocab = array( |
|
709 | 709 | 'name' => t('Teams'), |
710 | 710 | 'description' => t('Types of BOINC teams'), |
711 | - ); |
|
712 | - taxonomy_save_vocabulary($team_vocab); |
|
713 | - $team_vid = db_result(db_query('SELECT vid FROM {vocabulary} WHERE name="%s"', 'Teams')); |
|
711 | + ); |
|
712 | + taxonomy_save_vocabulary($team_vocab); |
|
713 | + $team_vid = db_result(db_query('SELECT vid FROM {vocabulary} WHERE name="%s"', 'Teams')); |
|
714 | 714 | } |
715 | 715 | |
716 | 716 | foreach ($team_types as $boinc_type_id => $name) { |
717 | - // Check for an existing term in the vocabulary |
|
718 | - $team_type_id = db_result(db_query("SELECT tid FROM {term_data} WHERE vid = '{$team_vid}' AND LOWER(name) = LOWER('%s')", trim($name))); |
|
719 | - if ($team_type_id) { |
|
717 | + // Check for an existing term in the vocabulary |
|
718 | + $team_type_id = db_result(db_query("SELECT tid FROM {term_data} WHERE vid = '{$team_vid}' AND LOWER(name) = LOWER('%s')", trim($name))); |
|
719 | + if ($team_type_id) { |
|
720 | 720 | $team_type = array( |
721 | - 'tid' => $team_type_id |
|
721 | + 'tid' => $team_type_id |
|
722 | 722 | ); |
723 | - } |
|
724 | - else { |
|
723 | + } |
|
724 | + else { |
|
725 | 725 | if (!$name) continue; |
726 | 726 | $team_type = array( |
727 | - 'name' => strip_tags($name), |
|
728 | - 'vid' => $team_vid, |
|
729 | - 'description' => '', |
|
730 | - 'parent' => 0 |
|
727 | + 'name' => strip_tags($name), |
|
728 | + 'vid' => $team_vid, |
|
729 | + 'description' => '', |
|
730 | + 'parent' => 0 |
|
731 | 731 | ); |
732 | 732 | taxonomy_save_term($team_type); |
733 | - } |
|
734 | - // Note the taxonomy ID for mapping forums to categories |
|
735 | - $team_type_map[$boinc_type_id] = $team_type['tid']; |
|
733 | + } |
|
734 | + // Note the taxonomy ID for mapping forums to categories |
|
735 | + $team_type_map[$boinc_type_id] = $team_type['tid']; |
|
736 | 736 | } |
737 | 737 | variable_set('boincimport_team_types', $team_type_map); |
738 | - } |
|
738 | + } |
|
739 | 739 | |
740 | - $pre = variable_get('boincimport_table_prefix', ''); |
|
740 | + $pre = variable_get('boincimport_table_prefix', ''); |
|
741 | 741 | |
742 | - // Get the list of teams to import |
|
743 | - db_set_active('boinc_rw'); |
|
744 | - $boinc_teams = db_query(' |
|
742 | + // Get the list of teams to import |
|
743 | + db_set_active('boinc_rw'); |
|
744 | + $boinc_teams = db_query(' |
|
745 | 745 | SELECT id, name, description, userid, create_time |
746 | 746 | FROM %steam', |
747 | 747 | $pre |
748 | - ); |
|
749 | - $team_count = mysqli_num_rows($boinc_teams); |
|
750 | - db_set_active('default'); |
|
748 | + ); |
|
749 | + $team_count = mysqli_num_rows($boinc_teams); |
|
750 | + db_set_active('default'); |
|
751 | 751 | |
752 | - if (!$team_count) { |
|
752 | + if (!$team_count) { |
|
753 | 753 | drupal_set_message( |
754 | - t('There were no teams found: Aborting script'), 'error' |
|
754 | + t('There were no teams found: Aborting script'), 'error' |
|
755 | 755 | ); |
756 | 756 | watchdog('boincimport', |
757 | - 'There were no teams found: Aborting script', array(), WATCHDOG_INFO |
|
757 | + 'There were no teams found: Aborting script', array(), WATCHDOG_INFO |
|
758 | 758 | ); |
759 | 759 | // Release the lock on the import process |
760 | 760 | variable_del('boincimport_process_locked'); |
761 | 761 | return t('There were no teams found: Aborting script.'); |
762 | - } |
|
762 | + } |
|
763 | 763 | |
764 | - watchdog('boincimport', |
|
764 | + watchdog('boincimport', |
|
765 | 765 | 'Found %team_count teams: Beginning Import', |
766 | 766 | array('%team_count' => $team_count), WATCHDOG_INFO |
767 | - ); |
|
767 | + ); |
|
768 | 768 | |
769 | - $operations = array(); |
|
770 | - $existing_teams = array(); |
|
771 | - $duplicates = array(); |
|
769 | + $operations = array(); |
|
770 | + $existing_teams = array(); |
|
771 | + $duplicates = array(); |
|
772 | 772 | |
773 | - // Get the list of teams already in Drupal to be sure we're not importing |
|
774 | - // any twice |
|
775 | - $result = db_query(' |
|
773 | + // Get the list of teams already in Drupal to be sure we're not importing |
|
774 | + // any twice |
|
775 | + $result = db_query(' |
|
776 | 776 | SELECT nid, team_id FROM {boincteam}' |
777 | - ); |
|
778 | - while ($row = db_fetch_object($result)) { |
|
777 | + ); |
|
778 | + while ($row = db_fetch_object($result)) { |
|
779 | 779 | $existing_teams[$row->team_id] = $row->nid; |
780 | - } |
|
780 | + } |
|
781 | 781 | |
782 | - // Create batches to process |
|
783 | - while ($boinc_team = db_fetch_object($boinc_teams)) { |
|
784 | - if (isset($existing_teams[$boinc_team->id])) { |
|
785 | - // This team has already been imported |
|
786 | - $duplicates[] = $boinc_team->id; |
|
782 | + // Create batches to process |
|
783 | + while ($boinc_team = db_fetch_object($boinc_teams)) { |
|
784 | + if (isset($existing_teams[$boinc_team->id])) { |
|
785 | + // This team has already been imported |
|
786 | + $duplicates[] = $boinc_team->id; |
|
787 | 787 | } |
788 | 788 | else { |
789 | - $operations[] = array( |
|
789 | + $operations[] = array( |
|
790 | 790 | 'boincimport_teams_op', array( |
791 | - $boinc_team |
|
791 | + $boinc_team |
|
792 | 792 | ) |
793 | - ); |
|
793 | + ); |
|
794 | + } |
|
794 | 795 | } |
795 | - } |
|
796 | 796 | |
797 | - if ($duplicates) { |
|
797 | + if ($duplicates) { |
|
798 | 798 | drupal_set_message(t( |
799 | - 'Skipped @count teams that were already imported', |
|
800 | - array('@count' => count($duplicates)) |
|
799 | + 'Skipped @count teams that were already imported', |
|
800 | + array('@count' => count($duplicates)) |
|
801 | 801 | )); |
802 | - } |
|
802 | + } |
|
803 | 803 | |
804 | - $batch = array( |
|
804 | + $batch = array( |
|
805 | 805 | 'operations' => $operations, |
806 | 806 | 'finished' => 'boincimport_teams_finished', |
807 | 807 | 'title' => t('Importing teams'), |
808 | 808 | 'init_message' => t('Beginning team import...'), |
809 | 809 | 'progress_message' => t('Processed @current out of @total teams.'), |
810 | 810 | 'error_message' => t('Team import has encountered an error.'), |
811 | - ); |
|
811 | + ); |
|
812 | 812 | |
813 | - batch_set($batch); |
|
813 | + batch_set($batch); |
|
814 | 814 | } |
815 | 815 | |
816 | 816 | /** |
@@ -819,67 +819,67 @@ discard block |
||
819 | 819 | */ |
820 | 820 | function boincimport_teams_op($boincteam, &$context) { |
821 | 821 | |
822 | - $success = boincteam_import($boincteam); |
|
822 | + $success = boincteam_import($boincteam); |
|
823 | 823 | |
824 | - $message = ''; |
|
825 | - if ($success) { |
|
824 | + $message = ''; |
|
825 | + if ($success) { |
|
826 | 826 | // Store some result for post-processing in the finished callback. |
827 | 827 | $context['results']['success'][] = $boincteam->id; |
828 | 828 | $message = "Successfully imported team {$boincteam->id}"; |
829 | - } |
|
830 | - else { |
|
829 | + } |
|
830 | + else { |
|
831 | 831 | $context['results']['failure'][] = $boincteam->id; |
832 | 832 | $message = "Failed to import team {$boincteam->id}!"; |
833 | 833 | watchdog('boincimport', |
834 | - 'Failed to import team @id!', |
|
835 | - array('@id' => $boincteam->id), WATCHDOG_WARNING |
|
834 | + 'Failed to import team @id!', |
|
835 | + array('@id' => $boincteam->id), WATCHDOG_WARNING |
|
836 | 836 | ); |
837 | - } |
|
837 | + } |
|
838 | 838 | |
839 | - // Update our progress information. |
|
840 | - $context['sandbox']['progress']++; |
|
841 | - $context['sandbox']['current_team'] = $boincteam->id; |
|
842 | - $context['message'] = $message; |
|
839 | + // Update our progress information. |
|
840 | + $context['sandbox']['progress']++; |
|
841 | + $context['sandbox']['current_team'] = $boincteam->id; |
|
842 | + $context['message'] = $message; |
|
843 | 843 | |
844 | - // Update the progress for the batch engine |
|
845 | - if ($context['sandbox']['progress'] >= $context['sandbox']['max']) { |
|
844 | + // Update the progress for the batch engine |
|
845 | + if ($context['sandbox']['progress'] >= $context['sandbox']['max']) { |
|
846 | 846 | $context['finished'] = 1; |
847 | - } |
|
848 | - else { |
|
847 | + } |
|
848 | + else { |
|
849 | 849 | $context['finished'] = $context['sandbox']['progress'] / $context['sandbox']['max']; |
850 | - } |
|
850 | + } |
|
851 | 851 | } |
852 | 852 | |
853 | 853 | /** |
854 | 854 | * Batch 'finished' callback |
855 | 855 | */ |
856 | 856 | function boincimport_teams_finished($success, $results, $operations) { |
857 | - if ($success) { |
|
857 | + if ($success) { |
|
858 | 858 | // Let's count our successes |
859 | 859 | $total_imported = count($results['success']); |
860 | 860 | $message = t( |
861 | - 'Successfully imported @count teams', |
|
862 | - array('@count' => $total_imported) |
|
861 | + 'Successfully imported @count teams', |
|
862 | + array('@count' => $total_imported) |
|
863 | 863 | ); |
864 | 864 | watchdog('boincimport', |
865 | - 'Successfully imported @count teams.', |
|
866 | - array('@count' => $total_imported), WATCHDOG_INFO |
|
865 | + 'Successfully imported @count teams.', |
|
866 | + array('@count' => $total_imported), WATCHDOG_INFO |
|
867 | 867 | ); |
868 | 868 | // Set the team import successful flag in the variable table |
869 | 869 | variable_set('boincimport_import_team_successful', '1'); |
870 | 870 | $_SESSION['boincimport_stage_selected'] = 'friends'; |
871 | - } |
|
872 | - else { |
|
871 | + } |
|
872 | + else { |
|
873 | 873 | // An error occurred. |
874 | 874 | // $operations contains the operations that remained unprocessed. |
875 | 875 | $error_operation = reset($operations); |
876 | 876 | $message = 'An error occurred while processing ' . $error_operation[0] . ' with arguments :' . print_r($error_operation[0], TRUE); |
877 | - } |
|
878 | - drupal_set_message($message); |
|
877 | + } |
|
878 | + drupal_set_message($message); |
|
879 | 879 | |
880 | - // Release the lock on the import process |
|
881 | - variable_del('boincimport_process_locked'); |
|
882 | - drupal_goto('admin/boinc/import/process'); |
|
880 | + // Release the lock on the import process |
|
881 | + variable_del('boincimport_process_locked'); |
|
882 | + drupal_goto('admin/boinc/import/process'); |
|
883 | 883 | } |
884 | 884 | |
885 | 885 | |
@@ -892,25 +892,25 @@ discard block |
||
892 | 892 | */ |
893 | 893 | function boincimport_friends() { |
894 | 894 | |
895 | - // Check whether friendships have been successfully imported already |
|
896 | - if (variable_get('boincimport_import_friend_successful', 0)) { |
|
895 | + // Check whether friendships have been successfully imported already |
|
896 | + if (variable_get('boincimport_import_friend_successful', 0)) { |
|
897 | 897 | drupal_set_message(t('Note: Friends import has already run successfully')); |
898 | 898 | watchdog( |
899 | - 'boincimport', 'Note: Friends import has already run successfully', |
|
900 | - array(), WATCHDOG_INFO |
|
899 | + 'boincimport', 'Note: Friends import has already run successfully', |
|
900 | + array(), WATCHDOG_INFO |
|
901 | 901 | ); |
902 | - } |
|
902 | + } |
|
903 | 903 | |
904 | - if (!variable_get('boincimport_import_friend_started', 0)) { |
|
904 | + if (!variable_get('boincimport_import_friend_started', 0)) { |
|
905 | 905 | // Could prepare database tables, if new fields are necessary, etc. |
906 | 906 | variable_set('boincimport_import_friend_started', 1); |
907 | - } |
|
907 | + } |
|
908 | 908 | |
909 | - $pre = variable_get('boincimport_table_prefix', ''); |
|
909 | + $pre = variable_get('boincimport_table_prefix', ''); |
|
910 | 910 | |
911 | - // Get stuff to import |
|
912 | - db_set_active('boinc_rw'); |
|
913 | - $friendships = db_query(' |
|
911 | + // Get stuff to import |
|
912 | + db_set_active('boinc_rw'); |
|
913 | + $friendships = db_query(' |
|
914 | 914 | SELECT |
915 | 915 | f1.user_src, |
916 | 916 | f1.user_dest, |
@@ -924,51 +924,51 @@ discard block |
||
924 | 924 | AND (f2.user_src IS NULL OR f1.create_time < f2.create_time) |
925 | 925 | ORDER BY create_time', |
926 | 926 | $pre, $pre |
927 | - ); |
|
928 | - $friendship_count = mysqli_num_rows($friendships); |
|
929 | - db_set_active('default'); |
|
927 | + ); |
|
928 | + $friendship_count = mysqli_num_rows($friendships); |
|
929 | + db_set_active('default'); |
|
930 | 930 | |
931 | - if (!$friendship_count) { |
|
931 | + if (!$friendship_count) { |
|
932 | 932 | drupal_set_message( |
933 | - t('There were no friendships found: Aborting script'), 'error' |
|
933 | + t('There were no friendships found: Aborting script'), 'error' |
|
934 | 934 | ); |
935 | 935 | watchdog('boincimport', |
936 | - 'There were no friendships found: Aborting script', array(), WATCHDOG_INFO |
|
936 | + 'There were no friendships found: Aborting script', array(), WATCHDOG_INFO |
|
937 | 937 | ); |
938 | 938 | // Release the lock on the import process |
939 | 939 | variable_del('boincimport_process_locked'); |
940 | 940 | return t('There were no friendships found: Aborting script.'); |
941 | - } |
|
941 | + } |
|
942 | 942 | |
943 | - watchdog('boincimport', |
|
943 | + watchdog('boincimport', |
|
944 | 944 | 'Found %count friend relationships: Beginning Import', |
945 | 945 | array('%count' => $friendship_count), WATCHDOG_INFO |
946 | - ); |
|
946 | + ); |
|
947 | 947 | |
948 | - $operations = array(); |
|
948 | + $operations = array(); |
|
949 | 949 | |
950 | - // It doesn't matter if a friend relationship has already been imported, just |
|
951 | - // do it again if so |
|
950 | + // It doesn't matter if a friend relationship has already been imported, just |
|
951 | + // do it again if so |
|
952 | 952 | |
953 | - // Create batches to process |
|
954 | - while ($friendship = db_fetch_object($friendships)) { |
|
953 | + // Create batches to process |
|
954 | + while ($friendship = db_fetch_object($friendships)) { |
|
955 | 955 | $operations[] = array( |
956 | - 'boincimport_friends_op', array( |
|
956 | + 'boincimport_friends_op', array( |
|
957 | 957 | $friendship |
958 | - ) |
|
958 | + ) |
|
959 | 959 | ); |
960 | - } |
|
960 | + } |
|
961 | 961 | |
962 | - $batch = array( |
|
962 | + $batch = array( |
|
963 | 963 | 'operations' => $operations, |
964 | 964 | 'finished' => 'boincimport_friends_finished', |
965 | 965 | 'title' => t('Importing friend relationships'), |
966 | 966 | 'init_message' => t('Beginning friend import...'), |
967 | 967 | 'progress_message' => t('Processed @current out of @total friendships.'), |
968 | 968 | 'error_message' => t('Friend import has encountered an error.'), |
969 | - ); |
|
969 | + ); |
|
970 | 970 | |
971 | - batch_set($batch); |
|
971 | + batch_set($batch); |
|
972 | 972 | } |
973 | 973 | |
974 | 974 | /** |
@@ -977,83 +977,83 @@ discard block |
||
977 | 977 | */ |
978 | 978 | function boincimport_friends_op($friendship, &$context) { |
979 | 979 | |
980 | - $input_format = variable_get('boincimport_input_format', 0); |
|
981 | - $success = FALSE; |
|
982 | - $message = ''; |
|
980 | + $input_format = variable_get('boincimport_input_format', 0); |
|
981 | + $success = FALSE; |
|
982 | + $message = ''; |
|
983 | 983 | |
984 | - // Convert BOINC friends to Drupal friends |
|
985 | - $uid = boincuser_lookup_uid($friendship->user_src); |
|
986 | - $friend_uid = boincuser_lookup_uid($friendship->user_dest); |
|
987 | - if ($uid AND $friend_uid) { |
|
984 | + // Convert BOINC friends to Drupal friends |
|
985 | + $uid = boincuser_lookup_uid($friendship->user_src); |
|
986 | + $friend_uid = boincuser_lookup_uid($friendship->user_dest); |
|
987 | + if ($uid AND $friend_uid) { |
|
988 | 988 | $success = db_query(" |
989 | 989 | INSERT IGNORE INTO {flag_friend} |
990 | 990 | SET uid = '%d', friend_uid = '%d', created = '%d'", |
991 | - $uid, $friend_uid, $friendship->create_time |
|
991 | + $uid, $friend_uid, $friendship->create_time |
|
992 | 992 | ); |
993 | - } |
|
994 | - else { |
|
993 | + } |
|
994 | + else { |
|
995 | 995 | $boinc_id = ($uid) ? $friendship->user_dest : $friendship->user_src; |
996 | 996 | $message = "No Drupal account exists for BOINC user {$boinc_id}!"; |
997 | - } |
|
997 | + } |
|
998 | 998 | |
999 | - if ($success) { |
|
999 | + if ($success) { |
|
1000 | 1000 | // Store some result for post-processing in the finished callback. |
1001 | 1001 | $context['results']['success'][] = $uid; |
1002 | 1002 | $message = "Successfully made users {$uid} and {$friend_uid} friends"; |
1003 | - } |
|
1004 | - else { |
|
1003 | + } |
|
1004 | + else { |
|
1005 | 1005 | $context['results']['failure'][] = $uid; |
1006 | 1006 | if (!$message) { |
1007 | - $message = "Failed to make users {$uid} and {$friend_uid} friends!"; |
|
1007 | + $message = "Failed to make users {$uid} and {$friend_uid} friends!"; |
|
1008 | 1008 | } |
1009 | 1009 | watchdog('boincimport', $message, array(), WATCHDOG_WARNING); |
1010 | - } |
|
1010 | + } |
|
1011 | 1011 | |
1012 | - // Update our progress information. |
|
1013 | - $context['sandbox']['progress']++; |
|
1014 | - $context['sandbox']['current_user'] = $uid; |
|
1015 | - $context['message'] = $message; |
|
1012 | + // Update our progress information. |
|
1013 | + $context['sandbox']['progress']++; |
|
1014 | + $context['sandbox']['current_user'] = $uid; |
|
1015 | + $context['message'] = $message; |
|
1016 | 1016 | |
1017 | - // Update the progress for the batch engine |
|
1018 | - if ($context['sandbox']['progress'] >= $context['sandbox']['max']) { |
|
1017 | + // Update the progress for the batch engine |
|
1018 | + if ($context['sandbox']['progress'] >= $context['sandbox']['max']) { |
|
1019 | 1019 | $context['finished'] = 1; |
1020 | - } |
|
1021 | - else { |
|
1020 | + } |
|
1021 | + else { |
|
1022 | 1022 | $context['finished'] = $context['sandbox']['progress'] / $context['sandbox']['max']; |
1023 | - } |
|
1023 | + } |
|
1024 | 1024 | } |
1025 | 1025 | |
1026 | 1026 | /** |
1027 | 1027 | * Batch 'finished' callback |
1028 | 1028 | */ |
1029 | 1029 | function boincimport_friends_finished($success, $results, $operations) { |
1030 | - if ($success) { |
|
1030 | + if ($success) { |
|
1031 | 1031 | // Let's count our successes |
1032 | 1032 | $total_imported = count($results['success']); |
1033 | 1033 | $failures = count($results['failure']); |
1034 | 1034 | $message = t( |
1035 | - 'Successfully imported @count friendships (@failed failures)', |
|
1036 | - array( |
|
1035 | + 'Successfully imported @count friendships (@failed failures)', |
|
1036 | + array( |
|
1037 | 1037 | '@count' => $total_imported, |
1038 | 1038 | '@failed' => $failures, |
1039 | - ) |
|
1039 | + ) |
|
1040 | 1040 | ); |
1041 | 1041 | watchdog('boincimport', $message, array(), WATCHDOG_INFO); |
1042 | 1042 | // Set the friend import successful flag in the variable table |
1043 | 1043 | variable_set('boincimport_import_friend_successful', '1'); |
1044 | 1044 | $_SESSION['boincimport_stage_selected'] = 'preferences'; |
1045 | - } |
|
1046 | - else { |
|
1045 | + } |
|
1046 | + else { |
|
1047 | 1047 | // An error occurred. |
1048 | 1048 | // $operations contains the operations that remained unprocessed. |
1049 | 1049 | $error_operation = reset($operations); |
1050 | 1050 | $message = 'An error occurred while processing ' . $error_operation[0] . ' with arguments :' . print_r($error_operation[0], TRUE); |
1051 | - } |
|
1052 | - drupal_set_message($message); |
|
1051 | + } |
|
1052 | + drupal_set_message($message); |
|
1053 | 1053 | |
1054 | - // Release the lock on the import process |
|
1055 | - variable_del('boincimport_process_locked'); |
|
1056 | - drupal_goto('admin/boinc/import/process'); |
|
1054 | + // Release the lock on the import process |
|
1055 | + variable_del('boincimport_process_locked'); |
|
1056 | + drupal_goto('admin/boinc/import/process'); |
|
1057 | 1057 | } |
1058 | 1058 | |
1059 | 1059 | |
@@ -1066,78 +1066,78 @@ discard block |
||
1066 | 1066 | */ |
1067 | 1067 | function boincimport_preferences() { |
1068 | 1068 | |
1069 | - // Check whether preferences have been successfully imported already |
|
1070 | - if (variable_get('boincimport_import_preferences_successful', 0)) { |
|
1069 | + // Check whether preferences have been successfully imported already |
|
1070 | + if (variable_get('boincimport_import_preferences_successful', 0)) { |
|
1071 | 1071 | drupal_set_message(t('Note: preferences import has already run successfully')); |
1072 | 1072 | watchdog( |
1073 | - 'boincimport', 'Note: preferences import has already run successfully', |
|
1074 | - array(), WATCHDOG_INFO |
|
1073 | + 'boincimport', 'Note: preferences import has already run successfully', |
|
1074 | + array(), WATCHDOG_INFO |
|
1075 | 1075 | ); |
1076 | - } |
|
1076 | + } |
|
1077 | 1077 | |
1078 | - if (!variable_get('boincimport_import_preferences_started', 0)) { |
|
1078 | + if (!variable_get('boincimport_import_preferences_started', 0)) { |
|
1079 | 1079 | // Could prepare database tables, if new fields are necessary, etc. |
1080 | 1080 | variable_set('boincimport_import_preferences_started', 1); |
1081 | - } |
|
1081 | + } |
|
1082 | 1082 | |
1083 | - $pre = variable_get('boincimport_table_prefix', ''); |
|
1083 | + $pre = variable_get('boincimport_table_prefix', ''); |
|
1084 | 1084 | |
1085 | - // Currently the only preferences being imported are BOINC "filtered users" |
|
1086 | - // This concept of users blocking other users when they don't get along maps |
|
1087 | - // to the Drupal ignore users module |
|
1085 | + // Currently the only preferences being imported are BOINC "filtered users" |
|
1086 | + // This concept of users blocking other users when they don't get along maps |
|
1087 | + // to the Drupal ignore users module |
|
1088 | 1088 | |
1089 | - // Find users who are involved in quarrels |
|
1090 | - db_set_active('boinc_rw'); |
|
1091 | - $quarrelers = db_query(" |
|
1089 | + // Find users who are involved in quarrels |
|
1090 | + db_set_active('boinc_rw'); |
|
1091 | + $quarrelers = db_query(" |
|
1092 | 1092 | SELECT userid, ignorelist |
1093 | 1093 | FROM %sforum_preferences |
1094 | 1094 | WHERE ignorelist <> ''", |
1095 | 1095 | $pre |
1096 | - ); |
|
1097 | - $quarreler_count = mysqli_num_rows($quarrelers); |
|
1098 | - db_set_active('default'); |
|
1096 | + ); |
|
1097 | + $quarreler_count = mysqli_num_rows($quarrelers); |
|
1098 | + db_set_active('default'); |
|
1099 | 1099 | |
1100 | - if (!$quarreler_count) { |
|
1100 | + if (!$quarreler_count) { |
|
1101 | 1101 | drupal_set_message( |
1102 | - t('There were no quarrels found: Moving on...') |
|
1102 | + t('There were no quarrels found: Moving on...') |
|
1103 | 1103 | ); |
1104 | 1104 | watchdog('boincimport', |
1105 | - 'There were no quarrels found: Moving on...', array(), WATCHDOG_INFO |
|
1105 | + 'There were no quarrels found: Moving on...', array(), WATCHDOG_INFO |
|
1106 | 1106 | ); |
1107 | 1107 | // Release the lock on the import process |
1108 | 1108 | variable_del('boincimport_process_locked'); |
1109 | 1109 | return t('There were no quarrels found: Moving on...'); |
1110 | - } |
|
1110 | + } |
|
1111 | 1111 | |
1112 | - watchdog('boincimport', |
|
1112 | + watchdog('boincimport', |
|
1113 | 1113 | 'Found %count quarreling users: Beginning Import', |
1114 | 1114 | array('%count' => $quarreler_count), WATCHDOG_INFO |
1115 | - ); |
|
1115 | + ); |
|
1116 | 1116 | |
1117 | - $operations = array(); |
|
1117 | + $operations = array(); |
|
1118 | 1118 | |
1119 | - // It doesn't matter if a filtered user preference has already been imported, |
|
1120 | - // just do it again if so |
|
1119 | + // It doesn't matter if a filtered user preference has already been imported, |
|
1120 | + // just do it again if so |
|
1121 | 1121 | |
1122 | - // Create batches to process |
|
1123 | - while ($quarreler = db_fetch_object($quarrelers)) { |
|
1122 | + // Create batches to process |
|
1123 | + while ($quarreler = db_fetch_object($quarrelers)) { |
|
1124 | 1124 | $operations[] = array( |
1125 | - 'boincimport_quarrels_op', array( |
|
1125 | + 'boincimport_quarrels_op', array( |
|
1126 | 1126 | $quarreler |
1127 | - ) |
|
1127 | + ) |
|
1128 | 1128 | ); |
1129 | - } |
|
1129 | + } |
|
1130 | 1130 | |
1131 | - $batch = array( |
|
1131 | + $batch = array( |
|
1132 | 1132 | 'operations' => $operations, |
1133 | 1133 | 'finished' => 'boincimport_preferences_finished', |
1134 | 1134 | 'title' => t('Importing preferences'), |
1135 | 1135 | 'init_message' => t('Beginning preference import...'), |
1136 | 1136 | 'progress_message' => t('Processed @current out of @total preferences.'), |
1137 | 1137 | 'error_message' => t('Preference import has encountered an error.'), |
1138 | - ); |
|
1138 | + ); |
|
1139 | 1139 | |
1140 | - batch_set($batch); |
|
1140 | + batch_set($batch); |
|
1141 | 1141 | } |
1142 | 1142 | |
1143 | 1143 | /** |
@@ -1146,99 +1146,99 @@ discard block |
||
1146 | 1146 | */ |
1147 | 1147 | function boincimport_quarrels_op($boinc_user, &$context) { |
1148 | 1148 | |
1149 | - $success = FALSE; |
|
1150 | - $uid = boincuser_lookup_uid($boinc_user->userid); |
|
1151 | - $ignored_users = explode('|', trim($boinc_user->ignorelist, '|')); |
|
1152 | - foreach ($ignored_users as $ignored_user) { |
|
1149 | + $success = FALSE; |
|
1150 | + $uid = boincuser_lookup_uid($boinc_user->userid); |
|
1151 | + $ignored_users = explode('|', trim($boinc_user->ignorelist, '|')); |
|
1152 | + foreach ($ignored_users as $ignored_user) { |
|
1153 | 1153 | $ignored_user_uid = boincuser_lookup_uid($ignored_user); |
1154 | 1154 | if (!$ignored_user_uid) { |
1155 | - $context['results']['warning'][] = "{$uid}:{$ignored_user_uid}"; |
|
1156 | - watchdog('boincimport', |
|
1155 | + $context['results']['warning'][] = "{$uid}:{$ignored_user_uid}"; |
|
1156 | + watchdog('boincimport', |
|
1157 | 1157 | 'Error adding to ignore list of user @uid: No Drupal ID found for BOINC user @boinc_id', |
1158 | 1158 | array('@boinc_id' => $ignored_user, '@uid' => $uid), |
1159 | 1159 | WATCHDOG_WARNING |
1160 | - ); |
|
1161 | - continue; |
|
1160 | + ); |
|
1161 | + continue; |
|
1162 | 1162 | } |
1163 | 1163 | $user_ignored = db_query(" |
1164 | 1164 | INSERT IGNORE INTO {ignore_user} |
1165 | 1165 | SET uid = '%d', iuid = '%d'", |
1166 | - $uid, $ignored_user_uid |
|
1166 | + $uid, $ignored_user_uid |
|
1167 | 1167 | ); |
1168 | 1168 | if ($user_ignored) { |
1169 | - $success = TRUE; |
|
1169 | + $success = TRUE; |
|
1170 | 1170 | } |
1171 | 1171 | else { |
1172 | - $context['results']['warning'][] = "{$uid}:{$ignored_user_uid}"; |
|
1173 | - watchdog('boincimport', |
|
1172 | + $context['results']['warning'][] = "{$uid}:{$ignored_user_uid}"; |
|
1173 | + watchdog('boincimport', |
|
1174 | 1174 | 'Could not add user @ignored_uid to the ignore list of user @uid', |
1175 | 1175 | array('@ignored_uid' => $ignored_user_uid, '@uid' => $uid), |
1176 | 1176 | WATCHDOG_WARNING |
1177 | - ); |
|
1177 | + ); |
|
1178 | + } |
|
1178 | 1179 | } |
1179 | - } |
|
1180 | 1180 | |
1181 | - $message = ''; |
|
1182 | - if ($success) { |
|
1181 | + $message = ''; |
|
1182 | + if ($success) { |
|
1183 | 1183 | // Store some result for post-processing in the finished callback. |
1184 | 1184 | $context['results']['success'][] = $uid; |
1185 | 1185 | $message = "Successfully imported ignored users for user {$uid}"; |
1186 | - } |
|
1187 | - else { |
|
1186 | + } |
|
1187 | + else { |
|
1188 | 1188 | $context['results']['failure'][] = $uid; |
1189 | 1189 | $message = "Failed to import any user filter preferences for user {$uid}!"; |
1190 | 1190 | watchdog('boincimport', |
1191 | - 'Failed to import any user filter preferences for user @id!', |
|
1192 | - array('@id' => $uid), WATCHDOG_WARNING |
|
1191 | + 'Failed to import any user filter preferences for user @id!', |
|
1192 | + array('@id' => $uid), WATCHDOG_WARNING |
|
1193 | 1193 | ); |
1194 | - } |
|
1194 | + } |
|
1195 | 1195 | |
1196 | - // Update our progress information. |
|
1197 | - $context['sandbox']['progress']++; |
|
1198 | - $context['sandbox']['current_user'] = $uid; |
|
1199 | - $context['message'] = $message; |
|
1196 | + // Update our progress information. |
|
1197 | + $context['sandbox']['progress']++; |
|
1198 | + $context['sandbox']['current_user'] = $uid; |
|
1199 | + $context['message'] = $message; |
|
1200 | 1200 | |
1201 | - // Update the progress for the batch engine |
|
1202 | - if ($context['sandbox']['progress'] >= $context['sandbox']['max']) { |
|
1201 | + // Update the progress for the batch engine |
|
1202 | + if ($context['sandbox']['progress'] >= $context['sandbox']['max']) { |
|
1203 | 1203 | $context['finished'] = 1; |
1204 | - } |
|
1205 | - else { |
|
1204 | + } |
|
1205 | + else { |
|
1206 | 1206 | $context['finished'] = $context['sandbox']['progress'] / $context['sandbox']['max']; |
1207 | - } |
|
1207 | + } |
|
1208 | 1208 | } |
1209 | 1209 | |
1210 | 1210 | /** |
1211 | 1211 | * Batch 'finished' callback |
1212 | 1212 | */ |
1213 | 1213 | function boincimport_preferences_finished($success, $results, $operations) { |
1214 | - if ($success) { |
|
1214 | + if ($success) { |
|
1215 | 1215 | // Let's count our successes |
1216 | 1216 | $total_imported = count($results['success']); |
1217 | 1217 | $total_warnings = count($results['warning']); |
1218 | 1218 | $message = t( |
1219 | - 'Successfully imported preferences for @count users (with @warn warnings)', |
|
1220 | - array('@count' => $total_imported, '@warn' => $total_warnings) |
|
1219 | + 'Successfully imported preferences for @count users (with @warn warnings)', |
|
1220 | + array('@count' => $total_imported, '@warn' => $total_warnings) |
|
1221 | 1221 | ); |
1222 | 1222 | watchdog('boincimport', |
1223 | - 'Successfully imported preferences for @count users (with @warn warnings)', |
|
1224 | - array('@count' => $total_imported, '@warn' => $total_warnings), |
|
1225 | - WATCHDOG_INFO |
|
1223 | + 'Successfully imported preferences for @count users (with @warn warnings)', |
|
1224 | + array('@count' => $total_imported, '@warn' => $total_warnings), |
|
1225 | + WATCHDOG_INFO |
|
1226 | 1226 | ); |
1227 | 1227 | // Set the preference import successful flag in the variable table |
1228 | 1228 | variable_set('boincimport_import_preferences_successful', '1'); |
1229 | 1229 | $_SESSION['boincimport_stage_selected'] = 'private messages'; |
1230 | - } |
|
1231 | - else { |
|
1230 | + } |
|
1231 | + else { |
|
1232 | 1232 | // An error occurred. |
1233 | 1233 | // $operations contains the operations that remained unprocessed. |
1234 | 1234 | $error_operation = reset($operations); |
1235 | 1235 | $message = 'An error occurred while processing ' . $error_operation[0] . ' with arguments :' . print_r($error_operation[0], TRUE); |
1236 | - } |
|
1237 | - drupal_set_message($message); |
|
1236 | + } |
|
1237 | + drupal_set_message($message); |
|
1238 | 1238 | |
1239 | - // Release the lock on the import process |
|
1240 | - variable_del('boincimport_process_locked'); |
|
1241 | - drupal_goto('admin/boinc/import/process'); |
|
1239 | + // Release the lock on the import process |
|
1240 | + variable_del('boincimport_process_locked'); |
|
1241 | + drupal_goto('admin/boinc/import/process'); |
|
1242 | 1242 | } |
1243 | 1243 | |
1244 | 1244 | |
@@ -1251,74 +1251,74 @@ discard block |
||
1251 | 1251 | */ |
1252 | 1252 | function boincimport_private_msgs() { |
1253 | 1253 | |
1254 | - // Check whether private messages have been successfully imported already |
|
1255 | - if (variable_get('boincimport_import_private_msg_successful', 0)) { |
|
1254 | + // Check whether private messages have been successfully imported already |
|
1255 | + if (variable_get('boincimport_import_private_msg_successful', 0)) { |
|
1256 | 1256 | drupal_set_message(t('Private message import has already run successfully -- repeating this process could result in duplicate messages!'), 'warning'); |
1257 | 1257 | watchdog( |
1258 | - 'boincimport', 'Private message import has already run successfully', |
|
1259 | - array(), WATCHDOG_WARNING |
|
1258 | + 'boincimport', 'Private message import has already run successfully', |
|
1259 | + array(), WATCHDOG_WARNING |
|
1260 | 1260 | ); |
1261 | 1261 | return; |
1262 | - } |
|
1262 | + } |
|
1263 | 1263 | |
1264 | - if (!variable_get('boincimport_import_private_msg_started', 0)) { |
|
1264 | + if (!variable_get('boincimport_import_private_msg_started', 0)) { |
|
1265 | 1265 | // Could prepare database tables, if new fields are necessary, etc. |
1266 | 1266 | variable_set('boincimport_import_private_msg_started', 1); |
1267 | - } |
|
1267 | + } |
|
1268 | 1268 | |
1269 | - $pre = variable_get('boincimport_table_prefix', ''); |
|
1269 | + $pre = variable_get('boincimport_table_prefix', ''); |
|
1270 | 1270 | |
1271 | - // Get stuff to import |
|
1272 | - db_set_active('boinc_rw'); |
|
1273 | - $boinc_private_msgs = db_query(' |
|
1271 | + // Get stuff to import |
|
1272 | + db_set_active('boinc_rw'); |
|
1273 | + $boinc_private_msgs = db_query(' |
|
1274 | 1274 | SELECT id, subject, content, userid, senderid, date, opened |
1275 | 1275 | FROM %sprivate_messages', |
1276 | 1276 | $pre |
1277 | - ); |
|
1278 | - $private_msg_count = mysqli_num_rows($boinc_private_msgs); |
|
1279 | - db_set_active('default'); |
|
1277 | + ); |
|
1278 | + $private_msg_count = mysqli_num_rows($boinc_private_msgs); |
|
1279 | + db_set_active('default'); |
|
1280 | 1280 | |
1281 | - if (!$private_msg_count) { |
|
1281 | + if (!$private_msg_count) { |
|
1282 | 1282 | drupal_set_message( |
1283 | - t('There were no private messages found: Moving on...') |
|
1283 | + t('There were no private messages found: Moving on...') |
|
1284 | 1284 | ); |
1285 | 1285 | watchdog('boincimport', |
1286 | - 'There were no private messages found: Moving on...', array(), WATCHDOG_INFO |
|
1286 | + 'There were no private messages found: Moving on...', array(), WATCHDOG_INFO |
|
1287 | 1287 | ); |
1288 | 1288 | // Release the lock on the import process |
1289 | 1289 | variable_del('boincimport_process_locked'); |
1290 | 1290 | return t('There were no private messages found: Moving on...'); |
1291 | - } |
|
1291 | + } |
|
1292 | 1292 | |
1293 | - watchdog('boincimport', |
|
1293 | + watchdog('boincimport', |
|
1294 | 1294 | 'Found %count private messages: Beginning Import', |
1295 | 1295 | array('%count' => $private_msg_count), WATCHDOG_INFO |
1296 | - ); |
|
1296 | + ); |
|
1297 | 1297 | |
1298 | - $operations = array(); |
|
1298 | + $operations = array(); |
|
1299 | 1299 | |
1300 | - // We don't know if a given private message has been imported already or not; |
|
1301 | - // if this is needed, a relation table must be added to the Drupal DB |
|
1300 | + // We don't know if a given private message has been imported already or not; |
|
1301 | + // if this is needed, a relation table must be added to the Drupal DB |
|
1302 | 1302 | |
1303 | - // Create batches to process |
|
1304 | - while ($boinc_private_msg = db_fetch_object($boinc_private_msgs)) { |
|
1303 | + // Create batches to process |
|
1304 | + while ($boinc_private_msg = db_fetch_object($boinc_private_msgs)) { |
|
1305 | 1305 | $operations[] = array( |
1306 | - 'boincimport_private_msgs_op', array( |
|
1306 | + 'boincimport_private_msgs_op', array( |
|
1307 | 1307 | $boinc_private_msg |
1308 | - ) |
|
1308 | + ) |
|
1309 | 1309 | ); |
1310 | - } |
|
1310 | + } |
|
1311 | 1311 | |
1312 | - $batch = array( |
|
1312 | + $batch = array( |
|
1313 | 1313 | 'operations' => $operations, |
1314 | 1314 | 'finished' => 'boincimport_private_msgs_finished', |
1315 | 1315 | 'title' => t('Importing private messages'), |
1316 | 1316 | 'init_message' => t('Beginning private message import...'), |
1317 | 1317 | 'progress_message' => t('Processed @current out of @total private messages.'), |
1318 | 1318 | 'error_message' => t('Private message import has encountered an error.'), |
1319 | - ); |
|
1319 | + ); |
|
1320 | 1320 | |
1321 | - batch_set($batch); |
|
1321 | + batch_set($batch); |
|
1322 | 1322 | } |
1323 | 1323 | |
1324 | 1324 | /** |
@@ -1327,95 +1327,95 @@ discard block |
||
1327 | 1327 | */ |
1328 | 1328 | function boincimport_private_msgs_op($pm, &$context) { |
1329 | 1329 | |
1330 | - $input_format = variable_get('boincimport_input_format', 0); |
|
1330 | + $input_format = variable_get('boincimport_input_format', 0); |
|
1331 | 1331 | |
1332 | - $uid = boincuser_lookup_uid($pm->userid); |
|
1333 | - $sender_uid = boincuser_lookup_uid($pm->senderid); |
|
1332 | + $uid = boincuser_lookup_uid($pm->userid); |
|
1333 | + $sender_uid = boincuser_lookup_uid($pm->senderid); |
|
1334 | 1334 | |
1335 | - $pm->content = _boincimport_strip_bbcode($pm->content); |
|
1336 | - $pm->content = _boincimport_text_sanitize($pm->content); |
|
1335 | + $pm->content = _boincimport_strip_bbcode($pm->content); |
|
1336 | + $pm->content = _boincimport_text_sanitize($pm->content); |
|
1337 | 1337 | |
1338 | - // First save the message |
|
1339 | - $message_added = db_query(" |
|
1338 | + // First save the message |
|
1339 | + $message_added = db_query(" |
|
1340 | 1340 | INSERT INTO {pm_message} (subject, author, body, format, timestamp) |
1341 | 1341 | VALUES ('%s', %d, '%s', %d, %d)", |
1342 | 1342 | $pm->subject, $sender_uid, $pm->content, $input_format, $pm->date |
1343 | - ); |
|
1344 | - $mid = db_last_insert_id('pm_message', 'mid'); |
|
1343 | + ); |
|
1344 | + $mid = db_last_insert_id('pm_message', 'mid'); |
|
1345 | 1345 | |
1346 | - // Then attach recipients and set status (note that threads are not a BOINC |
|
1347 | - // feature, so just consider every message to be a new thread) |
|
1348 | - $recipient_added = db_query(" |
|
1346 | + // Then attach recipients and set status (note that threads are not a BOINC |
|
1347 | + // feature, so just consider every message to be a new thread) |
|
1348 | + $recipient_added = db_query(" |
|
1349 | 1349 | INSERT INTO {pm_index} (mid, thread_id, uid, is_new, deleted) |
1350 | 1350 | VALUES (%d, %d, %d, %d, 0)", |
1351 | 1351 | $mid, $mid, $uid, !$pm->opened |
1352 | - ); |
|
1353 | - // In Drupal, the sender should be attached as well |
|
1354 | - $sender_added = db_query(" |
|
1352 | + ); |
|
1353 | + // In Drupal, the sender should be attached as well |
|
1354 | + $sender_added = db_query(" |
|
1355 | 1355 | INSERT INTO {pm_index} (mid, thread_id, uid, is_new, deleted) |
1356 | 1356 | VALUES (%d, %d, %d, %d, 0)", |
1357 | 1357 | $mid, $mid, $sender_uid, 0 |
1358 | - ); |
|
1358 | + ); |
|
1359 | 1359 | |
1360 | - $message = ''; |
|
1361 | - if ($message_added AND $recipient_added AND $sender_added) { |
|
1360 | + $message = ''; |
|
1361 | + if ($message_added AND $recipient_added AND $sender_added) { |
|
1362 | 1362 | // Store some result for post-processing in the finished callback. |
1363 | 1363 | $context['results']['success'][] = $pm->id; |
1364 | 1364 | $message = "Successfully imported private message {$pm->id}"; |
1365 | - } |
|
1366 | - else { |
|
1365 | + } |
|
1366 | + else { |
|
1367 | 1367 | $context['results']['failure'][] = $pm->id; |
1368 | 1368 | $message = "Failed to import private message {$pm->id}!"; |
1369 | 1369 | watchdog('boincimport', |
1370 | - 'Failed to import private message @id!', |
|
1371 | - array('@id' => $pm->id), WATCHDOG_WARNING |
|
1370 | + 'Failed to import private message @id!', |
|
1371 | + array('@id' => $pm->id), WATCHDOG_WARNING |
|
1372 | 1372 | ); |
1373 | - } |
|
1373 | + } |
|
1374 | 1374 | |
1375 | - // Update our progress information. |
|
1376 | - $context['sandbox']['progress']++; |
|
1377 | - $context['sandbox']['current_pm'] = $pm->id; |
|
1378 | - $context['message'] = $message; |
|
1375 | + // Update our progress information. |
|
1376 | + $context['sandbox']['progress']++; |
|
1377 | + $context['sandbox']['current_pm'] = $pm->id; |
|
1378 | + $context['message'] = $message; |
|
1379 | 1379 | |
1380 | - // Update the progress for the batch engine |
|
1381 | - if ($context['sandbox']['progress'] >= $context['sandbox']['max']) { |
|
1380 | + // Update the progress for the batch engine |
|
1381 | + if ($context['sandbox']['progress'] >= $context['sandbox']['max']) { |
|
1382 | 1382 | $context['finished'] = 1; |
1383 | - } |
|
1384 | - else { |
|
1383 | + } |
|
1384 | + else { |
|
1385 | 1385 | $context['finished'] = $context['sandbox']['progress'] / $context['sandbox']['max']; |
1386 | - } |
|
1386 | + } |
|
1387 | 1387 | } |
1388 | 1388 | |
1389 | 1389 | /** |
1390 | 1390 | * Batch 'finished' callback |
1391 | 1391 | */ |
1392 | 1392 | function boincimport_private_msgs_finished($success, $results, $operations) { |
1393 | - if ($success) { |
|
1393 | + if ($success) { |
|
1394 | 1394 | // Let's count our successes |
1395 | 1395 | $total_imported = count($results['success']); |
1396 | 1396 | $message = t( |
1397 | - 'Successfully imported @count private messages', |
|
1398 | - array('@count' => $total_imported) |
|
1397 | + 'Successfully imported @count private messages', |
|
1398 | + array('@count' => $total_imported) |
|
1399 | 1399 | ); |
1400 | 1400 | watchdog('boincimport', |
1401 | - 'Successfully imported @count private messages.', |
|
1402 | - array('@count' => $total_imported), WATCHDOG_INFO |
|
1401 | + 'Successfully imported @count private messages.', |
|
1402 | + array('@count' => $total_imported), WATCHDOG_INFO |
|
1403 | 1403 | ); |
1404 | 1404 | // Set the private message import successful flag in the variable table |
1405 | 1405 | variable_set('boincimport_import_private_msg_successful', '1'); |
1406 | 1406 | $_SESSION['boincimport_stage_selected'] = 'categories'; |
1407 | - } |
|
1408 | - else { |
|
1407 | + } |
|
1408 | + else { |
|
1409 | 1409 | // An error occurred. |
1410 | 1410 | // $operations contains the operations that remained unprocessed. |
1411 | 1411 | $error_operation = reset($operations); |
1412 | 1412 | $message = 'An error occurred while processing ' . $error_operation[0] . ' with arguments :' . print_r($error_operation[0], TRUE); |
1413 | - } |
|
1414 | - drupal_set_message($message); |
|
1413 | + } |
|
1414 | + drupal_set_message($message); |
|
1415 | 1415 | |
1416 | - // Release the lock on the import process |
|
1417 | - variable_del('boincimport_process_locked'); |
|
1418 | - drupal_goto('admin/boinc/import/process'); |
|
1416 | + // Release the lock on the import process |
|
1417 | + variable_del('boincimport_process_locked'); |
|
1418 | + drupal_goto('admin/boinc/import/process'); |
|
1419 | 1419 | } |
1420 | 1420 | |
1421 | 1421 | |
@@ -1428,196 +1428,196 @@ discard block |
||
1428 | 1428 | */ |
1429 | 1429 | function boincimport_forum_categories() { |
1430 | 1430 | |
1431 | - // Check whether forums have been successfully imported already |
|
1432 | - if (variable_get('boincimport_import_forum_category_successful', 0)) { |
|
1431 | + // Check whether forums have been successfully imported already |
|
1432 | + if (variable_get('boincimport_import_forum_category_successful', 0)) { |
|
1433 | 1433 | drupal_set_message(t('Note: forum container import has already run successfully')); |
1434 | 1434 | watchdog( |
1435 | - 'boincimport', 'Note: forum container import has already run successfully', |
|
1436 | - array(), WATCHDOG_INFO |
|
1435 | + 'boincimport', 'Note: forum container import has already run successfully', |
|
1436 | + array(), WATCHDOG_INFO |
|
1437 | 1437 | ); |
1438 | - } |
|
1438 | + } |
|
1439 | 1439 | |
1440 | - if (!variable_get('boincimport_import_forum_category_started', 0)) { |
|
1440 | + if (!variable_get('boincimport_import_forum_category_started', 0)) { |
|
1441 | 1441 | // Could prepare database tables, if new fields are necessary, etc. |
1442 | 1442 | variable_set('boincimport_import_forum_category_started', 1); |
1443 | - } |
|
1443 | + } |
|
1444 | 1444 | |
1445 | - $pre = variable_get('boincimport_table_prefix', ''); |
|
1445 | + $pre = variable_get('boincimport_table_prefix', ''); |
|
1446 | 1446 | |
1447 | - // Retrieve the vocabulary vid named "Forums" |
|
1448 | - //$forum_vid = variable_get('forum_nav_vocabulary', 0); |
|
1449 | - $forum_vid = db_result(db_query(' |
|
1447 | + // Retrieve the vocabulary vid named "Forums" |
|
1448 | + //$forum_vid = variable_get('forum_nav_vocabulary', 0); |
|
1449 | + $forum_vid = db_result(db_query(' |
|
1450 | 1450 | SELECT vid FROM {vocabulary} |
1451 | 1451 | WHERE name="%s"', |
1452 | 1452 | 'Forums' |
1453 | - )); |
|
1454 | - if (!$forum_vid) { |
|
1453 | + )); |
|
1454 | + if (!$forum_vid) { |
|
1455 | 1455 | $forum_vocab = array( |
1456 | - 'name' => t('Forums'), |
|
1457 | - 'description' => t('The different forum categories / containers'), |
|
1456 | + 'name' => t('Forums'), |
|
1457 | + 'description' => t('The different forum categories / containers'), |
|
1458 | 1458 | ); |
1459 | 1459 | taxonomy_save_vocabulary($forum_vocab); |
1460 | 1460 | $forum_vid = db_result(db_query(' |
1461 | 1461 | SELECT vid FROM {vocabulary} |
1462 | 1462 | WHERE name="%s"', |
1463 | - 'Forums' |
|
1463 | + 'Forums' |
|
1464 | 1464 | )); |
1465 | - } |
|
1465 | + } |
|
1466 | 1466 | |
1467 | - // Get both categories and forums from BOINC |
|
1468 | - db_set_active('boinc_rw'); |
|
1469 | - $boinc_forum_categories = db_query(' |
|
1467 | + // Get both categories and forums from BOINC |
|
1468 | + db_set_active('boinc_rw'); |
|
1469 | + $boinc_forum_categories = db_query(' |
|
1470 | 1470 | SELECT id, name |
1471 | 1471 | FROM %scategory |
1472 | 1472 | ORDER BY orderID', |
1473 | 1473 | $pre |
1474 | - ); |
|
1475 | - $forum_category_count = mysqli_num_rows($boinc_forum_categories); |
|
1476 | - $boinc_forums = db_query(' |
|
1474 | + ); |
|
1475 | + $forum_category_count = mysqli_num_rows($boinc_forum_categories); |
|
1476 | + $boinc_forums = db_query(' |
|
1477 | 1477 | SELECT id, category, title, description, orderID |
1478 | 1478 | FROM %sforum |
1479 | 1479 | WHERE parent_type = 0 |
1480 | 1480 | ORDER BY category', |
1481 | 1481 | $pre |
1482 | - ); |
|
1483 | - $forum_count = mysqli_num_rows($boinc_forums); |
|
1484 | - db_set_active('default'); |
|
1482 | + ); |
|
1483 | + $forum_count = mysqli_num_rows($boinc_forums); |
|
1484 | + db_set_active('default'); |
|
1485 | 1485 | |
1486 | - if (!$forum_category_count) { |
|
1486 | + if (!$forum_category_count) { |
|
1487 | 1487 | drupal_set_message( |
1488 | - t('There were no forum containers found: Aborting script'), 'warning' |
|
1488 | + t('There were no forum containers found: Aborting script'), 'warning' |
|
1489 | 1489 | ); |
1490 | 1490 | watchdog('boincimport', |
1491 | - 'There were no forum containers found: Aborting script', array(), WATCHDOG_WARNING |
|
1491 | + 'There were no forum containers found: Aborting script', array(), WATCHDOG_WARNING |
|
1492 | 1492 | ); |
1493 | 1493 | // Release the lock on the import process |
1494 | 1494 | variable_del('boincimport_process_locked'); |
1495 | 1495 | return t('There were no forum containers found: Aborting script.'); |
1496 | - } |
|
1497 | - if (!$forum_count) { |
|
1496 | + } |
|
1497 | + if (!$forum_count) { |
|
1498 | 1498 | drupal_set_message( |
1499 | - t('There were no forums found: Aborting script'), 'warning' |
|
1499 | + t('There were no forums found: Aborting script'), 'warning' |
|
1500 | 1500 | ); |
1501 | 1501 | watchdog('boincimport', |
1502 | - 'There were no forums found: Aborting script', array(), WATCHDOG_WARNING |
|
1502 | + 'There were no forums found: Aborting script', array(), WATCHDOG_WARNING |
|
1503 | 1503 | ); |
1504 | 1504 | // Release the lock on the import process |
1505 | 1505 | variable_del('boincimport_process_locked'); |
1506 | 1506 | return t('There were no forums found: Aborting script.'); |
1507 | - } |
|
1507 | + } |
|
1508 | 1508 | |
1509 | - watchdog('boincimport', |
|
1509 | + watchdog('boincimport', |
|
1510 | 1510 | 'Found %forum_count forums in %category_count containers: Beginning Import', |
1511 | 1511 | array( |
1512 | - '%forum_count' => $forum_count, |
|
1513 | - '%category_count' => $forum_category_count, |
|
1512 | + '%forum_count' => $forum_count, |
|
1513 | + '%category_count' => $forum_category_count, |
|
1514 | 1514 | ), WATCHDOG_INFO |
1515 | - ); |
|
1516 | - |
|
1517 | - $operations = array(); |
|
1518 | - $existing_categories = array(); |
|
1519 | - $existing_forums = array(); |
|
1520 | - $duplicate_categories = array(); |
|
1521 | - $duplicate_forums = array(); |
|
1522 | - $category_map = array(); |
|
1523 | - |
|
1524 | - // Get the list of categories already in Drupal so as not to import any twice |
|
1525 | - $category_tree = taxonomy_get_tree($forum_vid, 0, -1, 1); |
|
1526 | - foreach ($category_tree as $term) { |
|
1515 | + ); |
|
1516 | + |
|
1517 | + $operations = array(); |
|
1518 | + $existing_categories = array(); |
|
1519 | + $existing_forums = array(); |
|
1520 | + $duplicate_categories = array(); |
|
1521 | + $duplicate_forums = array(); |
|
1522 | + $category_map = array(); |
|
1523 | + |
|
1524 | + // Get the list of categories already in Drupal so as not to import any twice |
|
1525 | + $category_tree = taxonomy_get_tree($forum_vid, 0, -1, 1); |
|
1526 | + foreach ($category_tree as $term) { |
|
1527 | 1527 | $existing_categories[] = $term->name; |
1528 | - } |
|
1528 | + } |
|
1529 | 1529 | |
1530 | - // Get the list of forums already in Drupal |
|
1531 | - $result = db_query(' |
|
1530 | + // Get the list of forums already in Drupal |
|
1531 | + $result = db_query(' |
|
1532 | 1532 | SELECT forum_id, tid FROM {boincimport_temp_forum}' |
1533 | - ); |
|
1534 | - while ($row = db_fetch_object($result)) { |
|
1533 | + ); |
|
1534 | + while ($row = db_fetch_object($result)) { |
|
1535 | 1535 | $existing_forums[$row->forum_id] = $row->tid; |
1536 | - } |
|
1536 | + } |
|
1537 | 1537 | |
1538 | - // Create batches to process |
|
1538 | + // Create batches to process |
|
1539 | 1539 | |
1540 | - // Set up the "hidden" category, if necessary |
|
1541 | - // This is to support automatic hiding of empty categories |
|
1542 | - $hidden_forum_tid = db_result(db_query(' |
|
1540 | + // Set up the "hidden" category, if necessary |
|
1541 | + // This is to support automatic hiding of empty categories |
|
1542 | + $hidden_forum_tid = db_result(db_query(' |
|
1543 | 1543 | SELECT tid FROM {term_data} |
1544 | 1544 | WHERE vid = %d |
1545 | 1545 | AND name = "%s"', |
1546 | 1546 | $forum_vid, 'Hidden' |
1547 | - )); |
|
1548 | - if (!$hidden_forum_tid) { |
|
1547 | + )); |
|
1548 | + if (!$hidden_forum_tid) { |
|
1549 | 1549 | $operations[] = array( |
1550 | - 'boincimport_forum_categories_op', array( |
|
1550 | + 'boincimport_forum_categories_op', array( |
|
1551 | 1551 | NULL, $forum_vid, $pre, TRUE |
1552 | - ) |
|
1552 | + ) |
|
1553 | 1553 | ); |
1554 | - } |
|
1554 | + } |
|
1555 | 1555 | |
1556 | - // Import categories |
|
1557 | - while ($boinc_forum_category = db_fetch_object($boinc_forum_categories)) { |
|
1556 | + // Import categories |
|
1557 | + while ($boinc_forum_category = db_fetch_object($boinc_forum_categories)) { |
|
1558 | 1558 | if (in_array($boinc_forum_category->name, $existing_categories)) { |
1559 | - // This category has already been imported |
|
1560 | - $duplicate_categories[] = $boinc_forum_category->name; |
|
1559 | + // This category has already been imported |
|
1560 | + $duplicate_categories[] = $boinc_forum_category->name; |
|
1561 | 1561 | } |
1562 | 1562 | else { |
1563 | - $operations[] = array( |
|
1563 | + $operations[] = array( |
|
1564 | 1564 | 'boincimport_forum_categories_op', array( |
1565 | - $boinc_forum_category, $forum_vid, $pre, FALSE |
|
1565 | + $boinc_forum_category, $forum_vid, $pre, FALSE |
|
1566 | 1566 | ) |
1567 | - ); |
|
1567 | + ); |
|
1568 | + } |
|
1568 | 1569 | } |
1569 | - } |
|
1570 | 1570 | |
1571 | - // Import forums |
|
1572 | - while ($boinc_forum = db_fetch_object($boinc_forums)) { |
|
1573 | - if (isset($existing_forums[$boinc_forum->id])) { |
|
1574 | - // This forum has already been imported |
|
1575 | - $duplicates[] = $boinc_forum->id; |
|
1571 | + // Import forums |
|
1572 | + while ($boinc_forum = db_fetch_object($boinc_forums)) { |
|
1573 | + if (isset($existing_forums[$boinc_forum->id])) { |
|
1574 | + // This forum has already been imported |
|
1575 | + $duplicates[] = $boinc_forum->id; |
|
1576 | 1576 | } |
1577 | 1577 | else { |
1578 | - $operations[] = array( |
|
1578 | + $operations[] = array( |
|
1579 | 1579 | 'boincimport_forums_op', array( |
1580 | - $boinc_forum, $forum_vid, $pre |
|
1580 | + $boinc_forum, $forum_vid, $pre |
|
1581 | 1581 | ) |
1582 | - ); |
|
1582 | + ); |
|
1583 | + } |
|
1583 | 1584 | } |
1584 | - } |
|
1585 | 1585 | |
1586 | - // Report any duplicates that were skipped |
|
1587 | - $skipped_message = array(); |
|
1588 | - $categories_skipped = count($duplicate_categories); |
|
1589 | - $forums_skipped = count($duplicate_forums); |
|
1590 | - if ($categories_skipped) { |
|
1586 | + // Report any duplicates that were skipped |
|
1587 | + $skipped_message = array(); |
|
1588 | + $categories_skipped = count($duplicate_categories); |
|
1589 | + $forums_skipped = count($duplicate_forums); |
|
1590 | + if ($categories_skipped) { |
|
1591 | 1591 | $skipped_message[] = format_plural( |
1592 | - $categories_skipped, |
|
1593 | - '1 container', |
|
1594 | - '@count containers' |
|
1592 | + $categories_skipped, |
|
1593 | + '1 container', |
|
1594 | + '@count containers' |
|
1595 | 1595 | ); |
1596 | - } |
|
1597 | - if ($forums_skipped) { |
|
1596 | + } |
|
1597 | + if ($forums_skipped) { |
|
1598 | 1598 | $skipped_message[] = format_plural( |
1599 | - $forums_skipped, |
|
1600 | - '1 forum', |
|
1601 | - '@count forums' |
|
1599 | + $forums_skipped, |
|
1600 | + '1 forum', |
|
1601 | + '@count forums' |
|
1602 | 1602 | ); |
1603 | - } |
|
1604 | - if ($skipped_message) { |
|
1603 | + } |
|
1604 | + if ($skipped_message) { |
|
1605 | 1605 | drupal_set_message(t('Skipped @forums that were already imported', |
1606 | - array('@forums' => implode(' and ', $skipped_message)) |
|
1606 | + array('@forums' => implode(' and ', $skipped_message)) |
|
1607 | 1607 | )); |
1608 | - } |
|
1608 | + } |
|
1609 | 1609 | |
1610 | - // Create and run the batch |
|
1611 | - $batch = array( |
|
1610 | + // Create and run the batch |
|
1611 | + $batch = array( |
|
1612 | 1612 | 'operations' => $operations, |
1613 | 1613 | 'finished' => 'boincimport_forums_finished', |
1614 | 1614 | 'title' => t('Importing forums'), |
1615 | 1615 | 'init_message' => t('Beginning forum import...'), |
1616 | 1616 | 'progress_message' => t('Processed @current out of @total forums.'), |
1617 | 1617 | 'error_message' => t('Forum import has encountered an error.'), |
1618 | - ); |
|
1618 | + ); |
|
1619 | 1619 | |
1620 | - batch_set($batch); |
|
1620 | + batch_set($batch); |
|
1621 | 1621 | } |
1622 | 1622 | |
1623 | 1623 | /** |
@@ -1626,92 +1626,92 @@ discard block |
||
1626 | 1626 | */ |
1627 | 1627 | function boincimport_forum_categories_op($category, $forum_vid, $pre, $create_hidden, &$context) { |
1628 | 1628 | |
1629 | - // Set term parameters for categories |
|
1630 | - $forum_id = 0; |
|
1631 | - $parent_id = 0; |
|
1632 | - $description = ''; |
|
1633 | - $weight = 0; |
|
1634 | - $hidden = FALSE; |
|
1629 | + // Set term parameters for categories |
|
1630 | + $forum_id = 0; |
|
1631 | + $parent_id = 0; |
|
1632 | + $description = ''; |
|
1633 | + $weight = 0; |
|
1634 | + $hidden = FALSE; |
|
1635 | 1635 | |
1636 | - $category_map = variable_get('boincimport_forum_category_map', array()); |
|
1636 | + $category_map = variable_get('boincimport_forum_category_map', array()); |
|
1637 | 1637 | |
1638 | - if (!$category AND $create_hidden) { |
|
1638 | + if (!$category AND $create_hidden) { |
|
1639 | 1639 | // Create the special "hidden" container |
1640 | 1640 | $category = new stdClass(); |
1641 | 1641 | $category->name = 'Hidden'; |
1642 | 1642 | $category->id = 0; |
1643 | 1643 | $hidden = TRUE; |
1644 | - } |
|
1645 | - else { |
|
1644 | + } |
|
1645 | + else { |
|
1646 | 1646 | // If this container is empty, put it into the hidden container |
1647 | 1647 | db_set_active('boinc_rw'); |
1648 | 1648 | $forums_contained = db_result(db_query(' |
1649 | 1649 | SELECT count(*) FROM %sforum |
1650 | 1650 | WHERE parent_type = 0 |
1651 | 1651 | AND category = %d', |
1652 | - $pre, $category->id)); |
|
1652 | + $pre, $category->id)); |
|
1653 | 1653 | db_set_active('default'); |
1654 | 1654 | if (!$forums_contained) { |
1655 | - $parent_id = $category_map[0]; |
|
1656 | - $hidden = TRUE; |
|
1655 | + $parent_id = $category_map[0]; |
|
1656 | + $hidden = TRUE; |
|
1657 | + } |
|
1657 | 1658 | } |
1658 | - } |
|
1659 | 1659 | |
1660 | - $forum = array( |
|
1660 | + $forum = array( |
|
1661 | 1661 | 'name' => $category->name, |
1662 | 1662 | 'vid' => $forum_vid, |
1663 | 1663 | 'description' => $description, |
1664 | 1664 | 'parent' => $parent_id, |
1665 | 1665 | 'weight' => $weight, |
1666 | - ); |
|
1667 | - $forum['description'] = strip_tags($forum['description']); |
|
1666 | + ); |
|
1667 | + $forum['description'] = strip_tags($forum['description']); |
|
1668 | 1668 | |
1669 | - taxonomy_save_term($forum); |
|
1670 | - $success = isset($forum['tid']); |
|
1669 | + taxonomy_save_term($forum); |
|
1670 | + $success = isset($forum['tid']); |
|
1671 | 1671 | |
1672 | - // Serialize the forum containers |
|
1673 | - $containers = variable_get('forum_containers', array()); |
|
1674 | - $containers[] = $forum['tid']; |
|
1675 | - variable_set('forum_containers', $containers); |
|
1672 | + // Serialize the forum containers |
|
1673 | + $containers = variable_get('forum_containers', array()); |
|
1674 | + $containers[] = $forum['tid']; |
|
1675 | + variable_set('forum_containers', $containers); |
|
1676 | 1676 | |
1677 | - // Note the taxonomy ID for mapping forums to categories |
|
1678 | - $category_map[$category->id] = $forum['tid']; |
|
1679 | - variable_set('boincimport_forum_category_map', $category_map); |
|
1677 | + // Note the taxonomy ID for mapping forums to categories |
|
1678 | + $category_map[$category->id] = $forum['tid']; |
|
1679 | + variable_set('boincimport_forum_category_map', $category_map); |
|
1680 | 1680 | |
1681 | - boincimport_forum_set_permissions($forum, $hidden); |
|
1681 | + boincimport_forum_set_permissions($forum, $hidden); |
|
1682 | 1682 | |
1683 | - $message = ''; |
|
1684 | - if ($success) { |
|
1683 | + $message = ''; |
|
1684 | + if ($success) { |
|
1685 | 1685 | // Store some result for post-processing in the finished callback. |
1686 | 1686 | if (!$category AND $create_hidden) { |
1687 | - $message = "Created special hidden container"; |
|
1687 | + $message = "Created special hidden container"; |
|
1688 | 1688 | } |
1689 | 1689 | else { |
1690 | - $context['results']['categories']['success'][] = $category->id; |
|
1691 | - $message = "Successfully imported container {$category->id}"; |
|
1690 | + $context['results']['categories']['success'][] = $category->id; |
|
1691 | + $message = "Successfully imported container {$category->id}"; |
|
1692 | 1692 | } |
1693 | - } |
|
1694 | - else { |
|
1693 | + } |
|
1694 | + else { |
|
1695 | 1695 | $context['results']['categories']['failure'][] = $category->id; |
1696 | 1696 | $message = "Failed to import container {$category->id}!"; |
1697 | 1697 | watchdog('boincimport', |
1698 | - 'Failed to import container @id!', |
|
1699 | - array('@id' => $category->id), WATCHDOG_WARNING |
|
1698 | + 'Failed to import container @id!', |
|
1699 | + array('@id' => $category->id), WATCHDOG_WARNING |
|
1700 | 1700 | ); |
1701 | - } |
|
1701 | + } |
|
1702 | 1702 | |
1703 | - // Update our progress information. |
|
1704 | - $context['sandbox']['progress']++; |
|
1705 | - $context['sandbox']['current_category'] = $category->id; |
|
1706 | - $context['message'] = $message; |
|
1703 | + // Update our progress information. |
|
1704 | + $context['sandbox']['progress']++; |
|
1705 | + $context['sandbox']['current_category'] = $category->id; |
|
1706 | + $context['message'] = $message; |
|
1707 | 1707 | |
1708 | - // Update the progress for the batch engine |
|
1709 | - if ($context['sandbox']['progress'] >= $context['sandbox']['max']) { |
|
1708 | + // Update the progress for the batch engine |
|
1709 | + if ($context['sandbox']['progress'] >= $context['sandbox']['max']) { |
|
1710 | 1710 | $context['finished'] = 1; |
1711 | - } |
|
1712 | - else { |
|
1711 | + } |
|
1712 | + else { |
|
1713 | 1713 | $context['finished'] = $context['sandbox']['progress'] / $context['sandbox']['max']; |
1714 | - } |
|
1714 | + } |
|
1715 | 1715 | } |
1716 | 1716 | |
1717 | 1717 | /** |
@@ -1720,40 +1720,40 @@ discard block |
||
1720 | 1720 | */ |
1721 | 1721 | function boincimport_forums_op($boincforum, $forum_vid, $pre = '', &$context) { |
1722 | 1722 | |
1723 | - $hidden_forum = FALSE; |
|
1724 | - $open_forum = FALSE; |
|
1725 | - $category_map = variable_get('boincimport_forum_category_map', array()); |
|
1726 | - |
|
1727 | - // Set term parameters for forums |
|
1728 | - $forum_id = $boincforum->id; |
|
1729 | - $parent_id = isset($category_map[$boincforum->category]) ? $category_map[$boincforum->category] : $category_map[0]; |
|
1730 | - $name = $boincforum->title; |
|
1731 | - $description = $boincforum->description; |
|
1732 | - $weight = $boincforum->orderID; |
|
1733 | - if ($parent_id == $category_map[0]) { |
|
1723 | + $hidden_forum = FALSE; |
|
1724 | + $open_forum = FALSE; |
|
1725 | + $category_map = variable_get('boincimport_forum_category_map', array()); |
|
1726 | + |
|
1727 | + // Set term parameters for forums |
|
1728 | + $forum_id = $boincforum->id; |
|
1729 | + $parent_id = isset($category_map[$boincforum->category]) ? $category_map[$boincforum->category] : $category_map[0]; |
|
1730 | + $name = $boincforum->title; |
|
1731 | + $description = $boincforum->description; |
|
1732 | + $weight = $boincforum->orderID; |
|
1733 | + if ($parent_id == $category_map[0]) { |
|
1734 | 1734 | // If this forum is hidden, flag for appropriate access controls |
1735 | 1735 | $hidden_forum = TRUE; |
1736 | - } |
|
1737 | - if ($name == 'Getting Started') { |
|
1736 | + } |
|
1737 | + if ($name == 'Getting Started') { |
|
1738 | 1738 | // Must allow users to post in this forum even if they have no credit! |
1739 | 1739 | $open_forum = TRUE; |
1740 | - } |
|
1740 | + } |
|
1741 | 1741 | |
1742 | - // Try to detect a BOINC news forum and flag it so that news can be |
|
1743 | - // imported into a Drupal news content type later |
|
1744 | - if ($name == 'News') { |
|
1742 | + // Try to detect a BOINC news forum and flag it so that news can be |
|
1743 | + // imported into a Drupal news content type later |
|
1744 | + if ($name == 'News') { |
|
1745 | 1745 | // Save the ID of the News forum for later import |
1746 | 1746 | variable_set('boincimport_news_forum_id', $forum_id); |
1747 | 1747 | $success = TRUE; |
1748 | - } |
|
1749 | - else { |
|
1748 | + } |
|
1749 | + else { |
|
1750 | 1750 | // Save all other forums as taxonomy terms |
1751 | 1751 | $forum = array( |
1752 | - 'name' => $name, |
|
1753 | - 'vid' => $forum_vid, |
|
1754 | - 'description' => $description, |
|
1755 | - 'parent' => $parent_id, |
|
1756 | - 'weight' => $weight, |
|
1752 | + 'name' => $name, |
|
1753 | + 'vid' => $forum_vid, |
|
1754 | + 'description' => $description, |
|
1755 | + 'parent' => $parent_id, |
|
1756 | + 'weight' => $weight, |
|
1757 | 1757 | ); |
1758 | 1758 | $forum['description'] = strip_tags($forum['description']); |
1759 | 1759 | |
@@ -1765,31 +1765,31 @@ discard block |
||
1765 | 1765 | |
1766 | 1766 | // Set access controls |
1767 | 1767 | boincimport_forum_set_permissions($forum, $hidden_forum, $open_forum); |
1768 | - } |
|
1768 | + } |
|
1769 | 1769 | |
1770 | - $message = ''; |
|
1771 | - if ($success) { |
|
1770 | + $message = ''; |
|
1771 | + if ($success) { |
|
1772 | 1772 | // Store some result for post-processing in the finished callback. |
1773 | 1773 | $context['results']['forums']['success'][] = $forum_id; |
1774 | 1774 | $message = "Successfully imported forum {$forum_id}"; |
1775 | - } |
|
1776 | - else { |
|
1775 | + } |
|
1776 | + else { |
|
1777 | 1777 | $context['results']['forums']['failure'][] = $forum_id; |
1778 | 1778 | $message = "Failed to import forum {$forum_id}!"; |
1779 | - } |
|
1779 | + } |
|
1780 | 1780 | |
1781 | - // Update our progress information. |
|
1782 | - $context['sandbox']['progress']++; |
|
1783 | - $context['sandbox']['current_forum'] = $forum_id; |
|
1784 | - $context['message'] = $message; |
|
1781 | + // Update our progress information. |
|
1782 | + $context['sandbox']['progress']++; |
|
1783 | + $context['sandbox']['current_forum'] = $forum_id; |
|
1784 | + $context['message'] = $message; |
|
1785 | 1785 | |
1786 | - // Update the progress for the batch engine |
|
1787 | - if ($context['sandbox']['progress'] >= $context['sandbox']['max']) { |
|
1786 | + // Update the progress for the batch engine |
|
1787 | + if ($context['sandbox']['progress'] >= $context['sandbox']['max']) { |
|
1788 | 1788 | $context['finished'] = 1; |
1789 | - } |
|
1790 | - else { |
|
1789 | + } |
|
1790 | + else { |
|
1791 | 1791 | $context['finished'] = $context['sandbox']['progress'] / $context['sandbox']['max']; |
1792 | - } |
|
1792 | + } |
|
1793 | 1793 | } |
1794 | 1794 | |
1795 | 1795 | /** |
@@ -1797,46 +1797,46 @@ discard block |
||
1797 | 1797 | */ |
1798 | 1798 | function boincimport_forum_set_permissions($forum, $hidden = FALSE, $open = FALSE) { |
1799 | 1799 | |
1800 | - // Set access controls |
|
1801 | - $forum_perms = array(); |
|
1802 | - $role_map = array_flip(user_roles()); |
|
1803 | - $forum_perms[$role_map['anonymous user']] = array( |
|
1800 | + // Set access controls |
|
1801 | + $forum_perms = array(); |
|
1802 | + $role_map = array_flip(user_roles()); |
|
1803 | + $forum_perms[$role_map['anonymous user']] = array( |
|
1804 | 1804 | 'view' => (int) !$hidden, |
1805 | 1805 | 'update' => 0, |
1806 | 1806 | 'delete' => 0, |
1807 | 1807 | 'create' => 0, |
1808 | - ); |
|
1809 | - $forum_perms[$role_map['authenticated user']] = array( |
|
1808 | + ); |
|
1809 | + $forum_perms[$role_map['authenticated user']] = array( |
|
1810 | 1810 | 'view' => (int) !$hidden, |
1811 | 1811 | 'update' => 0, |
1812 | 1812 | 'delete' => 0, |
1813 | 1813 | 'create' => 0, |
1814 | - ); |
|
1815 | - $forum_perms[$role_map['community member']] = array( |
|
1814 | + ); |
|
1815 | + $forum_perms[$role_map['community member']] = array( |
|
1816 | 1816 | 'view' => (int) !$hidden, |
1817 | 1817 | 'update' => 0, |
1818 | 1818 | 'delete' => 0, |
1819 | 1819 | 'create' => (int) $open, |
1820 | - ); |
|
1821 | - $forum_perms[$role_map['verified contributor']] = array( |
|
1820 | + ); |
|
1821 | + $forum_perms[$role_map['verified contributor']] = array( |
|
1822 | 1822 | 'view' => (int) !$hidden, |
1823 | 1823 | 'update' => 0, |
1824 | 1824 | 'delete' => 0, |
1825 | 1825 | 'create' => (int) !$hidden, |
1826 | - ); |
|
1827 | - $forum_perms[$role_map['moderator']] = array( |
|
1826 | + ); |
|
1827 | + $forum_perms[$role_map['moderator']] = array( |
|
1828 | 1828 | 'view' => (int) !$hidden, |
1829 | 1829 | 'update' => (int) !$hidden, |
1830 | 1830 | 'delete' => 0, |
1831 | 1831 | 'create' => (int) !$hidden, |
1832 | - ); |
|
1833 | - $forum_perms[$role_map['administrator']] = array( |
|
1832 | + ); |
|
1833 | + $forum_perms[$role_map['administrator']] = array( |
|
1834 | 1834 | 'view' => 1, |
1835 | 1835 | 'update' => 1, |
1836 | 1836 | 'delete' => 1, |
1837 | 1837 | 'create' => 1, |
1838 | - ); |
|
1839 | - foreach ($forum_perms as $role => $perm) { |
|
1838 | + ); |
|
1839 | + foreach ($forum_perms as $role => $perm) { |
|
1840 | 1840 | db_query(' |
1841 | 1841 | INSERT INTO {forum_access} |
1842 | 1842 | SET tid = %d, rid = %d, |
@@ -1845,61 +1845,61 @@ discard block |
||
1845 | 1845 | ON DUPLICATE KEY UPDATE |
1846 | 1846 | grant_view = %d, grant_update = %d, |
1847 | 1847 | grant_delete = %d, grant_create = %d', |
1848 | - $forum['tid'], $role, |
|
1849 | - $perm['view'], $perm['update'], |
|
1850 | - $perm['delete'], $perm['create'], |
|
1851 | - $perm['view'], $perm['update'], |
|
1852 | - $perm['delete'], $perm['create']); |
|
1853 | - } |
|
1848 | + $forum['tid'], $role, |
|
1849 | + $perm['view'], $perm['update'], |
|
1850 | + $perm['delete'], $perm['create'], |
|
1851 | + $perm['view'], $perm['update'], |
|
1852 | + $perm['delete'], $perm['create']); |
|
1853 | + } |
|
1854 | 1854 | } |
1855 | 1855 | |
1856 | 1856 | /** |
1857 | 1857 | * Batch 'finished' callback |
1858 | 1858 | */ |
1859 | 1859 | function boincimport_forums_finished($success, $results, $operations) { |
1860 | - if ($success) { |
|
1860 | + if ($success) { |
|
1861 | 1861 | // Let's count our successes |
1862 | 1862 | $categories_imported = count($results['categories']['success']); |
1863 | 1863 | $forums_imported = count($results['forums']['success']); |
1864 | 1864 | |
1865 | 1865 | $success_message = array(); |
1866 | 1866 | if ($categories_imported) { |
1867 | - $success_message[] = format_plural( |
|
1867 | + $success_message[] = format_plural( |
|
1868 | 1868 | $categories_imported, |
1869 | 1869 | '1 container', |
1870 | 1870 | '@count containers' |
1871 | - ); |
|
1871 | + ); |
|
1872 | 1872 | } |
1873 | 1873 | if ($forums_imported) { |
1874 | - $success_message[] = format_plural( |
|
1874 | + $success_message[] = format_plural( |
|
1875 | 1875 | $forums_imported, |
1876 | 1876 | '1 forum', |
1877 | 1877 | '@count forums' |
1878 | - ); |
|
1878 | + ); |
|
1879 | 1879 | } |
1880 | 1880 | $message = t( |
1881 | - 'Successfully imported @forums', |
|
1882 | - array('@forums' => implode(' and ', $success_message)) |
|
1881 | + 'Successfully imported @forums', |
|
1882 | + array('@forums' => implode(' and ', $success_message)) |
|
1883 | 1883 | ); |
1884 | 1884 | watchdog('boincimport', |
1885 | - 'Successfully imported @forums', |
|
1886 | - array('@forums' => implode(' and ', $success_message)), WATCHDOG_INFO |
|
1885 | + 'Successfully imported @forums', |
|
1886 | + array('@forums' => implode(' and ', $success_message)), WATCHDOG_INFO |
|
1887 | 1887 | ); |
1888 | 1888 | // Set the forum import successful flag in the variable table |
1889 | 1889 | variable_set('boincimport_import_forum_successful', '1'); |
1890 | 1890 | $_SESSION['boincimport_stage_selected'] = 'topics'; |
1891 | - } |
|
1892 | - else { |
|
1891 | + } |
|
1892 | + else { |
|
1893 | 1893 | // An error occurred. |
1894 | 1894 | // $operations contains the operations that remained unprocessed. |
1895 | 1895 | $error_operation = reset($operations); |
1896 | 1896 | $message = 'An error occurred while processing ' . $error_operation[0] . ' with arguments :' . print_r($error_operation[0], TRUE); |
1897 | - } |
|
1898 | - drupal_set_message($message); |
|
1897 | + } |
|
1898 | + drupal_set_message($message); |
|
1899 | 1899 | |
1900 | - // Release the lock on the import process |
|
1901 | - variable_del('boincimport_process_locked'); |
|
1902 | - drupal_goto('admin/boinc/import/process'); |
|
1900 | + // Release the lock on the import process |
|
1901 | + variable_del('boincimport_process_locked'); |
|
1902 | + drupal_goto('admin/boinc/import/process'); |
|
1903 | 1903 | } |
1904 | 1904 | |
1905 | 1905 | |
@@ -1911,82 +1911,82 @@ discard block |
||
1911 | 1911 | */ |
1912 | 1912 | function boincimport_forum_topics() { |
1913 | 1913 | |
1914 | - // Check whether topics have been successfully imported already |
|
1915 | - if (variable_get('boincimport_import_topic_successful', 0)) { |
|
1914 | + // Check whether topics have been successfully imported already |
|
1915 | + if (variable_get('boincimport_import_topic_successful', 0)) { |
|
1916 | 1916 | drupal_set_message(t('Topic import has already run successfully'), 'warning'); |
1917 | 1917 | watchdog( |
1918 | - 'boincimport', 'Topic import has already run successfully', |
|
1919 | - array(), WATCHDOG_WARNING |
|
1918 | + 'boincimport', 'Topic import has already run successfully', |
|
1919 | + array(), WATCHDOG_WARNING |
|
1920 | 1920 | ); |
1921 | 1921 | // Release the lock on the import process |
1922 | 1922 | variable_del('boincimport_process_locked'); |
1923 | 1923 | return; |
1924 | - } |
|
1924 | + } |
|
1925 | 1925 | |
1926 | - if (!variable_get('boincimport_import_topic_started', 0)) { |
|
1926 | + if (!variable_get('boincimport_import_topic_started', 0)) { |
|
1927 | 1927 | // Could prepare database tables, if new fields are necessary, etc. |
1928 | 1928 | variable_set('boincimport_import_topic_started', 1); |
1929 | - } |
|
1929 | + } |
|
1930 | 1930 | |
1931 | - $pre = variable_get('boincimport_table_prefix', ''); |
|
1931 | + $pre = variable_get('boincimport_table_prefix', ''); |
|
1932 | 1932 | |
1933 | - // Get the count of non-team topics to import |
|
1934 | - db_set_active('boinc_rw'); |
|
1935 | - $topic_count = db_result(db_query(' |
|
1933 | + // Get the count of non-team topics to import |
|
1934 | + db_set_active('boinc_rw'); |
|
1935 | + $topic_count = db_result(db_query(' |
|
1936 | 1936 | SELECT COUNT(DISTINCT t.id) |
1937 | 1937 | FROM %sthread t |
1938 | 1938 | JOIN %sforum f ON f.id = t.forum |
1939 | 1939 | JOIN %spost p ON p.thread = t.id |
1940 | 1940 | WHERE f.parent_type = 0', |
1941 | 1941 | $pre, $pre, $pre |
1942 | - )); |
|
1943 | - db_set_active('default'); |
|
1942 | + )); |
|
1943 | + db_set_active('default'); |
|
1944 | 1944 | |
1945 | - if (!$topic_count) { |
|
1945 | + if (!$topic_count) { |
|
1946 | 1946 | drupal_set_message( |
1947 | - t('There were no topics found: Aborting script'), 'warning' |
|
1947 | + t('There were no topics found: Aborting script'), 'warning' |
|
1948 | 1948 | ); |
1949 | 1949 | watchdog('boincimport', |
1950 | - 'There were no topics found: Aborting script', array(), WATCHDOG_WARNING |
|
1950 | + 'There were no topics found: Aborting script', array(), WATCHDOG_WARNING |
|
1951 | 1951 | ); |
1952 | 1952 | // Release the lock on the import process |
1953 | 1953 | variable_del('boincimport_process_locked'); |
1954 | 1954 | return t('There were no topics found: Aborting script.'); |
1955 | - } |
|
1955 | + } |
|
1956 | 1956 | |
1957 | - watchdog('boincimport', |
|
1957 | + watchdog('boincimport', |
|
1958 | 1958 | 'Found %count topics: Beginning Import', |
1959 | 1959 | array('%count' => $topic_count), WATCHDOG_INFO |
1960 | - ); |
|
1960 | + ); |
|
1961 | 1961 | |
1962 | - $operations = array(); |
|
1963 | - $batch_size = 100; |
|
1962 | + $operations = array(); |
|
1963 | + $batch_size = 100; |
|
1964 | 1964 | |
1965 | - // Create batches to process |
|
1966 | - for ($offset = 0; $offset < $topic_count; $offset+=$batch_size) { |
|
1965 | + // Create batches to process |
|
1966 | + for ($offset = 0; $offset < $topic_count; $offset+=$batch_size) { |
|
1967 | 1967 | $topics_per_batch = $batch_size; |
1968 | 1968 | if ($offset + $batch_size > $topic_count) { |
1969 | - $topics_per_batch = $topic_count - $offset; |
|
1969 | + $topics_per_batch = $topic_count - $offset; |
|
1970 | 1970 | } |
1971 | 1971 | $operations[] = array( |
1972 | - 'boincimport_topics_op', array( |
|
1972 | + 'boincimport_topics_op', array( |
|
1973 | 1973 | $offset, $topics_per_batch, $pre |
1974 | - ) |
|
1974 | + ) |
|
1975 | 1975 | ); |
1976 | - } |
|
1976 | + } |
|
1977 | 1977 | |
1978 | - $batch = array( |
|
1978 | + $batch = array( |
|
1979 | 1979 | 'operations' => $operations, |
1980 | 1980 | 'finished' => 'boincimport_topics_finished', |
1981 | 1981 | 'title' => t('Importing topics'), |
1982 | 1982 | 'init_message' => t('Beginning topic import...'), |
1983 | 1983 | 'progress_message' => t('Processed @current out of @total batches (@size topics per batch).', array( |
1984 | - '@size' => $batch_size, |
|
1984 | + '@size' => $batch_size, |
|
1985 | 1985 | )), |
1986 | 1986 | 'error_message' => t('Topic import has encountered an error.'), |
1987 | - ); |
|
1987 | + ); |
|
1988 | 1988 | |
1989 | - batch_set($batch); |
|
1989 | + batch_set($batch); |
|
1990 | 1990 | } |
1991 | 1991 | |
1992 | 1992 | /** |
@@ -1994,18 +1994,18 @@ discard block |
||
1994 | 1994 | * Create a Drupal node from the given BOINC topic object |
1995 | 1995 | */ |
1996 | 1996 | function boincimport_topics_op($offset, $batch_size, $pre = '', &$context) { |
1997 | - // Initialize the batch, if needed |
|
1998 | - if (!isset($context['sandbox']['progress'])) { |
|
1997 | + // Initialize the batch, if needed |
|
1998 | + if (!isset($context['sandbox']['progress'])) { |
|
1999 | 1999 | $context['sandbox']['progress'] = 0; |
2000 | 2000 | $context['sandbox']['max'] = $batch_size; |
2001 | - } |
|
2001 | + } |
|
2002 | 2002 | |
2003 | - $input_format = variable_get('boincimport_input_format', 0); |
|
2004 | - $news_forum_id = variable_get('boincimport_news_forum_id', 0); |
|
2003 | + $input_format = variable_get('boincimport_input_format', 0); |
|
2004 | + $news_forum_id = variable_get('boincimport_news_forum_id', 0); |
|
2005 | 2005 | |
2006 | - // Get the topic to import |
|
2007 | - db_set_active('boinc_rw'); |
|
2008 | - $topics = db_query(' |
|
2006 | + // Get the topic to import |
|
2007 | + db_set_active('boinc_rw'); |
|
2008 | + $topics = db_query(' |
|
2009 | 2009 | SELECT DISTINCT t.id, t.title, t.owner, t.forum, t.locked, t.hidden, |
2010 | 2010 | t.sticky, t.timestamp, t.create_time |
2011 | 2011 | FROM %sthread t |
@@ -2015,10 +2015,10 @@ discard block |
||
2015 | 2015 | ORDER BY t.id ASC |
2016 | 2016 | LIMIT %d,%d', |
2017 | 2017 | $pre, $pre, $pre, $offset, $batch_size |
2018 | - ); |
|
2019 | - db_set_active('default'); |
|
2018 | + ); |
|
2019 | + db_set_active('default'); |
|
2020 | 2020 | |
2021 | - while ($topic = db_fetch_object($topics)) { |
|
2021 | + while ($topic = db_fetch_object($topics)) { |
|
2022 | 2022 | |
2023 | 2023 | $error_detail = ''; |
2024 | 2024 | |
@@ -2031,52 +2031,52 @@ discard block |
||
2031 | 2031 | WHERE thread = %d |
2032 | 2032 | ORDER BY timestamp ASC |
2033 | 2033 | LIMIT 1', |
2034 | - $pre, $topic->id |
|
2034 | + $pre, $topic->id |
|
2035 | 2035 | )); |
2036 | 2036 | db_set_active('default'); |
2037 | 2037 | |
2038 | 2038 | $duplicate = db_result(db_query(' |
2039 | 2039 | SELECT COUNT(*) FROM {boincimport_temp_topic} |
2040 | 2040 | WHERE topic_id = %d', |
2041 | - $topic->id |
|
2041 | + $topic->id |
|
2042 | 2042 | )); |
2043 | 2043 | |
2044 | 2044 | if ($duplicate OR !$post) { |
2045 | - $success = FALSE; |
|
2045 | + $success = FALSE; |
|
2046 | 2046 | } |
2047 | 2047 | |
2048 | 2048 | else { |
2049 | - // Get the user and term IDs along with other data to define the topic |
|
2050 | - $uid = boincuser_lookup_uid($topic->owner); |
|
2051 | - $tid = db_result(db_query(' |
|
2049 | + // Get the user and term IDs along with other data to define the topic |
|
2050 | + $uid = boincuser_lookup_uid($topic->owner); |
|
2051 | + $tid = db_result(db_query(' |
|
2052 | 2052 | SELECT tid FROM {boincimport_temp_forum} |
2053 | 2053 | WHERE forum_id = %d', |
2054 | 2054 | $topic->forum |
2055 | - )); |
|
2056 | - if (!$topic->owner) { |
|
2055 | + )); |
|
2056 | + if (!$topic->owner) { |
|
2057 | 2057 | $uid = 0; |
2058 | - } |
|
2058 | + } |
|
2059 | 2059 | |
2060 | - $node_type = 'forum'; |
|
2061 | - $promote = 0; |
|
2062 | - $comment = ($topic->locked) ? 1 : 2; |
|
2060 | + $node_type = 'forum'; |
|
2061 | + $promote = 0; |
|
2062 | + $comment = ($topic->locked) ? 1 : 2; |
|
2063 | 2063 | |
2064 | - $post->content = _boincimport_strip_bbcode($post->content); |
|
2065 | - $post->content = _boincimport_text_sanitize($post->content); |
|
2066 | - $teaser = node_teaser($post->content); |
|
2064 | + $post->content = _boincimport_strip_bbcode($post->content); |
|
2065 | + $post->content = _boincimport_text_sanitize($post->content); |
|
2066 | + $teaser = node_teaser($post->content); |
|
2067 | 2067 | |
2068 | - if ($topic->timestamp < $topic->create_time) { |
|
2068 | + if ($topic->timestamp < $topic->create_time) { |
|
2069 | 2069 | $topic->timestamp = $topic->create_time; |
2070 | - } |
|
2070 | + } |
|
2071 | 2071 | |
2072 | - // If dealing with a News topic, be sure it is imported as such |
|
2073 | - if ($news_forum_id AND $topic->forum == $news_forum_id) { |
|
2072 | + // If dealing with a News topic, be sure it is imported as such |
|
2073 | + if ($news_forum_id AND $topic->forum == $news_forum_id) { |
|
2074 | 2074 | $node_type = 'news'; |
2075 | 2075 | $promote = 1; |
2076 | - } |
|
2076 | + } |
|
2077 | 2077 | |
2078 | - // Construct the thread as a forum topic node |
|
2079 | - $node = array( |
|
2078 | + // Construct the thread as a forum topic node |
|
2079 | + $node = array( |
|
2080 | 2080 | 'type' => $node_type, |
2081 | 2081 | 'title' => $topic->title, |
2082 | 2082 | 'uid' => $uid, |
@@ -2090,61 +2090,61 @@ discard block |
||
2090 | 2090 | 'sticky' => $topic->sticky, |
2091 | 2091 | 'format' => $input_format, |
2092 | 2092 | 'teaser' => $teaser, |
2093 | - ); |
|
2094 | - $node['tid'] = $tid; |
|
2095 | - |
|
2096 | - // Save the topic node |
|
2097 | - $node = (object) $node; // node_save requires an object form |
|
2098 | - node_save($node); |
|
2099 | - taxonomy_node_save($node, array($tid)); |
|
2100 | - $success = ($node->nid) ? TRUE : FALSE; |
|
2101 | - if ($success) { |
|
2093 | + ); |
|
2094 | + $node['tid'] = $tid; |
|
2095 | + |
|
2096 | + // Save the topic node |
|
2097 | + $node = (object) $node; // node_save requires an object form |
|
2098 | + node_save($node); |
|
2099 | + taxonomy_node_save($node, array($tid)); |
|
2100 | + $success = ($node->nid) ? TRUE : FALSE; |
|
2101 | + if ($success) { |
|
2102 | 2102 | $success = db_query(' |
2103 | 2103 | INSERT INTO {boincimport_temp_topic} (topic_id, post_id, nid) |
2104 | 2104 | VALUES (%d, %d, %d)', $topic->id, $post->id, $node->nid |
2105 | 2105 | ); |
2106 | 2106 | if ($success) { |
2107 | - // Hack to keep the topics in correct order |
|
2108 | - $success = db_query('UPDATE {node_comment_statistics} SET last_comment_timestamp = %d WHERE nid = %d', $node->created, $node->nid); |
|
2109 | - if (!$success) { |
|
2107 | + // Hack to keep the topics in correct order |
|
2108 | + $success = db_query('UPDATE {node_comment_statistics} SET last_comment_timestamp = %d WHERE nid = %d', $node->created, $node->nid); |
|
2109 | + if (!$success) { |
|
2110 | 2110 | $error_detail = 'topic imported, but failed to set last comment timestamp'; |
2111 | - } |
|
2111 | + } |
|
2112 | 2112 | } |
2113 | 2113 | else { |
2114 | - $error_detail = 'topic node saved, but failed to link in boincimport_temp_topic table'; |
|
2114 | + $error_detail = 'topic node saved, but failed to link in boincimport_temp_topic table'; |
|
2115 | 2115 | } |
2116 | - } |
|
2117 | - else { |
|
2116 | + } |
|
2117 | + else { |
|
2118 | 2118 | $error_detail = 'failed to save topic node to database'; |
2119 | - } |
|
2119 | + } |
|
2120 | 2120 | } |
2121 | 2121 | |
2122 | 2122 | // See if the import worked |
2123 | 2123 | $message = ''; |
2124 | 2124 | if ($success) { |
2125 | - // Store some result for post-processing in the finished callback. |
|
2126 | - $context['results']['success'][] = $topic->id; |
|
2127 | - $message = "Successfully imported topic {$topic->id}"; |
|
2125 | + // Store some result for post-processing in the finished callback. |
|
2126 | + $context['results']['success'][] = $topic->id; |
|
2127 | + $message = "Successfully imported topic {$topic->id}"; |
|
2128 | 2128 | } |
2129 | 2129 | elseif ($duplicate) { |
2130 | - $context['results']['duplicate'][] = $topic->id; |
|
2131 | - $message = "Topic {$topic->id} was already imported"; |
|
2130 | + $context['results']['duplicate'][] = $topic->id; |
|
2131 | + $message = "Topic {$topic->id} was already imported"; |
|
2132 | 2132 | } |
2133 | 2133 | elseif (!$post) { |
2134 | - $context['results']['empty'][] = $topic->id; |
|
2135 | - $message = "Skipping topic {$topic->id} as empty"; |
|
2134 | + $context['results']['empty'][] = $topic->id; |
|
2135 | + $message = "Skipping topic {$topic->id} as empty"; |
|
2136 | 2136 | } |
2137 | 2137 | else { |
2138 | - $context['results']['failure'][] = $topic->id; |
|
2139 | - $message = "Failed to import topic {$topic->id}!"; |
|
2140 | - watchdog('boincimport', |
|
2138 | + $context['results']['failure'][] = $topic->id; |
|
2139 | + $message = "Failed to import topic {$topic->id}!"; |
|
2140 | + watchdog('boincimport', |
|
2141 | 2141 | 'Failed to import topic @id! (@error)', |
2142 | 2142 | array( |
2143 | - '@id' => $topic->id, |
|
2144 | - '@error' => $error_detail, |
|
2143 | + '@id' => $topic->id, |
|
2144 | + '@error' => $error_detail, |
|
2145 | 2145 | ), |
2146 | 2146 | WATCHDOG_WARNING |
2147 | - ); |
|
2147 | + ); |
|
2148 | 2148 | } |
2149 | 2149 | |
2150 | 2150 | // Update our progress information. |
@@ -2154,54 +2154,54 @@ discard block |
||
2154 | 2154 | |
2155 | 2155 | // Update the progress for the batch engine |
2156 | 2156 | if ($context['sandbox']['progress'] >= $context['sandbox']['max']) { |
2157 | - $context['finished'] = 1; |
|
2157 | + $context['finished'] = 1; |
|
2158 | 2158 | } |
2159 | 2159 | else { |
2160 | - $context['finished'] = $context['sandbox']['progress'] / $context['sandbox']['max']; |
|
2160 | + $context['finished'] = $context['sandbox']['progress'] / $context['sandbox']['max']; |
|
2161 | + } |
|
2161 | 2162 | } |
2162 | - } |
|
2163 | 2163 | } |
2164 | 2164 | |
2165 | 2165 | /** |
2166 | 2166 | * Batch 'finished' callback |
2167 | 2167 | */ |
2168 | 2168 | function boincimport_topics_finished($success, $results, $operations) { |
2169 | - if ($success) { |
|
2169 | + if ($success) { |
|
2170 | 2170 | // Let's count our successes |
2171 | 2171 | $total_imported = count($results['success']); |
2172 | 2172 | $duplicates = count($results['duplicate']); |
2173 | 2173 | $empty_topics = count($results['empty']); |
2174 | 2174 | $message = t( |
2175 | - 'Successfully imported @count topics (skipped @duplicates already imported, @abandoned empty topics)', |
|
2176 | - array( |
|
2175 | + 'Successfully imported @count topics (skipped @duplicates already imported, @abandoned empty topics)', |
|
2176 | + array( |
|
2177 | 2177 | '@count' => $total_imported, |
2178 | 2178 | '@duplicates' => $duplicates, |
2179 | 2179 | '@abandoned' => $empty_topics, |
2180 | - ) |
|
2180 | + ) |
|
2181 | 2181 | ); |
2182 | 2182 | watchdog('boincimport', |
2183 | - 'Successfully imported @count topics (skipped @duplicates already imported, @abandoned empty topics).', |
|
2184 | - array( |
|
2183 | + 'Successfully imported @count topics (skipped @duplicates already imported, @abandoned empty topics).', |
|
2184 | + array( |
|
2185 | 2185 | '@count' => $total_imported, |
2186 | 2186 | '@duplicates' => $duplicates, |
2187 | 2187 | '@abandoned' => $empty_topics, |
2188 | - ), WATCHDOG_INFO |
|
2188 | + ), WATCHDOG_INFO |
|
2189 | 2189 | ); |
2190 | 2190 | // Set the topic import successful flag in the variable table |
2191 | 2191 | variable_set('boincimport_import_topic_successful', '1'); |
2192 | 2192 | $_SESSION['boincimport_stage_selected'] = 'posts'; |
2193 | - } |
|
2194 | - else { |
|
2193 | + } |
|
2194 | + else { |
|
2195 | 2195 | // An error occurred. |
2196 | 2196 | // $operations contains the operations that remained unprocessed. |
2197 | 2197 | $error_operation = reset($operations); |
2198 | 2198 | $message = 'An error occurred while processing ' . $error_operation[0] . ' with arguments :' . print_r($error_operation[0], TRUE); |
2199 | - } |
|
2200 | - drupal_set_message($message); |
|
2199 | + } |
|
2200 | + drupal_set_message($message); |
|
2201 | 2201 | |
2202 | - // Release the lock on the import process |
|
2203 | - variable_del('boincimport_process_locked'); |
|
2204 | - drupal_goto('admin/boinc/import/process'); |
|
2202 | + // Release the lock on the import process |
|
2203 | + variable_del('boincimport_process_locked'); |
|
2204 | + drupal_goto('admin/boinc/import/process'); |
|
2205 | 2205 | } |
2206 | 2206 | |
2207 | 2207 | |
@@ -2214,91 +2214,91 @@ discard block |
||
2214 | 2214 | */ |
2215 | 2215 | function boincimport_forum_posts() { |
2216 | 2216 | |
2217 | - // Check whether forum posts have been successfully imported already |
|
2218 | - if (variable_get('boincimport_import_post_successful', 0)) { |
|
2217 | + // Check whether forum posts have been successfully imported already |
|
2218 | + if (variable_get('boincimport_import_post_successful', 0)) { |
|
2219 | 2219 | drupal_set_message(t('Forum post import has already run successfully'), 'warning'); |
2220 | 2220 | watchdog( |
2221 | - 'boincimport', 'Forum post import has already run successfully', |
|
2222 | - array(), WATCHDOG_WARNING |
|
2221 | + 'boincimport', 'Forum post import has already run successfully', |
|
2222 | + array(), WATCHDOG_WARNING |
|
2223 | 2223 | ); |
2224 | 2224 | // Release the lock on the import process |
2225 | 2225 | variable_del('boincimport_process_locked'); |
2226 | 2226 | return; |
2227 | - } |
|
2227 | + } |
|
2228 | 2228 | |
2229 | - if (!variable_get('boincimport_import_post_started', 0)) { |
|
2229 | + if (!variable_get('boincimport_import_post_started', 0)) { |
|
2230 | 2230 | // Could prepare database tables, if new fields are necessary, etc. |
2231 | 2231 | variable_set('boincimport_import_post_started', 1); |
2232 | - } |
|
2232 | + } |
|
2233 | 2233 | |
2234 | - $pre = variable_get('boincimport_table_prefix', ''); |
|
2234 | + $pre = variable_get('boincimport_table_prefix', ''); |
|
2235 | 2235 | |
2236 | - // Get the BOINC threads and get a count of posts to import |
|
2237 | - db_set_active('boinc_rw'); |
|
2238 | - $topic_count = db_result(db_query(" |
|
2236 | + // Get the BOINC threads and get a count of posts to import |
|
2237 | + db_set_active('boinc_rw'); |
|
2238 | + $topic_count = db_result(db_query(" |
|
2239 | 2239 | SELECT COUNT(DISTINCT t.id) FROM %sthread t |
2240 | 2240 | JOIN %sforum f ON f.id = t.forum |
2241 | 2241 | JOIN %spost p ON p.thread = t.id |
2242 | 2242 | WHERE f.parent_type = 0", $pre, $pre, $pre |
2243 | - )); |
|
2244 | - $total_post_count = db_result(db_query(" |
|
2243 | + )); |
|
2244 | + $total_post_count = db_result(db_query(" |
|
2245 | 2245 | SELECT COUNT(p.id) FROM %spost p |
2246 | 2246 | JOIN %sthread t ON t.id = p.thread |
2247 | 2247 | JOIN %sforum f ON f.id = t.forum |
2248 | 2248 | WHERE f.parent_type = 0", $pre, $pre, $pre |
2249 | - )); |
|
2250 | - $post_count = $total_post_count - $topic_count; |
|
2251 | - db_set_active('default'); |
|
2249 | + )); |
|
2250 | + $post_count = $total_post_count - $topic_count; |
|
2251 | + db_set_active('default'); |
|
2252 | 2252 | |
2253 | - if ($post_count <= 0) { |
|
2253 | + if ($post_count <= 0) { |
|
2254 | 2254 | drupal_set_message( |
2255 | - t('There were no posts found: Aborting script'), 'warning' |
|
2255 | + t('There were no posts found: Aborting script'), 'warning' |
|
2256 | 2256 | ); |
2257 | 2257 | watchdog('boincimport', |
2258 | - 'There were no posts found: Aborting script', array(), WATCHDOG_WARNING |
|
2258 | + 'There were no posts found: Aborting script', array(), WATCHDOG_WARNING |
|
2259 | 2259 | ); |
2260 | 2260 | // Release the lock on the import process |
2261 | 2261 | variable_del('boincimport_process_locked'); |
2262 | 2262 | return t('There were no posts found: Aborting script.'); |
2263 | - } |
|
2263 | + } |
|
2264 | 2264 | |
2265 | - watchdog('boincimport', |
|
2265 | + watchdog('boincimport', |
|
2266 | 2266 | 'Found %count posts: Beginning Import', |
2267 | 2267 | array('%count' => $post_count), WATCHDOG_INFO |
2268 | - ); |
|
2268 | + ); |
|
2269 | 2269 | |
2270 | - $operations = array(); |
|
2271 | - $batch_size = 100; |
|
2270 | + $operations = array(); |
|
2271 | + $batch_size = 100; |
|
2272 | 2272 | |
2273 | - // Create batches to process |
|
2274 | - for ($offset = 0; $offset < $topic_count; $offset+=$batch_size) { |
|
2273 | + // Create batches to process |
|
2274 | + for ($offset = 0; $offset < $topic_count; $offset+=$batch_size) { |
|
2275 | 2275 | $topics_per_batch = $batch_size; |
2276 | 2276 | if ($offset + $batch_size > $topic_count) { |
2277 | - $topics_per_batch = $topic_count - $offset; |
|
2277 | + $topics_per_batch = $topic_count - $offset; |
|
2278 | 2278 | } |
2279 | 2279 | $operations[] = array( |
2280 | - 'boincimport_posts_op', array( |
|
2280 | + 'boincimport_posts_op', array( |
|
2281 | 2281 | $offset, $topics_per_batch |
2282 | - ) |
|
2282 | + ) |
|
2283 | 2283 | ); |
2284 | - } |
|
2284 | + } |
|
2285 | 2285 | |
2286 | - $batch = array( |
|
2286 | + $batch = array( |
|
2287 | 2287 | 'operations' => $operations, |
2288 | 2288 | 'finished' => 'boincimport_posts_finished', |
2289 | 2289 | 'title' => t('Importing posts'), |
2290 | 2290 | 'init_message' => t('Beginning post import...'), |
2291 | 2291 | 'progress_message' => t( |
2292 | - 'Processed posts in @current out of @total batches (@size topics per batch).', |
|
2293 | - array( |
|
2292 | + 'Processed posts in @current out of @total batches (@size topics per batch).', |
|
2293 | + array( |
|
2294 | 2294 | '@size' => $batch_size, |
2295 | 2295 | // @current and @total are managed by the batch API |
2296 | - ) |
|
2296 | + ) |
|
2297 | 2297 | ), |
2298 | 2298 | 'error_message' => t('Post import has encountered an error.'), |
2299 | - ); |
|
2299 | + ); |
|
2300 | 2300 | |
2301 | - batch_set($batch); |
|
2301 | + batch_set($batch); |
|
2302 | 2302 | } |
2303 | 2303 | |
2304 | 2304 | /** |
@@ -2306,17 +2306,17 @@ discard block |
||
2306 | 2306 | * Create a Drupal comment from the given BOINC post object |
2307 | 2307 | */ |
2308 | 2308 | function boincimport_posts_op($offset, $batch_size, &$context) { |
2309 | - // Initialize the batch, if needed |
|
2310 | - if (!isset($context['sandbox']['progress'])) { |
|
2309 | + // Initialize the batch, if needed |
|
2310 | + if (!isset($context['sandbox']['progress'])) { |
|
2311 | 2311 | $context['sandbox']['progress'] = 0; |
2312 | 2312 | $context['sandbox']['max'] = $batch_size; |
2313 | - } |
|
2313 | + } |
|
2314 | 2314 | |
2315 | - $input_format = variable_get('boincimport_input_format', 0); |
|
2315 | + $input_format = variable_get('boincimport_input_format', 0); |
|
2316 | 2316 | |
2317 | - // Get the topics with posts to import |
|
2318 | - db_set_active('boinc_rw'); |
|
2319 | - $boinc_topic_ids = db_query(' |
|
2317 | + // Get the topics with posts to import |
|
2318 | + db_set_active('boinc_rw'); |
|
2319 | + $boinc_topic_ids = db_query(' |
|
2320 | 2320 | SELECT DISTINCT t.id FROM %sthread t |
2321 | 2321 | JOIN %sforum f ON f.id = t.forum |
2322 | 2322 | JOIN %spost p ON p.thread = t.id |
@@ -2324,10 +2324,10 @@ discard block |
||
2324 | 2324 | ORDER BY t.id |
2325 | 2325 | LIMIT %d,%d', |
2326 | 2326 | $pre, $pre, $pre, $offset, $batch_size |
2327 | - ); |
|
2328 | - db_set_active('default'); |
|
2327 | + ); |
|
2328 | + db_set_active('default'); |
|
2329 | 2329 | |
2330 | - while ($boinc_topic = db_fetch_object($boinc_topic_ids)) { |
|
2330 | + while ($boinc_topic = db_fetch_object($boinc_topic_ids)) { |
|
2331 | 2331 | // Get the posts in this topic |
2332 | 2332 | db_set_active('boinc_rw'); |
2333 | 2333 | $boinc_posts = db_query(' |
@@ -2345,29 +2345,29 @@ discard block |
||
2345 | 2345 | |
2346 | 2346 | while ($post = db_fetch_object($boinc_posts)) { |
2347 | 2347 | |
2348 | - // Skip the first post as it has already been imported as a topic |
|
2349 | - if ($first_post) { |
|
2348 | + // Skip the first post as it has already been imported as a topic |
|
2349 | + if ($first_post) { |
|
2350 | 2350 | $first_post = false; |
2351 | 2351 | continue; |
2352 | - } |
|
2352 | + } |
|
2353 | 2353 | |
2354 | - // Making it this far confirms that there are posts to import |
|
2355 | - $topic_has_responses = TRUE; |
|
2354 | + // Making it this far confirms that there are posts to import |
|
2355 | + $topic_has_responses = TRUE; |
|
2356 | 2356 | |
2357 | - $is_duplicate = db_result(db_query(' |
|
2357 | + $is_duplicate = db_result(db_query(' |
|
2358 | 2358 | SELECT COUNT(*) FROM {boincimport_temp_post} |
2359 | 2359 | WHERE post_id = %d', |
2360 | 2360 | $post->id |
2361 | - )); |
|
2362 | - if ($is_duplicate) { |
|
2361 | + )); |
|
2362 | + if ($is_duplicate) { |
|
2363 | 2363 | // This post has already been imported |
2364 | 2364 | $context['results']['posts']['duplicate'][] = $post->id; |
2365 | 2365 | $duplicate_posts++; |
2366 | 2366 | continue; |
2367 | - } |
|
2367 | + } |
|
2368 | 2368 | |
2369 | - // Make sure the post is valid |
|
2370 | - if ($post->content) { |
|
2369 | + // Make sure the post is valid |
|
2370 | + if ($post->content) { |
|
2371 | 2371 | |
2372 | 2372 | // Get user, node, and parent IDs for the post and sanitize |
2373 | 2373 | $uid = boincuser_lookup_uid($post->user); |
@@ -2376,14 +2376,14 @@ discard block |
||
2376 | 2376 | FROM {boincimport_temp_topic} btt |
2377 | 2377 | LEFT JOIN {node_revisions} AS nr ON btt.nid = nr.nid |
2378 | 2378 | WHERE btt.topic_id = %d', |
2379 | - $post->thread |
|
2379 | + $post->thread |
|
2380 | 2380 | )); |
2381 | 2381 | $nid = $node->nid; |
2382 | 2382 | $pid = db_result(db_query(' |
2383 | 2383 | SELECT cid |
2384 | 2384 | FROM {boincimport_temp_post} |
2385 | 2385 | WHERE post_id = %d', |
2386 | - $post->parent_post)); |
|
2386 | + $post->parent_post)); |
|
2387 | 2387 | if (is_null($pid)) $pid = 0; |
2388 | 2388 | if (!$uid) $uid = 0; |
2389 | 2389 | |
@@ -2394,85 +2394,85 @@ discard block |
||
2394 | 2394 | SELECT COUNT(*) |
2395 | 2395 | FROM {comments} |
2396 | 2396 | WHERE nid = %d', |
2397 | - $nid |
|
2397 | + $nid |
|
2398 | 2398 | )); |
2399 | 2399 | $post_reply = $pid; |
2400 | 2400 | |
2401 | 2401 | if ($post_reply OR $topic_reply) { |
2402 | - // Create a subject for the post from the post content. The body may be in |
|
2403 | - // any format, so we: |
|
2404 | - // 1) Filter it into HTML |
|
2405 | - // 2) Strip out all HTML tags |
|
2406 | - // 3) Convert entities back to plain-text. |
|
2407 | - // Note: format is checked by check_markup(). |
|
2408 | - $subject = truncate_utf8(trim(decode_entities(strip_tags(check_markup($post->content, $input_format)))), 29, TRUE); |
|
2409 | - // Replace "Quote:" with "RE:" |
|
2410 | - $subject = str_replace('Quote:', 'RE: ', $subject); |
|
2411 | - // Fringe cases where the comment body is populated only by HTML tags |
|
2412 | - // will require a default subject... |
|
2413 | - if ($subject === '') |
|
2402 | + // Create a subject for the post from the post content. The body may be in |
|
2403 | + // any format, so we: |
|
2404 | + // 1) Filter it into HTML |
|
2405 | + // 2) Strip out all HTML tags |
|
2406 | + // 3) Convert entities back to plain-text. |
|
2407 | + // Note: format is checked by check_markup(). |
|
2408 | + $subject = truncate_utf8(trim(decode_entities(strip_tags(check_markup($post->content, $input_format)))), 29, TRUE); |
|
2409 | + // Replace "Quote:" with "RE:" |
|
2410 | + $subject = str_replace('Quote:', 'RE: ', $subject); |
|
2411 | + // Fringe cases where the comment body is populated only by HTML tags |
|
2412 | + // will require a default subject... |
|
2413 | + if ($subject === '') |
|
2414 | 2414 | $subject = "RE: {$node->title}"; |
2415 | 2415 | } else { |
2416 | - // This is the first post in the topic |
|
2417 | - $subject = $node->title; |
|
2416 | + // This is the first post in the topic |
|
2417 | + $subject = $node->title; |
|
2418 | 2418 | } |
2419 | 2419 | |
2420 | 2420 | // Construct the post as a Drupal comment |
2421 | 2421 | $comment = array( |
2422 | - 'pid' => $pid, |
|
2423 | - 'nid' => $nid, |
|
2424 | - 'uid' => $uid, |
|
2425 | - 'subject' => $subject, |
|
2426 | - 'comment' => $post->content, |
|
2427 | - 'timestamp' => $post->timestamp, |
|
2428 | - 'status' => $post->hidden, |
|
2429 | - 'format' => $input_format |
|
2422 | + 'pid' => $pid, |
|
2423 | + 'nid' => $nid, |
|
2424 | + 'uid' => $uid, |
|
2425 | + 'subject' => $subject, |
|
2426 | + 'comment' => $post->content, |
|
2427 | + 'timestamp' => $post->timestamp, |
|
2428 | + 'status' => $post->hidden, |
|
2429 | + 'format' => $input_format |
|
2430 | 2430 | ); |
2431 | 2431 | |
2432 | 2432 | // Save the comment |
2433 | 2433 | if (boincimport_forum_comment_save($comment)) { |
2434 | - $success = db_query(' |
|
2434 | + $success = db_query(' |
|
2435 | 2435 | INSERT INTO {boincimport_temp_post} (post_id, cid) |
2436 | 2436 | VALUES (%d, %d)', |
2437 | 2437 | $post->id, $comment['cid'] |
2438 | - ); |
|
2439 | - if ($success) { |
|
2438 | + ); |
|
2439 | + if ($success) { |
|
2440 | 2440 | $posts_imported++; |
2441 | 2441 | $context['results']['posts']['success'][] = $post->id; |
2442 | - } |
|
2443 | - else { |
|
2442 | + } |
|
2443 | + else { |
|
2444 | 2444 | $context['results']['posts']['failure'][] = $post->id; |
2445 | 2445 | $error_posts++; |
2446 | - } |
|
2446 | + } |
|
2447 | 2447 | } |
2448 | 2448 | else { |
2449 | - $context['results']['posts']['failure'][] = $post->id; |
|
2450 | - $error_posts++; |
|
2449 | + $context['results']['posts']['failure'][] = $post->id; |
|
2450 | + $error_posts++; |
|
2451 | 2451 | } |
2452 | - } |
|
2453 | - else { |
|
2452 | + } |
|
2453 | + else { |
|
2454 | 2454 | $context['results']['posts']['empty'][] = $post->id; |
2455 | 2455 | $empty_posts++; |
2456 | - } |
|
2456 | + } |
|
2457 | 2457 | } |
2458 | 2458 | |
2459 | 2459 | $message = ''; |
2460 | 2460 | if ($success OR !$topic_has_responses) { |
2461 | - // Store some result for post-processing in the finished callback. |
|
2462 | - $context['results']['success'][] = $boinc_topic->id; |
|
2463 | - $message = "Imported {$posts_imported} post(s) for topic {$boinc_topic->id}"; |
|
2461 | + // Store some result for post-processing in the finished callback. |
|
2462 | + $context['results']['success'][] = $boinc_topic->id; |
|
2463 | + $message = "Imported {$posts_imported} post(s) for topic {$boinc_topic->id}"; |
|
2464 | 2464 | } |
2465 | 2465 | else { |
2466 | - $context['results']['failure'][] = $boinc_topic->id; |
|
2467 | - $message = "Failed to import any posts for topic {$boinc_topic->id} (excluded {$error_posts} errors, {$duplicate_posts} duplicates, and {$empty_posts} empty)"; |
|
2468 | - watchdog('boincimport', 'Failed to import any posts for topic @id (excluded @error_posts errors, @duplicate_posts duplicates, and @empty_posts empty)', |
|
2466 | + $context['results']['failure'][] = $boinc_topic->id; |
|
2467 | + $message = "Failed to import any posts for topic {$boinc_topic->id} (excluded {$error_posts} errors, {$duplicate_posts} duplicates, and {$empty_posts} empty)"; |
|
2468 | + watchdog('boincimport', 'Failed to import any posts for topic @id (excluded @error_posts errors, @duplicate_posts duplicates, and @empty_posts empty)', |
|
2469 | 2469 | array( |
2470 | - '@id' => $boinc_topic->id, |
|
2471 | - '@error_posts' => $error_posts, |
|
2472 | - '@duplicate_posts' => $duplicate_posts, |
|
2473 | - '@empty_posts' => $empty_posts, |
|
2470 | + '@id' => $boinc_topic->id, |
|
2471 | + '@error_posts' => $error_posts, |
|
2472 | + '@duplicate_posts' => $duplicate_posts, |
|
2473 | + '@empty_posts' => $empty_posts, |
|
2474 | 2474 | ), WATCHDOG_WARNING |
2475 | - ); |
|
2475 | + ); |
|
2476 | 2476 | } |
2477 | 2477 | |
2478 | 2478 | // Update our progress information. |
@@ -2482,19 +2482,19 @@ discard block |
||
2482 | 2482 | |
2483 | 2483 | // Update the progress for the batch engine |
2484 | 2484 | if ($context['sandbox']['progress'] >= $context['sandbox']['max']) { |
2485 | - $context['finished'] = 1; |
|
2485 | + $context['finished'] = 1; |
|
2486 | 2486 | } |
2487 | 2487 | else { |
2488 | - $context['finished'] = $context['sandbox']['progress'] / $context['sandbox']['max']; |
|
2488 | + $context['finished'] = $context['sandbox']['progress'] / $context['sandbox']['max']; |
|
2489 | + } |
|
2489 | 2490 | } |
2490 | - } |
|
2491 | 2491 | } |
2492 | 2492 | |
2493 | 2493 | /** |
2494 | 2494 | * Batch 'finished' callback |
2495 | 2495 | */ |
2496 | 2496 | function boincimport_posts_finished($success, $results, $operations) { |
2497 | - if ($success) { |
|
2497 | + if ($success) { |
|
2498 | 2498 | // Let's count our successes |
2499 | 2499 | $posts_imported = count($results['posts']['success']); |
2500 | 2500 | $topic_count = count($results['success']); |
@@ -2503,39 +2503,39 @@ discard block |
||
2503 | 2503 | $empty_posts = count($results['posts']['empty']); |
2504 | 2504 | $failed_posts = count($results['posts']['failure']); |
2505 | 2505 | $message = t( |
2506 | - 'Successfully imported @post_count posts in @topic_count topics ' . |
|
2507 | - '(@skipped topics either had no replies or all replies were already imported, ' . |
|
2508 | - '@duplicates posts were skipped as already imported, ' . |
|
2509 | - '@empty_posts had no content, ' . |
|
2510 | - 'and @error_posts encountered errors during import)', |
|
2511 | - array( |
|
2506 | + 'Successfully imported @post_count posts in @topic_count topics ' . |
|
2507 | + '(@skipped topics either had no replies or all replies were already imported, ' . |
|
2508 | + '@duplicates posts were skipped as already imported, ' . |
|
2509 | + '@empty_posts had no content, ' . |
|
2510 | + 'and @error_posts encountered errors during import)', |
|
2511 | + array( |
|
2512 | 2512 | '@post_count' => $posts_imported, |
2513 | 2513 | '@topic_count' => $topic_count, |
2514 | 2514 | '@skipped' => $topics_skipped, |
2515 | 2515 | '@duplicates' => $duplicates, |
2516 | 2516 | '@empty_posts' => $empty_posts, |
2517 | 2517 | '@error_posts' => $failed_posts, |
2518 | - ) |
|
2518 | + ) |
|
2519 | 2519 | ); |
2520 | 2520 | watchdog('boincimport', |
2521 | - $message, |
|
2522 | - array(), WATCHDOG_INFO |
|
2521 | + $message, |
|
2522 | + array(), WATCHDOG_INFO |
|
2523 | 2523 | ); |
2524 | 2524 | // Set the post import successful flag in the variable table |
2525 | 2525 | variable_set('boincimport_import_post_successful', '1'); |
2526 | 2526 | $_SESSION['boincimport_stage_selected'] = 'team forums'; |
2527 | - } |
|
2528 | - else { |
|
2527 | + } |
|
2528 | + else { |
|
2529 | 2529 | // An error occurred. |
2530 | 2530 | // $operations contains the operations that remained unprocessed. |
2531 | 2531 | $error_operation = reset($operations); |
2532 | 2532 | $message = 'An error occurred while processing ' . $error_operation[0] . ' with arguments :' . print_r($error_operation[0], TRUE); |
2533 | - } |
|
2534 | - drupal_set_message($message); |
|
2533 | + } |
|
2534 | + drupal_set_message($message); |
|
2535 | 2535 | |
2536 | - // Release the lock on the import process |
|
2537 | - variable_del('boincimport_process_locked'); |
|
2538 | - drupal_goto('admin/boinc/import/process'); |
|
2536 | + // Release the lock on the import process |
|
2537 | + variable_del('boincimport_process_locked'); |
|
2538 | + drupal_goto('admin/boinc/import/process'); |
|
2539 | 2539 | } |
2540 | 2540 | |
2541 | 2541 | |
@@ -2548,97 +2548,97 @@ discard block |
||
2548 | 2548 | */ |
2549 | 2549 | function boincimport_team_forums() { |
2550 | 2550 | |
2551 | - // Check whether team forums have been successfully imported already |
|
2552 | - if (variable_get('boincimport_import_team_forum_successful', 0)) { |
|
2551 | + // Check whether team forums have been successfully imported already |
|
2552 | + if (variable_get('boincimport_import_team_forum_successful', 0)) { |
|
2553 | 2553 | drupal_set_message(t('Team forum import has already run successfully'), 'warning'); |
2554 | 2554 | watchdog( |
2555 | - 'boincimport', 'Team forum import has already run successfully', |
|
2556 | - array(), WATCHDOG_WARNING |
|
2555 | + 'boincimport', 'Team forum import has already run successfully', |
|
2556 | + array(), WATCHDOG_WARNING |
|
2557 | 2557 | ); |
2558 | - } |
|
2558 | + } |
|
2559 | 2559 | |
2560 | - if (!variable_get('boincimport_import_team_forum_started', 0)) { |
|
2560 | + if (!variable_get('boincimport_import_team_forum_started', 0)) { |
|
2561 | 2561 | // Could prepare database tables, if new fields are necessary, etc. |
2562 | 2562 | variable_set('boincimport_import_team_forum_started', 1); |
2563 | - } |
|
2563 | + } |
|
2564 | 2564 | |
2565 | - $pre = variable_get('boincimport_table_prefix', ''); |
|
2565 | + $pre = variable_get('boincimport_table_prefix', ''); |
|
2566 | 2566 | |
2567 | - // Get team forums from BOINC database |
|
2568 | - db_set_active('boinc_rw'); |
|
2569 | - $boincteam_forums = db_query(' |
|
2567 | + // Get team forums from BOINC database |
|
2568 | + db_set_active('boinc_rw'); |
|
2569 | + $boincteam_forums = db_query(' |
|
2570 | 2570 | SELECT id, title, description, category, timestamp, post_min_interval, |
2571 | 2571 | post_min_total_credit, post_min_expavg_credit |
2572 | 2572 | FROM %sforum |
2573 | 2573 | WHERE parent_type = 1 |
2574 | 2574 | ORDER BY id ASC', |
2575 | 2575 | $pre |
2576 | - ); |
|
2577 | - $team_forum_count = mysqli_num_rows($boincteam_forums); |
|
2578 | - db_set_active('default'); |
|
2576 | + ); |
|
2577 | + $team_forum_count = mysqli_num_rows($boincteam_forums); |
|
2578 | + db_set_active('default'); |
|
2579 | 2579 | |
2580 | - if (!$team_forum_count) { |
|
2580 | + if (!$team_forum_count) { |
|
2581 | 2581 | drupal_set_message( |
2582 | - t('There were no team forums found: Aborting script'), 'warning' |
|
2582 | + t('There were no team forums found: Aborting script'), 'warning' |
|
2583 | 2583 | ); |
2584 | 2584 | watchdog('boincimport', |
2585 | - 'There were no team forums found: Aborting script', array(), WATCHDOG_WARNING |
|
2585 | + 'There were no team forums found: Aborting script', array(), WATCHDOG_WARNING |
|
2586 | 2586 | ); |
2587 | 2587 | // Release the lock on the import process |
2588 | 2588 | variable_del('boincimport_process_locked'); |
2589 | 2589 | return t('There were no BLAH found: Aborting script.'); |
2590 | - } |
|
2590 | + } |
|
2591 | 2591 | |
2592 | - watchdog('boincimport', |
|
2592 | + watchdog('boincimport', |
|
2593 | 2593 | 'Found %count team forums: Beginning Import', |
2594 | 2594 | array('%count' => $team_forum_count), WATCHDOG_INFO |
2595 | - ); |
|
2595 | + ); |
|
2596 | 2596 | |
2597 | - $operations = array(); |
|
2598 | - $existing_team_forums = array(); |
|
2599 | - $duplicates = array(); |
|
2597 | + $operations = array(); |
|
2598 | + $existing_team_forums = array(); |
|
2599 | + $duplicates = array(); |
|
2600 | 2600 | |
2601 | - // Get the list of team forums already in Drupal to be sure we're not |
|
2602 | - // importing any twice |
|
2603 | - $result = db_query(' |
|
2601 | + // Get the list of team forums already in Drupal to be sure we're not |
|
2602 | + // importing any twice |
|
2603 | + $result = db_query(' |
|
2604 | 2604 | SELECT nid, boinc_id FROM {boincteam_forum}' |
2605 | - ); |
|
2606 | - while ($row = db_fetch_object($result)) { |
|
2605 | + ); |
|
2606 | + while ($row = db_fetch_object($result)) { |
|
2607 | 2607 | $existing_team_forums[$row->boinc_id] = $row->nid; |
2608 | - } |
|
2608 | + } |
|
2609 | 2609 | |
2610 | - // Create batches to process |
|
2611 | - while ($boincteam_forum = db_fetch_object($boincteam_forums)) { |
|
2612 | - if (isset($existing_team_forums[$boincteam_forum->id])) { |
|
2613 | - // This team has already been imported |
|
2614 | - $duplicates[] = $boincteam_forum->id; |
|
2610 | + // Create batches to process |
|
2611 | + while ($boincteam_forum = db_fetch_object($boincteam_forums)) { |
|
2612 | + if (isset($existing_team_forums[$boincteam_forum->id])) { |
|
2613 | + // This team has already been imported |
|
2614 | + $duplicates[] = $boincteam_forum->id; |
|
2615 | 2615 | } |
2616 | 2616 | else { |
2617 | - $operations[] = array( |
|
2617 | + $operations[] = array( |
|
2618 | 2618 | 'boincimport_team_forums_op', array( |
2619 | - $boincteam_forum |
|
2619 | + $boincteam_forum |
|
2620 | 2620 | ) |
2621 | - ); |
|
2621 | + ); |
|
2622 | + } |
|
2622 | 2623 | } |
2623 | - } |
|
2624 | 2624 | |
2625 | - if ($duplicates) { |
|
2625 | + if ($duplicates) { |
|
2626 | 2626 | drupal_set_message(t( |
2627 | - 'Skipped @count team forums that were already imported', |
|
2628 | - array('@count' => count($duplicates)) |
|
2627 | + 'Skipped @count team forums that were already imported', |
|
2628 | + array('@count' => count($duplicates)) |
|
2629 | 2629 | )); |
2630 | - } |
|
2630 | + } |
|
2631 | 2631 | |
2632 | - $batch = array( |
|
2632 | + $batch = array( |
|
2633 | 2633 | 'operations' => $operations, |
2634 | 2634 | 'finished' => 'boincimport_team_forums_finished', |
2635 | 2635 | 'title' => t('Importing team forums'), |
2636 | 2636 | 'init_message' => t('Beginning team forum import...'), |
2637 | 2637 | 'progress_message' => t('Processed @current out of @total team forums.'), |
2638 | 2638 | 'error_message' => t('Team forum import has encountered an error.'), |
2639 | - ); |
|
2639 | + ); |
|
2640 | 2640 | |
2641 | - batch_set($batch); |
|
2641 | + batch_set($batch); |
|
2642 | 2642 | } |
2643 | 2643 | |
2644 | 2644 | /** |
@@ -2648,15 +2648,15 @@ discard block |
||
2648 | 2648 | */ |
2649 | 2649 | function boincimport_team_forums_op($boincteam_forum, &$context) { |
2650 | 2650 | |
2651 | - $input_format = variable_get('boincimport_input_format', 0); |
|
2651 | + $input_format = variable_get('boincimport_input_format', 0); |
|
2652 | 2652 | |
2653 | - // Set term parameters for forums |
|
2654 | - $forum_id = $boincteam_forum->id; |
|
2655 | - $team_id = boincteam_lookup_nid($boincteam_forum->category); |
|
2656 | - $name = $boincteam_forum->title; |
|
2657 | - $description = strip_tags($boincteam_forum->description); |
|
2653 | + // Set term parameters for forums |
|
2654 | + $forum_id = $boincteam_forum->id; |
|
2655 | + $team_id = boincteam_lookup_nid($boincteam_forum->category); |
|
2656 | + $name = $boincteam_forum->title; |
|
2657 | + $description = strip_tags($boincteam_forum->description); |
|
2658 | 2658 | |
2659 | - $success = db_query(" |
|
2659 | + $success = db_query(" |
|
2660 | 2660 | INSERT INTO {boincteam_forum} SET |
2661 | 2661 | boinc_id = %d, |
2662 | 2662 | nid = %d, |
@@ -2672,67 +2672,67 @@ discard block |
||
2672 | 2672 | time(), 0, $boincteam_forum->post_min_interval, |
2673 | 2673 | $boincteam_forum->post_min_total_credit, |
2674 | 2674 | $boincteam_forum->post_min_expavg_credit |
2675 | - ); |
|
2675 | + ); |
|
2676 | 2676 | |
2677 | - $message = ''; |
|
2678 | - if ($success) { |
|
2677 | + $message = ''; |
|
2678 | + if ($success) { |
|
2679 | 2679 | // Store some result for post-processing in the finished callback. |
2680 | 2680 | $context['results']['success'][] = $forum_id; |
2681 | 2681 | $message = "Successfully imported team forum {$forum_id}"; |
2682 | - } |
|
2683 | - else { |
|
2682 | + } |
|
2683 | + else { |
|
2684 | 2684 | $context['results']['failure'][] = $forum_id; |
2685 | 2685 | $message = "Failed to import team forum {$forum_id}!"; |
2686 | 2686 | watchdog('boincimport', |
2687 | - 'Failed to import team forum @id!', |
|
2688 | - array('@id' => $forum_id), WATCHDOG_WARNING |
|
2687 | + 'Failed to import team forum @id!', |
|
2688 | + array('@id' => $forum_id), WATCHDOG_WARNING |
|
2689 | 2689 | ); |
2690 | - } |
|
2690 | + } |
|
2691 | 2691 | |
2692 | - // Update our progress information. |
|
2693 | - $context['sandbox']['progress']++; |
|
2694 | - $context['sandbox']['current_forum'] = $forum_id; |
|
2695 | - $context['message'] = $message; |
|
2692 | + // Update our progress information. |
|
2693 | + $context['sandbox']['progress']++; |
|
2694 | + $context['sandbox']['current_forum'] = $forum_id; |
|
2695 | + $context['message'] = $message; |
|
2696 | 2696 | |
2697 | - // Update the progress for the batch engine |
|
2698 | - if ($context['sandbox']['progress'] >= $context['sandbox']['max']) { |
|
2697 | + // Update the progress for the batch engine |
|
2698 | + if ($context['sandbox']['progress'] >= $context['sandbox']['max']) { |
|
2699 | 2699 | $context['finished'] = 1; |
2700 | - } |
|
2701 | - else { |
|
2700 | + } |
|
2701 | + else { |
|
2702 | 2702 | $context['finished'] = $context['sandbox']['progress'] / $context['sandbox']['max']; |
2703 | - } |
|
2703 | + } |
|
2704 | 2704 | } |
2705 | 2705 | |
2706 | 2706 | /** |
2707 | 2707 | * Batch 'finished' callback |
2708 | 2708 | */ |
2709 | 2709 | function boincimport_team_forums_finished($success, $results, $operations) { |
2710 | - if ($success) { |
|
2710 | + if ($success) { |
|
2711 | 2711 | // Let's count our successes |
2712 | 2712 | $total_imported = count($results['success']); |
2713 | 2713 | $message = t( |
2714 | - 'Successfully imported @count team forums', |
|
2715 | - array('@count' => $total_imported) |
|
2714 | + 'Successfully imported @count team forums', |
|
2715 | + array('@count' => $total_imported) |
|
2716 | 2716 | ); |
2717 | 2717 | watchdog('boincimport', |
2718 | - 'Successfully imported @count team forums.', |
|
2719 | - array('@count' => $total_imported), WATCHDOG_INFO |
|
2718 | + 'Successfully imported @count team forums.', |
|
2719 | + array('@count' => $total_imported), WATCHDOG_INFO |
|
2720 | 2720 | ); |
2721 | 2721 | // Set the team forum import successful flag in the variable table |
2722 | 2722 | variable_set('boincimport_import_team_forum_successful', '1'); |
2723 | 2723 | $_SESSION['boincimport_stage_selected'] = 'team topics'; |
2724 | - } |
|
2725 | - else { |
|
2724 | + } |
|
2725 | + else { |
|
2726 | 2726 | // An error occurred. |
2727 | 2727 | // $operations contains the operations that remained unprocessed. |
2728 | 2728 | $error_operation = reset($operations); |
2729 | 2729 | $message = 'An error occurred while processing ' . $error_operation[0] . ' with arguments :' . print_r($error_operation[0], TRUE); |
2730 | - } |
|
2731 | - drupal_set_message($message); |
|
2730 | + } |
|
2731 | + drupal_set_message($message); |
|
2732 | 2732 | |
2733 | - // Release the lock on the import process |
|
2734 | - variable_del('boincimport_process_locked'); |
|
2735 | - drupal_goto('admin/boinc/import/process'); |
|
2733 | + // Release the lock on the import process |
|
2734 | + variable_del('boincimport_process_locked'); |
|
2735 | + drupal_goto('admin/boinc/import/process'); |
|
2736 | 2736 | } |
2737 | 2737 | |
2738 | 2738 | |
@@ -2745,25 +2745,25 @@ discard block |
||
2745 | 2745 | */ |
2746 | 2746 | function boincimport_team_forum_topics() { |
2747 | 2747 | |
2748 | - // Check whether team forum topics have been successfully imported already |
|
2749 | - if (variable_get('boincimport_import_team_topic_successful', 0)) { |
|
2748 | + // Check whether team forum topics have been successfully imported already |
|
2749 | + if (variable_get('boincimport_import_team_topic_successful', 0)) { |
|
2750 | 2750 | drupal_set_message(t('Team topic import has already run successfully'), 'warning'); |
2751 | 2751 | watchdog( |
2752 | - 'boincimport', 'Team topic import has already run successfully', |
|
2753 | - array(), WATCHDOG_WARNING |
|
2752 | + 'boincimport', 'Team topic import has already run successfully', |
|
2753 | + array(), WATCHDOG_WARNING |
|
2754 | 2754 | ); |
2755 | - } |
|
2755 | + } |
|
2756 | 2756 | |
2757 | - if (!variable_get('boincimport_import_team_topic_started', 0)) { |
|
2757 | + if (!variable_get('boincimport_import_team_topic_started', 0)) { |
|
2758 | 2758 | // Could prepare database tables, if new fields are necessary, etc. |
2759 | 2759 | variable_set('boincimport_import_team_topic_started', 1); |
2760 | - } |
|
2760 | + } |
|
2761 | 2761 | |
2762 | - $pre = variable_get('boincimport_table_prefix', ''); |
|
2762 | + $pre = variable_get('boincimport_table_prefix', ''); |
|
2763 | 2763 | |
2764 | - // Get all team topics to import from BOINC |
|
2765 | - db_set_active('boinc_rw'); |
|
2766 | - $boincteam_topics = db_query(' |
|
2764 | + // Get all team topics to import from BOINC |
|
2765 | + db_set_active('boinc_rw'); |
|
2766 | + $boincteam_topics = db_query(' |
|
2767 | 2767 | SELECT DISTINCT t.id, t.title, t.owner, t.forum, t.locked, t.hidden, |
2768 | 2768 | t.sticky, t.timestamp, t.create_time |
2769 | 2769 | FROM %sthread t |
@@ -2772,78 +2772,78 @@ discard block |
||
2772 | 2772 | WHERE f.parent_type = 1 |
2773 | 2773 | ORDER BY id', |
2774 | 2774 | $pre, $pre, $pre |
2775 | - ); |
|
2776 | - $boincteam_topic_count = mysqli_num_rows($boincteam_topics); |
|
2777 | - $total_team_topic_count = db_result(db_query(' |
|
2775 | + ); |
|
2776 | + $boincteam_topic_count = mysqli_num_rows($boincteam_topics); |
|
2777 | + $total_team_topic_count = db_result(db_query(' |
|
2778 | 2778 | SELECT COUNT(*) FROM %sthread t |
2779 | 2779 | JOIN %sforum f ON f.id = t.forum |
2780 | 2780 | WHERE f.parent_type = 1', $pre, $pre |
2781 | - )); |
|
2782 | - $empty_topic_count = $total_team_topic_count - $boincteam_topic_count; |
|
2783 | - db_set_active('default'); |
|
2781 | + )); |
|
2782 | + $empty_topic_count = $total_team_topic_count - $boincteam_topic_count; |
|
2783 | + db_set_active('default'); |
|
2784 | 2784 | |
2785 | - if (!$boincteam_topic_count) { |
|
2785 | + if (!$boincteam_topic_count) { |
|
2786 | 2786 | drupal_set_message( |
2787 | - t('There were no team topics found: Aborting script'), 'warning' |
|
2787 | + t('There were no team topics found: Aborting script'), 'warning' |
|
2788 | 2788 | ); |
2789 | 2789 | watchdog('boincimport', |
2790 | - 'There were no team topics found: Aborting script', array(), WATCHDOG_WARNING |
|
2790 | + 'There were no team topics found: Aborting script', array(), WATCHDOG_WARNING |
|
2791 | 2791 | ); |
2792 | 2792 | // Release the lock on the import process |
2793 | 2793 | variable_del('boincimport_process_locked'); |
2794 | 2794 | return t('There were no team topics found: Aborting script.'); |
2795 | - } |
|
2795 | + } |
|
2796 | 2796 | |
2797 | - watchdog('boincimport', |
|
2797 | + watchdog('boincimport', |
|
2798 | 2798 | 'Found %count team topics: Beginning Import', |
2799 | 2799 | array('%count' => $boincteam_topic_count), WATCHDOG_INFO |
2800 | - ); |
|
2800 | + ); |
|
2801 | 2801 | |
2802 | - $operations = array(); |
|
2803 | - $existing_team_topics = array(); |
|
2804 | - $duplicates = array(); |
|
2802 | + $operations = array(); |
|
2803 | + $existing_team_topics = array(); |
|
2804 | + $duplicates = array(); |
|
2805 | 2805 | |
2806 | - // Get the list of team topics already in Drupal to be sure we're not |
|
2807 | - // importing any twice |
|
2808 | - $result = db_query(' |
|
2806 | + // Get the list of team topics already in Drupal to be sure we're not |
|
2807 | + // importing any twice |
|
2808 | + $result = db_query(' |
|
2809 | 2809 | SELECT nid, topic_id FROM {boincimport_temp_topic}' |
2810 | - ); |
|
2811 | - while ($row = db_fetch_object($result)) { |
|
2810 | + ); |
|
2811 | + while ($row = db_fetch_object($result)) { |
|
2812 | 2812 | $existing_team_topics[$row->topic_id] = $row->nid; |
2813 | - } |
|
2813 | + } |
|
2814 | 2814 | |
2815 | - // Create batches to process |
|
2816 | - while ($boincteam_topic = db_fetch_object($boincteam_topics)) { |
|
2817 | - if (isset($existing_team_topics[$boincteam_topic->id])) { |
|
2818 | - // This team topic has already been imported |
|
2819 | - $duplicates[] = $boincteam_topic->id; |
|
2815 | + // Create batches to process |
|
2816 | + while ($boincteam_topic = db_fetch_object($boincteam_topics)) { |
|
2817 | + if (isset($existing_team_topics[$boincteam_topic->id])) { |
|
2818 | + // This team topic has already been imported |
|
2819 | + $duplicates[] = $boincteam_topic->id; |
|
2820 | 2820 | } |
2821 | 2821 | else { |
2822 | - $operations[] = array( |
|
2822 | + $operations[] = array( |
|
2823 | 2823 | 'boincimport_team_topics_op', array( |
2824 | - $boincteam_topic |
|
2824 | + $boincteam_topic |
|
2825 | 2825 | ) |
2826 | - ); |
|
2826 | + ); |
|
2827 | + } |
|
2827 | 2828 | } |
2828 | - } |
|
2829 | 2829 | |
2830 | - if ($duplicates) { |
|
2830 | + if ($duplicates) { |
|
2831 | 2831 | drupal_set_message(t( |
2832 | - 'Skipped @count team topics that were already imported', |
|
2833 | - array('@count' => count($duplicates)) |
|
2832 | + 'Skipped @count team topics that were already imported', |
|
2833 | + array('@count' => count($duplicates)) |
|
2834 | 2834 | )); |
2835 | - } |
|
2835 | + } |
|
2836 | 2836 | |
2837 | - $batch = array( |
|
2837 | + $batch = array( |
|
2838 | 2838 | 'operations' => $operations, |
2839 | 2839 | 'finished' => 'boincimport_team_topics_finished', |
2840 | 2840 | 'title' => t('Importing team topics'), |
2841 | 2841 | 'init_message' => t('Beginning team topic import...'), |
2842 | 2842 | 'progress_message' => t('Processed @current out of @total team topics.'), |
2843 | 2843 | 'error_message' => t('Team topic import has encountered an error.'), |
2844 | - ); |
|
2844 | + ); |
|
2845 | 2845 | |
2846 | - batch_set($batch); |
|
2846 | + batch_set($batch); |
|
2847 | 2847 | } |
2848 | 2848 | |
2849 | 2849 | /** |
@@ -2852,21 +2852,21 @@ discard block |
||
2852 | 2852 | */ |
2853 | 2853 | function boincimport_team_topics_op($topic, &$context) { |
2854 | 2854 | |
2855 | - $input_format = variable_get('boincimport_input_format', 0); |
|
2856 | - $success = FALSE; |
|
2857 | - $missing_parent = array(); |
|
2858 | - $empty_topics = array(); |
|
2855 | + $input_format = variable_get('boincimport_input_format', 0); |
|
2856 | + $success = FALSE; |
|
2857 | + $missing_parent = array(); |
|
2858 | + $empty_topics = array(); |
|
2859 | 2859 | |
2860 | - // Verify that the team forum container has been imported |
|
2861 | - $team_forum_id = db_result(db_query(" |
|
2860 | + // Verify that the team forum container has been imported |
|
2861 | + $team_forum_id = db_result(db_query(" |
|
2862 | 2862 | SELECT tfid FROM {boincteam_forum} |
2863 | 2863 | WHERE boinc_id = %d", |
2864 | 2864 | $topic->forum |
2865 | - )); |
|
2866 | - if (!$team_forum_id) { |
|
2865 | + )); |
|
2866 | + if (!$team_forum_id) { |
|
2867 | 2867 | $missing_parent[] = $topic->id; |
2868 | - } |
|
2869 | - else { |
|
2868 | + } |
|
2869 | + else { |
|
2870 | 2870 | // Get the content of the post that started the topic |
2871 | 2871 | db_set_active('boinc_rw'); |
2872 | 2872 | $query = db_query(' |
@@ -2875,36 +2875,36 @@ discard block |
||
2875 | 2875 | WHERE thread = %d |
2876 | 2876 | ORDER BY timestamp ASC |
2877 | 2877 | LIMIT 1', |
2878 | - $pre, $topic->id); |
|
2878 | + $pre, $topic->id); |
|
2879 | 2879 | db_set_active('default'); |
2880 | 2880 | |
2881 | 2881 | // Skip this topic if there are no posts |
2882 | 2882 | if (!$post = db_fetch_object($query)) { |
2883 | - // Empty topics should have already been filtered out of the import, so |
|
2884 | - // consider this an error condition |
|
2885 | - $empty_topics[] = $topic->id; |
|
2883 | + // Empty topics should have already been filtered out of the import, so |
|
2884 | + // consider this an error condition |
|
2885 | + $empty_topics[] = $topic->id; |
|
2886 | 2886 | } |
2887 | 2887 | else { |
2888 | - // Get the user ID along with other data to define the topic |
|
2889 | - $uid = boincuser_lookup_uid($topic->owner); |
|
2890 | - if (!$topic->owner) { |
|
2888 | + // Get the user ID along with other data to define the topic |
|
2889 | + $uid = boincuser_lookup_uid($topic->owner); |
|
2890 | + if (!$topic->owner) { |
|
2891 | 2891 | $uid = 0; |
2892 | - } |
|
2892 | + } |
|
2893 | 2893 | |
2894 | - $node_type = 'team_forum'; |
|
2895 | - $promote = 0; |
|
2896 | - $comment = ($topic->locked) ? 1 : 2; |
|
2894 | + $node_type = 'team_forum'; |
|
2895 | + $promote = 0; |
|
2896 | + $comment = ($topic->locked) ? 1 : 2; |
|
2897 | 2897 | |
2898 | - $post->content = _boincimport_strip_bbcode($post->content); |
|
2899 | - $post->content = _boincimport_text_sanitize($post->content); |
|
2900 | - $teaser = node_teaser($post->content); |
|
2898 | + $post->content = _boincimport_strip_bbcode($post->content); |
|
2899 | + $post->content = _boincimport_text_sanitize($post->content); |
|
2900 | + $teaser = node_teaser($post->content); |
|
2901 | 2901 | |
2902 | - if ($topic->timestamp < $topic->create_time) { |
|
2902 | + if ($topic->timestamp < $topic->create_time) { |
|
2903 | 2903 | $topic->timestamp = $topic->create_time; |
2904 | - } |
|
2904 | + } |
|
2905 | 2905 | |
2906 | - // Construct the thread as a team_forum topic node |
|
2907 | - $node = array( |
|
2906 | + // Construct the thread as a team_forum topic node |
|
2907 | + $node = array( |
|
2908 | 2908 | 'type' => $node_type, |
2909 | 2909 | 'title' => $topic->title, |
2910 | 2910 | 'uid' => $uid, |
@@ -2919,89 +2919,89 @@ discard block |
||
2919 | 2919 | 'format' => $input_format, |
2920 | 2920 | 'teaser' => $teaser, |
2921 | 2921 | 'tfid' => $team_forum_id, |
2922 | - ); |
|
2922 | + ); |
|
2923 | 2923 | |
2924 | - // Save the team topic node |
|
2925 | - $node = (object) $node; // node_save requires an object form |
|
2926 | - node_save($node); |
|
2924 | + // Save the team topic node |
|
2925 | + $node = (object) $node; // node_save requires an object form |
|
2926 | + node_save($node); |
|
2927 | 2927 | |
2928 | - if ($node->nid) { |
|
2928 | + if ($node->nid) { |
|
2929 | 2929 | db_query(' |
2930 | 2930 | INSERT INTO {boincimport_temp_topic} (topic_id, post_id, nid) |
2931 | 2931 | VALUES (%d, %d, %d)', |
2932 | - $topic->id, $post->id, $node->nid |
|
2932 | + $topic->id, $post->id, $node->nid |
|
2933 | 2933 | ); |
2934 | 2934 | // Hack to keep the topics in correct order |
2935 | 2935 | db_query(' |
2936 | 2936 | UPDATE {node_comment_statistics} |
2937 | 2937 | SET last_comment_timestamp = %d |
2938 | 2938 | WHERE nid = %d', |
2939 | - $node->created, $node->nid |
|
2939 | + $node->created, $node->nid |
|
2940 | 2940 | ); |
2941 | 2941 | $success = TRUE; |
2942 | - } |
|
2942 | + } |
|
2943 | + } |
|
2943 | 2944 | } |
2944 | - } |
|
2945 | 2945 | |
2946 | - $message = ''; |
|
2947 | - if ($success) { |
|
2946 | + $message = ''; |
|
2947 | + if ($success) { |
|
2948 | 2948 | // Store some result for post-processing in the finished callback. |
2949 | 2949 | $context['results']['success'][] = $topic->id; |
2950 | 2950 | $message = "Successfully imported team topic {$topic->id}"; |
2951 | - } |
|
2952 | - else { |
|
2951 | + } |
|
2952 | + else { |
|
2953 | 2953 | $context['results']['failure'][] = $topic->id; |
2954 | 2954 | $message = "Failed to import team topic {$topic->id}!"; |
2955 | 2955 | watchdog('boincimport', |
2956 | - 'Failed to import team topic @id!', |
|
2957 | - array('@id' => $topic->id), WATCHDOG_WARNING |
|
2956 | + 'Failed to import team topic @id!', |
|
2957 | + array('@id' => $topic->id), WATCHDOG_WARNING |
|
2958 | 2958 | ); |
2959 | - } |
|
2959 | + } |
|
2960 | 2960 | |
2961 | - // Update our progress information. |
|
2962 | - $context['sandbox']['progress']++; |
|
2963 | - $context['sandbox']['current_topic'] = $topic->id; |
|
2964 | - $context['message'] = $message; |
|
2961 | + // Update our progress information. |
|
2962 | + $context['sandbox']['progress']++; |
|
2963 | + $context['sandbox']['current_topic'] = $topic->id; |
|
2964 | + $context['message'] = $message; |
|
2965 | 2965 | |
2966 | - // Update the progress for the batch engine |
|
2967 | - if ($context['sandbox']['progress'] >= $context['sandbox']['max']) { |
|
2966 | + // Update the progress for the batch engine |
|
2967 | + if ($context['sandbox']['progress'] >= $context['sandbox']['max']) { |
|
2968 | 2968 | $context['finished'] = 1; |
2969 | - } |
|
2970 | - else { |
|
2969 | + } |
|
2970 | + else { |
|
2971 | 2971 | $context['finished'] = $context['sandbox']['progress'] / $context['sandbox']['max']; |
2972 | - } |
|
2972 | + } |
|
2973 | 2973 | } |
2974 | 2974 | |
2975 | 2975 | /** |
2976 | 2976 | * Batch 'finished' callback |
2977 | 2977 | */ |
2978 | 2978 | function boincimport_team_topics_finished($success, $results, $operations) { |
2979 | - if ($success) { |
|
2979 | + if ($success) { |
|
2980 | 2980 | // Let's count our successes |
2981 | 2981 | $total_imported = count($results['success']); |
2982 | 2982 | $message = t( |
2983 | - 'Successfully imported @count team topics', |
|
2984 | - array('@count' => $total_imported) |
|
2983 | + 'Successfully imported @count team topics', |
|
2984 | + array('@count' => $total_imported) |
|
2985 | 2985 | ); |
2986 | 2986 | watchdog('boincimport', |
2987 | - 'Successfully imported @count team topics.', |
|
2988 | - array('@count' => $total_imported), WATCHDOG_INFO |
|
2987 | + 'Successfully imported @count team topics.', |
|
2988 | + array('@count' => $total_imported), WATCHDOG_INFO |
|
2989 | 2989 | ); |
2990 | 2990 | // Set the BLAH import successful flag in the variable table |
2991 | 2991 | variable_set('boincimport_import_team_topic_successful', '1'); |
2992 | 2992 | $_SESSION['boincimport_stage_selected'] = 'team posts'; |
2993 | - } |
|
2994 | - else { |
|
2993 | + } |
|
2994 | + else { |
|
2995 | 2995 | // An error occurred. |
2996 | 2996 | // $operations contains the operations that remained unprocessed. |
2997 | 2997 | $error_operation = reset($operations); |
2998 | 2998 | $message = 'An error occurred while processing ' . $error_operation[0] . ' with arguments :' . print_r($error_operation[0], TRUE); |
2999 | - } |
|
3000 | - drupal_set_message($message); |
|
2999 | + } |
|
3000 | + drupal_set_message($message); |
|
3001 | 3001 | |
3002 | - // Release the lock on the import process |
|
3003 | - variable_del('boincimport_process_locked'); |
|
3004 | - drupal_goto('admin/boinc/import/process'); |
|
3002 | + // Release the lock on the import process |
|
3003 | + variable_del('boincimport_process_locked'); |
|
3004 | + drupal_goto('admin/boinc/import/process'); |
|
3005 | 3005 | } |
3006 | 3006 | |
3007 | 3007 | |
@@ -3014,81 +3014,81 @@ discard block |
||
3014 | 3014 | */ |
3015 | 3015 | function boincimport_team_forum_posts() { |
3016 | 3016 | |
3017 | - // Check whether team forum posts have been successfully imported already |
|
3018 | - if (variable_get('boincimport_import_team_post_successful', 0)) { |
|
3017 | + // Check whether team forum posts have been successfully imported already |
|
3018 | + if (variable_get('boincimport_import_team_post_successful', 0)) { |
|
3019 | 3019 | drupal_set_message(t('Team forum post import has already run successfully'), 'warning'); |
3020 | 3020 | watchdog( |
3021 | - 'boincimport', 'Team forum post import has already run successfully', |
|
3022 | - array(), WATCHDOG_WARNING |
|
3021 | + 'boincimport', 'Team forum post import has already run successfully', |
|
3022 | + array(), WATCHDOG_WARNING |
|
3023 | 3023 | ); |
3024 | 3024 | // Release the lock on the import process |
3025 | 3025 | variable_del('boincimport_process_locked'); |
3026 | 3026 | return; |
3027 | - } |
|
3027 | + } |
|
3028 | 3028 | |
3029 | - if (!variable_get('boincimport_import_team_post_started', 0)) { |
|
3029 | + if (!variable_get('boincimport_import_team_post_started', 0)) { |
|
3030 | 3030 | // Could prepare database tables, if new fields are necessary, etc. |
3031 | 3031 | variable_set('boincimport_import_team_post_started', 1); |
3032 | - } |
|
3032 | + } |
|
3033 | 3033 | |
3034 | - $pre = variable_get('boincimport_table_prefix', ''); |
|
3034 | + $pre = variable_get('boincimport_table_prefix', ''); |
|
3035 | 3035 | |
3036 | - // Get the BOINC threads and get a count of team posts to import |
|
3037 | - db_set_active('boinc_rw'); |
|
3038 | - $team_topic_ids = db_query(' |
|
3036 | + // Get the BOINC threads and get a count of team posts to import |
|
3037 | + db_set_active('boinc_rw'); |
|
3038 | + $team_topic_ids = db_query(' |
|
3039 | 3039 | SELECT DISTINCT t.id FROM %sthread t |
3040 | 3040 | JOIN %sforum f ON f.id = t.forum |
3041 | 3041 | JOIN %spost p ON p.thread = t.id |
3042 | 3042 | WHERE f.parent_type = 1 |
3043 | 3043 | ORDER BY id', $pre, $pre |
3044 | - ); |
|
3045 | - $team_topic_count = db_result(db_query(" |
|
3044 | + ); |
|
3045 | + $team_topic_count = db_result(db_query(" |
|
3046 | 3046 | SELECT COUNT(DISTINCT t.id) FROM %sthread t |
3047 | 3047 | JOIN %sforum f ON f.id = t.forum |
3048 | 3048 | JOIN %spost p ON p.thread = t.id |
3049 | 3049 | WHERE f.parent_type = 1", $pre, $pre, $pre |
3050 | - )); |
|
3051 | - $total_team_post_count = db_result(db_query(" |
|
3050 | + )); |
|
3051 | + $total_team_post_count = db_result(db_query(" |
|
3052 | 3052 | SELECT COUNT(p.id) FROM %spost p |
3053 | 3053 | JOIN %sthread t ON t.id = p.thread |
3054 | 3054 | JOIN %sforum f ON f.id = t.forum |
3055 | 3055 | WHERE f.parent_type = 1", $pre, $pre, $pre |
3056 | - )); |
|
3057 | - $team_post_count = $total_team_post_count - $team_topic_count; |
|
3058 | - db_set_active('default'); |
|
3056 | + )); |
|
3057 | + $team_post_count = $total_team_post_count - $team_topic_count; |
|
3058 | + db_set_active('default'); |
|
3059 | 3059 | |
3060 | - if ($team_post_count <= 0) { |
|
3060 | + if ($team_post_count <= 0) { |
|
3061 | 3061 | drupal_set_message( |
3062 | - t('There were no team posts found: Aborting script'), 'warning' |
|
3062 | + t('There were no team posts found: Aborting script'), 'warning' |
|
3063 | 3063 | ); |
3064 | 3064 | watchdog('boincimport', |
3065 | - 'There were no team posts found: Aborting script', array(), WATCHDOG_WARNING |
|
3065 | + 'There were no team posts found: Aborting script', array(), WATCHDOG_WARNING |
|
3066 | 3066 | ); |
3067 | 3067 | // Release the lock on the import process |
3068 | 3068 | variable_del('boincimport_process_locked'); |
3069 | 3069 | return t('There were no posts found: Aborting script.'); |
3070 | - } |
|
3070 | + } |
|
3071 | 3071 | |
3072 | - watchdog('boincimport', |
|
3072 | + watchdog('boincimport', |
|
3073 | 3073 | 'Found %count team posts: Beginning Import', |
3074 | 3074 | array('%count' => $team_post_count), WATCHDOG_INFO |
3075 | - ); |
|
3075 | + ); |
|
3076 | 3076 | |
3077 | - $operations = array(); |
|
3078 | - $existing_posts = array(); |
|
3079 | - $duplicates = array(); |
|
3077 | + $operations = array(); |
|
3078 | + $existing_posts = array(); |
|
3079 | + $duplicates = array(); |
|
3080 | 3080 | |
3081 | - // Get the list of team posts already in Drupal to be sure we're not |
|
3082 | - // importing any twice |
|
3083 | - $result = db_query(' |
|
3081 | + // Get the list of team posts already in Drupal to be sure we're not |
|
3082 | + // importing any twice |
|
3083 | + $result = db_query(' |
|
3084 | 3084 | SELECT cid, post_id FROM {boincimport_temp_post}' |
3085 | - ); |
|
3086 | - while ($row = db_fetch_object($result)) { |
|
3085 | + ); |
|
3086 | + while ($row = db_fetch_object($result)) { |
|
3087 | 3087 | $existing_posts[$row->post_id] = $row->cid; |
3088 | - } |
|
3088 | + } |
|
3089 | 3089 | |
3090 | - // Create batches to process |
|
3091 | - while ($boincteam_topic = db_fetch_object($team_topic_ids)) { |
|
3090 | + // Create batches to process |
|
3091 | + while ($boincteam_topic = db_fetch_object($team_topic_ids)) { |
|
3092 | 3092 | |
3093 | 3093 | db_set_active('boinc_rw'); |
3094 | 3094 | $boincteam_posts = db_query(' |
@@ -3096,7 +3096,7 @@ discard block |
||
3096 | 3096 | FROM %spost |
3097 | 3097 | WHERE thread = %d |
3098 | 3098 | ORDER BY timestamp ASC', |
3099 | - $pre, $boincteam_topic->id |
|
3099 | + $pre, $boincteam_topic->id |
|
3100 | 3100 | ); |
3101 | 3101 | db_set_active('default'); |
3102 | 3102 | |
@@ -3104,43 +3104,43 @@ discard block |
||
3104 | 3104 | |
3105 | 3105 | while ($boincteam_post = db_fetch_object($boincteam_posts)) { |
3106 | 3106 | |
3107 | - // Skip the first post as it has already been imported as a topic |
|
3108 | - if ($first_post) { |
|
3107 | + // Skip the first post as it has already been imported as a topic |
|
3108 | + if ($first_post) { |
|
3109 | 3109 | $first_post = false; |
3110 | 3110 | continue; |
3111 | - } |
|
3111 | + } |
|
3112 | 3112 | |
3113 | - if (isset($existing_posts[$boincteam_post->id])) { |
|
3113 | + if (isset($existing_posts[$boincteam_post->id])) { |
|
3114 | 3114 | // This post has already been imported |
3115 | 3115 | $duplicates[] = $boincteam_post->id; |
3116 | - } |
|
3117 | - else { |
|
3116 | + } |
|
3117 | + else { |
|
3118 | 3118 | $operations[] = array( |
3119 | - 'boincimport_team_posts_op', array( |
|
3119 | + 'boincimport_team_posts_op', array( |
|
3120 | 3120 | $boincteam_post |
3121 | - ) |
|
3121 | + ) |
|
3122 | 3122 | ); |
3123 | - } |
|
3123 | + } |
|
3124 | + } |
|
3124 | 3125 | } |
3125 | - } |
|
3126 | 3126 | |
3127 | - if ($duplicates) { |
|
3127 | + if ($duplicates) { |
|
3128 | 3128 | drupal_set_message(t( |
3129 | - 'Skipped @count team posts that were already imported', |
|
3130 | - array('@count' => count($duplicates)) |
|
3129 | + 'Skipped @count team posts that were already imported', |
|
3130 | + array('@count' => count($duplicates)) |
|
3131 | 3131 | )); |
3132 | - } |
|
3132 | + } |
|
3133 | 3133 | |
3134 | - $batch = array( |
|
3134 | + $batch = array( |
|
3135 | 3135 | 'operations' => $operations, |
3136 | 3136 | 'finished' => 'boincimport_team_posts_finished', |
3137 | 3137 | 'title' => t('Importing team posts'), |
3138 | 3138 | 'init_message' => t('Beginning team post import...'), |
3139 | 3139 | 'progress_message' => t('Processed @current out of @total team posts.'), |
3140 | 3140 | 'error_message' => t('Team post import has encountered an error.'), |
3141 | - ); |
|
3141 | + ); |
|
3142 | 3142 | |
3143 | - batch_set($batch); |
|
3143 | + batch_set($batch); |
|
3144 | 3144 | } |
3145 | 3145 | |
3146 | 3146 | /** |
@@ -3149,11 +3149,11 @@ discard block |
||
3149 | 3149 | */ |
3150 | 3150 | function boincimport_team_posts_op($post, &$context) { |
3151 | 3151 | |
3152 | - $input_format = variable_get('boincimport_input_format', 0); |
|
3153 | - $success = FALSE; |
|
3152 | + $input_format = variable_get('boincimport_input_format', 0); |
|
3153 | + $success = FALSE; |
|
3154 | 3154 | |
3155 | - // Make sure the post is valid |
|
3156 | - if ($post->content) { |
|
3155 | + // Make sure the post is valid |
|
3156 | + if ($post->content) { |
|
3157 | 3157 | |
3158 | 3158 | // Get user, node, and parent IDs for the post and sanitize |
3159 | 3159 | $uid = boincuser_lookup_uid($post->user); |
@@ -3162,14 +3162,14 @@ discard block |
||
3162 | 3162 | FROM {boincimport_temp_topic} btt |
3163 | 3163 | LEFT JOIN {node_revisions} AS nr ON btt.nid = nr.nid |
3164 | 3164 | WHERE btt.topic_id = %d', |
3165 | - $post->thread |
|
3165 | + $post->thread |
|
3166 | 3166 | )); |
3167 | 3167 | $nid = $node->nid; |
3168 | 3168 | $pid = db_result(db_query(' |
3169 | 3169 | SELECT cid |
3170 | 3170 | FROM {boincimport_temp_post} |
3171 | 3171 | WHERE post_id = %d', |
3172 | - $post->parent_post)); |
|
3172 | + $post->parent_post)); |
|
3173 | 3173 | if (is_null($pid)) $pid = 0; |
3174 | 3174 | if (!$uid) $uid = 0; |
3175 | 3175 | |
@@ -3180,110 +3180,110 @@ discard block |
||
3180 | 3180 | SELECT COUNT(*) |
3181 | 3181 | FROM {comments} |
3182 | 3182 | WHERE nid = %d', |
3183 | - $nid |
|
3183 | + $nid |
|
3184 | 3184 | )); |
3185 | 3185 | $post_reply = $pid; |
3186 | 3186 | |
3187 | 3187 | if ($post_reply OR $topic_reply) { |
3188 | - // Create a subject for the post from the post content. The body may be in |
|
3189 | - // any format, so we: |
|
3190 | - // 1) Filter it into HTML |
|
3191 | - // 2) Strip out all HTML tags |
|
3192 | - // 3) Convert entities back to plain-text. |
|
3193 | - // Note: format is checked by check_markup(). |
|
3194 | - $subject = truncate_utf8(trim(decode_entities(strip_tags(check_markup($post->content, $input_format)))), 29, TRUE); |
|
3195 | - // Replace "Quote:" with "RE:" |
|
3196 | - $subject = str_replace('Quote:', 'RE: ', $subject); |
|
3197 | - // Fringe cases where the comment body is populated only by HTML tags |
|
3198 | - // will require a default subject... |
|
3199 | - if ($subject === '') |
|
3188 | + // Create a subject for the post from the post content. The body may be in |
|
3189 | + // any format, so we: |
|
3190 | + // 1) Filter it into HTML |
|
3191 | + // 2) Strip out all HTML tags |
|
3192 | + // 3) Convert entities back to plain-text. |
|
3193 | + // Note: format is checked by check_markup(). |
|
3194 | + $subject = truncate_utf8(trim(decode_entities(strip_tags(check_markup($post->content, $input_format)))), 29, TRUE); |
|
3195 | + // Replace "Quote:" with "RE:" |
|
3196 | + $subject = str_replace('Quote:', 'RE: ', $subject); |
|
3197 | + // Fringe cases where the comment body is populated only by HTML tags |
|
3198 | + // will require a default subject... |
|
3199 | + if ($subject === '') |
|
3200 | 3200 | $subject = "RE: {$node->title}"; |
3201 | 3201 | } else { |
3202 | - // This is the first post in the topic |
|
3203 | - $subject = $node->title; |
|
3202 | + // This is the first post in the topic |
|
3203 | + $subject = $node->title; |
|
3204 | 3204 | } |
3205 | 3205 | |
3206 | 3206 | // Construct the post as a Drupal comment |
3207 | 3207 | $comment = array( |
3208 | - 'pid' => $pid, |
|
3209 | - 'nid' => $nid, |
|
3210 | - 'uid' => $uid, |
|
3211 | - 'subject' => $subject, |
|
3212 | - 'comment' => $post->content, |
|
3213 | - 'timestamp' => $post->timestamp, |
|
3214 | - 'status' => $post->hidden, |
|
3215 | - 'format' => $input_format |
|
3208 | + 'pid' => $pid, |
|
3209 | + 'nid' => $nid, |
|
3210 | + 'uid' => $uid, |
|
3211 | + 'subject' => $subject, |
|
3212 | + 'comment' => $post->content, |
|
3213 | + 'timestamp' => $post->timestamp, |
|
3214 | + 'status' => $post->hidden, |
|
3215 | + 'format' => $input_format |
|
3216 | 3216 | ); |
3217 | 3217 | |
3218 | 3218 | // Save the comment |
3219 | 3219 | if (boincimport_forum_comment_save($comment)) { |
3220 | - $success = db_query(' |
|
3220 | + $success = db_query(' |
|
3221 | 3221 | INSERT INTO {boincimport_temp_post} (post_id, cid) |
3222 | 3222 | VALUES (%d, %d)', |
3223 | 3223 | $post->id, $comment['cid'] |
3224 | - ); |
|
3224 | + ); |
|
3225 | + } |
|
3225 | 3226 | } |
3226 | - } |
|
3227 | 3227 | |
3228 | - $message = ''; |
|
3229 | - if ($success) { |
|
3228 | + $message = ''; |
|
3229 | + if ($success) { |
|
3230 | 3230 | // Store some result for post-processing in the finished callback. |
3231 | 3231 | $context['results']['success'][] = $post->id; |
3232 | 3232 | $message = "Successfully imported team post {$post->id}"; |
3233 | - } |
|
3234 | - else { |
|
3233 | + } |
|
3234 | + else { |
|
3235 | 3235 | $context['results']['failure'][] = $post->id; |
3236 | 3236 | $message = "Failed to import team post {$post->id}!"; |
3237 | 3237 | watchdog('boincimport', |
3238 | - 'Failed to import team post @id!', |
|
3239 | - array('@id' => $post->id), WATCHDOG_WARNING |
|
3238 | + 'Failed to import team post @id!', |
|
3239 | + array('@id' => $post->id), WATCHDOG_WARNING |
|
3240 | 3240 | ); |
3241 | - } |
|
3241 | + } |
|
3242 | 3242 | |
3243 | - // Update our progress information. |
|
3244 | - $context['sandbox']['progress']++; |
|
3245 | - $context['sandbox']['current_post'] = $post->id; |
|
3246 | - $context['message'] = $message; |
|
3243 | + // Update our progress information. |
|
3244 | + $context['sandbox']['progress']++; |
|
3245 | + $context['sandbox']['current_post'] = $post->id; |
|
3246 | + $context['message'] = $message; |
|
3247 | 3247 | |
3248 | - // Update the progress for the batch engine |
|
3249 | - if ($context['sandbox']['progress'] >= $context['sandbox']['max']) { |
|
3248 | + // Update the progress for the batch engine |
|
3249 | + if ($context['sandbox']['progress'] >= $context['sandbox']['max']) { |
|
3250 | 3250 | $context['finished'] = 1; |
3251 | - } |
|
3252 | - else { |
|
3251 | + } |
|
3252 | + else { |
|
3253 | 3253 | $context['finished'] = $context['sandbox']['progress'] / $context['sandbox']['max']; |
3254 | - } |
|
3254 | + } |
|
3255 | 3255 | } |
3256 | 3256 | |
3257 | 3257 | /** |
3258 | 3258 | * Batch 'finished' callback |
3259 | 3259 | */ |
3260 | 3260 | function boincimport_team_posts_finished($success, $results, $operations) { |
3261 | - if ($success) { |
|
3261 | + if ($success) { |
|
3262 | 3262 | // Let's count our successes |
3263 | 3263 | $total_imported = count($results['success']); |
3264 | 3264 | $message = t( |
3265 | - 'Successfully imported @count team posts', |
|
3266 | - array('@count' => $total_imported) |
|
3265 | + 'Successfully imported @count team posts', |
|
3266 | + array('@count' => $total_imported) |
|
3267 | 3267 | ); |
3268 | 3268 | watchdog('boincimport', |
3269 | - 'Successfully imported @count team posts.', |
|
3270 | - array('@count' => $total_imported), WATCHDOG_INFO |
|
3269 | + 'Successfully imported @count team posts.', |
|
3270 | + array('@count' => $total_imported), WATCHDOG_INFO |
|
3271 | 3271 | ); |
3272 | 3272 | // Set the team post import successful flag in the variable table |
3273 | 3273 | variable_set('boincimport_import_team_post_successful', '1'); |
3274 | 3274 | $_SESSION['boincimport_stage_selected'] = 'url'; |
3275 | - } |
|
3276 | - else { |
|
3275 | + } |
|
3276 | + else { |
|
3277 | 3277 | // An error occurred. |
3278 | 3278 | // $operations contains the operations that remained unprocessed. |
3279 | 3279 | $error_operation = reset($operations); |
3280 | 3280 | $message = 'An error occurred while processing ' . $error_operation[0] . ' with arguments :' . print_r($error_operation[0], TRUE); |
3281 | - } |
|
3282 | - drupal_set_message($message); |
|
3281 | + } |
|
3282 | + drupal_set_message($message); |
|
3283 | 3283 | |
3284 | - // Release the lock on the import process |
|
3285 | - variable_del('boincimport_process_locked'); |
|
3286 | - drupal_goto('admin/boinc/import/process'); |
|
3284 | + // Release the lock on the import process |
|
3285 | + variable_del('boincimport_process_locked'); |
|
3286 | + drupal_goto('admin/boinc/import/process'); |
|
3287 | 3287 | } |
3288 | 3288 | |
3289 | 3289 | |
@@ -3296,71 +3296,71 @@ discard block |
||
3296 | 3296 | */ |
3297 | 3297 | function boincimport_subscriptions() { |
3298 | 3298 | |
3299 | - // Check whether subscriptions have been successfully imported already |
|
3300 | - if (variable_get('boincimport_import_subscription_successful', 0)) { |
|
3299 | + // Check whether subscriptions have been successfully imported already |
|
3300 | + if (variable_get('boincimport_import_subscription_successful', 0)) { |
|
3301 | 3301 | drupal_set_message(t('Subscription import has already run successfully'), 'warning'); |
3302 | 3302 | watchdog( |
3303 | - 'boincimport', 'Subscription import has already run successfully', |
|
3304 | - array(), WATCHDOG_WARNING |
|
3303 | + 'boincimport', 'Subscription import has already run successfully', |
|
3304 | + array(), WATCHDOG_WARNING |
|
3305 | 3305 | ); |
3306 | - } |
|
3306 | + } |
|
3307 | 3307 | |
3308 | - if (!variable_get('boincimport_import_subscription_started', 0)) { |
|
3308 | + if (!variable_get('boincimport_import_subscription_started', 0)) { |
|
3309 | 3309 | // Could prepare database tables, if new fields are necessary, etc. |
3310 | 3310 | variable_set('boincimport_import_subscription_started', 1); |
3311 | - } |
|
3311 | + } |
|
3312 | 3312 | |
3313 | - $pre = variable_get('boincimport_table_prefix', ''); |
|
3313 | + $pre = variable_get('boincimport_table_prefix', ''); |
|
3314 | 3314 | |
3315 | - // Get users with subscriptions to import |
|
3316 | - db_set_active('boinc_rw'); |
|
3317 | - $users_with_subscriptions = db_query(' |
|
3315 | + // Get users with subscriptions to import |
|
3316 | + db_set_active('boinc_rw'); |
|
3317 | + $users_with_subscriptions = db_query(' |
|
3318 | 3318 | SELECT DISTINCT userid |
3319 | 3319 | FROM %ssubscriptions |
3320 | 3320 | ORDER BY userid ASC', |
3321 | 3321 | $pre |
3322 | - ); |
|
3323 | - $user_count = mysqli_num_rows($users_with_subscriptions); |
|
3324 | - db_set_active('default'); |
|
3322 | + ); |
|
3323 | + $user_count = mysqli_num_rows($users_with_subscriptions); |
|
3324 | + db_set_active('default'); |
|
3325 | 3325 | |
3326 | - if (!$user_count) { |
|
3326 | + if (!$user_count) { |
|
3327 | 3327 | drupal_set_message( |
3328 | - t('There were no subscriptions found: Aborting script'), 'warning' |
|
3328 | + t('There were no subscriptions found: Aborting script'), 'warning' |
|
3329 | 3329 | ); |
3330 | 3330 | watchdog('boincimport', |
3331 | - 'There were no subscriptions found: Aborting script', array(), WATCHDOG_WARNING |
|
3331 | + 'There were no subscriptions found: Aborting script', array(), WATCHDOG_WARNING |
|
3332 | 3332 | ); |
3333 | 3333 | // Release the lock on the import process |
3334 | 3334 | variable_del('boincimport_process_locked'); |
3335 | 3335 | return t('There were no subscriptions found: Aborting script.'); |
3336 | - } |
|
3336 | + } |
|
3337 | 3337 | |
3338 | - watchdog('boincimport', |
|
3338 | + watchdog('boincimport', |
|
3339 | 3339 | 'Found %count users with subscriptions: Beginning import', |
3340 | 3340 | array('%count' => $user_count), WATCHDOG_INFO |
3341 | - ); |
|
3341 | + ); |
|
3342 | 3342 | |
3343 | - $operations = array(); |
|
3343 | + $operations = array(); |
|
3344 | 3344 | |
3345 | - // Create batches to process |
|
3346 | - while ($subscribed_user = db_fetch_object($users_with_subscriptions)) { |
|
3345 | + // Create batches to process |
|
3346 | + while ($subscribed_user = db_fetch_object($users_with_subscriptions)) { |
|
3347 | 3347 | $operations[] = array( |
3348 | - 'boincimport_subscriptions_op', array( |
|
3348 | + 'boincimport_subscriptions_op', array( |
|
3349 | 3349 | $subscribed_user->userid |
3350 | - ) |
|
3350 | + ) |
|
3351 | 3351 | ); |
3352 | - } |
|
3352 | + } |
|
3353 | 3353 | |
3354 | - $batch = array( |
|
3354 | + $batch = array( |
|
3355 | 3355 | 'operations' => $operations, |
3356 | 3356 | 'finished' => 'boincimport_subscriptions_finished', |
3357 | 3357 | 'title' => t('Importing subscriptions'), |
3358 | 3358 | 'init_message' => t('Beginning subscription import...'), |
3359 | 3359 | 'progress_message' => t('Processed @current out of @total subscriptions.'), |
3360 | 3360 | 'error_message' => t('Subscription import has encountered an error.'), |
3361 | - ); |
|
3361 | + ); |
|
3362 | 3362 | |
3363 | - batch_set($batch); |
|
3363 | + batch_set($batch); |
|
3364 | 3364 | } |
3365 | 3365 | |
3366 | 3366 | /** |
@@ -3369,72 +3369,72 @@ discard block |
||
3369 | 3369 | */ |
3370 | 3370 | function boincimport_subscriptions_op($boincuser_id, &$context) { |
3371 | 3371 | |
3372 | - // Get the drupal user and pull subscriptions |
|
3373 | - $uid = get_drupal_id($boincuser_id); |
|
3374 | - $count = boincuser_pull_subscriptions($uid); |
|
3372 | + // Get the drupal user and pull subscriptions |
|
3373 | + $uid = get_drupal_id($boincuser_id); |
|
3374 | + $count = boincuser_pull_subscriptions($uid); |
|
3375 | 3375 | |
3376 | - $message = ''; |
|
3377 | - if ($count) { |
|
3376 | + $message = ''; |
|
3377 | + if ($count) { |
|
3378 | 3378 | // Store some result for post-processing in the finished callback. |
3379 | 3379 | $context['results']['success'][] = $boincuser_id; |
3380 | 3380 | $context['results']['subscriptions'][$boincuser_id] = $count; |
3381 | 3381 | $message = "Successfully imported {$count} subscriptions for user {$boincuser_id}"; |
3382 | - } |
|
3383 | - else { |
|
3382 | + } |
|
3383 | + else { |
|
3384 | 3384 | $context['results']['failure'][] = $boincuser_id; |
3385 | 3385 | $message = "Failed to import subscriptions for user {$boincuser_id}!"; |
3386 | 3386 | watchdog('boincimport', |
3387 | - 'Failed to import subscriptions for user @id!', |
|
3388 | - array('@id' => $boincuser_id), WATCHDOG_WARNING |
|
3387 | + 'Failed to import subscriptions for user @id!', |
|
3388 | + array('@id' => $boincuser_id), WATCHDOG_WARNING |
|
3389 | 3389 | ); |
3390 | - } |
|
3390 | + } |
|
3391 | 3391 | |
3392 | - // Update our progress information. |
|
3393 | - $context['sandbox']['progress']++; |
|
3394 | - $context['sandbox']['current_user'] = $boincuser_id; |
|
3395 | - $context['message'] = $message; |
|
3392 | + // Update our progress information. |
|
3393 | + $context['sandbox']['progress']++; |
|
3394 | + $context['sandbox']['current_user'] = $boincuser_id; |
|
3395 | + $context['message'] = $message; |
|
3396 | 3396 | |
3397 | - // Update the progress for the batch engine |
|
3398 | - if ($context['sandbox']['progress'] >= $context['sandbox']['max']) { |
|
3397 | + // Update the progress for the batch engine |
|
3398 | + if ($context['sandbox']['progress'] >= $context['sandbox']['max']) { |
|
3399 | 3399 | $context['finished'] = 1; |
3400 | - } |
|
3401 | - else { |
|
3400 | + } |
|
3401 | + else { |
|
3402 | 3402 | $context['finished'] = $context['sandbox']['progress'] / $context['sandbox']['max']; |
3403 | - } |
|
3403 | + } |
|
3404 | 3404 | } |
3405 | 3405 | |
3406 | 3406 | /** |
3407 | 3407 | * Batch 'finished' callback |
3408 | 3408 | */ |
3409 | 3409 | function boincimport_subscriptions_finished($success, $results, $operations) { |
3410 | - if ($success) { |
|
3410 | + if ($success) { |
|
3411 | 3411 | // Let's count our successes |
3412 | 3412 | $user_count = count($results['success']); |
3413 | 3413 | $subscriptions_imported = array_sum($results['subscriptions']); |
3414 | 3414 | $message = t( |
3415 | - 'Successfully imported @count subscriptions for @distinct users', |
|
3416 | - array('@count' => $subscriptions_imported, '@distinct' => $user_count) |
|
3415 | + 'Successfully imported @count subscriptions for @distinct users', |
|
3416 | + array('@count' => $subscriptions_imported, '@distinct' => $user_count) |
|
3417 | 3417 | ); |
3418 | 3418 | watchdog('boincimport', |
3419 | - 'Successfully imported @count subscriptions for @distinct users.', |
|
3420 | - array('@count' => $subscriptions_imported, '@distinct' => $user_count), |
|
3421 | - WATCHDOG_INFO |
|
3419 | + 'Successfully imported @count subscriptions for @distinct users.', |
|
3420 | + array('@count' => $subscriptions_imported, '@distinct' => $user_count), |
|
3421 | + WATCHDOG_INFO |
|
3422 | 3422 | ); |
3423 | 3423 | // Set the subscription import successful flag in the variable table |
3424 | 3424 | variable_set('boincimport_import_subscription_successful', '1'); |
3425 | 3425 | $_SESSION['boincimport_stage_selected'] = 'url'; |
3426 | - } |
|
3427 | - else { |
|
3426 | + } |
|
3427 | + else { |
|
3428 | 3428 | // An error occurred. |
3429 | 3429 | // $operations contains the operations that remained unprocessed. |
3430 | 3430 | $error_operation = reset($operations); |
3431 | 3431 | $message = 'An error occurred while processing ' . $error_operation[0] . ' with arguments :' . print_r($error_operation[0], TRUE); |
3432 | - } |
|
3433 | - drupal_set_message($message); |
|
3432 | + } |
|
3433 | + drupal_set_message($message); |
|
3434 | 3434 | |
3435 | - // Release the lock on the import process |
|
3436 | - variable_del('boincimport_process_locked'); |
|
3437 | - drupal_goto('admin/boinc/import/process'); |
|
3435 | + // Release the lock on the import process |
|
3436 | + variable_del('boincimport_process_locked'); |
|
3437 | + drupal_goto('admin/boinc/import/process'); |
|
3438 | 3438 | } |
3439 | 3439 | |
3440 | 3440 | |
@@ -3446,112 +3446,112 @@ discard block |
||
3446 | 3446 | */ |
3447 | 3447 | function boincimport_replace_urls() { |
3448 | 3448 | |
3449 | - // Check whether URLs have already been fixed |
|
3450 | - if (variable_get('boincimport_replace_url_successful', 0)) { |
|
3449 | + // Check whether URLs have already been fixed |
|
3450 | + if (variable_get('boincimport_replace_url_successful', 0)) { |
|
3451 | 3451 | drupal_set_message(t('URLs have already been updated'), 'warning'); |
3452 | 3452 | watchdog( |
3453 | - 'boincimport', 'URLs have already been updated', |
|
3454 | - array(), WATCHDOG_WARNING |
|
3453 | + 'boincimport', 'URLs have already been updated', |
|
3454 | + array(), WATCHDOG_WARNING |
|
3455 | 3455 | ); |
3456 | - } |
|
3456 | + } |
|
3457 | 3457 | |
3458 | - if (!variable_get('boincimport_replace_url_started', 0)) { |
|
3458 | + if (!variable_get('boincimport_replace_url_started', 0)) { |
|
3459 | 3459 | // Could prepare database tables, if new fields are necessary, etc. |
3460 | 3460 | variable_set('boincimport_replace_url_started', 1); |
3461 | - } |
|
3461 | + } |
|
3462 | 3462 | |
3463 | - // Get the count of nodes and comments to process for URL updates |
|
3464 | - $node_count = db_result(db_query(' |
|
3463 | + // Get the count of nodes and comments to process for URL updates |
|
3464 | + $node_count = db_result(db_query(' |
|
3465 | 3465 | SELECT COUNT(DISTINCT btt.nid) |
3466 | 3466 | FROM {boincimport_temp_topic} AS btt |
3467 | 3467 | LEFT JOIN {node_revisions} AS nr ON btt.nid = nr.nid' |
3468 | - )); |
|
3468 | + )); |
|
3469 | 3469 | |
3470 | - $comment_count = db_result(db_query(' |
|
3470 | + $comment_count = db_result(db_query(' |
|
3471 | 3471 | SELECT COUNT(c.cid) |
3472 | 3472 | FROM {boincimport_temp_post} AS p |
3473 | 3473 | LEFT JOIN {comments} AS c ON p.cid = c.cid' |
3474 | - )); |
|
3474 | + )); |
|
3475 | 3475 | |
3476 | - $pm_count = db_result(db_query(' |
|
3476 | + $pm_count = db_result(db_query(' |
|
3477 | 3477 | SELECT COUNT(*) |
3478 | 3478 | FROM {pm_message} pm' |
3479 | - )); |
|
3479 | + )); |
|
3480 | 3480 | |
3481 | - if (!$node_count AND !$comment_count AND !$pm_count) { |
|
3481 | + if (!$node_count AND !$comment_count AND !$pm_count) { |
|
3482 | 3482 | drupal_set_message( |
3483 | - t('There were no nodes, comments, or private messages found: Aborting script'), 'warning' |
|
3483 | + t('There were no nodes, comments, or private messages found: Aborting script'), 'warning' |
|
3484 | 3484 | ); |
3485 | 3485 | watchdog('boincimport', |
3486 | - 'There were no nodes,comments, or private messages found: Aborting script', array(), WATCHDOG_WARNING |
|
3486 | + 'There were no nodes,comments, or private messages found: Aborting script', array(), WATCHDOG_WARNING |
|
3487 | 3487 | ); |
3488 | 3488 | // Release the lock on the import process |
3489 | 3489 | variable_del('boincimport_process_locked'); |
3490 | 3490 | return t('There were no nodes, comments, or private messages found: Aborting script.'); |
3491 | - } |
|
3491 | + } |
|
3492 | 3492 | |
3493 | - watchdog('boincimport', |
|
3493 | + watchdog('boincimport', |
|
3494 | 3494 | 'Found %node_count nodes, %comment_count comments, and %pm_count private messages: Updating URLs...', |
3495 | 3495 | array( |
3496 | - '%node_count' => $node_count, |
|
3497 | - '%comment_count' => $comment_count, |
|
3498 | - '%pm_count' => $pm_count, |
|
3496 | + '%node_count' => $node_count, |
|
3497 | + '%comment_count' => $comment_count, |
|
3498 | + '%pm_count' => $pm_count, |
|
3499 | 3499 | ), |
3500 | 3500 | WATCHDOG_INFO |
3501 | - ); |
|
3501 | + ); |
|
3502 | 3502 | |
3503 | - $operations = array(); |
|
3504 | - $batch_size = 100; |
|
3503 | + $operations = array(); |
|
3504 | + $batch_size = 100; |
|
3505 | 3505 | |
3506 | - // Create node batches to process |
|
3507 | - for ($offset = 0; $offset < $node_count; $offset+=$batch_size) { |
|
3506 | + // Create node batches to process |
|
3507 | + for ($offset = 0; $offset < $node_count; $offset+=$batch_size) { |
|
3508 | 3508 | $nodes_per_batch = $batch_size; |
3509 | 3509 | if ($offset + $batch_size > $node_count) { |
3510 | - $nodes_per_batch = $node_count - $offset; |
|
3510 | + $nodes_per_batch = $node_count - $offset; |
|
3511 | 3511 | } |
3512 | 3512 | $operations[] = array( |
3513 | - 'boincimport_replace_urls_node_op', array( |
|
3513 | + 'boincimport_replace_urls_node_op', array( |
|
3514 | 3514 | $offset, $nodes_per_batch |
3515 | - ) |
|
3515 | + ) |
|
3516 | 3516 | ); |
3517 | - } |
|
3518 | - // Add comment batches |
|
3519 | - for ($offset = 0; $offset < $comment_count; $offset+=$batch_size) { |
|
3517 | + } |
|
3518 | + // Add comment batches |
|
3519 | + for ($offset = 0; $offset < $comment_count; $offset+=$batch_size) { |
|
3520 | 3520 | $comments_per_batch = $batch_size; |
3521 | 3521 | if ($offset + $batch_size > $comment_count) { |
3522 | - $comments_per_batch = $comment_count - $offset; |
|
3522 | + $comments_per_batch = $comment_count - $offset; |
|
3523 | 3523 | } |
3524 | 3524 | $operations[] = array( |
3525 | - 'boincimport_replace_urls_comment_op', array( |
|
3525 | + 'boincimport_replace_urls_comment_op', array( |
|
3526 | 3526 | $offset, $comments_per_batch |
3527 | - ) |
|
3527 | + ) |
|
3528 | 3528 | ); |
3529 | - } |
|
3530 | - // And don't forget to process private messages |
|
3531 | - for ($offset = 0; $offset < $pm_count; $offset+=$batch_size) { |
|
3529 | + } |
|
3530 | + // And don't forget to process private messages |
|
3531 | + for ($offset = 0; $offset < $pm_count; $offset+=$batch_size) { |
|
3532 | 3532 | $messages_per_batch = $batch_size; |
3533 | 3533 | if ($offset + $batch_size > $pm_count) { |
3534 | - $messages_per_batch = $pm_count - $offset; |
|
3534 | + $messages_per_batch = $pm_count - $offset; |
|
3535 | 3535 | } |
3536 | 3536 | $operations[] = array( |
3537 | - 'boincimport_replace_urls_pm_op', array( |
|
3537 | + 'boincimport_replace_urls_pm_op', array( |
|
3538 | 3538 | $offset, $messages_per_batch |
3539 | - ) |
|
3539 | + ) |
|
3540 | 3540 | ); |
3541 | - } |
|
3541 | + } |
|
3542 | 3542 | |
3543 | - $batch = array( |
|
3543 | + $batch = array( |
|
3544 | 3544 | 'operations' => $operations, |
3545 | 3545 | 'finished' => 'boincimport_replace_urls_finished', |
3546 | 3546 | 'title' => t('Updating URLs...'), |
3547 | 3547 | 'init_message' => t('Beginning URL update...'), |
3548 | 3548 | 'progress_message' => t('Processed URLs in @current out of @total batches (@size items per batch).', array( |
3549 | - '@size' => $batch_size, |
|
3549 | + '@size' => $batch_size, |
|
3550 | 3550 | )), |
3551 | 3551 | 'error_message' => t('URL update has encountered an error.'), |
3552 | - ); |
|
3552 | + ); |
|
3553 | 3553 | |
3554 | - batch_set($batch); |
|
3554 | + batch_set($batch); |
|
3555 | 3555 | } |
3556 | 3556 | |
3557 | 3557 | /** |
@@ -3559,27 +3559,27 @@ discard block |
||
3559 | 3559 | * Find URLs for the old system and update them with Drupal paths |
3560 | 3560 | */ |
3561 | 3561 | function boincimport_replace_urls_node_op($offset, $batch_size, &$context) { |
3562 | - // Initialize the batch, if needed |
|
3563 | - if (!isset($context['sandbox']['progress'])) { |
|
3562 | + // Initialize the batch, if needed |
|
3563 | + if (!isset($context['sandbox']['progress'])) { |
|
3564 | 3564 | $context['sandbox']['progress'] = 0; |
3565 | 3565 | $context['sandbox']['max'] = $batch_size; |
3566 | - } |
|
3566 | + } |
|
3567 | 3567 | |
3568 | - $input_format = variable_get('boincimport_input_format', 0); |
|
3568 | + $input_format = variable_get('boincimport_input_format', 0); |
|
3569 | 3569 | |
3570 | - // Since topics have just been imported, there should be only one vid for |
|
3571 | - // each nid, so we can update node_revisions by nid |
|
3572 | - // Get nodes to process |
|
3573 | - $nodes = db_query(' |
|
3570 | + // Since topics have just been imported, there should be only one vid for |
|
3571 | + // each nid, so we can update node_revisions by nid |
|
3572 | + // Get nodes to process |
|
3573 | + $nodes = db_query(' |
|
3574 | 3574 | SELECT btt.nid, nr.body, nr.teaser |
3575 | 3575 | FROM {boincimport_temp_topic} AS btt |
3576 | 3576 | LEFT JOIN {node_revisions} AS nr ON btt.nid = nr.nid |
3577 | 3577 | ORDER BY btt.nid |
3578 | 3578 | LIMIT %d,%d', |
3579 | 3579 | $offset, $batch_size |
3580 | - ); |
|
3580 | + ); |
|
3581 | 3581 | |
3582 | - while ($node = db_fetch_object($nodes)) { |
|
3582 | + while ($node = db_fetch_object($nodes)) { |
|
3583 | 3583 | $updated = FALSE; |
3584 | 3584 | |
3585 | 3585 | // Update URLs in node contents |
@@ -3588,23 +3588,23 @@ discard block |
||
3588 | 3588 | $node->body = _boincimport_replace_links($node->body); |
3589 | 3589 | $node->teaser = _boincimport_replace_links($node->teaser); |
3590 | 3590 | if ($node->body != $original_body OR $node->teaser != $original_teaser) { |
3591 | - $updated = db_query(" |
|
3591 | + $updated = db_query(" |
|
3592 | 3592 | UPDATE {node_revisions} |
3593 | 3593 | SET body= '%s', teaser = '%s' |
3594 | 3594 | WHERE nid = %d", |
3595 | 3595 | $node->body, $node->teaser, $node->nid |
3596 | - ); |
|
3596 | + ); |
|
3597 | 3597 | } |
3598 | 3598 | |
3599 | 3599 | $message = ''; |
3600 | 3600 | $context['results']['success'][] = $node->nid; |
3601 | 3601 | if ($updated) { |
3602 | - // Store some result for post-processing in the finished callback. |
|
3603 | - $context['results']['nodes']['updated'][] = $node->nid; |
|
3604 | - $message = "Successfully updated node {$node->nid}"; |
|
3602 | + // Store some result for post-processing in the finished callback. |
|
3603 | + $context['results']['nodes']['updated'][] = $node->nid; |
|
3604 | + $message = "Successfully updated node {$node->nid}"; |
|
3605 | 3605 | } |
3606 | 3606 | else { |
3607 | - $message = "No changes made to node {$node->nid}!"; |
|
3607 | + $message = "No changes made to node {$node->nid}!"; |
|
3608 | 3608 | } |
3609 | 3609 | |
3610 | 3610 | // Update our progress information. |
@@ -3614,12 +3614,12 @@ discard block |
||
3614 | 3614 | |
3615 | 3615 | // Update the progress for the batch engine |
3616 | 3616 | if ($context['sandbox']['progress'] >= $context['sandbox']['max']) { |
3617 | - $context['finished'] = 1; |
|
3617 | + $context['finished'] = 1; |
|
3618 | 3618 | } |
3619 | 3619 | else { |
3620 | - $context['finished'] = $context['sandbox']['progress'] / $context['sandbox']['max']; |
|
3620 | + $context['finished'] = $context['sandbox']['progress'] / $context['sandbox']['max']; |
|
3621 | + } |
|
3621 | 3622 | } |
3622 | - } |
|
3623 | 3623 | } |
3624 | 3624 | |
3625 | 3625 | /** |
@@ -3627,48 +3627,48 @@ discard block |
||
3627 | 3627 | * Find URLs for the old system and update them with Drupal paths |
3628 | 3628 | */ |
3629 | 3629 | function boincimport_replace_urls_comment_op($offset, $batch_size, &$context) { |
3630 | - // Initialize the batch, if needed |
|
3631 | - if (!isset($context['sandbox']['progress'])) { |
|
3630 | + // Initialize the batch, if needed |
|
3631 | + if (!isset($context['sandbox']['progress'])) { |
|
3632 | 3632 | $context['sandbox']['progress'] = 0; |
3633 | 3633 | $context['sandbox']['max'] = $batch_size; |
3634 | - } |
|
3634 | + } |
|
3635 | 3635 | |
3636 | - $input_format = variable_get('boincimport_input_format', 0); |
|
3636 | + $input_format = variable_get('boincimport_input_format', 0); |
|
3637 | 3637 | |
3638 | - // Get comments to process |
|
3639 | - $comments = db_query(' |
|
3638 | + // Get comments to process |
|
3639 | + $comments = db_query(' |
|
3640 | 3640 | SELECT c.cid, c.comment |
3641 | 3641 | FROM {boincimport_temp_post} AS p |
3642 | 3642 | LEFT JOIN {comments} AS c ON p.cid = c.cid |
3643 | 3643 | ORDER BY c.cid |
3644 | 3644 | LIMIT %d,%d', |
3645 | 3645 | $offset, $batch_size |
3646 | - ); |
|
3646 | + ); |
|
3647 | 3647 | |
3648 | - while ($comment = db_fetch_object($comments)) { |
|
3648 | + while ($comment = db_fetch_object($comments)) { |
|
3649 | 3649 | $updated = FALSE; |
3650 | 3650 | |
3651 | 3651 | // Update URLs in comment contents |
3652 | 3652 | $original_comment = $comment->comment; |
3653 | 3653 | $comment->comment = _boincimport_replace_links($comment->comment); |
3654 | 3654 | if ($comment->comment != $original_comment) { |
3655 | - $updated = db_query(" |
|
3655 | + $updated = db_query(" |
|
3656 | 3656 | UPDATE {comments} |
3657 | 3657 | SET comment= '%s' |
3658 | 3658 | WHERE cid = %d", |
3659 | 3659 | $comment->comment, $comment->cid |
3660 | - ); |
|
3660 | + ); |
|
3661 | 3661 | } |
3662 | 3662 | |
3663 | 3663 | $message = ''; |
3664 | 3664 | $context['results']['success'][] = $comment->cid; |
3665 | 3665 | if ($updated) { |
3666 | - // Store some result for post-processing in the finished callback. |
|
3667 | - $context['results']['comments']['updated'][] = $comment->cid; |
|
3668 | - $message = "Successfully updated comment {$comment->cid}"; |
|
3666 | + // Store some result for post-processing in the finished callback. |
|
3667 | + $context['results']['comments']['updated'][] = $comment->cid; |
|
3668 | + $message = "Successfully updated comment {$comment->cid}"; |
|
3669 | 3669 | } |
3670 | 3670 | else { |
3671 | - $message = "No changes made to comment {$comment->cid}!"; |
|
3671 | + $message = "No changes made to comment {$comment->cid}!"; |
|
3672 | 3672 | } |
3673 | 3673 | |
3674 | 3674 | // Update our progress information. |
@@ -3678,12 +3678,12 @@ discard block |
||
3678 | 3678 | |
3679 | 3679 | // Update the progress for the batch engine |
3680 | 3680 | if ($context['sandbox']['progress'] >= $context['sandbox']['max']) { |
3681 | - $context['finished'] = 1; |
|
3681 | + $context['finished'] = 1; |
|
3682 | 3682 | } |
3683 | 3683 | else { |
3684 | - $context['finished'] = $context['sandbox']['progress'] / $context['sandbox']['max']; |
|
3684 | + $context['finished'] = $context['sandbox']['progress'] / $context['sandbox']['max']; |
|
3685 | + } |
|
3685 | 3686 | } |
3686 | - } |
|
3687 | 3687 | } |
3688 | 3688 | |
3689 | 3689 | /** |
@@ -3691,47 +3691,47 @@ discard block |
||
3691 | 3691 | * Find URLs for the old system and update them with Drupal paths |
3692 | 3692 | */ |
3693 | 3693 | function boincimport_replace_urls_pm_op($offset, $batch_size, &$context) { |
3694 | - // Initialize the batch, if needed |
|
3695 | - if (!isset($context['sandbox']['progress'])) { |
|
3694 | + // Initialize the batch, if needed |
|
3695 | + if (!isset($context['sandbox']['progress'])) { |
|
3696 | 3696 | $context['sandbox']['progress'] = 0; |
3697 | 3697 | $context['sandbox']['max'] = $batch_size; |
3698 | - } |
|
3698 | + } |
|
3699 | 3699 | |
3700 | - $input_format = variable_get('boincimport_input_format', 0); |
|
3700 | + $input_format = variable_get('boincimport_input_format', 0); |
|
3701 | 3701 | |
3702 | - // Get private messages to process |
|
3703 | - $messages = db_query(' |
|
3702 | + // Get private messages to process |
|
3703 | + $messages = db_query(' |
|
3704 | 3704 | SELECT pm.mid, pm.body |
3705 | 3705 | FROM {pm_message} pm |
3706 | 3706 | ORDER BY pm.mid |
3707 | 3707 | LIMIT %d,%d', |
3708 | 3708 | $offset, $batch_size |
3709 | - ); |
|
3709 | + ); |
|
3710 | 3710 | |
3711 | - while ($pm = db_fetch_object($messages)) { |
|
3711 | + while ($pm = db_fetch_object($messages)) { |
|
3712 | 3712 | $updated = FALSE; |
3713 | 3713 | |
3714 | 3714 | // Update URLs in private message body |
3715 | 3715 | $original_pm_body = $pm->body; |
3716 | 3716 | $pm->body = _boincimport_replace_links($pm->body); |
3717 | 3717 | if ($pm->body != $original_pm_body) { |
3718 | - $updated = db_query(" |
|
3718 | + $updated = db_query(" |
|
3719 | 3719 | UPDATE {pm_message} |
3720 | 3720 | SET body= '%s' |
3721 | 3721 | WHERE mid = %d", |
3722 | 3722 | $pm->body, $pm->mid |
3723 | - ); |
|
3723 | + ); |
|
3724 | 3724 | } |
3725 | 3725 | |
3726 | 3726 | $message = ''; |
3727 | 3727 | $context['results']['success'][] = $pm->mid; |
3728 | 3728 | if ($updated) { |
3729 | - // Store some result for post-processing in the finished callback. |
|
3730 | - $context['results']['pm']['updated'][] = $pm->mid; |
|
3731 | - $message = "Successfully updated private message {$pm->mid}"; |
|
3729 | + // Store some result for post-processing in the finished callback. |
|
3730 | + $context['results']['pm']['updated'][] = $pm->mid; |
|
3731 | + $message = "Successfully updated private message {$pm->mid}"; |
|
3732 | 3732 | } |
3733 | 3733 | else { |
3734 | - $message = "No changes made to private message {$pm->mid}!"; |
|
3734 | + $message = "No changes made to private message {$pm->mid}!"; |
|
3735 | 3735 | } |
3736 | 3736 | |
3737 | 3737 | // Update our progress information. |
@@ -3741,85 +3741,85 @@ discard block |
||
3741 | 3741 | |
3742 | 3742 | // Update the progress for the batch engine |
3743 | 3743 | if ($context['sandbox']['progress'] >= $context['sandbox']['max']) { |
3744 | - $context['finished'] = 1; |
|
3744 | + $context['finished'] = 1; |
|
3745 | 3745 | } |
3746 | 3746 | else { |
3747 | - $context['finished'] = $context['sandbox']['progress'] / $context['sandbox']['max']; |
|
3747 | + $context['finished'] = $context['sandbox']['progress'] / $context['sandbox']['max']; |
|
3748 | + } |
|
3748 | 3749 | } |
3749 | - } |
|
3750 | 3750 | } |
3751 | 3751 | |
3752 | 3752 | /** |
3753 | 3753 | * Batch 'finished' callback |
3754 | 3754 | */ |
3755 | 3755 | function boincimport_replace_urls_finished($success, $results, $operations) { |
3756 | - if ($success) { |
|
3756 | + if ($success) { |
|
3757 | 3757 | // Let's count our successes |
3758 | 3758 | $total_processed = count($results['success']); |
3759 | 3759 | $nodes_updated = count($results['nodes']['updated']); |
3760 | 3760 | $comments_updated = count($results['comments']['updated']); |
3761 | 3761 | $private_messages_updated = count($results['pm']['updated']); |
3762 | 3762 | $message = t( |
3763 | - 'Successfully processed @count nodes, comments, and private messages (@nodes_updated nodes, @comments_updated comments, and @pm_updated private messages were updated)', |
|
3764 | - array( |
|
3763 | + 'Successfully processed @count nodes, comments, and private messages (@nodes_updated nodes, @comments_updated comments, and @pm_updated private messages were updated)', |
|
3764 | + array( |
|
3765 | 3765 | '@count' => $total_processed, |
3766 | 3766 | '@nodes_updated' => $nodes_updated, |
3767 | 3767 | '@comments_updated' => $comments_updated, |
3768 | 3768 | '@pm_updated' => $private_messages_updated, |
3769 | - ) |
|
3769 | + ) |
|
3770 | 3770 | ); |
3771 | 3771 | if ($private_messages_updated) { |
3772 | - watchdog('boincimport', |
|
3772 | + watchdog('boincimport', |
|
3773 | 3773 | 'Updated URLs in these private_messages: @mid_list', |
3774 | 3774 | array( |
3775 | - '@mid_list' => implode(', ', $results['pm']['updated']), |
|
3775 | + '@mid_list' => implode(', ', $results['pm']['updated']), |
|
3776 | 3776 | ), |
3777 | 3777 | WATCHDOG_INFO |
3778 | - ); |
|
3778 | + ); |
|
3779 | 3779 | } |
3780 | 3780 | if ($comments_updated) { |
3781 | - watchdog('boincimport', |
|
3781 | + watchdog('boincimport', |
|
3782 | 3782 | 'Updated URLs in these comments: @cid_list', |
3783 | 3783 | array( |
3784 | - '@cid_list' => implode(', ', $results['comments']['updated']), |
|
3784 | + '@cid_list' => implode(', ', $results['comments']['updated']), |
|
3785 | 3785 | ), |
3786 | 3786 | WATCHDOG_INFO |
3787 | - ); |
|
3787 | + ); |
|
3788 | 3788 | } |
3789 | 3789 | if ($nodes_updated) { |
3790 | - watchdog('boincimport', |
|
3790 | + watchdog('boincimport', |
|
3791 | 3791 | 'Updated URLs in these nodes: @nid_list', |
3792 | 3792 | array( |
3793 | - '@nid_list' => implode(', ', $results['nodes']['updated']), |
|
3793 | + '@nid_list' => implode(', ', $results['nodes']['updated']), |
|
3794 | 3794 | ), |
3795 | 3795 | WATCHDOG_INFO |
3796 | - ); |
|
3796 | + ); |
|
3797 | 3797 | } |
3798 | 3798 | watchdog('boincimport', |
3799 | - 'Successfully processed @count nodes, comments, and private messages (@nodes_updated nodes, @comments_updated comments, and @pm_updated private messages were updated)', |
|
3800 | - array( |
|
3799 | + 'Successfully processed @count nodes, comments, and private messages (@nodes_updated nodes, @comments_updated comments, and @pm_updated private messages were updated)', |
|
3800 | + array( |
|
3801 | 3801 | '@count' => $total_processed, |
3802 | 3802 | '@nodes_updated' => $nodes_updated, |
3803 | 3803 | '@comments_updated' => $comments_updated, |
3804 | 3804 | '@pm_updated' => $private_messages_updated, |
3805 | - ), |
|
3806 | - WATCHDOG_INFO |
|
3805 | + ), |
|
3806 | + WATCHDOG_INFO |
|
3807 | 3807 | ); |
3808 | 3808 | // Set the replace URLs successful flag in the variable table |
3809 | 3809 | variable_set('boincimport_replace_urls_successful', '1'); |
3810 | 3810 | $_SESSION['boincimport_stage_selected'] = 'users'; |
3811 | - } |
|
3812 | - else { |
|
3811 | + } |
|
3812 | + else { |
|
3813 | 3813 | // An error occurred. |
3814 | 3814 | // $operations contains the operations that remained unprocessed. |
3815 | 3815 | $error_operation = reset($operations); |
3816 | 3816 | $message = 'An error occurred while processing ' . $error_operation[0] . ' with arguments :' . print_r($error_operation[0], TRUE); |
3817 | - } |
|
3818 | - drupal_set_message($message); |
|
3817 | + } |
|
3818 | + drupal_set_message($message); |
|
3819 | 3819 | |
3820 | - // Release the lock on the import process |
|
3821 | - variable_del('boincimport_process_locked'); |
|
3822 | - drupal_goto('admin/boinc/import/process'); |
|
3820 | + // Release the lock on the import process |
|
3821 | + variable_del('boincimport_process_locked'); |
|
3822 | + drupal_goto('admin/boinc/import/process'); |
|
3823 | 3823 | } |
3824 | 3824 | |
3825 | 3825 | |
@@ -3831,43 +3831,43 @@ discard block |
||
3831 | 3831 | * Remove temporary variables, clear caches, etc. |
3832 | 3832 | */ |
3833 | 3833 | function boincimport_process_cleanup() { |
3834 | - db_set_active('default'); |
|
3835 | - |
|
3836 | - variable_del('boincimport_base_url_boinc'); |
|
3837 | - variable_del('boincimport_base_url_drupal'); |
|
3838 | - variable_del('boincimport_import_user_successful'); |
|
3839 | - variable_del('boincimport_import_user_started'); |
|
3840 | - variable_del('boincimport_import_team_successful'); |
|
3841 | - variable_del('boincimport_import_team_started'); |
|
3842 | - variable_del('boincimport_import_category_successful'); |
|
3843 | - variable_del('boincimport_replace_url_successful'); |
|
3844 | - variable_del('boincimport_import_category_started'); |
|
3845 | - variable_del('boincimport_import_topic_successful'); |
|
3846 | - variable_del('boincimport_import_topic_started'); |
|
3847 | - variable_del('boincimport_import_post_successful'); |
|
3848 | - variable_del('boincimport_import_post_started'); |
|
3849 | - variable_del('boincimport_team_forum_successful'); |
|
3850 | - variable_del('boincimport_team_topic_successful'); |
|
3851 | - variable_del('boincimport_team_post_successful'); |
|
3852 | - variable_del('boincimport_team_post_started'); |
|
3853 | - variable_del('boincimport_ready'); |
|
3854 | - variable_del('boincimport_db_url'); |
|
3855 | - variable_del('boincimport_tested'); |
|
3856 | - variable_del('boincimport_db_configured'); |
|
3857 | - variable_del('boincimport_table_prefix'); |
|
3858 | - variable_del('boincimport_team_types'); |
|
3859 | - variable_del('boincimport_time_limit'); |
|
3860 | - variable_del('boincimport_import_lurkers'); |
|
3861 | - variable_del('boincimport_import_polls'); |
|
3862 | - variable_del('boincimport_import_poll_started'); |
|
3863 | - variable_del('boincimport_import_poll_successful'); |
|
3864 | - variable_del('boincimport_import_pm_successful'); |
|
3865 | - variable_del('boincimport_encode'); |
|
3866 | - variable_del('boincimport_encoding_phpbb'); |
|
3867 | - variable_del('boincimport_encoding_drupal'); |
|
3868 | - variable_del('boincimport_version'); |
|
3869 | - |
|
3870 | - db_query('DELETE FROM {cache}'); |
|
3834 | + db_set_active('default'); |
|
3835 | + |
|
3836 | + variable_del('boincimport_base_url_boinc'); |
|
3837 | + variable_del('boincimport_base_url_drupal'); |
|
3838 | + variable_del('boincimport_import_user_successful'); |
|
3839 | + variable_del('boincimport_import_user_started'); |
|
3840 | + variable_del('boincimport_import_team_successful'); |
|
3841 | + variable_del('boincimport_import_team_started'); |
|
3842 | + variable_del('boincimport_import_category_successful'); |
|
3843 | + variable_del('boincimport_replace_url_successful'); |
|
3844 | + variable_del('boincimport_import_category_started'); |
|
3845 | + variable_del('boincimport_import_topic_successful'); |
|
3846 | + variable_del('boincimport_import_topic_started'); |
|
3847 | + variable_del('boincimport_import_post_successful'); |
|
3848 | + variable_del('boincimport_import_post_started'); |
|
3849 | + variable_del('boincimport_team_forum_successful'); |
|
3850 | + variable_del('boincimport_team_topic_successful'); |
|
3851 | + variable_del('boincimport_team_post_successful'); |
|
3852 | + variable_del('boincimport_team_post_started'); |
|
3853 | + variable_del('boincimport_ready'); |
|
3854 | + variable_del('boincimport_db_url'); |
|
3855 | + variable_del('boincimport_tested'); |
|
3856 | + variable_del('boincimport_db_configured'); |
|
3857 | + variable_del('boincimport_table_prefix'); |
|
3858 | + variable_del('boincimport_team_types'); |
|
3859 | + variable_del('boincimport_time_limit'); |
|
3860 | + variable_del('boincimport_import_lurkers'); |
|
3861 | + variable_del('boincimport_import_polls'); |
|
3862 | + variable_del('boincimport_import_poll_started'); |
|
3863 | + variable_del('boincimport_import_poll_successful'); |
|
3864 | + variable_del('boincimport_import_pm_successful'); |
|
3865 | + variable_del('boincimport_encode'); |
|
3866 | + variable_del('boincimport_encoding_phpbb'); |
|
3867 | + variable_del('boincimport_encoding_drupal'); |
|
3868 | + variable_del('boincimport_version'); |
|
3869 | + |
|
3870 | + db_query('DELETE FROM {cache}'); |
|
3871 | 3871 | } |
3872 | 3872 | |
3873 | 3873 | /** |
@@ -3875,15 +3875,15 @@ discard block |
||
3875 | 3875 | */ |
3876 | 3876 | |
3877 | 3877 | function boincimport_forum_comment_save(&$edit) { |
3878 | - // Here we are building the thread field. See the comment in comment_render(). |
|
3879 | - if ($edit['pid'] == 0) { |
|
3878 | + // Here we are building the thread field. See the comment in comment_render(). |
|
3879 | + if ($edit['pid'] == 0) { |
|
3880 | 3880 | // This is a comment with no parent comment (depth 0): we start by retrieving |
3881 | 3881 | // the maximum thread level. |
3882 | 3882 | $max = db_result(db_query('SELECT MAX(thread) FROM {comments} WHERE nid = %d', $edit['nid'])); |
3883 | 3883 | // Strip the "/" from the end of the thread. |
3884 | 3884 | $max = rtrim($max, '/'); |
3885 | 3885 | $thread = int2vancode(vancode2int($max)+1) .'/'; |
3886 | - } else { |
|
3886 | + } else { |
|
3887 | 3887 | // This is comment with a parent comment: we increase the part of the thread |
3888 | 3888 | // value at the proper depth. |
3889 | 3889 | $parent = db_fetch_object(db_query('SELECT * FROM {comments} WHERE cid = %d', $edit['pid'])); |
@@ -3892,71 +3892,71 @@ discard block |
||
3892 | 3892 | // Get the max value in _this_ thread. |
3893 | 3893 | $max = db_result(db_query("SELECT MAX(thread) FROM {comments} WHERE thread LIKE '%s.%%' AND nid = %d", $parent->thread, $edit['nid'])); |
3894 | 3894 | if ($max == '') { |
3895 | - // First child of this parent. |
|
3896 | - $thread = $parent->thread .'.'. int2vancode(1) .'/'; |
|
3895 | + // First child of this parent. |
|
3896 | + $thread = $parent->thread .'.'. int2vancode(1) .'/'; |
|
3897 | 3897 | } else { |
3898 | - // Strip the "/" at the end of the thread. |
|
3899 | - $max = rtrim($max, '/'); |
|
3900 | - // We need to get the value at the correct depth. |
|
3901 | - $parts = explode('.', $max); |
|
3902 | - $parent_depth = count(explode('.', $parent->thread)); |
|
3903 | - $last = $parts[$parent_depth]; |
|
3904 | - // Finally, build the thread field for this new comment. |
|
3905 | - $thread = $parent->thread .'.'. int2vancode(vancode2int($last) + 1) .'/'; |
|
3898 | + // Strip the "/" at the end of the thread. |
|
3899 | + $max = rtrim($max, '/'); |
|
3900 | + // We need to get the value at the correct depth. |
|
3901 | + $parts = explode('.', $max); |
|
3902 | + $parent_depth = count(explode('.', $parent->thread)); |
|
3903 | + $last = $parts[$parent_depth]; |
|
3904 | + // Finally, build the thread field for this new comment. |
|
3905 | + $thread = $parent->thread .'.'. int2vancode(vancode2int($last) + 1) .'/'; |
|
3906 | + } |
|
3906 | 3907 | } |
3907 | - } |
|
3908 | 3908 | |
3909 | - $status = 0; // 1 - not published, 0 - published |
|
3910 | - $format = variable_get('boincimport_input_format', 0); |
|
3911 | - $score = 0; // 0 default value, comments get higher score depending on the author's roles |
|
3912 | - $users = serialize(array(0 => 1)); // default value for everybody!! |
|
3909 | + $status = 0; // 1 - not published, 0 - published |
|
3910 | + $format = variable_get('boincimport_input_format', 0); |
|
3911 | + $score = 0; // 0 default value, comments get higher score depending on the author's roles |
|
3912 | + $users = serialize(array(0 => 1)); // default value for everybody!! |
|
3913 | 3913 | |
3914 | - if ($edit['uid'] === $user->uid) { // '===' because we want to modify anonymous users too |
|
3914 | + if ($edit['uid'] === $user->uid) { // '===' because we want to modify anonymous users too |
|
3915 | 3915 | $edit['name'] = $user->name; |
3916 | - } |
|
3916 | + } |
|
3917 | 3917 | |
3918 | - $success = db_query("INSERT INTO {comments} (nid, pid, uid, subject, comment, format, hostname, timestamp, status, thread, name) VALUES (%d, %d, %d, '%s', '%s', %d, '%s', %d, %d, '%s', '%s')", $edit['nid'], $edit['pid'], $edit['uid'], $edit['subject'], $edit['comment'], $edit['format'], ip_address(), $edit['timestamp'], $edit['status'], $thread, $edit['name']); |
|
3919 | - if ($success) { |
|
3918 | + $success = db_query("INSERT INTO {comments} (nid, pid, uid, subject, comment, format, hostname, timestamp, status, thread, name) VALUES (%d, %d, %d, '%s', '%s', %d, '%s', %d, %d, '%s', '%s')", $edit['nid'], $edit['pid'], $edit['uid'], $edit['subject'], $edit['comment'], $edit['format'], ip_address(), $edit['timestamp'], $edit['status'], $thread, $edit['name']); |
|
3919 | + if ($success) { |
|
3920 | 3920 | $edit['cid'] = db_last_insert_id('comments', 'cid'); |
3921 | 3921 | _comment_update_node_statistics($edit['nid']); |
3922 | - } |
|
3923 | - return $success; |
|
3922 | + } |
|
3923 | + return $success; |
|
3924 | 3924 | } |
3925 | 3925 | |
3926 | 3926 | /** |
3927 | 3927 | * Strips text of extra phpbb3 markup and if requested, also strips all bbcode from text. |
3928 | 3928 | */ |
3929 | 3929 | function _boincimport_strip_bbcode($text) { |
3930 | - // Strip the text of extra markup - regular expressions taken from phpbb3 includes/function.php, function get_preg_expression(). |
|
3931 | - $match = array( |
|
3930 | + // Strip the text of extra markup - regular expressions taken from phpbb3 includes/function.php, function get_preg_expression(). |
|
3931 | + $match = array( |
|
3932 | 3932 | '#<!\-\- e \-\-><a href="mailto:(.*?)">.*?</a><!\-\- e \-\->#', |
3933 | 3933 | '#<!\-\- l \-\-><a (?:class="[\w-]+" )?href="(.*?)(?:(&|\?)sid=[0-9a-f]{32})?">.*?</a><!\-\- l \-\->#', |
3934 | 3934 | '#<!\-\- ([mw]) \-\-><a (?:class="[\w-]+" )?href="(.*?)">.*?</a><!\-\- \1 \-\->#', |
3935 | 3935 | '#<!\-\- s(.*?) \-\-><img src="\{SMILIES_PATH\}\/.*? \/><!\-\- s\1 \-\->#', |
3936 | 3936 | '#<!\-\- .*? \-\->#s', |
3937 | 3937 | '#<.*?>#s', |
3938 | - ); |
|
3939 | - $replace = array('$1', '$1', '$2', '$1', '', ''); |
|
3940 | - $text = preg_replace($match, $replace, $text); |
|
3938 | + ); |
|
3939 | + $replace = array('$1', '$1', '$2', '$1', '', ''); |
|
3940 | + $text = preg_replace($match, $replace, $text); |
|
3941 | 3941 | |
3942 | - // If BBcode conversion to has been selected, the following will convert the |
|
3943 | - // BBcode to normal html |
|
3944 | - if (variable_get('boincimport_bbcode', 0)) { |
|
3942 | + // If BBcode conversion to has been selected, the following will convert the |
|
3943 | + // BBcode to normal html |
|
3944 | + if (variable_get('boincimport_bbcode', 0)) { |
|
3945 | 3945 | $input_format = variable_get('boincimport_input_format', 0); |
3946 | 3946 | $text = bbcode_filter('process', 0 , $input_format, $text); |
3947 | - } |
|
3948 | - return $text; |
|
3947 | + } |
|
3948 | + return $text; |
|
3949 | 3949 | } |
3950 | 3950 | |
3951 | 3951 | /** |
3952 | 3952 | * Function to properly encode strings. |
3953 | 3953 | */ |
3954 | 3954 | function _boincimport_text_sanitize($text) { |
3955 | - $input_format = variable_get('boincimport_input_format', 0); |
|
3956 | - $text = html_entity_decode($text, ENT_QUOTES, 'utf-8'); |
|
3957 | - // Be sure the text is filtered for the default input format |
|
3958 | - $text = check_markup($text, $input_format); |
|
3959 | - return $text; |
|
3955 | + $input_format = variable_get('boincimport_input_format', 0); |
|
3956 | + $text = html_entity_decode($text, ENT_QUOTES, 'utf-8'); |
|
3957 | + // Be sure the text is filtered for the default input format |
|
3958 | + $text = check_markup($text, $input_format); |
|
3959 | + return $text; |
|
3960 | 3960 | } |
3961 | 3961 | |
3962 | 3962 | |
@@ -3965,25 +3965,25 @@ discard block |
||
3965 | 3965 | */ |
3966 | 3966 | function _boincimport_replace_links($html) { |
3967 | 3967 | |
3968 | - $transformer = new BoincImportUrlTransformer(); |
|
3969 | - |
|
3970 | - // Update links to posts, threads, and forums |
|
3971 | - $html = preg_replace_callback('{(?:(http|https)://([^\s]*?)|href="(?:/)?)forum_thread\.php\?id=(\d+)&postid=(\d+)(&\w+=\w*)*?}i', array($transformer, 'transformPostLinks'), $html); |
|
3972 | - $html = preg_replace_callback('{(?:(http|https)://([^\s]*?)|href="(?:/)?)forum_thread\.php\?id=(\d+)(&\w+=\w*)*?(#(\d+)?)}i', array($transformer, 'transformOldPostLinks'), $html); |
|
3973 | - $html = preg_replace_callback('{(?:(http|https)://([^\s]*?)|href="(?:/)?)forum_thread\.php\?id=(\d+)(&\w+=\w*)*?}i', array($transformer, 'transformTopicLinks'), $html); |
|
3974 | - $html = preg_replace_callback('{(?:(http|https)://([^\s]*?)|href="(?:/)?)forum_forum\.php\?id=(\d+)(&\w+=\w*)*?}i', array($transformer, 'transformForumLinks'), $html); |
|
3975 | - $html = preg_replace_callback('{(?:(http|https)://([^\s]*?)|href="(?:/)?)show_user\.php\?userid=(\d+)((&\w+=\w*)+)?}i', array($transformer, 'transformUserLinks'), $html); |
|
3976 | - $html = preg_replace_callback('{(?:(http|https)://([^\s]*?)|href="(?:/)?)workunit\.php\?wuid=(\d+)(&\w+=\w*)*?}i', array($transformer, 'transformWorkUnitLinks'), $html); |
|
3977 | - $html = preg_replace_callback('{(?:(http|https)://([^\s]*?)|href="(?:/)?)result\.php\?resultid=(\d+)(&\w+=\w*)*?}i', array($transformer, 'transformResultLinks'), $html); |
|
3978 | - $html = preg_replace_callback('{(?:(http|https)://([^\s]*?)|href="(?:/)?)results\.php\?userid=(\d+)(&\w+=\w*)*?}i', array($transformer, 'transformUserResultsLinks'), $html); |
|
3979 | - $html = preg_replace_callback('{(?:(http|https)://([^\s]*?)|href="(?:/)?)results\.php\?hostid=(\d+)(&\w+=\w*)*?}i', array($transformer, 'transformHostResultsLinks'), $html); |
|
3980 | - $html = preg_replace_callback('{(?:(http|https)://([^\s]*?)|href="(?:/)?)show_host_detail\.php\?hostid=(\d+)(&\w+=\w*)*?}i', array($transformer, 'transformHostLinks'), $html); |
|
3981 | - $html = preg_replace_callback('{(?:(http|https)://([^\s]*?)|href="(?:/)?)hosts_user\.php\?userid=(\d+)(&\w+=\w*)*?}i', array($transformer, 'transformUserHostsLinks'), $html); |
|
3982 | - |
|
3983 | - // Update any links to the top level index |
|
3984 | - $html = preg_replace_callback('{(?:(http|https)://([^\s]*?)|href="(?:/)?)forum_index.php}i', array($transformer, 'transformForumIndexLinks'), $html); |
|
3985 | - |
|
3986 | - return $html; |
|
3968 | + $transformer = new BoincImportUrlTransformer(); |
|
3969 | + |
|
3970 | + // Update links to posts, threads, and forums |
|
3971 | + $html = preg_replace_callback('{(?:(http|https)://([^\s]*?)|href="(?:/)?)forum_thread\.php\?id=(\d+)&postid=(\d+)(&\w+=\w*)*?}i', array($transformer, 'transformPostLinks'), $html); |
|
3972 | + $html = preg_replace_callback('{(?:(http|https)://([^\s]*?)|href="(?:/)?)forum_thread\.php\?id=(\d+)(&\w+=\w*)*?(#(\d+)?)}i', array($transformer, 'transformOldPostLinks'), $html); |
|
3973 | + $html = preg_replace_callback('{(?:(http|https)://([^\s]*?)|href="(?:/)?)forum_thread\.php\?id=(\d+)(&\w+=\w*)*?}i', array($transformer, 'transformTopicLinks'), $html); |
|
3974 | + $html = preg_replace_callback('{(?:(http|https)://([^\s]*?)|href="(?:/)?)forum_forum\.php\?id=(\d+)(&\w+=\w*)*?}i', array($transformer, 'transformForumLinks'), $html); |
|
3975 | + $html = preg_replace_callback('{(?:(http|https)://([^\s]*?)|href="(?:/)?)show_user\.php\?userid=(\d+)((&\w+=\w*)+)?}i', array($transformer, 'transformUserLinks'), $html); |
|
3976 | + $html = preg_replace_callback('{(?:(http|https)://([^\s]*?)|href="(?:/)?)workunit\.php\?wuid=(\d+)(&\w+=\w*)*?}i', array($transformer, 'transformWorkUnitLinks'), $html); |
|
3977 | + $html = preg_replace_callback('{(?:(http|https)://([^\s]*?)|href="(?:/)?)result\.php\?resultid=(\d+)(&\w+=\w*)*?}i', array($transformer, 'transformResultLinks'), $html); |
|
3978 | + $html = preg_replace_callback('{(?:(http|https)://([^\s]*?)|href="(?:/)?)results\.php\?userid=(\d+)(&\w+=\w*)*?}i', array($transformer, 'transformUserResultsLinks'), $html); |
|
3979 | + $html = preg_replace_callback('{(?:(http|https)://([^\s]*?)|href="(?:/)?)results\.php\?hostid=(\d+)(&\w+=\w*)*?}i', array($transformer, 'transformHostResultsLinks'), $html); |
|
3980 | + $html = preg_replace_callback('{(?:(http|https)://([^\s]*?)|href="(?:/)?)show_host_detail\.php\?hostid=(\d+)(&\w+=\w*)*?}i', array($transformer, 'transformHostLinks'), $html); |
|
3981 | + $html = preg_replace_callback('{(?:(http|https)://([^\s]*?)|href="(?:/)?)hosts_user\.php\?userid=(\d+)(&\w+=\w*)*?}i', array($transformer, 'transformUserHostsLinks'), $html); |
|
3982 | + |
|
3983 | + // Update any links to the top level index |
|
3984 | + $html = preg_replace_callback('{(?:(http|https)://([^\s]*?)|href="(?:/)?)forum_index.php}i', array($transformer, 'transformForumIndexLinks'), $html); |
|
3985 | + |
|
3986 | + return $html; |
|
3987 | 3987 | } |
3988 | 3988 | |
3989 | 3989 | /** |
@@ -3991,14 +3991,14 @@ discard block |
||
3991 | 3991 | */ |
3992 | 3992 | class BoincImportUrlTransformer { |
3993 | 3993 | |
3994 | - var $basePath; |
|
3995 | - var $boincDomain; |
|
3996 | - var $drupalDomain; |
|
3994 | + var $basePath; |
|
3995 | + var $boincDomain; |
|
3996 | + var $drupalDomain; |
|
3997 | 3997 | |
3998 | - /** |
|
3999 | - * Constructor |
|
4000 | - */ |
|
4001 | - function __construct() { |
|
3998 | + /** |
|
3999 | + * Constructor |
|
4000 | + */ |
|
4001 | + function __construct() { |
|
4002 | 4002 | global $base_url; |
4003 | 4003 | global $base_path; |
4004 | 4004 | $boinc_base_urls = variable_get('boincimport_base_url_boinc', ''); |
@@ -4008,208 +4008,208 @@ discard block |
||
4008 | 4008 | $this->boincDomains = array(); |
4009 | 4009 | $boinc_base_urls = preg_split('/\s+/', $boinc_base_urls); |
4010 | 4010 | foreach ($boinc_base_urls as $url) { |
4011 | - $domain = parse_url($url, PHP_URL_HOST); |
|
4012 | - if ($domain) { |
|
4011 | + $domain = parse_url($url, PHP_URL_HOST); |
|
4012 | + if ($domain) { |
|
4013 | 4013 | $this->boincDomains[$domain] = TRUE; |
4014 | - } |
|
4014 | + } |
|
4015 | 4015 | } |
4016 | 4016 | if (!$this->boincDomains) { |
4017 | - watchdog('boincimport', 'No valid BOINC base URLs found to transform!', |
|
4017 | + watchdog('boincimport', 'No valid BOINC base URLs found to transform!', |
|
4018 | 4018 | array(), WATCHDOG_WARNING); |
4019 | 4019 | } |
4020 | - } |
|
4020 | + } |
|
4021 | 4021 | |
4022 | - // old-style constructor for backwards compatibility |
|
4023 | - function BoincImportUrlTransformer() { |
|
4022 | + // old-style constructor for backwards compatibility |
|
4023 | + function BoincImportUrlTransformer() { |
|
4024 | 4024 | self::__construct(); |
4025 | - } |
|
4025 | + } |
|
4026 | 4026 | |
4027 | - /** |
|
4028 | - * Get what the new base URL should be (needed for every transformation) |
|
4029 | - */ |
|
4030 | - function getNewBaseUrl($matches) { |
|
4027 | + /** |
|
4028 | + * Get what the new base URL should be (needed for every transformation) |
|
4029 | + */ |
|
4030 | + function getNewBaseUrl($matches) { |
|
4031 | 4031 | $http = $matches[1]; |
4032 | 4032 | $domain = trim($matches[2], '/'); |
4033 | 4033 | if ($http) { |
4034 | - if (isset($this->boincDomains[$domain])) { |
|
4034 | + if (isset($this->boincDomains[$domain])) { |
|
4035 | 4035 | // This is a URL configured to be transformed |
4036 | 4036 | return "{$http}://{$this->drupalDomain}{$this->basePath}"; |
4037 | - } |
|
4038 | - else { |
|
4037 | + } |
|
4038 | + else { |
|
4039 | 4039 | // This URL should not be transformed |
4040 | 4040 | return NULL; |
4041 | - } |
|
4041 | + } |
|
4042 | 4042 | } |
4043 | 4043 | else { |
4044 | - // This is a relative URL |
|
4045 | - return $this->basePath; |
|
4044 | + // This is a relative URL |
|
4045 | + return $this->basePath; |
|
4046 | + } |
|
4046 | 4047 | } |
4047 | - } |
|
4048 | 4048 | |
4049 | - /** |
|
4050 | - * Replace links to specific posts. If the given post is the first in the |
|
4051 | - * thread, it is a topic node in Drupal, not a comment. |
|
4052 | - */ |
|
4053 | - function transformPostLinks($matches) { |
|
4049 | + /** |
|
4050 | + * Replace links to specific posts. If the given post is the first in the |
|
4051 | + * thread, it is a topic node in Drupal, not a comment. |
|
4052 | + */ |
|
4053 | + function transformPostLinks($matches) { |
|
4054 | 4054 | $link = $matches[0]; |
4055 | 4055 | $newBaseUrl = $this->getNewBaseUrl($matches); |
4056 | 4056 | if ($newBaseUrl !== NULL) { |
4057 | - $id = db_result(db_query(' |
|
4057 | + $id = db_result(db_query(' |
|
4058 | 4058 | SELECT p.cid |
4059 | 4059 | FROM {boincimport_temp_post} p |
4060 | 4060 | WHERE p.post_id = %d', |
4061 | 4061 | $matches[4] |
4062 | - )); |
|
4063 | - if ($id) { |
|
4062 | + )); |
|
4063 | + if ($id) { |
|
4064 | 4064 | $link = "{$newBaseUrl}goto/comment/{$id}"; |
4065 | - } |
|
4066 | - else { |
|
4065 | + } |
|
4066 | + else { |
|
4067 | 4067 | // This post is not in the post import table, so it's probably a topic |
4068 | 4068 | $link = $this->transformTopicLinks($matches); |
4069 | - } |
|
4069 | + } |
|
4070 | 4070 | } |
4071 | 4071 | return $link; |
4072 | - } |
|
4072 | + } |
|
4073 | 4073 | |
4074 | - /** |
|
4075 | - * Replace links that include anchors to specific posts. If the given post is |
|
4076 | - * the first in the thread, it is a topic node in Drupal, not a comment. |
|
4077 | - */ |
|
4078 | - function transformOldPostLinks($matches) { |
|
4074 | + /** |
|
4075 | + * Replace links that include anchors to specific posts. If the given post is |
|
4076 | + * the first in the thread, it is a topic node in Drupal, not a comment. |
|
4077 | + */ |
|
4078 | + function transformOldPostLinks($matches) { |
|
4079 | 4079 | $link = $matches[0]; |
4080 | 4080 | $newBaseUrl = $this->getNewBaseUrl($matches); |
4081 | 4081 | if ($newBaseUrl !== NULL) { |
4082 | - $id = db_result(db_query(' |
|
4082 | + $id = db_result(db_query(' |
|
4083 | 4083 | SELECT p.cid |
4084 | 4084 | FROM {boincimport_temp_post} p |
4085 | 4085 | WHERE p.post_id = %d', |
4086 | 4086 | $matches[6] |
4087 | - )); |
|
4088 | - if ($id) { |
|
4087 | + )); |
|
4088 | + if ($id) { |
|
4089 | 4089 | $link = "{$newBaseUrl}goto/comment/{$id}"; |
4090 | - } |
|
4091 | - else { |
|
4090 | + } |
|
4091 | + else { |
|
4092 | 4092 | // This post is not in the post import table, so it's probably a topic |
4093 | 4093 | $link = $this->transformTopicLinks($matches); |
4094 | - } |
|
4094 | + } |
|
4095 | 4095 | } |
4096 | 4096 | return $link; |
4097 | - } |
|
4097 | + } |
|
4098 | 4098 | |
4099 | - function transformTopicLinks($matches) { |
|
4099 | + function transformTopicLinks($matches) { |
|
4100 | 4100 | $link = $matches[0]; |
4101 | 4101 | $newBaseUrl = $this->getNewBaseUrl($matches); |
4102 | 4102 | if ($newBaseUrl !== NULL) { |
4103 | - $id = db_result(db_query(' |
|
4103 | + $id = db_result(db_query(' |
|
4104 | 4104 | SELECT nid |
4105 | 4105 | FROM {boincimport_temp_topic} |
4106 | 4106 | WHERE topic_id = %d', |
4107 | 4107 | $matches[3] |
4108 | - )); |
|
4109 | - $link = "{$newBaseUrl}node/{$id}"; |
|
4108 | + )); |
|
4109 | + $link = "{$newBaseUrl}node/{$id}"; |
|
4110 | 4110 | } |
4111 | 4111 | return $link; |
4112 | - } |
|
4112 | + } |
|
4113 | 4113 | |
4114 | - function transformForumLinks($matches) { |
|
4114 | + function transformForumLinks($matches) { |
|
4115 | 4115 | $link = $matches[0]; |
4116 | 4116 | $newBaseUrl = $this->getNewBaseUrl($matches); |
4117 | 4117 | if ($newBaseUrl !== NULL) { |
4118 | - $forum = db_fetch_object(db_query(' |
|
4118 | + $forum = db_fetch_object(db_query(' |
|
4119 | 4119 | SELECT tid |
4120 | 4120 | FROM {boincimport_temp_forum} |
4121 | 4121 | WHERE forum_id = %d', |
4122 | 4122 | $matches[3] |
4123 | - )); |
|
4124 | - $link = "{$newBaseUrl}community/forum/{$forum->tid}"; |
|
4123 | + )); |
|
4124 | + $link = "{$newBaseUrl}community/forum/{$forum->tid}"; |
|
4125 | 4125 | } |
4126 | 4126 | return $link; |
4127 | - } |
|
4127 | + } |
|
4128 | 4128 | |
4129 | - function transformUserLinks($matches) { |
|
4129 | + function transformUserLinks($matches) { |
|
4130 | 4130 | $link = $matches[0]; |
4131 | 4131 | $newBaseUrl = $this->getNewBaseUrl($matches); |
4132 | 4132 | if ($newBaseUrl !== NULL) { |
4133 | - // Make sure this isn't an RPC link (no need to transform those) |
|
4134 | - if (!$matches[5]) { |
|
4133 | + // Make sure this isn't an RPC link (no need to transform those) |
|
4134 | + if (!$matches[5]) { |
|
4135 | 4135 | // TODO: This regex doesn't seem to capture the format=xml part of the |
4136 | 4136 | // URL, making it impossible to distinguish if this is an RPC or not... |
4137 | 4137 | //watchdog('DEBUG', 'matches: @m', array('@m' => print_r($matches,true)), WATCHDOG_DEBUG); |
4138 | 4138 | $uid = boincuser_lookup_uid($matches[3]); |
4139 | 4139 | $link = "{$newBaseUrl}account/{$uid}"; |
4140 | - } |
|
4140 | + } |
|
4141 | 4141 | } |
4142 | 4142 | return $link; |
4143 | - } |
|
4143 | + } |
|
4144 | 4144 | |
4145 | - function transformWorkUnitLinks($matches) { |
|
4145 | + function transformWorkUnitLinks($matches) { |
|
4146 | 4146 | $link = $matches[0]; |
4147 | 4147 | $newBaseUrl = $this->getNewBaseUrl($matches); |
4148 | 4148 | if ($newBaseUrl !== NULL) { |
4149 | - $id = $matches[3]; |
|
4150 | - $link = "{$newBaseUrl}workunit/{$id}"; |
|
4149 | + $id = $matches[3]; |
|
4150 | + $link = "{$newBaseUrl}workunit/{$id}"; |
|
4151 | 4151 | } |
4152 | 4152 | return $link; |
4153 | - } |
|
4153 | + } |
|
4154 | 4154 | |
4155 | - function transformResultLinks($matches) { |
|
4155 | + function transformResultLinks($matches) { |
|
4156 | 4156 | $link = $matches[0]; |
4157 | 4157 | $newBaseUrl = $this->getNewBaseUrl($matches); |
4158 | 4158 | if ($newBaseUrl !== NULL) { |
4159 | - $id = $matches[3]; |
|
4160 | - $link = "{$newBaseUrl}task/{$id}"; |
|
4159 | + $id = $matches[3]; |
|
4160 | + $link = "{$newBaseUrl}task/{$id}"; |
|
4161 | 4161 | } |
4162 | 4162 | return $link; |
4163 | - } |
|
4163 | + } |
|
4164 | 4164 | |
4165 | - function transformHostResultsLinks($matches) { |
|
4165 | + function transformHostResultsLinks($matches) { |
|
4166 | 4166 | $link = $matches[0]; |
4167 | 4167 | $newBaseUrl = $this->getNewBaseUrl($matches); |
4168 | 4168 | if ($newBaseUrl !== NULL) { |
4169 | - $id = $matches[3]; |
|
4170 | - $link = "{$newBaseUrl}host/{$id}/tasks"; |
|
4169 | + $id = $matches[3]; |
|
4170 | + $link = "{$newBaseUrl}host/{$id}/tasks"; |
|
4171 | 4171 | } |
4172 | 4172 | return $link; |
4173 | - } |
|
4173 | + } |
|
4174 | 4174 | |
4175 | - function transformUserResultsLinks($matches) { |
|
4175 | + function transformUserResultsLinks($matches) { |
|
4176 | 4176 | $link = $matches[0]; |
4177 | 4177 | $newBaseUrl = $this->getNewBaseUrl($matches); |
4178 | 4178 | if ($newBaseUrl !== NULL) { |
4179 | - $link = "{$newBaseUrl}account/tasks"; |
|
4179 | + $link = "{$newBaseUrl}account/tasks"; |
|
4180 | 4180 | } |
4181 | 4181 | return $link; |
4182 | - } |
|
4182 | + } |
|
4183 | 4183 | |
4184 | - function transformHostLinks($matches) { |
|
4184 | + function transformHostLinks($matches) { |
|
4185 | 4185 | $link = $matches[0]; |
4186 | 4186 | $newBaseUrl = $this->getNewBaseUrl($matches); |
4187 | 4187 | if ($newBaseUrl !== NULL) { |
4188 | - $id = $matches[3]; |
|
4189 | - $link = "{$newBaseUrl}host/{$id}"; |
|
4188 | + $id = $matches[3]; |
|
4189 | + $link = "{$newBaseUrl}host/{$id}"; |
|
4190 | 4190 | } |
4191 | 4191 | return $link; |
4192 | - } |
|
4192 | + } |
|
4193 | 4193 | |
4194 | - function transformUserHostsLinks($matches) { |
|
4194 | + function transformUserHostsLinks($matches) { |
|
4195 | 4195 | $link = $matches[0]; |
4196 | 4196 | $newBaseUrl = $this->getNewBaseUrl($matches); |
4197 | 4197 | if ($newBaseUrl !== NULL) { |
4198 | - $uid = boincuser_lookup_uid($matches[3]); |
|
4199 | - if ($uid) { |
|
4198 | + $uid = boincuser_lookup_uid($matches[3]); |
|
4199 | + if ($uid) { |
|
4200 | 4200 | $link = "{$newBaseUrl}account/{$uid}/computers"; |
4201 | - } |
|
4201 | + } |
|
4202 | 4202 | } |
4203 | 4203 | return $link; |
4204 | - } |
|
4204 | + } |
|
4205 | 4205 | |
4206 | - function transformForumIndexLinks($matches) { |
|
4206 | + function transformForumIndexLinks($matches) { |
|
4207 | 4207 | $link = $matches[0]; |
4208 | 4208 | $newBaseUrl = $this->getNewBaseUrl($matches); |
4209 | 4209 | if ($newBaseUrl !== NULL) { |
4210 | - $link = "{$newBaseUrl}community/forum"; |
|
4210 | + $link = "{$newBaseUrl}community/forum"; |
|
4211 | 4211 | } |
4212 | 4212 | return $link; |
4213 | - } |
|
4213 | + } |
|
4214 | 4214 | |
4215 | 4215 | } |
@@ -2,9 +2,9 @@ discard block |
||
2 | 2 | // $Id$ |
3 | 3 | |
4 | 4 | /** |
5 | - * @file |
|
6 | - * Enable BOINC features related to processing work and credit. |
|
7 | - */ |
|
5 | + * @file |
|
6 | + * Enable BOINC features related to processing work and credit. |
|
7 | + */ |
|
8 | 8 | |
9 | 9 | |
10 | 10 | /* * * * * * * * * * * * * * * * * * * * * * * * * * * * |
@@ -21,70 +21,70 @@ discard block |
||
21 | 21 | * * * * * * * * * * * * * * * * * * * * * * * * * * * */ |
22 | 22 | |
23 | 23 | /** |
24 | - * Implementation of hook_menu(). |
|
25 | - */ |
|
24 | + * Implementation of hook_menu(). |
|
25 | + */ |
|
26 | 26 | function boincwork_menu() { |
27 | - require_boinc('util'); |
|
28 | - $items['account/prefs'] = array( |
|
27 | + require_boinc('util'); |
|
28 | + $items['account/prefs'] = array( |
|
29 | 29 | 'title' => 'Computing', |
30 | 30 | 'description' => '', |
31 | 31 | 'page callback' => 'generalprefs_page', |
32 | 32 | 'access callback' => 'user_is_logged_in', |
33 | 33 | 'type' => MENU_NORMAL_ITEM |
34 | - ); |
|
35 | - $items['account/prefs/computing'] = array( |
|
34 | + ); |
|
35 | + $items['account/prefs/computing'] = array( |
|
36 | 36 | 'title' => 'Computing', |
37 | 37 | 'page callback' => 'generalprefs_page', |
38 | 38 | 'access callback' => 'user_is_logged_in', |
39 | 39 | 'type' => MENU_DEFAULT_LOCAL_TASK, |
40 | 40 | 'weight' => 0 |
41 | - ); |
|
42 | - $items['account/prefs/project'] = array( |
|
41 | + ); |
|
42 | + $items['account/prefs/project'] = array( |
|
43 | 43 | 'title' => 'Project', |
44 | 44 | 'page callback' => 'projectprefs_page', |
45 | 45 | 'access callback' => 'user_is_logged_in', |
46 | 46 | 'type' => MENU_LOCAL_TASK, |
47 | 47 | 'weight' => 5 |
48 | - ); |
|
49 | - $items['account/prefs/community'] = array( |
|
48 | + ); |
|
49 | + $items['account/prefs/community'] = array( |
|
50 | 50 | 'title' => 'Community', |
51 | 51 | 'page callback' => 'communityprefs_page', |
52 | 52 | 'access callback' => 'user_is_logged_in', |
53 | 53 | 'type' => MENU_LOCAL_TASK, |
54 | 54 | 'weight' => 10 |
55 | - ); |
|
56 | - $items['account/prefs/privacy'] = array( |
|
55 | + ); |
|
56 | + $items['account/prefs/privacy'] = array( |
|
57 | 57 | 'title' => 'Privacy', |
58 | 58 | 'page callback' => 'privacyprefs_page', |
59 | 59 | 'access callback' => 'user_is_logged_in', |
60 | 60 | 'type' => MENU_LOCAL_TASK, |
61 | 61 | 'weight' => 15 |
62 | - ); |
|
63 | - if (module_exists('ignore_user')) { |
|
62 | + ); |
|
63 | + if (module_exists('ignore_user')) { |
|
64 | 64 | $items['account/prefs/privacy/ignore_user/add'] = array( |
65 | - 'title' => 'Add from ignore list', |
|
66 | - 'description' => 'Add user that you with to ignore to your ignore list.', |
|
67 | - 'page callback' => 'boincwork_ignore_user_add_user', |
|
68 | - 'access callback' => 'user_access', |
|
69 | - 'access arguments' => array('ignore user'), |
|
70 | - 'type' => MENU_CALLBACK, |
|
65 | + 'title' => 'Add from ignore list', |
|
66 | + 'description' => 'Add user that you with to ignore to your ignore list.', |
|
67 | + 'page callback' => 'boincwork_ignore_user_add_user', |
|
68 | + 'access callback' => 'user_access', |
|
69 | + 'access arguments' => array('ignore user'), |
|
70 | + 'type' => MENU_CALLBACK, |
|
71 | 71 | ); |
72 | 72 | $items['account/prefs/privacy/ignore_user/remove'] = array( |
73 | - 'title' => 'Remove from ignore list', |
|
74 | - 'description' => 'Remove user from your ignore list.', |
|
75 | - 'page callback' => 'boincwork_ignore_user_remove_user', |
|
76 | - 'access callback' => 'user_access', |
|
77 | - 'access arguments' => array('ignore user'), |
|
78 | - 'type' => MENU_CALLBACK, |
|
73 | + 'title' => 'Remove from ignore list', |
|
74 | + 'description' => 'Remove user from your ignore list.', |
|
75 | + 'page callback' => 'boincwork_ignore_user_remove_user', |
|
76 | + 'access callback' => 'user_access', |
|
77 | + 'access arguments' => array('ignore user'), |
|
78 | + 'type' => MENU_CALLBACK, |
|
79 | 79 | ); |
80 | - }// endif module_exists |
|
81 | - $items['account/certs'] = array( |
|
80 | + }// endif module_exists |
|
81 | + $items['account/certs'] = array( |
|
82 | 82 | 'title' =>'Account certificate', |
83 | 83 | 'page callback' => 'boincwork_certificates', |
84 | 84 | 'access arguments' => array('access content'), |
85 | 85 | 'type' => MENU_CALLBACK |
86 | - ); |
|
87 | - $items['admin/boinc/prefs/general'] = array( |
|
86 | + ); |
|
87 | + $items['admin/boinc/prefs/general'] = array( |
|
88 | 88 | 'title' => 'Preferences: General', |
89 | 89 | 'description' => 'Set options for BOINC preference set pages', |
90 | 90 | 'page callback' => 'drupal_get_form', |
@@ -92,16 +92,16 @@ discard block |
||
92 | 92 | 'access arguments' => array('administer site configuration'), |
93 | 93 | 'type' => MENU_NORMAL_ITEM, |
94 | 94 | 'file' => 'boincwork.admin.inc' |
95 | - ); |
|
96 | - $items['admin/boinc/prefs/presets'] = array( |
|
95 | + ); |
|
96 | + $items['admin/boinc/prefs/presets'] = array( |
|
97 | 97 | 'title' => 'Preferences: Presets', |
98 | 98 | 'description' => 'Set values for BOINC preference set presets.', |
99 | 99 | 'page callback' => 'boincwork_admin_prefs_presets_page', |
100 | 100 | 'access arguments' => array('administer site configuration'), |
101 | 101 | 'type' => MENU_NORMAL_ITEM, |
102 | 102 | 'file' => 'boincwork.admin.inc' |
103 | - ); |
|
104 | - $items['admin/boinc/prefs/upload'] = array( |
|
103 | + ); |
|
104 | + $items['admin/boinc/prefs/upload'] = array( |
|
105 | 105 | 'title' => 'Preferences: Project-specific XML upload', |
106 | 106 | 'description' => 'Upload XML configuration for project specific preferences.', |
107 | 107 | 'page callback' => 'drupal_get_form', |
@@ -109,153 +109,153 @@ discard block |
||
109 | 109 | 'access arguments' => array('administer site configuration'), |
110 | 110 | 'type' => MENU_NORMAL_ITEM, |
111 | 111 | 'file' => 'boincwork.admin.inc' |
112 | - ); |
|
113 | - $items['host/%/delete'] = array( |
|
112 | + ); |
|
113 | + $items['host/%/delete'] = array( |
|
114 | 114 | 'title' => 'Delete host', |
115 | 115 | 'page callback' => 'boincwork_host_delete', |
116 | 116 | 'page arguments' => array(1), |
117 | 117 | 'access callback' => 'user_is_logged_in', |
118 | 118 | 'type' => MENU_CALLBACK, |
119 | - ); |
|
120 | - $items['host/%/log'] = array( |
|
119 | + ); |
|
120 | + $items['host/%/log'] = array( |
|
121 | 121 | 'title' => 'Host log', |
122 | 122 | 'page callback' => 'boincwork_host_log', |
123 | 123 | 'page arguments' => array(1), |
124 | 124 | 'access callback' => 'user_is_logged_in', |
125 | 125 | 'type' => MENU_CALLBACK, |
126 | - ); |
|
127 | - $items['host/%/merge'] = array( |
|
126 | + ); |
|
127 | + $items['host/%/merge'] = array( |
|
128 | 128 | 'title' => 'Merge computer', |
129 | 129 | 'page callback' => 'drupal_get_form', |
130 | 130 | 'page arguments' => array('boincwork_host_merge_form', 1), |
131 | 131 | 'access callback' => 'user_is_logged_in', |
132 | 132 | 'type' => MENU_CALLBACK, |
133 | - ); |
|
134 | - $items['host/%/set-venue/%'] = array( |
|
133 | + ); |
|
134 | + $items['host/%/set-venue/%'] = array( |
|
135 | 135 | 'title' => 'Set host venue', |
136 | 136 | 'page callback' => 'boincwork_host_set_venue', |
137 | 137 | 'page arguments' => array(1,3), |
138 | 138 | 'access callback' => 'user_is_logged_in', |
139 | 139 | 'type' => MENU_CALLBACK, |
140 | - ); |
|
141 | - $items['user/%/mobile'] = array( |
|
140 | + ); |
|
141 | + $items['user/%/mobile'] = array( |
|
142 | 142 | 'title' => 'Mobile stats', |
143 | 143 | 'page callback' => 'boincwork_mobile_stats', |
144 | 144 | 'page arguments' => array(1), |
145 | 145 | 'access callback' => 'user_is_logged_in', |
146 | 146 | 'type' => MENU_CALLBACK |
147 | - ); |
|
148 | - $items['server_status.php'] = array( |
|
147 | + ); |
|
148 | + $items['server_status.php'] = array( |
|
149 | 149 | 'title' => 'Server status', |
150 | 150 | 'page callback' => 'boincwork_server_status', |
151 | 151 | 'access arguments' => array('access content'), |
152 | 152 | 'type' => MENU_CALLBACK |
153 | - ); |
|
154 | - $items['job_file.php'] = array( |
|
153 | + ); |
|
154 | + $items['job_file.php'] = array( |
|
155 | 155 | 'title' => 'Job file input', |
156 | 156 | 'page callback' => 'boincwork_job_file', |
157 | 157 | 'access arguments' => array('access content'), |
158 | 158 | 'type' => MENU_CALLBACK |
159 | - ); |
|
160 | - $items['get_output.php'] = array( |
|
159 | + ); |
|
160 | + $items['get_output.php'] = array( |
|
161 | 161 | 'title' => 'Get output file', |
162 | 162 | 'page callback' => 'boincwork_get_output', |
163 | 163 | 'access arguments' => array('access content'), |
164 | 164 | 'type' => MENU_CALLBACK |
165 | - ); |
|
166 | - $items['get_project_config.php'] = array( |
|
165 | + ); |
|
166 | + $items['get_project_config.php'] = array( |
|
167 | 167 | 'title' => 'Project config', |
168 | 168 | 'page callback' => 'boincwork_get_project_config', |
169 | 169 | 'access arguments' => array('access content'), |
170 | 170 | 'type' => MENU_CALLBACK |
171 | - ); |
|
172 | - $items['submit_rpc_handler.php'] = array( |
|
171 | + ); |
|
172 | + $items['submit_rpc_handler.php'] = array( |
|
173 | 173 | 'title' => 'Remote job submission', |
174 | 174 | 'page callback' => 'boincwork_submit_rpc_handler', |
175 | 175 | 'access arguments' => array('access content'), |
176 | 176 | 'type' => MENU_CALLBACK |
177 | - ); |
|
178 | - $items['userw.php'] = array( |
|
177 | + ); |
|
178 | + $items['userw.php'] = array( |
|
179 | 179 | 'title' => 'User WAP', |
180 | 180 | 'page callback' => 'boincwork_user_wap', |
181 | 181 | 'access arguments' => array('access content'), |
182 | 182 | 'type' => MENU_CALLBACK |
183 | - ); |
|
184 | - $items['account/tasks/%/%'] = array( |
|
183 | + ); |
|
184 | + $items['account/tasks/%/%'] = array( |
|
185 | 185 | 'title' => 'Account Tasks Table', |
186 | 186 | 'description' => '', |
187 | 187 | 'page callback' => 'boincwork_account_task_table', |
188 | 188 | 'page arguments' => array(2,3), |
189 | 189 | 'access arguments' => array('access content'), |
190 | 190 | 'type' => MENU_CALLBACK, |
191 | - ); |
|
192 | - $items['host/%/tasks/%/%'] = array( |
|
191 | + ); |
|
192 | + $items['host/%/tasks/%/%'] = array( |
|
193 | 193 | 'title' => 'Host Tasks Table', |
194 | 194 | 'description' => '', |
195 | 195 | 'page callback' => 'boincwork_host_task_table', |
196 | 196 | 'page arguments' => array(1,3,4), |
197 | 197 | 'access arguments' => array('access content'), |
198 | 198 | 'type' => MENU_CALLBACK, |
199 | - ); |
|
200 | - // Workunit task table disabled |
|
201 | - //$items['workunit/%/tasks/%/%'] = array( |
|
202 | - // 'title' => 'Workunit Tasks Table', |
|
203 | - // 'description' => '', |
|
204 | - // 'page callback' => 'boincwork_workunit_task_table', |
|
205 | - // 'page arguments' => array(1,3,4), |
|
206 | - // 'access arguments' => array('access content'), |
|
207 | - // 'type' => MENU_CALLBACK, |
|
208 | - //); |
|
209 | - return $items; |
|
199 | + ); |
|
200 | + // Workunit task table disabled |
|
201 | + //$items['workunit/%/tasks/%/%'] = array( |
|
202 | + // 'title' => 'Workunit Tasks Table', |
|
203 | + // 'description' => '', |
|
204 | + // 'page callback' => 'boincwork_workunit_task_table', |
|
205 | + // 'page arguments' => array(1,3,4), |
|
206 | + // 'access arguments' => array('access content'), |
|
207 | + // 'type' => MENU_CALLBACK, |
|
208 | + //); |
|
209 | + return $items; |
|
210 | 210 | } |
211 | 211 | |
212 | 212 | /** |
213 | 213 | * Implementation of hook_theme(). |
214 | 214 | */ |
215 | 215 | function boincwork_theme() { |
216 | - return array( |
|
216 | + return array( |
|
217 | 217 | 'boincwork_privacyprefs_form' => array( |
218 | - 'arguments' => array('form'), |
|
218 | + 'arguments' => array('form'), |
|
219 | 219 | ), |
220 | - ); |
|
220 | + ); |
|
221 | 221 | } |
222 | 222 | |
223 | 223 | /** |
224 | 224 | * Implementation of hook_views_api(). |
225 | 225 | */ |
226 | 226 | function boincwork_views_api() { |
227 | - return array( |
|
227 | + return array( |
|
228 | 228 | 'api' => 2.0, |
229 | 229 | 'path' => drupal_get_path('module', 'boincwork') |
230 | - ); |
|
230 | + ); |
|
231 | 231 | } |
232 | 232 | |
233 | 233 | /** |
234 | 234 | * Implementation of hook_locale(). |
235 | 235 | */ |
236 | 236 | function boincwork_locale($op = 'groups', $group = NULL) { |
237 | - switch ($op) { |
|
237 | + switch ($op) { |
|
238 | 238 | case 'groups': |
239 | 239 | return array('project' => bts('Project')); |
240 | 240 | case 'info': |
241 | 241 | $info['project']['refresh callback'] = 'boincwork_locale_refresh'; |
242 | - $info['project']['format'] = FALSE; |
|
243 | - return $info; |
|
244 | - } |
|
242 | + $info['project']['format'] = FALSE; |
|
243 | + return $info; |
|
244 | + } |
|
245 | 245 | } |
246 | 246 | |
247 | 247 | /** |
248 | 248 | * Refresh strings. |
249 | 249 | */ |
250 | 250 | function boincwork_locale_refresh() { |
251 | - // Mimic process of adding project specific prefs to the project preferences |
|
252 | - // form -- this parses the prefs XML and calls i18nstrings_update() |
|
253 | - $form = array(); |
|
254 | - $prefs = array( |
|
251 | + // Mimic process of adding project specific prefs to the project preferences |
|
252 | + // form -- this parses the prefs XML and calls i18nstrings_update() |
|
253 | + $form = array(); |
|
254 | + $prefs = array( |
|
255 | 255 | 'project_specific' => array(), |
256 | - ); |
|
257 | - boincwork_add_project_specific_prefs($form, $prefs); |
|
258 | - return TRUE; // Meaning it completed with no issues |
|
256 | + ); |
|
257 | + boincwork_add_project_specific_prefs($form, $prefs); |
|
258 | + return TRUE; // Meaning it completed with no issues |
|
259 | 259 | } |
260 | 260 | |
261 | 261 | |
@@ -264,43 +264,43 @@ discard block |
||
264 | 264 | */ |
265 | 265 | |
266 | 266 | function boincwork_privatemsg_message_view_alter(&$vars) { |
267 | - global $user; |
|
267 | + global $user; |
|
268 | 268 | |
269 | - $author = $vars['message']['author']; |
|
270 | - if (!isset($vars['message']['thread_id'])) { |
|
269 | + $author = $vars['message']['author']; |
|
270 | + if (!isset($vars['message']['thread_id'])) { |
|
271 | 271 | // No thread id, this is probably only a preview |
272 | 272 | return; |
273 | - } |
|
274 | - $thread_id = $vars['message']['thread_id']; |
|
273 | + } |
|
274 | + $thread_id = $vars['message']['thread_id']; |
|
275 | 275 | |
276 | - if ($user->uid != $author->uid) { |
|
276 | + if ($user->uid != $author->uid) { |
|
277 | 277 | if ($vars['message']['is_blocked']) { |
278 | - $vars['message_actions']['unignore_user'] = array( |
|
278 | + $vars['message_actions']['unignore_user'] = array( |
|
279 | 279 | 'title' => bts('Stop Ignoring User', array(), NULL, 'boinc:ignore-user-remove'), |
280 | 280 | 'href' => 'account/prefs/privacy/ignore_user/remove/'. $author->uid, |
281 | 281 | 'query' => 'destination=messages/view/' . $thread_id, |
282 | - ); |
|
282 | + ); |
|
283 | 283 | } |
284 | 284 | else { |
285 | - $vars['message_actions']['ignore_user'] = array( |
|
285 | + $vars['message_actions']['ignore_user'] = array( |
|
286 | 286 | 'title' => bts('Ignore User', array(), NULL, 'boinc:ignore-user-add'), |
287 | 287 | 'href' => 'account/prefs/privacy/ignore_user/add/'. $author->uid, |
288 | 288 | 'query' => 'destination=messages/view/' . $thread_id, |
289 | - ); |
|
289 | + ); |
|
290 | + } |
|
290 | 291 | } |
291 | - } |
|
292 | 292 | } |
293 | 293 | |
294 | 294 | /** |
295 | 295 | * Implementation of hook_cron() |
296 | 296 | */ |
297 | 297 | function boincwork_cron() { |
298 | - // Delete expired hosts in the BOINC database, host_delete table. |
|
299 | - require_boinc('boinc_db'); |
|
300 | - $num_deleted = BoincHostDeleted::delete_expired(); |
|
301 | - if ($num_deleted>0) { |
|
298 | + // Delete expired hosts in the BOINC database, host_delete table. |
|
299 | + require_boinc('boinc_db'); |
|
300 | + $num_deleted = BoincHostDeleted::delete_expired(); |
|
301 | + if ($num_deleted>0) { |
|
302 | 302 | watchdog('boincwork', "Deleted ${num_deleted} hosts from host_deleted table", WATCHDOG_NOTICE); |
303 | - } |
|
303 | + } |
|
304 | 304 | } |
305 | 305 | |
306 | 306 | /* * * * * * * * * * * * * * * * * * * * * * * * * * * * |
@@ -308,41 +308,41 @@ discard block |
||
308 | 308 | * * * * * * * * * * * * * * * * * * * * * * * * * * * */ |
309 | 309 | |
310 | 310 | /** |
311 | - * General preferences menu callback. |
|
312 | - * Called when user goes to edit preferences page |
|
313 | - */ |
|
311 | + * General preferences menu callback. |
|
312 | + * Called when user goes to edit preferences page |
|
313 | + */ |
|
314 | 314 | function generalprefs_page($action = null, $venue = null, $advanced = FALSE) { |
315 | 315 | |
316 | - // Keep the venue selected across preference pages |
|
317 | - boincwork_select_venue($venue); |
|
316 | + // Keep the venue selected across preference pages |
|
317 | + boincwork_select_venue($venue); |
|
318 | 318 | |
319 | - $pref_sets = array('generic', 'home', 'school', 'work'); |
|
320 | - $output = null; |
|
321 | - // Set the page title |
|
322 | - $title = 'Computing'; |
|
323 | - drupal_set_title($title); |
|
319 | + $pref_sets = array('generic', 'home', 'school', 'work'); |
|
320 | + $output = null; |
|
321 | + // Set the page title |
|
322 | + $title = 'Computing'; |
|
323 | + drupal_set_title($title); |
|
324 | 324 | |
325 | - switch ($action) { |
|
325 | + switch ($action) { |
|
326 | 326 | |
327 | - case 'clear': |
|
327 | + case 'clear': |
|
328 | 328 | // Remove settings from this preference set |
329 | 329 | if ($venue AND $venue != 'generic') { |
330 | - boincwork_save_prefs(NULL, 'general', $venue); |
|
331 | - drupal_set_message(t('Settings for the "@name" preference set have been |
|
330 | + boincwork_save_prefs(NULL, 'general', $venue); |
|
331 | + drupal_set_message(t('Settings for the "@name" preference set have been |
|
332 | 332 | cleared', array('@name' => ucfirst($venue)))); |
333 | - // Set the generic preference set as active |
|
334 | - $_SESSION['prefs venue'] = 'generic'; |
|
333 | + // Set the generic preference set as active |
|
334 | + $_SESSION['prefs venue'] = 'generic'; |
|
335 | 335 | } |
336 | 336 | drupal_goto(); |
337 | 337 | break; |
338 | 338 | |
339 | - case 'combined': |
|
339 | + case 'combined': |
|
340 | 340 | // Compare preference sets; tabular view |
341 | 341 | |
342 | 342 | foreach ($pref_sets as $pref_set) { |
343 | - $form_state = array(); |
|
344 | - $prefs[$pref_set] = drupal_retrieve_form('boincwork_generalprefs_form', $form_state, $pref_set); |
|
345 | - drupal_prepare_form('boincwork_generalprefs_form', $prefs[$pref_set], $form_state); |
|
343 | + $form_state = array(); |
|
344 | + $prefs[$pref_set] = drupal_retrieve_form('boincwork_generalprefs_form', $form_state, $pref_set); |
|
345 | + drupal_prepare_form('boincwork_generalprefs_form', $prefs[$pref_set], $form_state); |
|
346 | 346 | } |
347 | 347 | |
348 | 348 | $output .= '<p>' . bts('These apply to all BOINC projects in which you participate.', array(), NULL, 'boinc:account-preferences-computing') . '<br/>'; |
@@ -355,29 +355,29 @@ discard block |
||
355 | 355 | $prefs_table = boincwork_make_prefs_table($prefs['generic']['prefs']['advanced']); |
356 | 356 | |
357 | 357 | foreach ($prefs_table as $category => $section) { |
358 | - $output .= '<tr class="section-heading">'; |
|
359 | - $output .= "<td>{$section['name']}</td>"; |
|
360 | - foreach ($pref_sets as $pref_set) { |
|
358 | + $output .= '<tr class="section-heading">'; |
|
359 | + $output .= "<td>{$section['name']}</td>"; |
|
360 | + foreach ($pref_sets as $pref_set) { |
|
361 | 361 | $output .= '<td>' . $pref_set . '</td>'; |
362 | - } |
|
363 | - $output .= '</tr>'; |
|
364 | - foreach ($section['elements'] as $name => $setting) { |
|
362 | + } |
|
363 | + $output .= '</tr>'; |
|
364 | + foreach ($section['elements'] as $name => $setting) { |
|
365 | 365 | // Output the setting name and description, with an ugly exception |
366 | 366 | // made for preferences with special formatting |
367 | 367 | $special_map = array( |
368 | - 'start_hour' => 'end_hour', |
|
369 | - 'net_start_hour'=> 'net_end_hour', |
|
370 | - 'daily_xfer_limit_mb' => 'daily_xfer_period_days', |
|
368 | + 'start_hour' => 'end_hour', |
|
369 | + 'net_start_hour'=> 'net_end_hour', |
|
370 | + 'daily_xfer_limit_mb' => 'daily_xfer_period_days', |
|
371 | 371 | ); |
372 | 372 | $special_delimiter = array( |
373 | - 'start_hour' => bts('and', array(), NULL, 'boinc:account-preference'), |
|
374 | - 'net_start_hour'=> bts('and', array(), NULL, 'boinc:account-preference'), |
|
375 | - 'daily_xfer_limit_mb' => bts('every', array(), NULL, 'boinc:account-preference'), |
|
373 | + 'start_hour' => bts('and', array(), NULL, 'boinc:account-preference'), |
|
374 | + 'net_start_hour'=> bts('and', array(), NULL, 'boinc:account-preference'), |
|
375 | + 'daily_xfer_limit_mb' => bts('every', array(), NULL, 'boinc:account-preference'), |
|
376 | 376 | ); |
377 | 377 | $special = isset($special_map[$name]); |
378 | 378 | $very_special = in_array($name, $special_map); |
379 | 379 | if ($very_special) { |
380 | - continue; |
|
380 | + continue; |
|
381 | 381 | } |
382 | 382 | $output .= '<tr>'; |
383 | 383 | $output .= '<td>'; |
@@ -387,35 +387,35 @@ discard block |
||
387 | 387 | // Output values for each preference set, again with ugly hacks for |
388 | 388 | // time range preferences |
389 | 389 | foreach ($pref_sets as $pref_set) { |
390 | - if (($prefs[$pref_set]) AND |
|
390 | + if (($prefs[$pref_set]) AND |
|
391 | 391 | $prefs[$pref_set]['#established'] AND |
392 | 392 | isset($prefs[$pref_set]['prefs']['advanced'][$category])) { |
393 | 393 | $pref_setting = $prefs[$pref_set]['prefs']['advanced'][$category][$name]; |
394 | 394 | $value = isset($pref_setting['#options']) ? $pref_setting['#options'][$pref_setting['#default_value']] : $pref_setting['#default_value']; |
395 | 395 | if ($value == '') { |
396 | - $value = '---'; |
|
396 | + $value = '---'; |
|
397 | 397 | } |
398 | 398 | if (!isset($pref_setting['#field_suffix'])) { |
399 | - $pref_setting['#field_suffix'] = ''; |
|
399 | + $pref_setting['#field_suffix'] = ''; |
|
400 | 400 | } |
401 | 401 | if (!$special) { |
402 | - $output .= "<td>{$value} {$pref_setting['#field_suffix']}</td>"; |
|
402 | + $output .= "<td>{$value} {$pref_setting['#field_suffix']}</td>"; |
|
403 | 403 | } |
404 | 404 | else { |
405 | - // The "very special" case where we merge two prefs |
|
406 | - $second_pref = $special_map[$name]; |
|
407 | - $second_pref_setting = $prefs[$pref_set]['prefs']['advanced'][$category][$second_pref]; |
|
408 | - $second_value = isset($second_pref_setting['#options']) ? $second_pref_setting['#options'][$second_pref_setting['#default_value']] : $second_pref_setting['#default_value']; |
|
409 | - $output .= "<td>{$value} {$pref_setting['#field_suffix']} {$special_delimiter[$name]}" . |
|
405 | + // The "very special" case where we merge two prefs |
|
406 | + $second_pref = $special_map[$name]; |
|
407 | + $second_pref_setting = $prefs[$pref_set]['prefs']['advanced'][$category][$second_pref]; |
|
408 | + $second_value = isset($second_pref_setting['#options']) ? $second_pref_setting['#options'][$second_pref_setting['#default_value']] : $second_pref_setting['#default_value']; |
|
409 | + $output .= "<td>{$value} {$pref_setting['#field_suffix']} {$special_delimiter[$name]}" . |
|
410 | 410 | " {$second_value} {$second_pref_setting['#field_suffix']} </td>"; |
411 | 411 | } |
412 | - } |
|
413 | - else { |
|
412 | + } |
|
413 | + else { |
|
414 | 414 | $output .= '<td>---</td>'; |
415 | - } |
|
415 | + } |
|
416 | 416 | } |
417 | 417 | $output .= '</tr>'; |
418 | - } |
|
418 | + } |
|
419 | 419 | } |
420 | 420 | |
421 | 421 | // Empty line above action links... :/ |
@@ -431,24 +431,24 @@ discard block |
||
431 | 431 | $output .= '<tr>'; |
432 | 432 | $output .= '<td></td>'; |
433 | 433 | foreach ($pref_sets as $pref_set) { |
434 | - $action_text = ($prefs[$pref_set]['#established']) ? bts('Edit', array(), NULL, 'boinc:form-edit') : bts('Add', array(), NULL, 'boinc:form-add'); |
|
435 | - $output .= '<td><ul class="tab-list"><li class="first tab">'; |
|
436 | - $output .= l($action_text, "account/prefs/computing/edit/{$pref_set}/1", |
|
434 | + $action_text = ($prefs[$pref_set]['#established']) ? bts('Edit', array(), NULL, 'boinc:form-edit') : bts('Add', array(), NULL, 'boinc:form-add'); |
|
435 | + $output .= '<td><ul class="tab-list"><li class="first tab">'; |
|
436 | + $output .= l($action_text, "account/prefs/computing/edit/{$pref_set}/1", |
|
437 | 437 | array('fragment' => "") |
438 | - ); |
|
439 | - // Show Clear links for established preference sets |
|
440 | - if ($pref_set != 'generic' AND $prefs[$pref_set]['#established']) { |
|
438 | + ); |
|
439 | + // Show Clear links for established preference sets |
|
440 | + if ($pref_set != 'generic' AND $prefs[$pref_set]['#established']) { |
|
441 | 441 | $output .= ' </li><li class="tab"> ' . l(bts('Clear', array(), NULL, 'boinc:form-clear'), "account/prefs/computing/clear/{$pref_set}", |
442 | - array( |
|
442 | + array( |
|
443 | 443 | 'query' => drupal_get_destination(), |
444 | 444 | 'attributes' => array( |
445 | - 'onclick' => 'return confirm(\'' . bts('This will remove all of your settings from the "@name" preference set. Are you sure?', |
|
445 | + 'onclick' => 'return confirm(\'' . bts('This will remove all of your settings from the "@name" preference set. Are you sure?', |
|
446 | 446 | array('@name' => ucfirst($pref_set)), NULL, 'boinc:account-computing-preferences') . '\')' |
447 | 447 | ) |
448 | - ) |
|
448 | + ) |
|
449 | 449 | ); |
450 | - } |
|
451 | - $output .= '</li></ul></td>'; |
|
450 | + } |
|
451 | + $output .= '</li></ul></td>'; |
|
452 | 452 | } |
453 | 453 | $output .= '</tr>'; |
454 | 454 | |
@@ -456,28 +456,28 @@ discard block |
||
456 | 456 | |
457 | 457 | break; |
458 | 458 | |
459 | - case 'edit': |
|
459 | + case 'edit': |
|
460 | 460 | default: |
461 | 461 | |
462 | 462 | // Return the HTML generated from the $form data structure. |
463 | 463 | if (function_exists('jump_quickly')) { |
464 | - $path = 'account/prefs/computing/edit'; |
|
465 | - $venues = array( |
|
464 | + $path = 'account/prefs/computing/edit'; |
|
465 | + $venues = array( |
|
466 | 466 | "{$path}/generic" => bts('Generic', array(), NULL, 'boinc:account-preferences-location'), |
467 | 467 | "{$path}/home" => bts('Home', array(), NULL, 'boinc:account-preferences-location:-1:ignoreoverwrite'), |
468 | 468 | "{$path}/school" => bts('School', array(), NULL, 'boinc:account-preferences-location'), |
469 | 469 | "{$path}/work" => bts('Work', array(), NULL, 'boinc:account-preferences-location') |
470 | - ); |
|
471 | - variable_set('jump_use_js_venues-Array', 1); |
|
472 | - drupal_add_js(drupal_get_path('module', 'jump') . '/jump.js'); |
|
473 | - drupal_add_js(drupal_get_path('theme', 'boinc') . '/js/prefs.js', 'theme'); |
|
474 | - |
|
475 | - $output .= '<div id="venue-selector" class="simple-form-controls">'; |
|
476 | - $output .= ' <div class="form-item venue">'; |
|
477 | - $output .= ' <label>Preference set:</label>'; |
|
478 | - $output .= jump_quickly($venues, 'venues', 1, "{$path}/{$venue}"); |
|
479 | - $output .= ' </div>'; |
|
480 | - $output .= '</div>'; |
|
470 | + ); |
|
471 | + variable_set('jump_use_js_venues-Array', 1); |
|
472 | + drupal_add_js(drupal_get_path('module', 'jump') . '/jump.js'); |
|
473 | + drupal_add_js(drupal_get_path('theme', 'boinc') . '/js/prefs.js', 'theme'); |
|
474 | + |
|
475 | + $output .= '<div id="venue-selector" class="simple-form-controls">'; |
|
476 | + $output .= ' <div class="form-item venue">'; |
|
477 | + $output .= ' <label>Preference set:</label>'; |
|
478 | + $output .= jump_quickly($venues, 'venues', 1, "{$path}/{$venue}"); |
|
479 | + $output .= ' </div>'; |
|
480 | + $output .= '</div>'; |
|
481 | 481 | } |
482 | 482 | $output .= drupal_get_form('boincwork_generalprefs_form', $venue, NULL, $advanced); |
483 | 483 | |
@@ -488,54 +488,54 @@ discard block |
||
488 | 488 | drupal_prepare_form('boincwork_generalprefs_form', $current_set, $form_state); |
489 | 489 | |
490 | 490 | if (!$current_set['#established']) { |
491 | - drupal_set_message(bts( |
|
492 | - "No preferences found for set '@venue'. Click SAVE CHANGES below to save the following preferences to your account.", |
|
493 | - array( '@venue' => $venue, ), |
|
494 | - NULL, 'boinc:account-preferences'), 'status'); |
|
491 | + drupal_set_message(bts( |
|
492 | + "No preferences found for set '@venue'. Click SAVE CHANGES below to save the following preferences to your account.", |
|
493 | + array( '@venue' => $venue, ), |
|
494 | + NULL, 'boinc:account-preferences'), 'status'); |
|
495 | 495 | } |
496 | 496 | |
497 | 497 | break; |
498 | - } |
|
498 | + } |
|
499 | 499 | |
500 | - return $output; |
|
500 | + return $output; |
|
501 | 501 | } |
502 | 502 | |
503 | 503 | /** |
504 | - * Project preferences menu callback |
|
505 | - * Called when user goes to edit project preferences page. |
|
506 | - */ |
|
504 | + * Project preferences menu callback |
|
505 | + * Called when user goes to edit project preferences page. |
|
506 | + */ |
|
507 | 507 | function projectprefs_page($action = null, $venue = null) { |
508 | 508 | |
509 | - // Keep the venue selected across preference pages |
|
510 | - boincwork_select_venue($venue); |
|
509 | + // Keep the venue selected across preference pages |
|
510 | + boincwork_select_venue($venue); |
|
511 | 511 | |
512 | - require_boinc(array('util', 'prefs')); |
|
513 | - global $project_has_beta; |
|
514 | - $pref_sets = array('generic', 'home', 'school', 'work'); |
|
515 | - $output = null; |
|
512 | + require_boinc(array('util', 'prefs')); |
|
513 | + global $project_has_beta; |
|
514 | + $pref_sets = array('generic', 'home', 'school', 'work'); |
|
515 | + $output = null; |
|
516 | 516 | |
517 | - $title = 'Project'; |
|
518 | - drupal_set_title($title); |
|
517 | + $title = 'Project'; |
|
518 | + drupal_set_title($title); |
|
519 | 519 | |
520 | - switch ($action) { |
|
520 | + switch ($action) { |
|
521 | 521 | |
522 | - case 'clear': |
|
522 | + case 'clear': |
|
523 | 523 | // Remove settings from this preference set |
524 | 524 | if ($venue AND $venue != 'generic') { |
525 | - boincwork_save_prefs(NULL, 'project', $venue); |
|
526 | - drupal_set_message(t('Settings for the "@name" preference set have been |
|
525 | + boincwork_save_prefs(NULL, 'project', $venue); |
|
526 | + drupal_set_message(t('Settings for the "@name" preference set have been |
|
527 | 527 | cleared', array('@name' => ucfirst($venue)))); |
528 | 528 | |
529 | - // Set the generic preference set as active |
|
530 | - $_SESSION['prefs venue'] = 'generic'; |
|
529 | + // Set the generic preference set as active |
|
530 | + $_SESSION['prefs venue'] = 'generic'; |
|
531 | 531 | |
532 | - // If the user has removed their default preference set, make it generic |
|
533 | - boincwork_set_default_venue(); |
|
532 | + // If the user has removed their default preference set, make it generic |
|
533 | + boincwork_set_default_venue(); |
|
534 | 534 | } |
535 | 535 | drupal_goto(); |
536 | 536 | break; |
537 | 537 | |
538 | - case 'combined': |
|
538 | + case 'combined': |
|
539 | 539 | |
540 | 540 | // Compare preference sets; tabular view |
541 | 541 | |
@@ -544,9 +544,9 @@ discard block |
||
544 | 544 | $boincuser = BoincUser::lookup_id($account->boincuser_id); |
545 | 545 | |
546 | 546 | foreach ($pref_sets as $pref_set) { |
547 | - $form_state = array(); |
|
548 | - $prefs[$pref_set] = drupal_retrieve_form('boincwork_projectprefs_form', $form_state, $pref_set); |
|
549 | - drupal_prepare_form('boincwork_projectprefs_form', $prefs[$pref_set], $form_state); |
|
547 | + $form_state = array(); |
|
548 | + $prefs[$pref_set] = drupal_retrieve_form('boincwork_projectprefs_form', $form_state, $pref_set); |
|
549 | + drupal_prepare_form('boincwork_projectprefs_form', $prefs[$pref_set], $form_state); |
|
550 | 550 | } |
551 | 551 | |
552 | 552 | $output .= '<p>' . bts('Preferences last modified: @mod_time', array('@mod_time' => pretty_time_str($prefs['generic']['modified']['#value'])), NULL, 'boinc:account-preferences') . '</p>'; |
@@ -557,20 +557,20 @@ discard block |
||
557 | 557 | $prefs_table = boincwork_make_prefs_table($prefs['generic']); |
558 | 558 | |
559 | 559 | foreach ($prefs_table as $category => $section) { |
560 | - $output .= '<tr class="section-heading">'; |
|
561 | - $output .= "<td>{$section['name']}</td>"; |
|
562 | - foreach ($pref_sets as $pref_set) { |
|
560 | + $output .= '<tr class="section-heading">'; |
|
561 | + $output .= "<td>{$section['name']}</td>"; |
|
562 | + foreach ($pref_sets as $pref_set) { |
|
563 | 563 | $output .= '<td>' . $pref_set . '</td>'; |
564 | - } |
|
565 | - $output .= '</tr>'; |
|
566 | - foreach ($section['elements'] as $name => $setting) { |
|
564 | + } |
|
565 | + $output .= '</tr>'; |
|
566 | + foreach ($section['elements'] as $name => $setting) { |
|
567 | 567 | $output .= '<tr>'; |
568 | 568 | $output .= '<td>'; |
569 | 569 | $output .= "<div class=\"title\">{$setting['name']}</div>"; |
570 | 570 | $output .= "<div class=\"description\">{$setting['description']}</div>"; |
571 | 571 | $output .= '</td>'; |
572 | 572 | foreach ($pref_sets as $pref_set) { |
573 | - if (($prefs[$pref_set]) AND |
|
573 | + if (($prefs[$pref_set]) AND |
|
574 | 574 | $prefs[$pref_set]['#established'] AND |
575 | 575 | isset($prefs[$pref_set][$category])) { |
576 | 576 | $pref_setting = $prefs[$pref_set][$category][$name]; |
@@ -578,10 +578,10 @@ discard block |
||
578 | 578 | if ($value == '') $value = '---'; |
579 | 579 | if (!isset($pref_setting['#field_suffix'])) $pref_setting['#field_suffix'] = ''; |
580 | 580 | $output .= "<td>{$value} {$pref_setting['#field_suffix']}</td>"; |
581 | - } else $output .= '<td>---</td>'; |
|
581 | + } else $output .= '<td>---</td>'; |
|
582 | 582 | } |
583 | 583 | $output .= '</tr>'; |
584 | - } |
|
584 | + } |
|
585 | 585 | } |
586 | 586 | |
587 | 587 | // Empty line above action links... :/ |
@@ -597,29 +597,29 @@ discard block |
||
597 | 597 | $output .= '<tr>'; |
598 | 598 | $output .= '<td></td>'; |
599 | 599 | foreach ($pref_sets as $pref_set) { |
600 | - $action_text = ($prefs[$pref_set]['#established']) ? bts('Edit', array(), NULL, 'boinc:form-edit') : bts('Add', array(), NULL, 'boinc:form-add'); |
|
601 | - $output .= '<td><ul class="tab-list"><li class="first tab">'; |
|
602 | - $output .= l($action_text, "account/prefs/project/edit/{$pref_set}"); |
|
603 | - // Show Clear links for established preference sets |
|
604 | - if ($pref_set != 'generic' AND $prefs[$pref_set]['#established']) { |
|
600 | + $action_text = ($prefs[$pref_set]['#established']) ? bts('Edit', array(), NULL, 'boinc:form-edit') : bts('Add', array(), NULL, 'boinc:form-add'); |
|
601 | + $output .= '<td><ul class="tab-list"><li class="first tab">'; |
|
602 | + $output .= l($action_text, "account/prefs/project/edit/{$pref_set}"); |
|
603 | + // Show Clear links for established preference sets |
|
604 | + if ($pref_set != 'generic' AND $prefs[$pref_set]['#established']) { |
|
605 | 605 | $output .= ' </li><li class="tab"> ' . l(bts('Clear', array(), NULL, 'boinc:form-clear'), "account/prefs/project/clear/{$pref_set}", |
606 | - array( |
|
606 | + array( |
|
607 | 607 | 'query' => drupal_get_destination(), |
608 | 608 | 'attributes' => array( |
609 | - 'onclick' => 'return confirm(\'' . bts('This will remove all of your settings from the "@name" preference set. Are you sure?', |
|
609 | + 'onclick' => 'return confirm(\'' . bts('This will remove all of your settings from the "@name" preference set. Are you sure?', |
|
610 | 610 | array('@name' => ucfirst($pref_set)), NULL, 'boinc:account-preferences-project') . '\')' |
611 | 611 | ) |
612 | - ) |
|
612 | + ) |
|
613 | 613 | ); |
614 | - } |
|
615 | - $output .= '</li></ul></td>'; |
|
614 | + } |
|
615 | + $output .= '</li></ul></td>'; |
|
616 | 616 | } |
617 | 617 | |
618 | 618 | $output .= '</table>'; |
619 | 619 | |
620 | 620 | break; |
621 | 621 | |
622 | - case 'set-default': |
|
622 | + case 'set-default': |
|
623 | 623 | // Set this preference set as the one to use for any new hosts attached |
624 | 624 | // to the user account |
625 | 625 | boincwork_set_default_venue($venue); |
@@ -627,30 +627,30 @@ discard block |
||
627 | 627 | drupal_goto('account/prefs/project/combined'); |
628 | 628 | break; |
629 | 629 | |
630 | - case 'edit': |
|
630 | + case 'edit': |
|
631 | 631 | default: |
632 | 632 | |
633 | 633 | // Return the HTML generated from the $form data structure. |
634 | 634 | require_boinc('util'); |
635 | 635 | |
636 | 636 | if (function_exists('jump_quickly')) { |
637 | - $path = 'account/prefs/project/edit'; |
|
638 | - $venues = array( |
|
637 | + $path = 'account/prefs/project/edit'; |
|
638 | + $venues = array( |
|
639 | 639 | "{$path}/generic" => bts('Generic', array(), NULL, 'boinc:account-preferences-location'), |
640 | 640 | "{$path}/home" => bts('Home', array(), NULL, 'boinc:account-preferences-location:-1:ignoreoverwrite'), |
641 | 641 | "{$path}/school" => bts('School', array(), NULL, 'boinc:account-preferences-location'), |
642 | 642 | "{$path}/work" => bts('Work', array(), NULL, 'boinc:account-preferences-location') |
643 | - ); |
|
644 | - variable_set('jump_use_js_venues-Array', 1); |
|
645 | - drupal_add_js(drupal_get_path('module', 'jump') . '/jump.js'); |
|
646 | - drupal_add_js(drupal_get_path('theme', 'boinc') . '/js/prefs.js', 'theme'); |
|
647 | - |
|
648 | - $output .= '<div id="venue-selector" class="simple-form-controls">'; |
|
649 | - $output .= ' <div class="form-item venue">'; |
|
650 | - $output .= ' <label>Preference set:</label>'; |
|
651 | - $output .= jump_quickly($venues, 'venues', 1, "{$path}/{$venue}"); |
|
652 | - $output .= ' </div>'; |
|
653 | - $output .= '</div>'; |
|
643 | + ); |
|
644 | + variable_set('jump_use_js_venues-Array', 1); |
|
645 | + drupal_add_js(drupal_get_path('module', 'jump') . '/jump.js'); |
|
646 | + drupal_add_js(drupal_get_path('theme', 'boinc') . '/js/prefs.js', 'theme'); |
|
647 | + |
|
648 | + $output .= '<div id="venue-selector" class="simple-form-controls">'; |
|
649 | + $output .= ' <div class="form-item venue">'; |
|
650 | + $output .= ' <label>Preference set:</label>'; |
|
651 | + $output .= jump_quickly($venues, 'venues', 1, "{$path}/{$venue}"); |
|
652 | + $output .= ' </div>'; |
|
653 | + $output .= '</div>'; |
|
654 | 654 | } |
655 | 655 | $output .= drupal_get_form('boincwork_projectprefs_form', $venue); |
656 | 656 | |
@@ -661,63 +661,63 @@ discard block |
||
661 | 661 | drupal_prepare_form('boincwork_projectprefs_form', $current_set, $form_state); |
662 | 662 | |
663 | 663 | if (!$current_set['#established']) { |
664 | - drupal_set_message(bts( |
|
665 | - "No preferences found for set '@venue'. Click SAVE CHANGES below to save the following preferences to your account.", |
|
666 | - array( '@venue' => $venue, ), |
|
667 | - NULL, 'boinc:account-preferences'), 'status'); |
|
664 | + drupal_set_message(bts( |
|
665 | + "No preferences found for set '@venue'. Click SAVE CHANGES below to save the following preferences to your account.", |
|
666 | + array( '@venue' => $venue, ), |
|
667 | + NULL, 'boinc:account-preferences'), 'status'); |
|
668 | 668 | } |
669 | 669 | |
670 | 670 | break; |
671 | 671 | |
672 | - } |
|
673 | - return $output; |
|
672 | + } |
|
673 | + return $output; |
|
674 | 674 | } |
675 | 675 | |
676 | 676 | /** |
677 | - * Community preferences menu callback |
|
678 | - * Called when user goes to edit community preferences page. |
|
679 | - */ |
|
677 | + * Community preferences menu callback |
|
678 | + * Called when user goes to edit community preferences page. |
|
679 | + */ |
|
680 | 680 | function communityprefs_page($action = null) { |
681 | 681 | |
682 | - require_boinc(array('util', 'prefs')); |
|
683 | - $output = null; |
|
682 | + require_boinc(array('util', 'prefs')); |
|
683 | + $output = null; |
|
684 | 684 | |
685 | - $title = 'Community'; |
|
686 | - drupal_set_title($title); |
|
685 | + $title = 'Community'; |
|
686 | + drupal_set_title($title); |
|
687 | 687 | |
688 | - //$output .= '<h2>Community preferences</h2>'; |
|
688 | + //$output .= '<h2>Community preferences</h2>'; |
|
689 | 689 | |
690 | - $output .= drupal_get_form('communityprefs_form'); |
|
690 | + $output .= drupal_get_form('communityprefs_form'); |
|
691 | 691 | |
692 | - return $output; |
|
692 | + return $output; |
|
693 | 693 | } |
694 | 694 | |
695 | 695 | /** |
696 | - * Privacy preferences menu callback |
|
697 | - * Called when user goes to edit privacy preferences page. |
|
698 | - */ |
|
696 | + * Privacy preferences menu callback |
|
697 | + * Called when user goes to edit privacy preferences page. |
|
698 | + */ |
|
699 | 699 | function privacyprefs_page($action = null) { |
700 | 700 | |
701 | - require_boinc(array('util', 'prefs')); |
|
702 | - $output = null; |
|
703 | - $title = 'Privacy'; |
|
704 | - drupal_set_title($title); |
|
701 | + require_boinc(array('util', 'prefs')); |
|
702 | + $output = null; |
|
703 | + $title = 'Privacy'; |
|
704 | + drupal_set_title($title); |
|
705 | 705 | |
706 | - switch ($action) { |
|
707 | - case 'view': |
|
706 | + switch ($action) { |
|
707 | + case 'view': |
|
708 | 708 | $form_state = array(); |
709 | 709 | $prefs = drupal_retrieve_form('boincwork_privacyprefs_form', $form_state); |
710 | 710 | drupal_prepare_form('boincwork_privacyprefs_form', $prefs, $form_state); |
711 | 711 | $output .= '<table>'; |
712 | 712 | |
713 | 713 | $sections = array( |
714 | - 'privacy' => $prefs['privacy'] |
|
714 | + 'privacy' => $prefs['privacy'] |
|
715 | 715 | ); |
716 | 716 | |
717 | 717 | foreach ($sections as $section) { |
718 | - $output .= '<tr class="section-heading">'; |
|
719 | - $output .= "<td>{$section['#title']}</td></tr>"; |
|
720 | - foreach ($section as $name => $setting) { |
|
718 | + $output .= '<tr class="section-heading">'; |
|
719 | + $output .= "<td>{$section['#title']}</td></tr>"; |
|
720 | + foreach ($section as $name => $setting) { |
|
721 | 721 | if ($name{0} == '#') continue; |
722 | 722 | $value = isset($setting['#default_value']) ? $setting['#default_value'] : ''; |
723 | 723 | if ($value AND isset($setting['#options'])) $value = $setting['#options'][$value]; |
@@ -729,7 +729,7 @@ discard block |
||
729 | 729 | $output .= "<td>{$setting['#title']}<br/>{$setting['#description']}</td>"; |
730 | 730 | $output .= "<td>{$value} {$setting['#field_suffix']}</td>"; |
731 | 731 | $output .= '</tr>'; |
732 | - } |
|
732 | + } |
|
733 | 733 | } |
734 | 734 | |
735 | 735 | // Edit preferences link |
@@ -742,33 +742,33 @@ discard block |
||
742 | 742 | |
743 | 743 | break; |
744 | 744 | |
745 | - case 'edit': |
|
745 | + case 'edit': |
|
746 | 746 | default: |
747 | 747 | require_boinc('util'); |
748 | 748 | // Return the HTML generated from the $form data structure. |
749 | 749 | $output .= drupal_get_form('boincwork_privacyprefs_form'); |
750 | 750 | break; |
751 | 751 | |
752 | - } |
|
752 | + } |
|
753 | 753 | |
754 | - return $output; |
|
754 | + return $output; |
|
755 | 755 | } |
756 | 756 | |
757 | 757 | /** |
758 | - * Certificates menu callback |
|
759 | - * Called when user goes to account certificate pages |
|
760 | - */ |
|
758 | + * Certificates menu callback |
|
759 | + * Called when user goes to account certificate pages |
|
760 | + */ |
|
761 | 761 | function boincwork_certificates($type = null, $border = null) { |
762 | - global $user; |
|
763 | - $drupuser = user_load($user->uid); |
|
764 | - // Load BOINC account and pre-authenticate with BOINC code |
|
765 | - require_boinc(array('util', 'cert')); |
|
766 | - $boincuser = BoincUser::lookup_id($drupuser->boincuser_id); |
|
767 | - //global $g_logged_in_user; |
|
768 | - //$g_logged_in_user = $boincuser; |
|
769 | - //print_r($boincuser); exit; |
|
770 | - switch ($type) { |
|
771 | - case 'all': |
|
762 | + global $user; |
|
763 | + $drupuser = user_load($user->uid); |
|
764 | + // Load BOINC account and pre-authenticate with BOINC code |
|
765 | + require_boinc(array('util', 'cert')); |
|
766 | + $boincuser = BoincUser::lookup_id($drupuser->boincuser_id); |
|
767 | + //global $g_logged_in_user; |
|
768 | + //$g_logged_in_user = $boincuser; |
|
769 | + //print_r($boincuser); exit; |
|
770 | + switch ($type) { |
|
771 | + case 'all': |
|
772 | 772 | //include_boinc('user/cert_all.php'); |
773 | 773 | require_boinc(array('util','cert','user')); |
774 | 774 | |
@@ -838,7 +838,7 @@ discard block |
||
838 | 838 | "; |
839 | 839 | break; |
840 | 840 | |
841 | - case 'account': |
|
841 | + case 'account': |
|
842 | 842 | default: |
843 | 843 | //include_boinc('user/cert1.php'); |
844 | 844 | require_boinc(array('util','cert')); |
@@ -914,7 +914,7 @@ discard block |
||
914 | 914 | echo " |
915 | 915 | </td><tr></table> |
916 | 916 | "; |
917 | - } |
|
917 | + } |
|
918 | 918 | } |
919 | 919 | |
920 | 920 | /** |
@@ -922,42 +922,42 @@ discard block |
||
922 | 922 | * Called when user selects to delete a host |
923 | 923 | */ |
924 | 924 | function boincwork_host_delete($host_id) { |
925 | - // Verify that host has no tasks |
|
926 | - if (boincwork_host_user_is_owner($host_id)) { |
|
925 | + // Verify that host has no tasks |
|
926 | + if (boincwork_host_user_is_owner($host_id)) { |
|
927 | 927 | if (!boincwork_host_get_task_count($host_id)) { |
928 | - // Delete the host record |
|
929 | - db_set_active('boinc_rw'); |
|
930 | - $host_deleted = db_query( |
|
928 | + // Delete the host record |
|
929 | + db_set_active('boinc_rw'); |
|
930 | + $host_deleted = db_query( |
|
931 | 931 | "DELETE FROM {host} WHERE id = '%d'", |
932 | 932 | $host_id |
933 | - ); |
|
934 | - db_set_active('default'); |
|
935 | - if ($host_deleted) { |
|
933 | + ); |
|
934 | + db_set_active('default'); |
|
935 | + if ($host_deleted) { |
|
936 | 936 | drupal_set_message(t('Host @id has been removed from your account.', |
937 | - array('@id' => $host_id))); |
|
937 | + array('@id' => $host_id))); |
|
938 | 938 | drupal_goto('account/computers'); |
939 | - } |
|
940 | - else { |
|
939 | + } |
|
940 | + else { |
|
941 | 941 | drupal_set_message(t('Host @id could not be deleted. Not sure why...', |
942 | - array('@id' => $host_id)), 'error' |
|
942 | + array('@id' => $host_id)), 'error' |
|
943 | 943 | ); |
944 | - } |
|
944 | + } |
|
945 | 945 | } |
946 | 946 | else { |
947 | - drupal_set_message(t('Host @id cannot be deleted because it still has |
|
947 | + drupal_set_message(t('Host @id cannot be deleted because it still has |
|
948 | 948 | tasks associated with it. These tasks should be processed within the |
949 | 949 | next few days, after which the host can be deleted.', |
950 | 950 | array('@id' => $host_id)), 'warning' |
951 | - ); |
|
951 | + ); |
|
952 | + } |
|
952 | 953 | } |
953 | - } |
|
954 | - else { |
|
954 | + else { |
|
955 | 955 | drupal_set_message(t('You are not the owner of host @id, so you cannot |
956 | 956 | delete it.', |
957 | - array('@id' => $host_id)), 'error' |
|
957 | + array('@id' => $host_id)), 'error' |
|
958 | 958 | ); |
959 | - } |
|
960 | - drupal_goto("host/{$host_id}"); |
|
959 | + } |
|
960 | + drupal_goto("host/{$host_id}"); |
|
961 | 961 | } |
962 | 962 | |
963 | 963 | /** |
@@ -965,55 +965,55 @@ discard block |
||
965 | 965 | * Called when user accesses the log for a host |
966 | 966 | */ |
967 | 967 | function boincwork_host_log($host_id = null) { |
968 | - $root_log_dir = variable_get('boinc_host_sched_logs_dir', ''); |
|
969 | - $log = ''; |
|
970 | - if ($root_log_dir AND $host_id) { |
|
968 | + $root_log_dir = variable_get('boinc_host_sched_logs_dir', ''); |
|
969 | + $log = ''; |
|
970 | + if ($root_log_dir AND $host_id) { |
|
971 | 971 | $subdir = substr($host_id, 0, -3) OR $subdir = 0; |
972 | 972 | $log = implode('/', array($root_log_dir, $subdir, $host_id)); |
973 | - } |
|
974 | - if ($log AND file_exists($log)) { |
|
973 | + } |
|
974 | + if ($log AND file_exists($log)) { |
|
975 | 975 | header('Content-type: text/plain'); |
976 | 976 | include($log); |
977 | - } |
|
977 | + } |
|
978 | 978 | } |
979 | 979 | |
980 | 980 | function boincwork_host_set_venue($host_id = NULL, $venue = NULL) { |
981 | - global $user; |
|
982 | - $account = user_load($user->uid); |
|
983 | - db_set_active('boinc_ro'); |
|
984 | - // Verify that this is my host |
|
985 | - $host_owner = db_result(db_query( |
|
981 | + global $user; |
|
982 | + $account = user_load($user->uid); |
|
983 | + db_set_active('boinc_ro'); |
|
984 | + // Verify that this is my host |
|
985 | + $host_owner = db_result(db_query( |
|
986 | 986 | "SELECT userid FROM {host} WHERE id = '%d'", |
987 | 987 | $host_id |
988 | - )); |
|
989 | - db_set_active('default'); |
|
990 | - if ($host_owner AND $host_owner == $account->boincuser_id) { |
|
988 | + )); |
|
989 | + db_set_active('default'); |
|
990 | + if ($host_owner AND $host_owner == $account->boincuser_id) { |
|
991 | 991 | db_set_active('boinc_rw'); |
992 | 992 | $updated = db_query( |
993 | - "UPDATE {host} SET venue = '%s' WHERE id = '%d'", |
|
994 | - $venue, $host_id |
|
993 | + "UPDATE {host} SET venue = '%s' WHERE id = '%d'", |
|
994 | + $venue, $host_id |
|
995 | 995 | ); |
996 | 996 | db_set_active('default'); |
997 | 997 | if ($updated) { |
998 | - drupal_set_message( |
|
998 | + drupal_set_message( |
|
999 | 999 | bts('The location for this host has been updated.', array(), NULL, 'boinc:account-host-details') |
1000 | 1000 | . bts('This will take effect next time the host contacts the project.', array(), NULL, 'boinc:account-host-details') |
1001 | - ); |
|
1001 | + ); |
|
1002 | 1002 | } |
1003 | 1003 | else { |
1004 | - drupal_set_message( |
|
1004 | + drupal_set_message( |
|
1005 | 1005 | bts('Unable to save changes to this host for some reason!', array(), NULL, 'boinc:account-host-details'), |
1006 | 1006 | 'error' |
1007 | - ); |
|
1007 | + ); |
|
1008 | 1008 | } |
1009 | - } |
|
1010 | - else { |
|
1009 | + } |
|
1010 | + else { |
|
1011 | 1011 | drupal_set_message( |
1012 | - bts('You are not allowed to make changes to this host.', array(), NULL, 'boinc:account-host-details'), |
|
1013 | - 'warning' |
|
1012 | + bts('You are not allowed to make changes to this host.', array(), NULL, 'boinc:account-host-details'), |
|
1013 | + 'warning' |
|
1014 | 1014 | ); |
1015 | - } |
|
1016 | - drupal_goto("host/{$host_id}"); |
|
1015 | + } |
|
1016 | + drupal_goto("host/{$host_id}"); |
|
1017 | 1017 | } |
1018 | 1018 | |
1019 | 1019 | /** |
@@ -1021,8 +1021,8 @@ discard block |
||
1021 | 1021 | * Called when user accesses cell phone stats |
1022 | 1022 | */ |
1023 | 1023 | function boincwork_mobile_stats($userid = null) { |
1024 | - $_GET['id'] = $userid; |
|
1025 | - include_boinc('user/userw.php'); |
|
1024 | + $_GET['id'] = $userid; |
|
1025 | + include_boinc('user/userw.php'); |
|
1026 | 1026 | } |
1027 | 1027 | |
1028 | 1028 | /** |
@@ -1030,7 +1030,7 @@ discard block |
||
1030 | 1030 | * Called to build the server status page |
1031 | 1031 | */ |
1032 | 1032 | function boincwork_server_status() { |
1033 | - include_boinc('user/server_status.php'); |
|
1033 | + include_boinc('user/server_status.php'); |
|
1034 | 1034 | } |
1035 | 1035 | |
1036 | 1036 | /** |
@@ -1038,7 +1038,7 @@ discard block |
||
1038 | 1038 | * RPC for managing job input files |
1039 | 1039 | */ |
1040 | 1040 | function boincwork_job_file() { |
1041 | - include_boinc('user/job_file.php'); |
|
1041 | + include_boinc('user/job_file.php'); |
|
1042 | 1042 | } |
1043 | 1043 | |
1044 | 1044 | /** |
@@ -1046,7 +1046,7 @@ discard block |
||
1046 | 1046 | * Get output file from remote job submission |
1047 | 1047 | */ |
1048 | 1048 | function boincwork_get_output() { |
1049 | - include_boinc('user/get_output.php'); |
|
1049 | + include_boinc('user/get_output.php'); |
|
1050 | 1050 | } |
1051 | 1051 | |
1052 | 1052 | /** |
@@ -1054,28 +1054,28 @@ discard block |
||
1054 | 1054 | * Get the project configuration XML; used by client software |
1055 | 1055 | */ |
1056 | 1056 | function boincwork_get_project_config() { |
1057 | - ob_start(); |
|
1058 | - include_boinc('user/get_project_config.php'); |
|
1059 | - $xml = ob_get_clean(); |
|
1060 | - $xml = load_configuration($xml); |
|
1061 | - |
|
1062 | - // obtain Drupal variables |
|
1063 | - $termsofuse = variable_get('boinc_weboptions_termsofuse', ''); |
|
1064 | - $overrideboinctou = variable_get('boinc_weboptions_overrideboinctou', FALSE); |
|
1065 | - |
|
1066 | - // If terms of use string exists and override is true, set terms-of-use |
|
1067 | - // to Drupal varaible. |
|
1068 | - if ( (!empty($termsofuse) && ($overrideboinctou)) ) { |
|
1057 | + ob_start(); |
|
1058 | + include_boinc('user/get_project_config.php'); |
|
1059 | + $xml = ob_get_clean(); |
|
1060 | + $xml = load_configuration($xml); |
|
1061 | + |
|
1062 | + // obtain Drupal variables |
|
1063 | + $termsofuse = variable_get('boinc_weboptions_termsofuse', ''); |
|
1064 | + $overrideboinctou = variable_get('boinc_weboptions_overrideboinctou', FALSE); |
|
1065 | + |
|
1066 | + // If terms of use string exists and override is true, set terms-of-use |
|
1067 | + // to Drupal varaible. |
|
1068 | + if ( (!empty($termsofuse) && ($overrideboinctou)) ) { |
|
1069 | 1069 | if (!empty($xml['project_config']['terms_of_use'])) { |
1070 | - // Remove any existing terms of use |
|
1071 | - unset($xml['project_config']['terms_of_use']); |
|
1070 | + // Remove any existing terms of use |
|
1071 | + unset($xml['project_config']['terms_of_use']); |
|
1072 | 1072 | } |
1073 | 1073 | |
1074 | 1074 | // Add terms of use from Drupal |
1075 | 1075 | $xml['project_config']['terms_of_use']['@value'] = $termsofuse; |
1076 | - } |
|
1076 | + } |
|
1077 | 1077 | |
1078 | - print save_configuration($xml); |
|
1078 | + print save_configuration($xml); |
|
1079 | 1079 | } |
1080 | 1080 | |
1081 | 1081 | |
@@ -1083,16 +1083,16 @@ discard block |
||
1083 | 1083 | * Page callback for the remote job submission RPC (submit_rpc_handler.php). |
1084 | 1084 | */ |
1085 | 1085 | function boincwork_submit_rpc_handler() { |
1086 | - include_boinc('user/submit_rpc_handler.php'); |
|
1086 | + include_boinc('user/submit_rpc_handler.php'); |
|
1087 | 1087 | } |
1088 | 1088 | |
1089 | 1089 | /** |
1090 | 1090 | * Page callback for user WAP (userw.php). |
1091 | 1091 | */ |
1092 | 1092 | function boincwork_user_wap() { |
1093 | - // Remove q from the GET request or BOINC will panic |
|
1094 | - unset($_GET['q']); |
|
1095 | - include_boinc('user/userw.php'); |
|
1093 | + // Remove q from the GET request or BOINC will panic |
|
1094 | + unset($_GET['q']); |
|
1095 | + include_boinc('user/userw.php'); |
|
1096 | 1096 | } |
1097 | 1097 | |
1098 | 1098 | |
@@ -1100,44 +1100,44 @@ discard block |
||
1100 | 1100 | * Page callback for user account task table |
1101 | 1101 | */ |
1102 | 1102 | function boincwork_account_task_table($tselect = NULL, $app_id = NULL) { |
1103 | - $title = bts('Tasks for your account', array(), NULL, 'boinc:account-task-table'); |
|
1104 | - drupal_set_title($title); |
|
1103 | + $title = bts('Tasks for your account', array(), NULL, 'boinc:account-task-table'); |
|
1104 | + drupal_set_title($title); |
|
1105 | 1105 | |
1106 | - global $user; |
|
1107 | - $account = user_load($user->uid); |
|
1108 | - return boincwork_tasktable(0, $account->boincuser_id, $tselect, $app_id); |
|
1106 | + global $user; |
|
1107 | + $account = user_load($user->uid); |
|
1108 | + return boincwork_tasktable(0, $account->boincuser_id, $tselect, $app_id); |
|
1109 | 1109 | } |
1110 | 1110 | |
1111 | 1111 | /** |
1112 | 1112 | * Page callback for host task table |
1113 | 1113 | */ |
1114 | 1114 | function boincwork_host_task_table($host_id = NULL, $tselect = NULL, $app_id = NULL) { |
1115 | - require_boinc( array('util', 'result') ); |
|
1115 | + require_boinc( array('util', 'result') ); |
|
1116 | 1116 | |
1117 | - $title = bts('Tasks for computer @host_id', array('@host_id' => $host_id), NULL, 'boinc:host-task-table'); |
|
1118 | - drupal_set_title($title); |
|
1117 | + $title = bts('Tasks for computer @host_id', array('@host_id' => $host_id), NULL, 'boinc:host-task-table'); |
|
1118 | + drupal_set_title($title); |
|
1119 | 1119 | |
1120 | - if (is_null($host_id)) { |
|
1120 | + if (is_null($host_id)) { |
|
1121 | 1121 | drupal_set_message(bts('ERROR: Invalid host ID', array(), NULL, 'boinc:host-task-table'), 'error'); |
1122 | 1122 | return ''; |
1123 | - } |
|
1123 | + } |
|
1124 | 1124 | |
1125 | - return boincwork_tasktable(2, $host_id, $tselect, $app_id); |
|
1125 | + return boincwork_tasktable(2, $host_id, $tselect, $app_id); |
|
1126 | 1126 | } |
1127 | 1127 | |
1128 | 1128 | /** |
1129 | 1129 | * Page callback for workunit task table |
1130 | 1130 | */ |
1131 | 1131 | function boincwork_workunit_task_table($workunit_id = NULL, $tselect = NULL, $app_id = NULL) { |
1132 | - $title = bts('Tasks for workunit @workunit_id', array('@workunit_id' => $workunit_id), NULL, 'boinc:workunit-task-table'); |
|
1133 | - drupal_set_title($title); |
|
1132 | + $title = bts('Tasks for workunit @workunit_id', array('@workunit_id' => $workunit_id), NULL, 'boinc:workunit-task-table'); |
|
1133 | + drupal_set_title($title); |
|
1134 | 1134 | |
1135 | - if (is_null($workunit_id)) { |
|
1135 | + if (is_null($workunit_id)) { |
|
1136 | 1136 | drupal_set_message(bts('ERROR: Invalid workunit ID', array(), NULL, 'boinc:workunit-task-table'), 'error'); |
1137 | 1137 | return ''; |
1138 | - } |
|
1138 | + } |
|
1139 | 1139 | |
1140 | - return boincwork_tasktable(1, $workunit_id, $tselect, $app_id); |
|
1140 | + return boincwork_tasktable(1, $workunit_id, $tselect, $app_id); |
|
1141 | 1141 | } |
1142 | 1142 | |
1143 | 1143 | /** |
@@ -1145,8 +1145,8 @@ discard block |
||
1145 | 1145 | * Take a node ID and render that node as a page |
1146 | 1146 | */ |
1147 | 1147 | function boincwork_view_page($nid) { |
1148 | - $node = node_load($nid); |
|
1149 | - return node_page_view($node); |
|
1148 | + $node = node_load($nid); |
|
1149 | + return node_page_view($node); |
|
1150 | 1150 | } |
1151 | 1151 | |
1152 | 1152 | |
@@ -1158,16 +1158,16 @@ discard block |
||
1158 | 1158 | * Determine which venue should be selected |
1159 | 1159 | */ |
1160 | 1160 | function boincwork_select_venue(&$venue) { |
1161 | - if (!$venue) { |
|
1161 | + if (!$venue) { |
|
1162 | 1162 | $active_venue = isset($_SESSION['prefs venue']) ? $_SESSION['prefs venue'] : NULL; |
1163 | 1163 | if ($active_venue) { |
1164 | - $venue = $active_venue; |
|
1165 | - //unset($_SESSION['prefs venue']); |
|
1164 | + $venue = $active_venue; |
|
1165 | + //unset($_SESSION['prefs venue']); |
|
1166 | + } |
|
1166 | 1167 | } |
1167 | - } |
|
1168 | - else { |
|
1168 | + else { |
|
1169 | 1169 | // Set the active venue to keep it selected between computing and project |
1170 | 1170 | // preference pages |
1171 | 1171 | $_SESSION['prefs venue'] = $venue; |
1172 | - } |
|
1172 | + } |
|
1173 | 1173 | } |