Followup r103817, backing out ContextSource changes to SpecialPage and Action

This commit is contained in:
John Du Hart 2011-11-23 09:53:37 +00:00
parent fa78b0a3d4
commit f50eab171e
2 changed files with 173 additions and 2 deletions

View file

@ -23,7 +23,7 @@
*
* @file
*/
abstract class Action extends ContextSource {
abstract class Action {
/**
* Page on which we're performing the action
@ -95,6 +95,91 @@ abstract class Action extends ContextSource {
return self::getClass( $name, array() ) !== null;
}
/**
* Get the IContextSource in use here
* @return IContextSource
*/
public final function getContext() {
if ( $this->context instanceof IContextSource ) {
return $this->context;
}
return $this->page->getContext();
}
/**
* Get the WebRequest being used for this instance
*
* @return WebRequest
*/
public final function getRequest() {
return $this->getContext()->getRequest();
}
/**
* Get the OutputPage being used for this instance
*
* @return OutputPage
*/
public final function getOutput() {
return $this->getContext()->getOutput();
}
/**
* Shortcut to get the User being used for this instance
*
* @return User
*/
public final function getUser() {
return $this->getContext()->getUser();
}
/**
* Shortcut to get the Skin being used for this instance
*
* @return Skin
*/
public final function getSkin() {
return $this->getContext()->getSkin();
}
/**
* Shortcut to get the user Language being used for this instance
*
* @return Skin
*/
public final function getLanguage() {
return $this->getContext()->getLanguage();
}
/**
* Shortcut to get the user Language being used for this instance
*
* @deprecated 1.19 Use getLanguage instead
* @return Skin
*/
public final function getLang() {
return $this->getLanguage();
}
/**
* Shortcut to get the Title object from the page
* @return Title
*/
public final function getTitle() {
return $this->page->getTitle();
}
/**
* Get a Message object with context set
* Parameters are the same as wfMessage()
*
* @return Message object
*/
public final function msg() {
$params = func_get_args();
return call_user_func_array( array( $this->getContext(), 'msg' ), $params );
}
/**
* Protected constructor: use Action::factory( $action, $page ) to actually build
* these things in the real world

View file

@ -27,7 +27,7 @@
* page list.
* @ingroup SpecialPage
*/
class SpecialPage extends ContextSource {
class SpecialPage {
// The canonical name of this special page
// Also used for the default <h1> heading, @see getDescription()
@ -611,6 +611,92 @@ class SpecialPage extends ContextSource {
return self::getTitleFor( $this->mName, $subpage );
}
/**
* Sets the context this SpecialPage is executed in
*
* @param $context IContextSource
* @since 1.18
*/
public function setContext( $context ) {
$this->mContext = $context;
}
/**
* Gets the context this SpecialPage is executed in
*
* @return IContextSource
* @since 1.18
*/
public function getContext() {
if ( $this->mContext instanceof IContextSource ) {
return $this->mContext;
} else {
wfDebug( __METHOD__ . " called and \$mContext is null. Return RequestContext::getMain(); for sanity\n" );
return RequestContext::getMain();
}
}
/**
* Get the WebRequest being used for this instance
*
* @return WebRequest
* @since 1.18
*/
public function getRequest() {
return $this->getContext()->getRequest();
}
/**
* Get the OutputPage being used for this instance
*
* @return OutputPage
* @since 1.18
*/
public function getOutput() {
return $this->getContext()->getOutput();
}
/**
* Shortcut to get the User executing this instance
*
* @return User
* @since 1.18
*/
public function getUser() {
return $this->getContext()->getUser();
}
/**
* Shortcut to get the skin being used for this instance
*
* @return Skin
* @since 1.18
*/
public function getSkin() {
return $this->getContext()->getSkin();
}
/**
* Shortcut to get user's language
*
* @deprecated 1.19 Use getLanguage instead
* @return Language
* @since 1.18
*/
public function getLang() {
return $this->getLanguage();
}
/**
* Shortcut to get user's language
*
* @return Language
* @since 1.19
*/
public function getLanguage() {
return $this->getContext()->getLanguage();
}
/**
* Return the full title, including $par
*