/** * Show the special page * * @param $params Mixed: parameter(s) passed to the page or null */ public function execute($params) { $out = $this->getOutput(); $user = $this->getUser(); // Set the page title, robot policies, etc. $this->setHeaders(); /** * Redirect anonymous users to the login page * It will automatically return them to the ViewRelationshipRequests page */ if (!$user->isLoggedIn()) { $out->setPageTitle($this->msg('ur-error-page-title')->plain()); $login = SpecialPage::getTitleFor('Userlogin'); $out->redirect($login->getFullURL('returnto=Special:ViewRelationshipRequests')); return false; } // Add CSS & JS $out->addModuleStyles('ext.socialprofile.userrelationship.css'); $out->addModules('ext.socialprofile.userrelationship.js'); $rel = new UserRelationship($user->getName()); $friend_request_count = $rel->getOpenRequestCount($user->getID(), 1); $foe_request_count = $rel->getOpenRequestCount($user->getID(), 2); if ($this->getRequest()->wasPosted() && $_SESSION['alreadysubmitted'] == false) { $_SESSION['alreadysubmitted'] = true; $rel->addRelationshipRequest($this->user_name_to, $this->relationship_type, $_POST['message']); $output = '<br /><span class="title">' . $this->msg('ur-already-submitted')->plain() . '</span><br /><br />'; $out->addHTML($output); } else { $_SESSION['alreadysubmitted'] = false; $output = ''; $out->setPageTitle($this->msg('ur-requests-title')->plain()); $requests = $rel->getRequestList(0); if ($requests) { foreach ($requests as $request) { $user_from = Title::makeTitle(NS_USER, $request['user_name_from']); $avatar = new wAvatar($request['user_id_from'], 'l'); $avatar_img = $avatar->getAvatarURL(); if ($request['type'] == 'Foe') { $msg = $this->msg('ur-requests-message-foe', htmlspecialchars($user_from->getFullURL()), $request['user_name_from'])->text(); } else { $msg = $this->msg('ur-requests-message-friend', htmlspecialchars($user_from->getFullURL()), $request['user_name_from'])->text(); } $message = $out->parse(trim($request['message']), false); $output .= "<div class=\"relationship-action black-text\" id=\"request_action_{$request['id']}\">\n\t\t\t\t\t \t{$avatar_img}" . $msg; if ($request['message']) { $output .= '<div class="relationship-message">' . $message . '</div>'; } $output .= '<div class="cleared"></div> <div class="relationship-buttons"> <input type="button" class="site-button" value="' . $this->msg('ur-accept')->plain() . '" data-response="1" /> <input type="button" class="site-button" value="' . $this->msg('ur-reject')->plain() . '" data-response="-1" /> </div> </div>'; } } else { $output = $this->msg('ur-no-requests-message')->parse(); } $out->addHTML($output); } }
/** * Show the special page * * @param $params Mixed: parameter(s) passed to the page or null */ public function execute($params) { global $wgUser, $wgOut, $wgRequest, $wgUserRelationshipScripts; /** * Redirect Non-logged in users to Login Page * It will automatically return them to the ViewRelationshipRequests page */ if ($wgUser->getID() == 0) { $wgOut->setPageTitle(wfMsg('ur-error-page-title')); $login = SpecialPage::getTitleFor('Userlogin'); $wgOut->redirect($login->getFullURL('returnto=Special:ViewRelationshipRequests')); return false; } $wgOut->addScriptFile($wgUserRelationshipScripts . '/UserRelationship.js'); $wgOut->addExtensionStyle($wgUserRelationshipScripts . '/UserRelationship.css'); $rel = new UserRelationship($wgUser->getName()); $friend_request_count = $rel->getOpenRequestCount($wgUser->getID(), 1); $foe_request_count = $rel->getOpenRequestCount($wgUser->getID(), 2); if (count($_POST) && $_SESSION['alreadysubmitted'] == false) { $_SESSION['alreadysubmitted'] = true; $rel->addRelationshipRequest($this->user_name_to, $this->relationship_type, $_POST['message']); $out = '<br /><span class="title">' . wfMsg('ur-already-submitted') . '</span><br /><br />'; $wgOut->addHTML($out); } else { $_SESSION['alreadysubmitted'] = false; $output = ''; $wgOut->setPageTitle(wfMsg('ur-requests-title')); $requests = $rel->getRequestList(0); if ($requests) { foreach ($requests as $request) { $user_from = Title::makeTitle(NS_USER, $request['user_name_from']); $avatar = new wAvatar($request['user_id_from'], 'l'); $avatar_img = $avatar->getAvatarURL(); if ($request['type'] == 'Foe') { $msg = wfMsg('ur-requests-message-foe', $user_from->escapeFullURL(), $request['user_name_from']); } else { $msg = wfMsg('ur-requests-message-friend', $user_from->escapeFullURL(), $request['user_name_from']); } $message = $wgOut->parse(trim($request['message']), false); $output .= "<div class=\"relationship-action black-text\" id=\"request_action_{$request['id']}\">\r\n\t\t\t\t\t \t{$avatar_img}" . $msg; if ($request['message']) { $output .= '<div class="relationship-message">' . $message . '</div>'; } $output .= '<div class="cleared"></div> <div class="relationship-buttons"> <input type="button" class="site-button" value="' . wfMsg('ur-accept') . '" onclick="javascript:requestResponse(1,' . $request['id'] . ')" /> <input type="button" class="site-button" value="' . wfMsg('ur-reject') . '" onclick="javascript:requestResponse(-1,' . $request['id'] . ')" /> </div> </div>'; } } else { $inviteLink = SpecialPage::getTitleFor('InviteContacts'); $output = wfMsg('ur-no-requests-message', $inviteLink->escapeFullURL()); } $wgOut->addHTML($output); } }
/** * Automatically make the referring user and the newly-registered user friends * if $wgAutoAddFriendOnInvite is set to true. * * @param $user Object: the User object representing the newly-created user * @return Boolean: true */ function fnRegisterAutoAddFriend($user) { global $wgRequest, $wgAutoAddFriendOnInvite; if ($wgAutoAddFriendOnInvite) { $referral_user = $wgRequest->getVal('referral'); if ($referral_user) { $user_id_referral = User::idFromName($referral_user); if ($user_id_referral) { // need to create fake request first $rel = new UserRelationship($referral_user); $request_id = $rel->addRelationshipRequest($user->getName(), 1, '', false); // clear the status $rel->updateRelationshipRequestStatus($request_id, 1); // automatically add relationhips $rel = new UserRelationship($user->getName()); $rel->addRelationship($request_id, true); } } } return true; }