* @file
* @ingroup Parser
*/
-
+
/**
* Set options of the Parser
* @todo document
var $mIsPreview; # Parsing the page for a "preview" operation
var $mIsSectionPreview; # Parsing the page for a "preview" operation on a single section
var $mIsPrintable; # Parsing the printable version of the page
-
+
var $mExtraKey = ''; # Extra key that should be present in the caching key.
-
+
protected $accessedOptions;
-
+
function getUseDynamicDates() { return $this->mUseDynamicDates; }
function getInterwikiMagic() { return $this->mInterwikiMagic; }
function getAllowExternalImages() { return $this->mAllowExternalImages; }
function getAllowExternalImagesFrom() { return $this->mAllowExternalImagesFrom; }
function getEnableImageWhitelist() { return $this->mEnableImageWhitelist; }
function getEditSection() { $this->accessedOptions['editsection'] = true;
- return $this->mEditSection; }
+ return $this->mEditSection; }
function getNumberHeadings() { $this->accessedOptions['numberheadings'] = true;
- return $this->mNumberHeadings; }
+ return $this->mNumberHeadings; }
function getAllowSpecialInclusion() { return $this->mAllowSpecialInclusion; }
function getTidy() { return $this->mTidy; }
function getInterfaceMessage() { return $this->mInterfaceMessage; }
function getCleanSignatures() { return $this->mCleanSignatures; }
function getExternalLinkTarget() { return $this->mExternalLinkTarget; }
function getMath() { $this->accessedOptions['math'] = true;
- return $this->mMath; }
+ return $this->mMath; }
function getThumbSize() { $this->accessedOptions['thumbsize'] = true;
- return $this->mThumbSize; }
-
+ return $this->mThumbSize; }
+
function getIsPreview() { return $this->mIsPreview; }
function getIsSectionPreview() { return $this->mIsSectionPreview; }
function getIsPrintable() { $this->accessedOptions['printable'] = true;
- return $this->mIsPrintable; }
+ return $this->mIsPrintable; }
function getUser() { return $this->mUser; }
function getSkin( $title = null ) {
function setMath( $x ) { return wfSetVar( $this->mMath, $x ); }
function setUserLang( $x ) { return wfSetVar( $this->mUserLang, $x ); }
function setThumbSize( $x ) { return wfSetVar( $this->mThumbSize, $x ); }
-
+
function setIsPreview( $x ) { return wfSetVar( $this->mIsPreview, $x ); }
function setIsSectionPreview( $x ) { return wfSetVar( $this->mIsSectionPreview, $x ); }
function setIsPrintable( $x ) { return wfSetVar( $this->mIsPrintable, $x ); }
$this->mMath = $user->getOption( 'math' );
$this->mUserLang = $wgLang->getCode();
$this->mThumbSize = $user->getOption( 'thumbsize' );
-
+
$this->mIsPreview = false;
$this->mIsSectionPreview = false;
$this->mIsPrintable = false;
public function usedOptions() {
return array_keys( $this->accessedOptions );
}
-
+
/**
* Resets the memory of options usage.
*/
public function resetUsage() {
$this->accessedOptions = array();
}
-
+
/**
- * Returns the full array of options that would have been used by
+ * Returns the full array of options that would have been used by
* in 1.16.
* Used to get the old parser cache entries when available.
*/
}
return $legacyOpts;
}
-
+
/**
* Generate a hash string with the values set on these ParserOptions
* for the keys given in the array.
* This will be used as part of the hash key for the parser cache,
- * so users sharign the options with vary for the same page share
+ * so users sharign the options with vary for the same page share
* the same cached data safely.
- *
+ *
* Replaces User::getPageRenderingHash()
*
* Extensions which require it should install 'PageRenderingHash' hook,
global $wgContLang, $wgRenderHashAppend;
$confstr = '';
-
+
if ( in_array( 'math', $forOptions ) )
$confstr .= $this->mMath;
else
$confstr .= '*';
-
+
// Space assigned for the stubthreshold but unused
- // since it disables the parser cache, its value will always
+ // since it disables the parser cache, its value will always
// be 0 when this function is called by parsercache.
// The conditional is here to avoid a confusing 0
if ( in_array( 'stubthreshold', $forOptions ) )
if ( in_array( 'dateformat', $forOptions ) )
$confstr .= '!' . $this->getDateFormat();
-
+
if ( in_array( 'numberheadings', $forOptions ) )
$confstr .= '!' . ( $this->mNumberHeadings ? '1' : '' );
else
$confstr .= '!*';
-
+
if ( in_array( 'userlang', $forOptions ) )
$confstr .= '!' . $this->mUserLang;
else
// Since the skin could be overloading link(), it should be
// included here but in practice, none of our skins do that.
// $confstr .= "!" . $this->mSkin->getSkinName();
-
+
$confstr .= $wgRenderHashAppend;
if ( !$this->mEditSection && in_array( 'editsection', $forOptions ) )
$confstr .= '!edit=0';
if ( $this->mIsPrintable && in_array( 'printable', $forOptions ) )
$confstr .= '!printable=1';
-
+
if ( $this->mExtraKey != '' )
$confstr .= $this->mExtraKey;
-
+
// Give a chance for extensions to modify the hash, if they have
// extra options or other effects on the parser cache.
wfRunHooks( 'PageRenderingHash', array( &$confstr ) );
// Make it a valid memcached key fragment
$confstr = str_replace( ' ', '_', $confstr );
-
+
return $confstr;
}
}