global $wgOut, $wgUser;
$wgOut->addModules( 'mediawiki.action.edit' );
+ $wgOut->addModuleStyles( 'mediawiki.action.edit.styles' );
if ( $wgUser->getOption( 'uselivepreview', false ) ) {
$wgOut->addModules( 'mediawiki.action.edit.preview' );
$wgOut->addHTML( Html::rawElement( 'div', array( 'class' => 'hiddencats' ),
Linker::formatHiddenCategories( $this->mArticle->getHiddenCategories() ) ) );
+ $wgOut->addHTML( Html::rawElement( 'div', array( 'class' => 'limitreport' ),
+ self::getPreviewLimitReport( $this->mParserOutput ) ) );
+
$wgOut->addModules( 'mediawiki.action.edit.collapsibleFooter' );
if ( $this->isConflict ) {
call_user_func_array( 'wfMessage', $copywarnMsg )->plain() . "\n</div>";
}
+ /**
+ * Get the Limit report for page previews
+ *
+ * @since 1.22
+ * @param ParserOutput $output ParserOutput object from the parse
+ * @return string HTML
+ */
+ public static function getPreviewLimitReport( $output ) {
+ if ( !$output || !$output->getLimitReportData() ) {
+ return '';
+ }
+
+ wfProfileIn( __METHOD__ );
+
+ $limitReport = Html::rawElement( 'div', array( 'class' => 'mw-limitReportExplanation' ),
+ wfMessage( 'limitreport-title' )->parseAsBlock()
+ );
+
+ // Show/hide animation doesn't work correctly on a table, so wrap it in a div.
+ $limitReport .= Html::openElement( 'div', array( 'class' => 'preview-limit-report-wrapper' ) );
+
+ $limitReport .= Html::openElement( 'table', array(
+ 'class' => 'preview-limit-report wikitable'
+ ) ) .
+ Html::openElement( 'tbody' );
+
+ foreach ( $output->getLimitReportData() as $key => $value ) {
+ if ( wfRunHooks( 'ParserLimitReportFormat',
+ array( $key, $value, &$limitReport, true, true )
+ ) ) {
+ $keyMsg = wfMessage( $key );
+ $valueMsg = wfMessage( array( "$key-value-html", "$key-value" ) );
+ if ( !$valueMsg->exists() ) {
+ $valueMsg = new RawMessage( '$1' );
+ }
+ if ( !$keyMsg->isDisabled() && !$valueMsg->isDisabled() ) {
+ $limitReport .= Html::openElement( 'tr' ) .
+ Html::rawElement( 'th', null, $keyMsg->parse() ) .
+ Html::rawElement( 'td', null, $valueMsg->params( $value )->parse() ) .
+ Html::closeElement( 'tr' );
+ }
+ }
+ }
+
+ $limitReport .= Html::closeElement( 'tbody' ) .
+ Html::closeElement( 'table' ) .
+ Html::closeElement( 'div' );
+
+ wfProfileOut( __METHOD__ );
+
+ return $limitReport;
+ }
+
protected function showStandardInputs( &$tabindex = 2 ) {
global $wgOut;
$wgOut->addHTML( "<div class='editOptions'>\n" );
'mediawiki.action.edit' => array(
'scripts' => 'resources/mediawiki.action/mediawiki.action.edit.js',
'dependencies' => array(
+ 'mediawiki.action.edit.styles',
'mediawiki.legacy.wikibits',
'jquery.textSelection',
'jquery.byteLimit',
),
'position' => 'top',
),
+ 'mediawiki.action.edit.styles' => array(
+ 'styles' => 'resources/mediawiki.action/mediawiki.action.edit.styles.css',
+ 'position' => 'top',
+ ),
'mediawiki.action.edit.collapsibleFooter' => array(
'scripts' => 'resources/mediawiki.action/mediawiki.action.edit.collapsibleFooter.js',
'styles' => 'resources/mediawiki.action/mediawiki.action.edit.collapsibleFooter.css',
/* MediaWiki Page */
+ 'mediawiki.page.gallery' => array(
+ 'scripts' => 'resources/mediawiki.page/mediawiki.page.gallery.js',
+ ),
'mediawiki.page.ready' => array(
'scripts' => 'resources/mediawiki.page/mediawiki.page.ready.js',
'dependencies' => array(
'remoteBasePath' => $GLOBALS['wgStylePath'],
'localBasePath' => $GLOBALS['wgStyleDirectory'],
'dependencies' => array(
+ 'mediawiki.api',
+ 'mediawiki.Title',
'mediawiki.legacy.wikibits',
'mediawiki.util',
),