supernova-ws /
SuperNova
These results are based on our legacy PHP analysis, consider migrating to our new PHP analysis engine instead. Learn more
| 1 | <?php |
||
| 2 | |||
| 3 | use Buddy\BuddyModel; |
||
| 4 | use Buddy\BuddyException; |
||
| 5 | use Buddy\BuddyRoutingParams; |
||
| 6 | |||
| 7 | /** |
||
| 8 | * buddy.php |
||
| 9 | * Friend system |
||
| 10 | * |
||
| 11 | * v3.0 Fully rewrote by Gorlum for http://supernova.ws |
||
| 12 | * [!] Full rewrote from scratch |
||
| 13 | * |
||
| 14 | * Idea from buddy.php Created by Perberos. All rights reversed (C) 2006 |
||
| 15 | * */ |
||
| 16 | |||
| 17 | include('common.' . substr(strrchr(__FILE__, '.'), 1)); |
||
| 18 | |||
| 19 | /** |
||
| 20 | * @var array $user |
||
| 21 | */ |
||
| 22 | global $user; |
||
| 23 | |||
| 24 | lng_include('buddy'); |
||
| 25 | |||
| 26 | $result = array(); |
||
| 27 | sn_db_transaction_start(); |
||
| 28 | try { |
||
| 29 | $cBuddy = new BuddyRoutingParams(); |
||
| 30 | |||
| 31 | $cBuddy->gc = classSupernova::$gc; |
||
| 32 | $cBuddy->buddy_id = sys_get_param_id('buddy_id'); |
||
| 33 | $cBuddy->mode = sys_get_param_str('mode'); |
||
| 34 | $cBuddy->newFriendIdSafe = sys_get_param_id('request_user_id'); |
||
| 35 | $cBuddy->new_friend_name_unsafe = sys_get_param_str_unsafe('request_user_name'); |
||
| 36 | $cBuddy->new_request_text_unsafe = sys_get_param_str_unsafe('request_text'); |
||
| 37 | $cBuddy->playerArray = $user; |
||
| 38 | $cBuddy->playerId = function (BuddyRoutingParams $cBuddy) { |
||
| 39 | return $cBuddy->playerArray['id']; |
||
| 40 | }; |
||
| 41 | $cBuddy->playerName = function (BuddyRoutingParams $cBuddy) { |
||
| 42 | return $cBuddy->playerArray['username']; |
||
| 43 | }; |
||
| 44 | $cBuddy->playerNameAndCoordinates = function (BuddyRoutingParams $cBuddy) { |
||
| 45 | return "{$cBuddy->playerArray['username']} " . uni_render_coordinates($cBuddy->playerArray); |
||
| 46 | }; |
||
| 47 | |||
| 48 | classSupernova::$gc->buddy->route($cBuddy); |
||
|
0 ignored issues
–
show
|
|||
| 49 | |||
| 50 | } catch (BuddyException $e) { |
||
| 51 | $result[] = array( |
||
| 52 | 'STATUS' => in_array($e->getCode(), array(ERR_NONE, ERR_WARNING, ERR_ERROR)) ? $e->getCode() : ERR_ERROR, |
||
| 53 | 'MESSAGE' => classLocale::$lang[$e->getMessage()], |
||
| 54 | ); |
||
| 55 | $e->getCode() == ERR_NONE ? sn_db_transaction_commit() : sn_db_transaction_rollback(); |
||
| 56 | } |
||
| 57 | sn_db_transaction_rollback(); |
||
| 58 | unset($buddy); |
||
| 59 | |||
| 60 | empty($template_result) ? $template_result = array() : false; |
||
| 61 | |||
| 62 | foreach (BuddyModel::db_buddy_list_by_user(classSupernova::$gc->db, $user['id']) as $row) { |
||
| 63 | $row['BUDDY_REQUEST'] = sys_bbcodeParse($row['BUDDY_REQUEST']); |
||
| 64 | |||
| 65 | $row['BUDDY_ACTIVE'] = $row['BUDDY_STATUS'] == BUDDY_REQUEST_ACTIVE; |
||
| 66 | $row['BUDDY_DENIED'] = $row['BUDDY_STATUS'] == BUDDY_REQUEST_DENIED; |
||
| 67 | $row['BUDDY_INCOMING'] = $row['BUDDY_OWNER_ID'] == $user['id']; |
||
| 68 | $row['BUDDY_ONLINE'] = floor((SN_TIME_NOW - $row['onlinetime']) / 60); |
||
| 69 | |||
| 70 | $template_result['.']['buddy'][] = $row; |
||
| 71 | } |
||
| 72 | |||
| 73 | $template_result += array( |
||
| 74 | 'PAGE_HEADER' => classLocale::$lang['buddy_buddies'], |
||
| 75 | 'PAGE_HINT' => classLocale::$lang['buddy_hint'], |
||
| 76 | 'USER_ID' => $user['id'], |
||
| 77 | 'REQUEST_USER_ID' => isset($new_friend_row['id']) ? $new_friend_row['id'] : 0, |
||
| 78 | 'REQUEST_USER_NAME' => isset($new_friend_row['username']) ? $new_friend_row['username'] : '', |
||
| 79 | ); |
||
| 80 | |||
| 81 | $template_result['.']['result'] = is_array($template_result['.']['result']) ? $template_result['.']['result'] : array(); |
||
| 82 | $template_result['.']['result'] += $result; |
||
| 83 | |||
| 84 | $template = gettemplate('buddy', true); |
||
| 85 | $template->assign_recursive($template_result); |
||
| 86 | |||
| 87 | display($template); |
||
| 88 |
Methods can only be called on objects. This check looks for methods being called on variables that have been inferred to never be objects.