| Current File : /home/jvzmxxx/wiki1/extensions/SocialProfile/UserRelationship/SpecialViewRelationshipRequests.php |
<?php
/**
* A special page for viewing open relationship requests for the current
* logged-in user
*
* @file
* @ingroup Extensions
* @author David Pean <david.pean@gmail.com>
* @copyright Copyright © 2007, Wikia Inc.
* @license http://www.gnu.org/copyleft/gpl.html GNU General Public License 2.0 or later
*/
class SpecialViewRelationshipRequests extends SpecialPage {
/**
* Constructor
*/
public function __construct() {
parent::__construct( 'ViewRelationshipRequests' );
}
public function doesWrites() {
return true;
}
/**
* Group this special page under the correct header in Special:SpecialPages.
*
* @return string
*/
function getGroupName() {
return 'users';
}
/**
* Show this special page on Special:SpecialPages only for registered users
*
* @return bool
*/
function isListed() {
return (bool)$this->getUser()->isLoggedIn();
}
/**
* 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( array(
'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']}\">
{$avatar_img}" . $msg;
if ( $request['message'] ) {
$output .= '<div class="relationship-message">' . $message . '</div>';
}
$output .= '<div class="visualClear"></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 );
}
}
}