* Constructor for OutputPage. This should not be called directly.
* Instead a new RequestContext should be created and it will implicitly create
* a OutputPage tied to that context.
+ * @param IContextSource|null $context
*/
function __construct( IContextSource $context = null ) {
if ( $context === null ) {
*
* @param array $linkarr Associative array of attributes.
*/
- function addLink( $linkarr ) {
+ function addLink( array $linkarr ) {
array_push( $this->mLinktags, $linkarr );
}
* values, both keys and values will be escaped, and the
* "rel" attribute will be automatically added
*/
- function addMetadataLink( $linkarr ) {
+ function addMetadataLink( array $linkarr ) {
$linkarr['rel'] = $this->getMetadataAttribute();
$this->addLink( $linkarr );
}
/**
* Set the URL to be used for the <link rel=canonical>. This should be used
* in preference to addLink(), to avoid duplicate link tags.
+ * @param string $url
*/
function setCanonicalUrl( $url ) {
$this->mCanonicalUrl = $url;
* @param string $type
* @return array
*/
- protected function filterModules( $modules, $position = null,
+ protected function filterModules( array $modules, $position = null,
$type = ResourceLoaderModule::TYPE_COMBINED
) {
$resourceLoader = $this->getResourceLoader();
* Add a subtitle containing a backlink to a page
*
* @param Title $title Title to link to
+ * @param array $query Array of additional parameters to include in the link
*/
- public function addBacklinkSubtitle( Title $title ) {
- $query = array();
+ public function addBacklinkSubtitle( Title $title, $query = array() ) {
if ( $title->isRedirect() ) {
$query['redirect'] = 'no';
}
* @param array $newLinkArray Associative array mapping language code to the page
* name
*/
- public function addLanguageLinks( $newLinkArray ) {
+ public function addLanguageLinks( array $newLinkArray ) {
$this->mLanguageLinks += $newLinkArray;
}
* @param array $newLinkArray Associative array mapping language code to the page
* name
*/
- public function setLanguageLinks( $newLinkArray ) {
+ public function setLanguageLinks( array $newLinkArray ) {
$this->mLanguageLinks = $newLinkArray;
}
*
* @param array $categories Mapping category name => sort key
*/
- public function addCategoryLinks( $categories ) {
+ public function addCategoryLinks( array $categories ) {
global $wgContLang;
if ( !is_array( $categories ) || count( $categories ) == 0 ) {
# Add the results to the link cache
$lb->addResultToCache( LinkCache::singleton(), $res );
- # Set all the values to 'normal'. This can be done with array_fill_keys in PHP 5.2.0+
- $categories = array_combine(
- array_keys( $categories ),
- array_fill( 0, count( $categories ), 'normal' )
- );
+ # Set all the values to 'normal'.
+ $categories = array_fill_keys( array_keys( $categories ), 'normal' );
# Mark hidden categories
foreach ( $res as $row ) {
*
* @param array $categories Mapping category name => sort key
*/
- public function setCategoryLinks( $categories ) {
+ public function setCategoryLinks( array $categories ) {
$this->mCategoryLinks = array();
$this->addCategoryLinks( $categories );
}
* @param array $attribs
* @param string $contents
*/
- public function addElement( $element, $attribs = array(), $contents = '' ) {
+ public function addElement( $element, array $attribs = array(), $contents = '' ) {
$this->addHTML( Html::element( $element, $attribs, $contents ) );
}
$this->addModuleStyles( $parserOutput->getModuleStyles() );
$this->addModuleMessages( $parserOutput->getModuleMessages() );
$this->addJsConfigVars( $parserOutput->getJsConfigVars() );
+ $this->mPreventClickjacking = $this->mPreventClickjacking
+ || $parserOutput->preventClickjacking();
// Template versioning...
foreach ( (array)$parserOutput->getTemplateIds() as $ns => $dbks ) {
$this->mPreventClickjacking = false;
}
+ /**
+ * Get the prevent-clickjacking flag
+ *
+ * @since 1.24
+ * @return bool
+ */
+ public function getPreventClickjacking() {
+ return $this->mPreventClickjacking;
+ }
+
/**
* Get the X-Frame-Options header value (without the name part), or false
* if there isn't one. This is used by Skin to determine whether to enable
* @param array $errors Error message keys
* @param string $action Action that was denied or null if unknown
*/
- public function showPermissionsErrorPage( $errors, $action = null ) {
+ public function showPermissionsErrorPage( array $errors, $action = null ) {
// For some action (read, edit, create and upload), display a "login to do this action"
// error if all of the following conditions are met:
// 1. the user is not logged in
* @param string $action Action that was denied or null if unknown
* @return string The wikitext error-messages, formatted into a list.
*/
- public function formatPermissionsErrorMessage( $errors, $action = null ) {
+ public function formatPermissionsErrorMessage( array $errors, $action = null ) {
if ( $action == null ) {
$text = $this->msg( 'permissionserrorstext', count( $errors ) )->plain() . "\n\n";
} else {
* @throws ReadOnlyError
*/
public function readOnlyPage( $source = null, $protected = false,
- $reasons = array(), $action = null
+ array $reasons = array(), $action = null
) {
$this->setRobotPolicy( 'noindex,nofollow' );
$this->setArticleRelated( false );
* @param string $text Text of the link (input is not escaped)
* @param array $options Options array to pass to Linker
*/
- public function addReturnTo( $title, $query = array(), $text = null, $options = array() ) {
+ public function addReturnTo( $title, array $query = array(), $text = null, $options = array() ) {
$link = $this->msg( 'returnto' )->rawParams(
Linker::link( $title, $text, array(), $query, $options ) )->escaped();
$this->addHTML( "<p id=\"mw-returnto\">{$link}</p>\n" );
&& $only == ResourceLoaderModule::TYPE_SCRIPTS )
|| ( $module->getOrigin() > $this->getAllowedModules( ResourceLoaderModule::TYPE_STYLES )
&& $only == ResourceLoaderModule::TYPE_STYLES )
+ || ( $module->getOrigin() > $this->getAllowedModules( ResourceLoaderModule::TYPE_COMBINED )
+ && $only == ResourceLoaderModule::TYPE_COMBINED )
|| ( $this->mTarget && !in_array( $this->mTarget, $module->getTargets() ) )
) {
continue;
);
} else {
$links['html'] .= Html::inlineScript(
- ResourceLoader::makeLoaderConditionalScript(
- $resourceLoader->makeModuleResponse( $context, $grpModules )
- )
+ $resourceLoader->makeModuleResponse( $context, $grpModules )
);
}
$links['html'] .= "\n";
* @param array $links
* @return string HTML
*/
- protected static function getHtmlFromLoaderLinks( Array $links ) {
+ protected static function getHtmlFromLoaderLinks( array $links ) {
$html = '';
$states = array();
foreach ( $links as $link ) {
// Startup - this will immediately load jquery and mediawiki modules
$links = array();
- $links[] = $this->makeResourceLoaderLink( 'startup', ResourceLoaderModule::TYPE_SCRIPTS, /* $useESI = */ true );
+ $links[] = $this->makeResourceLoaderLink( 'startup', ResourceLoaderModule::TYPE_SCRIPTS, true );
// Load config before anything else
$links[] = Html::inlineScript(
/* $useESI = */ false, /* $extraQuery = */ array(), /* $loadCall = */ $inHead
);
- $modules = array();
- wfRunHooks( 'OutputPageScriptsForBottomQueue', array( $this, &$modules ) );
- if ( $modules ) {
- $links[] = $this->makeResourceLoaderLink( $modules, ResourceLoaderModule::TYPE_COMBINED,
- /* $useESI = */ false, /* $extraQuery = */ array(), /* $loadCall = */ $inHead
- );
- }
-
return self::getHtmlFromLoaderLinks( $links );
}
* @param array $options Option, can contain 'condition', 'dir', 'media' keys
* @return string HTML fragment
*/
- protected function styleLink( $style, $options ) {
+ protected function styleLink( $style, array $options ) {
if ( isset( $options['dir'] ) ) {
if ( $this->getLanguage()->getDir() != $options['dir'] ) {
return '';
* @since 1.16
* @deprecated since 1.17
*/
- public function includeJQuery( $modules = array() ) {
+ public function includeJQuery( array $modules = array() ) {
return array();
}