return true;
case self::AS_HOOK_ERROR:
- case self::AS_FILTERING:
return false;
+ case self::AS_PARSE_ERROR:
+ $wgOut->addWikiText( '<div class="error">' . $status->getWikiText() . '</div>');
+ #FIXME: cause editform to be shown again, not just an error!
+ return false;
+
case self::AS_SUCCESS_NEW_ARTICLE:
$query = $resultDetails['redirect'] ? 'redirect=no' : '';
$anchor = isset ( $resultDetails['sectionanchor'] ) ? $resultDetails['sectionanchor'] : '';
// Try the parser cache first
// getParserOutput will save to Parser cache if able
$pout = $page->getParserOutput( $popts );
+ if ( !$pout ) {
+ $this->dieUsage( "There is no revision ID {$page->getLatest()}", 'missingrev' );
+ }
if ( $getWikitext ) {
- $this->text = $page->getRawText();
+ $this->content = $page->getContent( Revision::RAW ); #FIXME: use $this->content everywhere
+ $this->text = ContentHandler::getContentText( $this->content ); #FIXME: serialize, get format from params; or use object structure in result?
}
return $pout;
}
return;
}
- $revision = Revision::newFromTitle( $title );
- if ( !$revision ) {
- $text = $page->getRawText();
- if ( $text === false ) {
++ $content = $page->getContent( REVISION::RAW );
++ if ( null === false ) {
return;
}
$dbw->begin( __METHOD__ );
$options = ParserOptions::newFromUserAndLang( new User, $wgContLang );
- $parserOutput = $wgParser->parse( $revision->getText(), $title, $options, true, true, $revision->getId() );
- $parserOutput = $wgParser->parse( $text, $page->getTitle(), $options, true, true, $page->getLatest() );
- $update = new LinksUpdate( $page->getTitle(), $parserOutput, false );
- $update->doUpdate();
++ $context = RequestContext::getMain();
++
++ $parserOutput = $content->getParserOutput( $context, $page->getLatest(), $options, false );
+
- $updates = $parserOutput->getSecondaryDataUpdates( $title, false );
- SecondaryDataUpdate::runUpdates( $updates );
++ $updates = $parserOutput->getSecondaryDataUpdates( $page->getTitle(), false );
++ SecondaryDataUpdate::runUpdates( $updates );
- $dbw->commit();
- // TODO: We don't know what happens here.
- $update = new LinksUpdate( $title, $parserOutput, false );
- $update->doUpdate();
$dbw->commit( __METHOD__ );
}