*/
private $mExtensionData = [];
- /**
- * @var array $mLimitReportData Parser limit report data.
- */
+ /** @var array $mLimitReportData Parser limit report data. */
private $mLimitReportData = [];
/**
*/
private $mFlags = [];
+ /** @var integer|null Assumed rev ID for {{REVISIONID}} if no revision is set */
+ private $mSpeculativeRevId;
+
const EDITSECTION_REGEX =
'#<(?:mw:)?editsection page="(.*?)" section="(.*?)"(?:/>|>(.*?)(</(?:mw:)?editsection>))#';
return $text;
}
+ /**
+ * @param integer $id
+ * @since 1.28
+ */
+ public function setSpeculativeRevIdUsed( $id ) {
+ $this->mSpeculativeRevId = $id;
+ }
+
+ /** @since 1.28 */
+ public function getSpeculativeRevIdUsed() {
+ return $this->mSpeculativeRevId;
+ }
+
public function &getLanguageLinks() {
return $this->mLanguageLinks;
}
return $this->mModuleStyles;
}
- /**
- * @deprecated since 1.26 Obsolete
- * @return array
- */
- public function getModuleMessages() {
- wfDeprecated( __METHOD__, '1.26' );
- return [];
- }
-
/** @since 1.23 */
public function getJsConfigVars() {
return $this->mJsConfigVars;
return $this->mTOCHTML;
}
+ /**
+ * @return string|null TS_MW timestamp of the revision content
+ */
public function getTimestamp() {
return $this->mTimestamp;
}
$this->mModuleStyles = array_merge( $this->mModuleStyles, (array)$modules );
}
- /**
- * @deprecated since 1.26 Use addModules() instead
- * @param string|array $modules
- */
- public function addModuleMessages( $modules ) {
- wfDeprecated( __METHOD__, '1.26' );
- }
-
/**
* Add one or more variables to be set in mw.config in JavaScript.
*
/**
* Sets parser limit report data for a key
*
- * The key is used as the prefix for various messages used for formatting:
- * - $key: The label for the field in the limit report
- * - $key-value-text: Message used to format the value in the "NewPP limit
- * report" HTML comment. If missing, uses $key-format.
- * - $key-value-html: Message used to format the value in the preview
- * limit report table. If missing, uses $key-format.
- * - $key-value: Message used to format the value. If missing, uses "$1".
- *
- * Note that all values are interpreted as wikitext, and so should be
- * encoded with htmlspecialchars() as necessary, but should avoid complex
- * HTML for sanity of display in the "NewPP limit report" comment.
+ * If $value consist of a list of two floats, it will be interpreted as
+ * (actual value, maximum allowed value). The presence of a "-" in $key will cause
+ * the first part of the key to be interpreted as a namespace.
*
* @since 1.22
- * @param string $key Message key
- * @param mixed $value Appropriate for Message::params()
+ * @param string $key Data key
+ * @param mixed $value Data value One of (float, string, bool, JSON serializable array)
*/
public function setLimitReportData( $key, $value ) {
- $this->mLimitReportData[$key] = $value;
+ if ( is_array( $value ) ) {
+ if ( array_keys( $value ) === [ 0, 1 ]
+ && is_numeric( $value[0] )
+ && is_numeric( $value[1] )
+ ) {
+ $data = [ 'value' => $value[0], 'limit' => $value[1] ];
+ } else {
+ $data = $value;
+ }
+ } else {
+ $data = $value;
+ }
+
+ if ( strpos( $key, '-' ) ) {
+ list( $ns, $name ) = explode( '-', $key, 2 );
+ $this->mLimitReportData[$ns][$name] = $data;
+ } else {
+ $this->mLimitReportData[$key] = $data;
+ }
}
/**