51 $this->model_id = $modelId;
73 if ( $modelId !== $this->model_id ) {
75 "Bad content model: " .
76 "expected {$this->model_id} " .
89 return ContentHandler::getForContent( $this );
139 "Format $format is not supported for content model " .
203 if ( is_null( $that ) ) {
207 if ( $that === $this ) {
211 if ( $that->getModel() !== $this->getModel() ) {
216 if ( get_class( $that ) !== get_class( $this ) ) {
271 if ( $parserOutput ===
null ) {
279 Hooks::run(
'SecondaryDataUpdates', [
$title, $old, $recursive, $parserOutput, &$updates ] );
294 if ( is_null(
$title ) ) {
300 while ( --$recurse > 0 ) {
301 if (
$title->isRedirect() ) {
302 $page = WikiPage::factory(
$title );
303 $newtitle = $page->getRedirectTarget();
312 $titles[] = $newtitle;
346 return $titles ? array_pop( $titles ) :
null;
455 return Status::newGood();
457 return Status::newFatal(
"invalid-content-data" );
504 public function convert( $toModel, $lossy =
'' ) {
505 if ( $this->
getModel() === $toModel ) {
510 $lossy = ( $lossy ===
'lossy' );
513 Hooks::run(
'ConvertContent', [ $this, $toModel, $lossy, &$result ] );
541 if ( $options ===
null ) {
542 $options = ParserOptions::newCanonical(
'canonical' );
546 $options->registerWatcher( [ $po,
'recordOption' ] );
548 if ( Hooks::run(
'ContentGetParserOutput',
549 [ $this,
$title, $revId, $options, $generateHtml, &$po ] )
553 $oldRedir = $options->getRedirectTarget();
556 $options->setRedirectTarget( $oldRedir );
559 Hooks::run(
'ContentAlterParserOutput', [ $this,
$title, $po ] );
560 $options->registerWatcher(
null );
590 throw new MWException(
'Subclasses of AbstractContent must override fillParserOutput!' );
$wgMaxRedirects
Max number of redirects to follow when resolving redirects.
Base implementation for content objects.
getParserOutput(Title $title, $revId=null, ParserOptions $options=null, $generateHtml=true)
Returns a ParserOutput object containing information derived from this content.
equals(Content $that=null)
Decides whether two Content objects are equal.
__construct( $modelId=null)
preSaveTransform(Title $title, User $user, ParserOptions $popts)
convert( $toModel, $lossy='')
This base implementation calls the hook ConvertContent to enable custom conversions.
updateRedirect(Title $target)
This default implementation always returns $this.
isSupportedFormat( $format)
fillParserOutput(Title $title, $revId, ParserOptions $options, $generateHtml, ParserOutput &$output)
Fills the provided ParserOutput with information derived from the content.
getUltimateRedirectTarget()
prepareSave(WikiPage $page, $flags, $parentRevId, User $user)
isValid()
Subclasses may override this to implement (light weight) validation.
addSectionHeader( $header)
matchMagicWord(MagicWord $word)
This default implementation always returns false.
getDeletionUpdates(WikiPage $page, ParserOutput $parserOutput=null)
$model_id
Name of the content model this Content object represents.
getSecondaryDataUpdates(Title $title, Content $old=null, $recursive=true, ParserOutput $parserOutput=null)
Returns a list of DataUpdate objects for recording information about this Content in some secondary d...
preloadTransform(Title $title, ParserOptions $popts, $params=[])
equalsInternal(Content $that)
Checks whether $that is logically equal to this Content object.
replaceSection( $sectionId, Content $with, $sectionTitle='')
getRedirectTarget()
Subclasses that implement redirects should override this.
Update object handling the cleanup of links tables after a page was deleted.
Class the manages updates of *_link tables as well as similar extension-managed tables.
This class encapsulates "magic words" such as "#redirect", NOTOC, etc.
Set options of the Parser.
Represents a title within MediaWiki.
isValidRedirectTarget()
Check if this Title is a valid redirect target.
The User object encapsulates all of the user-specific settings (user_id, name, rights,...
Class representing a MediaWiki article and history.
Base interface for content objects.
getSize()
Returns the content's nominal size in "bogo-bytes".
serialize( $format=null)
Convenience method for serializing this Content object.