MediaWiki
1.33.0
|
A content handler knows how do deal with a specific type of content on a wiki page. More...
Public Member Functions | |
__construct ( $modelId, $formats) | |
Constructor, initializing the ContentHandler instance with its model ID and a list of supported formats. More... | |
canBeUsedOn (Title $title) | |
Determines whether the content type handled by this ContentHandler can be used for the main slot of the given page. More... | |
createDifferenceEngine (IContextSource $context, $old=0, $new=0, $rcid=0, $refreshCache=false, $unhide=false) | |
Factory for creating an appropriate DifferenceEngine for this content model. More... | |
exportTransform ( $blob, $format=null) | |
Applies transformations on export (returns the blob unchanged per default). More... | |
getActionOverrides () | |
Returns overrides for action handlers. More... | |
getAutoDeleteReason (Title $title, &$hasHistory) | |
Auto-generates a deletion reason. More... | |
getAutosummary (Content $oldContent=null, Content $newContent=null, $flags=0) | |
Return an applicable auto-summary if one exists for the given edit. More... | |
getChangeTag (Content $oldContent=null, Content $newContent=null, $flags=0) | |
Return an applicable tag if one exists for the given edit or return null. More... | |
getDataForSearchIndex (WikiPage $page, ParserOutput $output, SearchEngine $engine) | |
Return fields to be indexed by search engine as representation of this document. More... | |
getDefaultFormat () | |
The format used for serialization/deserialization by default by this ContentHandler. More... | |
getDeletionUpdates (Title $title, $role) | |
Returns a list of DeferrableUpdate objects for removing information about content in some secondary data store. More... | |
getFieldsForSearchIndex (SearchEngine $engine) | |
Get fields definition for search index. More... | |
getModelID () | |
Returns the model id that identifies the content model this ContentHandler can handle. More... | |
getPageLanguage (Title $title, Content $content=null) | |
Get the language in which the content of the given page is written. More... | |
getPageViewLanguage (Title $title, Content $content=null) | |
Get the language in which the content of this page is written when viewed by user. More... | |
getParserOutputForIndexing (WikiPage $page, ParserCache $cache=null) | |
Produce page output suitable for indexing. More... | |
getSecondaryDataUpdates (Title $title, Content $content, $role, SlotRenderingProvider $slotOutput) | |
Returns a list of DeferrableUpdate objects for recording information about the given Content in some secondary data store. More... | |
getSlotDiffRenderer (IContextSource $context) | |
Get an appropriate SlotDiffRenderer for this content model. More... | |
getSupportedFormats () | |
Returns a list of serialization formats supported by the serializeContent() and unserializeContent() methods of this ContentHandler. More... | |
getUndoContent ( $current, $undo, $undoafter, $undoIsLatest=false) | |
Get the Content object that needs to be saved in order to undo all revisions between $undo and $undoafter. More... | |
importTransform ( $blob, $format=null) | |
Apply import transformation (per default, returns $blob unchanged). More... | |
isParserCacheSupported () | |
Returns true for content models that support caching using the ParserCache mechanism. More... | |
isSupportedFormat ( $format) | |
Returns true if $format is a serialization format supported by this ContentHandler, and false otherwise. More... | |
makeEmptyContent () | |
Creates an empty Content object of the type supported by this ContentHandler. More... | |
makeParserOptions ( $context) | |
Get parser options suitable for rendering and caching the article. More... | |
makeRedirectContent (Title $destination, $text='') | |
Creates a new Content object that acts as a redirect to the given page, or null if redirects are not supported by this content model. More... | |
merge3 (Content $oldContent, Content $myContent, Content $yourContent) | |
Attempts to merge differences between three versions. More... | |
serializeContent (Content $content, $format=null) | |
Serializes a Content object of the type supported by this ContentHandler. More... | |
supportsCategories () | |
Returns true if this content model supports categories. More... | |
supportsDirectApiEditing () | |
Whether or not this content model supports direct editing via ApiEditPage. More... | |
supportsDirectEditing () | |
Return true if this content model supports direct editing, such as via EditPage. More... | |
supportsRedirects () | |
Returns true if this content model supports redirects. More... | |
supportsSections () | |
Returns true if this content model supports sections. More... | |
unserializeContent ( $blob, $format=null) | |
Unserializes a Content object of the type supported by this ContentHandler. More... | |
Static Public Member Functions | |
static | cleanupHandlersCache () |
Clean up handlers cache. More... | |
static | getAllContentFormats () |
static | getContentModels () |
static | getContentText (Content $content=null) |
Convenience function for getting flat text from a Content object. More... | |
static | getDefaultModelFor (Title $title) |
Returns the name of the default content model to be used for the page with the given title. More... | |
static | getForContent (Content $content) |
Returns the appropriate ContentHandler singleton for the given Content object. More... | |
static | getForModelID ( $modelId) |
Returns the ContentHandler singleton for the given model ID. More... | |
static | getForTitle (Title $title) |
Returns the appropriate ContentHandler singleton for the given title. More... | |
static | getLocalizedName ( $name, Language $lang=null) |
Returns the localized name for a given content model. More... | |
static | makeContent ( $text, Title $title=null, $modelId=null, $format=null) |
Convenience function for creating a Content object from a given textual representation. More... | |
Protected Member Functions | |
addSearchField (&$fields, SearchEngine $engine, $name, $type) | |
Add new field definition to array. More... | |
checkFormat ( $format) | |
Convenient for checking whether a format provided as a parameter is actually supported. More... | |
checkModelID ( $model_id) | |
getDiffEngineClass () | |
Returns the name of the diff engine to use. More... | |
getSlotDiffRendererInternal (IContextSource $context) | |
Return the SlotDiffRenderer appropriate for this content handler. More... | |
Protected Attributes | |
string | $mModelID |
string[] | $mSupportedFormats |
Static Protected Attributes | |
static array | $handlers |
A Cache of ContentHandler instances by model id. More... | |
Private Member Functions | |
getChangeType (Content $oldContent=null, Content $newContent=null, $flags=0) | |
Return type of change if one exists for the given edit. More... | |
A content handler knows how do deal with a specific type of content on a wiki page.
Content is stored in the database in a serialized form (using a serialization format a.k.a. MIME type) and is unserialized into its native PHP representation (the content model), which is wrapped in an instance of the appropriate subclass of Content.
ContentHandler instances are stateless singletons that serve, among other things, as a factory for Content objects. Generally, there is one subclass of ContentHandler and one subclass of Content for every type of content model.
Some content types have a flat model, that is, their native representation is the same as their serialized form. Examples would be JavaScript and CSS code. As of now, this also applies to wikitext (MediaWiki's default content type), but wikitext content may be represented by a DOM or AST structure in the future.
Definition at line 53 of file ContentHandler.php.
ContentHandler::__construct | ( | $modelId, | |
$formats | |||
) |
Constructor, initializing the ContentHandler instance with its model ID and a list of supported formats.
Values for the parameters are typically provided as literals by subclass's constructors.
string | $modelId | (use CONTENT_MODEL_XXX constants). |
string[] | $formats | List for supported serialization formats (typically as MIME types) |
Reimplemented in TextContentHandler, and DummyContentHandlerForTesting.
Definition at line 371 of file ContentHandler.php.
|
protected |
Add new field definition to array.
SearchIndexField[] | &$fields | |
SearchEngine | $engine | |
string | $name | |
int | $type |
Definition at line 1296 of file ContentHandler.php.
ContentHandler::canBeUsedOn | ( | Title | $title | ) |
Determines whether the content type handled by this ContentHandler can be used for the main slot of the given page.
This default implementation always returns true. Subclasses may override this to restrict the use of this content model to specific locations, typically based on the namespace or some other aspect of the title, such as a special suffix (e.g. ".svg" for SVG content).
Title | $title | The page's title. |
Reimplemented in GadgetDefinitionContentHandler.
Definition at line 751 of file ContentHandler.php.
References getModelID(), and Hooks\run().
|
protected |
Convenient for checking whether a format provided as a parameter is actually supported.
string | $format | The serialization format to check |
MWException | If the format is not supported by this content handler. |
Definition at line 544 of file ContentHandler.php.
References getModelID(), and isSupportedFormat().
Referenced by TextContentHandler\serializeContent(), WikitextContentHandler\serializeContent(), RevisionTestModifyableContentHandler\unserializeContent(), and TextContentHandler\unserializeContent().
|
protected |
string | $model_id | The model to check |
MWException | If the model ID is not the ID of the content model supported by this ContentHandler. |
Definition at line 480 of file ContentHandler.php.
Referenced by getAutoDeleteReason(), getUndoContent(), and TextContentHandler\merge3().
|
static |
Clean up handlers cache.
Definition at line 297 of file ContentHandler.php.
ContentHandler::createDifferenceEngine | ( | IContextSource | $context, |
$old = 0 , |
|||
$new = 0 , |
|||
$rcid = 0 , |
|||
$refreshCache = false , |
|||
$unhide = false |
|||
) |
Factory for creating an appropriate DifferenceEngine for this content model.
Since 1.32, this is only used for page-level diffs; to diff two content objects, use getSlotDiffRenderer.
The DifferenceEngine subclass to use is selected in getDiffEngineClass(). The GetDifferenceEngine hook will receive the DifferenceEngine object and can replace or wrap it. (Note that in older versions of MediaWiki the hook documentation instructed extensions to return false from the hook; you should not rely on always being able to decorate the DifferenceEngine instance from the hook. If the owner of the content type wants to decorare the instance, overriding this method is a safer approach.)
IContextSource | $context | Context to use, anything else will be ignored. |
int | $old | Revision ID we want to show and diff with. |
int | string | $new | Either a revision ID or one of the strings 'cur', 'prev' or 'next'. |
int | $rcid | FIXME: Deprecated, no longer used. Defaults to 0. |
bool | $refreshCache | If set, refreshes the diff cache. Defaults to false. |
bool | $unhide | If set, allow viewing deleted revs. Defaults to false. |
Definition at line 599 of file ContentHandler.php.
References $context, $differenceEngine, $refreshCache, $unhide, getDiffEngineClass(), and Hooks\run().
Referenced by getSlotDiffRenderer().
ContentHandler::exportTransform | ( | $blob, | |
$format = null |
|||
) |
Applies transformations on export (returns the blob unchanged per default).
Subclasses may override this to perform transformations such as conversion of legacy formats or filtering of internal meta-data.
string | $blob | The blob to be exported |
string | null | $format | The blob's serialization format |
Reimplemented in MediaWiki\Tests\Maintenance\BackupTextPassTestModelHandler.
Definition at line 398 of file ContentHandler.php.
References $blob.
ContentHandler::getActionOverrides | ( | ) |
Returns overrides for action handlers.
Classes listed here will be used instead of the default one when (and only when) $wgActions[$action] === true. This allows subclasses to override the default action handlers.
Definition at line 568 of file ContentHandler.php.
|
static |
Definition at line 335 of file ContentHandler.php.
References $handler, $wgContentHandlers, as, and getForModelID().
Referenced by ApiStashEdit\getAllowedParams(), ApiEditPage\getAllowedParams(), ApiComparePages\getAllowedParams(), ApiQueryRevisionsBase\getAllowedParams(), and ApiParse\getAllowedParams().
ContentHandler::getAutoDeleteReason | ( | Title | $title, |
& | $hasHistory | ||
) |
Auto-generates a deletion reason.
Title | $title | The page's title |
bool | &$hasHistory | Whether the page has a history |
Definition at line 989 of file ContentHandler.php.
References $content, $dbr, $res, $rev, $revQuery, $title, as, checkModelID(), DB_REPLICA, Revision\DELETED_USER, Revision\getQueryInfo(), Revision\newFromTitle(), wfGetDB(), and wfMessage().
ContentHandler::getAutosummary | ( | Content | $oldContent = null , |
Content | $newContent = null , |
||
$flags = 0 |
|||
) |
Return an applicable auto-summary if one exists for the given edit.
Content | null | $oldContent | The previous text of the page. |
Content | null | $newContent | The submitted text of the page. |
int | $flags | Bit mask: a bit mask of flags submitted for the edit. |
Definition at line 866 of file ContentHandler.php.
References getChangeType(), text, and wfMessage().
Return an applicable tag if one exists for the given edit or return null.
Content | null | $oldContent | The previous text of the page. |
Content | null | $newContent | The submitted text of the page. |
int | $flags | Bit mask: a bit mask of flags submitted for the edit. |
Definition at line 949 of file ContentHandler.php.
References getChangeType(), and ChangeTags\getSoftwareTags().
|
private |
Return type of change if one exists for the given edit.
Content | null | $oldContent | The previous text of the page. |
Content | null | $newContent | The submitted text of the page. |
int | $flags | Bit mask: a bit mask of flags submitted for the edit. |
Definition at line 799 of file ContentHandler.php.
References EDIT_NEW.
Referenced by getAutosummary(), and getChangeTag().
|
static |
Definition at line 327 of file ContentHandler.php.
References $wgContentHandlers, and Hooks\run().
Referenced by ApiStashEdit\getAllowedParams(), ApiEditPage\getAllowedParams(), ApiComparePages\getAllowedParams(), ApiParse\getAllowedParams(), SpecialChangeContentModel\getOptionsForTitle(), SearchEngine\getSearchIndexFields(), ContentHandlerSanityTest\provideHandlers(), and ContentHandlerTest\testGetContentModelsHook().
Convenience function for getting flat text from a Content object.
This should only be used in the context of backwards compatibility with code that is not yet able to handle Content objects!
If $content is null, this method returns the empty string.
If $content is an instance of TextContent, this method returns the flat text as returned by $content->getText().
If $content is not a TextContent object, the behavior of this method depends on the global $wgContentHandlerTextFallback:
Content | null | $content |
MWException | If the content is not an instance of TextContent and wgContentHandlerTextFallback was set to 'fail'. |
Definition at line 83 of file ContentHandler.php.
References $content, $wgContentHandlerTextFallback, and wfDebugLog().
Referenced by EditPageTest\assertEdit(), Cleanup\cleanupArticle(), Cleanup\execute(), BaseBlacklist\getArticleText(), TitleBlacklist\getBlacklistText(), EditPage\internalAttemptSave(), SimpleCaptcha\loadText(), onContentGetParserOutput(), ContentHandlerTest\testGetContentText_NonTextContent_fail(), ContentHandlerTest\testGetContentText_NonTextContent_ignore(), ContentHandlerTest\testGetContentText_NonTextContent_serialize(), ContentHandlerTest\testGetContentText_Null(), and ContentHandlerTest\testGetContentText_TextContent().
ContentHandler::getDataForSearchIndex | ( | WikiPage | $page, |
ParserOutput | $output, | ||
SearchEngine | $engine | ||
) |
Return fields to be indexed by search engine as representation of this document.
Overriding class should call parent function or take care of calling the SearchDataForIndex hook.
WikiPage | $page | Page to index |
ParserOutput | $output | |
SearchEngine | $engine | Search engine for which we are indexing |
Reimplemented in WikitextContentHandler, FileContentHandler, and TextContentHandler.
Definition at line 1312 of file ContentHandler.php.
References $content, $engine, $output, WikiPage\getContent(), and Hooks\run().
Referenced by WikitextContentHandlerTest\testDataIndexFieldsFile().
ContentHandler::getDefaultFormat | ( | ) |
The format used for serialization/deserialization by default by this ContentHandler.
This default implementation will return the first element of the array of formats that was passed to the constructor.
Definition at line 512 of file ContentHandler.php.
Referenced by TextContentHandler\merge3().
|
static |
Returns the name of the default content model to be used for the page with the given title.
Note: There should rarely be need to call this method directly. To determine the actual content model for a given page, use Title::getContentModel().
Which model is to be used by default for the page is determined based on several factors:
If none of the above applies, the wikitext model is used.
Note: this is used by, and may thus not use, Title::getContentModel()
Title | $title |
Definition at line 184 of file ContentHandler.php.
References $title.
Referenced by Revision\RevisionStore\getBaseRevisionRow(), PopulateContentTables\getContentModel(), Title\getContentModel(), MovePage\moveToInternal(), PopulateContentModel\populatePage(), ContentHandlerTest\testGetDefaultModelFor(), WikiPageDbTestBase\testIsCountable(), and XmlDumpWriter\writeRevision().
ContentHandler::getDeletionUpdates | ( | Title | $title, |
$role | |||
) |
Returns a list of DeferrableUpdate objects for removing information about content in some secondary data store.
This is used when a page is deleted, and also when a slot is removed from a page.
Application logic should not call this method directly. Instead, it should call WikiPage::getSecondaryDataUpdates().
Title | $title | The title of the page to supply the updates for |
string | $role | The role (slot) in which the content is being used. Which updates are performed should generally not depend on the role the content has, but the DeferrableUpdates themselves may need to know the role, to track to which slot the data refers, and to avoid overwriting data of the same kind from another slot. |
Definition at line 1438 of file ContentHandler.php.
Referenced by WikitextContentHandlerTest\testGetDeletionUpdates().
|
protected |
Returns the name of the diff engine to use.
Definition at line 766 of file ContentHandler.php.
References class.
Referenced by createDifferenceEngine().
ContentHandler::getFieldsForSearchIndex | ( | SearchEngine | $engine | ) |
Get fields definition for search index.
SearchEngine | $engine |
Reimplemented in TextContentHandler, WikitextContentHandler, and FileContentHandler.
Definition at line 1256 of file ContentHandler.php.
References $engine, SearchIndexField\FLAG_CASEFOLD, SearchIndexField\INDEX_TYPE_KEYWORD, and SearchIndexField\INDEX_TYPE_TEXT.
|
static |
Returns the appropriate ContentHandler singleton for the given Content object.
Content | $content |
Definition at line 215 of file ContentHandler.php.
References $content, and getForModelID().
Referenced by AbstractContent\getContentHandler().
|
static |
Returns the ContentHandler singleton for the given model ID.
Use the CONTENT_MODEL_XXX constants to identify the desired content model.
ContentHandler singletons are taken from the global $wgContentHandlers array. Keys in that array are model names, the values are either ContentHandler singleton objects, or strings specifying the appropriate subclass of ContentHandler.
If a class name is encountered when looking up the singleton for a given model name, the class is instantiated and the class name is replaced by the resulting singleton in $wgContentHandlers.
If no ContentHandler is defined for the desired $modelId, the ContentHandler may be provided by the ContentHandlerForModelID hook. If no ContentHandler can be determined, an MWException is raised.
string | $modelId | The ID of the content model for which to get a handler. Use CONTENT_MODEL_XXX constants. |
MWException | For internal errors and problems in the configuration. |
MWUnknownContentModelException | If no handler is known for the model ID. |
Definition at line 252 of file ContentHandler.php.
References $handler, $wgContentHandlers, Hooks\run(), and wfDebugLog().
Referenced by DifferenceEngineSlotDiffRenderer\__construct(), MediaWiki\EditPage\TextConflictHelper\__construct(), EditPage\__construct(), Revision\RevisionStore\checkContent(), TextContent\convert(), TextSlotDiffRenderer\diff(), ApiEditPage\execute(), ApiStashEdit\execute(), TextPassDumper\exportTransform(), ApiQueryRevisionsBase\extractDeprecatedContent(), DifferenceEngine\generateTextDiffBody(), getAllContentFormats(), Revision\RevisionStore\getBaseRevisionRow(), WikiPage\getContentHandler(), WikiRevision\getContentHandler(), MediaWiki\Storage\PageUpdater\getContentHandler(), MediaWiki\Storage\DerivedPageDataUpdater\getContentHandler(), Revision\getContentHandler(), EditPage\getCurrentContent(), getForContent(), getForTitle(), SpecialChangeContentModel\getOptionsForTitle(), EditPage\getOriginalContent(), EditPage\getPreloadedContent(), SearchEngine\getSearchIndexFields(), EditPage\importFormData(), Revision\MainSlotRoleHandler\isAllowedModel(), EditPage\isSupportedContentModel(), Revision\RevisionStore\loadSlotContent(), makeContent(), EditPage\mergeChangesIntoContent(), SpecialChangeContentModel\onSubmit(), ContentHandlerSanityTest\provideHandlers(), MediaWiki\Storage\PageUpdater\saveRevision(), WikitextContentHandlerTest\setUp(), MediaWiki\EditPage\TextConflictHelper\showEditFormTextAfterFooters(), ContentHandlerTest\testGetFieldsForSearchIndex(), ContentHandlerTest\testGetModelForID(), DifferenceEngine\textDiff(), PopulateContentModel\updateRevisionOrArchiveRows(), and XmlDumpWriter\writeRevision().
|
static |
Returns the appropriate ContentHandler singleton for the given title.
Title | $title |
Definition at line 199 of file ContentHandler.php.
References $title, and getForModelID().
Referenced by CleanupSpam\cleanupArticle(), MovePageForm\doSubmit(), FeedUtils\formatDiffRow(), BrokenRedirectsPage\formatResult(), DoubleRedirectsPage\formatResult(), Article\generateReason(), SpecialPageLanguage\getFormFields(), Title\getPageLanguage(), Title\getPageViewLanguage(), PageDataRequestHandler\httpContentNegotiation(), MediaWiki\initializeArticle(), EditPage\isSectionEditSupported(), MovePage\isValidMove(), MergeHistory\merge(), MovePage\moveToInternal(), PopulateContentModel\populateRevisionOrArchive(), SpecialSearch\showCreateLink(), MovePageForm\showForm(), ContentHandlerTest\testGetForTitle(), ContentHandlerTest\testGetPageLanguage(), and SpecialWhatLinksHere\wlhLink().
Returns the localized name for a given content model.
Model names are localized using system messages. Message keys have the form content-model-$name, where $name is getContentModelName( $id ).
string | $name | The content model ID, as given by a CONTENT_MODEL_XXX constant or returned by Revision::getContentModel(). |
Language | null | $lang | The language to parse the message in (since 1.26) |
MWException | If the model ID isn't known. |
Definition at line 314 of file ContentHandler.php.
References $lang, $name, and wfMessage().
Referenced by ContentModelLogFormatter\getMessageParameters(), SpecialChangeContentModel\getOptionsForTitle(), EditPage\importFormData(), MovePage\isValidMove(), SpecialChangeContentModel\onSubmit(), InfoAction\pageInfo(), MediaWiki\Storage\PageUpdater\saveRevision(), ContentHandlerTest\testGetLocalizedName(), and SpecialChangeContentModel\validateTitle().
ContentHandler::getModelID | ( | ) |
Returns the model id that identifies the content model this ContentHandler can handle.
Use with the CONTENT_MODEL_XXX constants.
Definition at line 468 of file ContentHandler.php.
References $mModelID.
Referenced by canBeUsedOn(), checkFormat(), and getSlotDiffRenderer().
Get the language in which the content of the given page is written.
This default implementation just returns the content language (except for pages in the MediaWiki namespace)
Note that the page's language is not cacheable, since it may in some cases depend on user settings.
Also note that the page language may or may not depend on the actual content of the page, that is, this method may load the content in order to determine the language.
Title | $title | The page to determine the language for. |
Content | null | $content | The page's content, if you have it handy, to avoid reloading it. |
Reimplemented in CodeContentHandler.
Definition at line 683 of file ContentHandler.php.
References $lang, $title, $wgLang, Language\factory(), list, NS_MEDIAWIKI, Hooks\run(), MessageCache\singleton(), and wfGetLangObj().
Referenced by TextContentHandler\getDataForSearchIndex(), and getPageViewLanguage().
Get the language in which the content of this page is written when viewed by user.
Defaults to $this->getPageLanguage(), but if the user specified a preferred variant, the variant will be used.
This default implementation just returns $this->getPageLanguage( $title, $content ) unless the user specified a preferred variant.
Note that the pages view language is not cacheable, since it depends on user settings.
Also note that the page language may or may not depend on the actual content of the page, that is, this method may load the content in order to determine the language.
Title | $title | The page to determine the language for. |
Content | null | $content | The page's content, if you have it handy, to avoid reloading it. |
Reimplemented in CodeContentHandler.
Definition at line 718 of file ContentHandler.php.
References $content, $title, Language\factory(), getPageLanguage(), and NS_MEDIAWIKI.
ContentHandler::getParserOutputForIndexing | ( | WikiPage | $page, |
ParserCache | $cache = null |
||
) |
Produce page output suitable for indexing.
Specific content handlers may override it if they need different content handling.
WikiPage | $page | |
ParserCache | null | $cache |
Definition at line 1349 of file ContentHandler.php.
References $cache, WikiPage\getRevision(), and WikiPage\makeParserOptions().
ContentHandler::getSecondaryDataUpdates | ( | Title | $title, |
Content | $content, | ||
$role, | |||
SlotRenderingProvider | $slotOutput | ||
) |
Returns a list of DeferrableUpdate objects for recording information about the given Content in some secondary data store.
Application logic should not call this method directly. Instead, it should call DerivedPageDataUpdater::getSecondaryDataUpdates().
Title | $title | The title of the page to supply the updates for |
Content | $content | The content to generate data updates for. |
string | $role | The role (slot) in which the content is being used. Which updates are performed should generally not depend on the role the content has, but the DeferrableUpdates themselves may need to know the role, to track to which slot the data refers, and to avoid overwriting data of the same kind from another slot. |
SlotRenderingProvider | $slotOutput | A provider that can be used to gain access to a ParserOutput of $content by calling $slotOutput->getSlotParserOutput( $role, false ). |
Definition at line 1401 of file ContentHandler.php.
Referenced by WikitextContentHandlerTest\testGetSecondaryDataUpdates().
|
final |
Get an appropriate SlotDiffRenderer for this content model.
IContextSource | $context |
Definition at line 616 of file ContentHandler.php.
References $context, $differenceEngine, class, createDifferenceEngine(), getModelID(), getSlotDiffRendererInternal(), and Hooks\run().
|
protected |
Return the SlotDiffRenderer appropriate for this content handler.
IContextSource | $context |
Definition at line 641 of file ContentHandler.php.
References $context, $engine, TextSlotDiffRenderer\ENGINE_EXTERNAL, TextSlotDiffRenderer\ENGINE_PHP, TextSlotDiffRenderer\ENGINE_WIKIDIFF2, and DifferenceEngine\getEngine().
Referenced by getSlotDiffRenderer().
ContentHandler::getSupportedFormats | ( | ) |
Returns a list of serialization formats supported by the serializeContent() and unserializeContent() methods of this ContentHandler.
Definition at line 497 of file ContentHandler.php.
References $mSupportedFormats.
ContentHandler::getUndoContent | ( | $current, | |
$undo, | |||
$undoafter, | |||
$undoIsLatest = false |
|||
) |
Get the Content object that needs to be saved in order to undo all revisions between $undo and $undoafter.
Revisions must belong to the same page, must exist and must not be deleted.
Revision | Content | $current | The current text |
Revision | Content | $undo | The content of the revision to undo |
Revision | Content | $undoafter | Must be from an earlier revision than $undo |
bool | $undoIsLatest | Set true if $undo is from the current revision (since 1.32) |
Definition at line 1101 of file ContentHandler.php.
References $e, checkModelID(), class, and merge3().
ContentHandler::importTransform | ( | $blob, | |
$format = null |
|||
) |
Apply import transformation (per default, returns $blob unchanged).
This gives subclasses an opportunity to transform data blobs on import.
string | $blob | |
string | null | $format |
Definition at line 425 of file ContentHandler.php.
References $blob.
ContentHandler::isParserCacheSupported | ( | ) |
Returns true for content models that support caching using the ParserCache mechanism.
See WikiPage::shouldCheckParserCache().
Reimplemented in WikitextContentHandler.
Definition at line 1188 of file ContentHandler.php.
ContentHandler::isSupportedFormat | ( | $format | ) |
Returns true if $format is a serialization format supported by this ContentHandler, and false otherwise.
Note that if $format is null, this method always returns true, because null means "use the default format".
string | $format | The serialization format to check |
Definition at line 529 of file ContentHandler.php.
Referenced by checkFormat().
|
static |
Convenience function for creating a Content object from a given textual representation.
$text will be deserialized into a Content object of the model specified by $modelId (or, if that is not given, $title->getContentModel()) using the given format.
string | $text | The textual representation, will be unserialized to create the Content object |
Title | null | $title | The title of the page this text belongs to. Required if $modelId is not provided. |
string | null | $modelId | The model to deserialize to. If not provided, $title->getContentModel() is used. |
string | null | $format | The format to use for deserialization. If not given, the model's default format is used. |
MWException | If model ID or format is not supported or if the text can not be unserialized using the format. |
Definition at line 133 of file ContentHandler.php.
References $handler, $title, and getForModelID().
Referenced by PoolWorkArticleView\__construct(), ApiQueryUserContribsTest\addDBDataOnce(), ApiComparePagesTest\addPage(), MediaWiki\Tests\Maintenance\DumpTestCase\addRevision(), MediaWiki\Tests\Maintenance\FetchTextTest\addRevision(), EditPageTest\assertEdit(), Cleanup\cleanupArticle(), WikiPageDbTestBase\createPage(), RevisionDbTestBase\createPage(), PagePropsTest\createPage(), ApiQueryRecentChangesIntegrationTest\doAnonPageEdit(), ApiQueryWatchlistIntegrationTest\doAnonPageEdit(), ApiQueryRecentChangesIntegrationTest\doBotPageEdit(), ApiQueryWatchlistIntegrationTest\doBotPageEdit(), DifferenceEngineTest\doEdits(), ApiQueryRecentChangesIntegrationTest\doMinorPageEdit(), ApiQueryWatchlistIntegrationTest\doMinorPageEdit(), ApiQueryRecentChangesIntegrationTest\doPageEdit(), ApiQueryWatchlistIntegrationTest\doPageEdit(), ApiQueryWatchlistIntegrationTest\doPatrolledPageEdit(), MediaWikiTestCase\editPage(), CategoryMembershipChangeJobTest\editPageText(), ApiEditPage\execute(), MakeTestEdits\execute(), ImportSiteScripts\execute(), ApiParse\execute(), EditCLI\execute(), ApiStashEdit\execute(), ApiQueryRevisionsBase\extractDeprecatedContent(), ApiComparePages\getDiffRevision(), Article\getSubstituteContent(), MediaWikiTestCase\insertPage(), TextSlotDiffRendererTest\makeContent(), PopulateArchiveRevId\makeDummyRevisionRow(), UserTest\makeEdit(), MessageCacheTest\makePage(), RevisionDbTestBase\newTestRevision(), SpecialChangeContentModel\onSubmit(), SpamBlacklistHooks\onUploadVerifyUpload(), DifferenceEngineTest\provideGenerateContentDiffBody(), DifferenceEngineTest\provideGetDiffBody(), LocalFile\recordUpload2(), PageArchiveTestBase\setUp(), ApiQueryRevisionsTest\testContentComesWithContentModelAndFormat(), TextContentTest\testDeletionUpdates(), WikiPageDbTestBase\testDoEditContent(), WikiPageDbTestBase\testDoEditContent_twice(), ApiEditPageTest\testEditSection(), ContentHandlerTest\testGetAutosummary(), ContentHandlerTest\testGetChangeTag(), DifferenceEngineSlotDiffRendererTest\testGetDiff(), UserTest\testGetEditCount(), TextContentTest\testGetParserOutput(), PageArchiveTestBase\testGetPreviousRevision(), WikitextContentTest\testGetSecondaryDataUpdates(), ContentHandlerTest\testMakeContent(), ApiQueryAllPagesTest\testPrefixNormalizationSearchBug(), WikiPageDbTestBase\testPrepareContentForEdit(), RefreshLinksPartitionTest\testRefreshLinks(), DifferenceEngineTest\testSetContent(), DifferenceEngineTest\testSetRevisions(), MediaWiki\EditPage\TextConflictHelper\toEditContent(), and EditPage\toEditContent().
|
abstract |
Creates an empty Content object of the type supported by this ContentHandler.
Reimplemented in TextContentHandler, JsonContentHandler, GadgetDefinitionContentHandler, DummyContentHandlerForTesting, DummyNonTextContentHandler, and RevisionTestModifyableContentHandler.
ContentHandler::makeParserOptions | ( | $context | ) |
Get parser options suitable for rendering and caching the article.
IContextSource | User | string | $context | One of the following:
|
MWException |
Definition at line 1175 of file ContentHandler.php.
References $context, ParserOptions\newCanonical(), and wfDeprecated().
ContentHandler::makeRedirectContent | ( | Title | $destination, |
$text = '' |
|||
) |
Creates a new Content object that acts as a redirect to the given page, or null if redirects are not supported by this content model.
This default implementation always returns null. Subclasses supporting redirects must override this method.
Note that subclasses that override this method to return a Content object should also override supportsRedirects() to return true.
Title | $destination | The page to redirect to. |
string | $text | Text to include in the redirect, if possible. |
Reimplemented in JavaScriptContentHandler, CssContentHandler, and WikitextContentHandler.
Definition at line 456 of file ContentHandler.php.
Attempts to merge differences between three versions.
Returns a new Content object for a clean merge and false for failure or a conflict.
This default implementation always returns false.
Content | $oldContent | The page's previous content. |
Content | $myContent | One of the page's conflicting contents. |
Content | $yourContent | One of the page's conflicting contents. |
Reimplemented in TextContentHandler.
Definition at line 784 of file ContentHandler.php.
Referenced by getUndoContent().
Serializes a Content object of the type supported by this ContentHandler.
Content | $content | The Content object to serialize |
string | null | $format | The desired serialization format |
Reimplemented in WikitextContentHandler, TextContentHandler, DummyContentHandlerForTesting, and DummyNonTextContentHandler.
ContentHandler::supportsCategories | ( | ) |
Returns true if this content model supports categories.
The default implementation returns true.
Definition at line 1211 of file ContentHandler.php.
ContentHandler::supportsDirectApiEditing | ( | ) |
Whether or not this content model supports direct editing via ApiEditPage.
Reimplemented in DummySerializeErrorContentHandler, and DummyNonTextContentHandler.
Definition at line 1242 of file ContentHandler.php.
References supportsDirectEditing().
ContentHandler::supportsDirectEditing | ( | ) |
Return true if this content model supports direct editing, such as via EditPage.
Reimplemented in TextContentHandler.
Definition at line 1233 of file ContentHandler.php.
Referenced by supportsDirectApiEditing(), and WikitextContentHandlerTest\testSupportsDirectEditing().
ContentHandler::supportsRedirects | ( | ) |
Returns true if this content model supports redirects.
This default implementation returns false.
Content models that return true here should also implement ContentHandler::makeRedirectContent to return a Content object.
Reimplemented in WikitextContentHandler, JavaScriptContentHandler, and CssContentHandler.
Definition at line 1224 of file ContentHandler.php.
ContentHandler::supportsSections | ( | ) |
Returns true if this content model supports sections.
This default implementation returns false.
Content models that return true here should also implement Content::getSection, Content::replaceSection, etc. to handle sections..
Reimplemented in WikitextContentHandler.
Definition at line 1201 of file ContentHandler.php.
|
abstract |
Unserializes a Content object of the type supported by this ContentHandler.
string | $blob | Serialized form of the content |
string | null | $format | The format used for serialization |
Reimplemented in TextContentHandler, RevisionTestModifyableContentHandler, DummySerializeErrorContentHandler, DummyContentHandlerForTesting, and DummyNonTextContentHandler.
|
staticprotected |
A Cache of ContentHandler instances by model id.
Definition at line 224 of file ContentHandler.php.
|
protected |
Definition at line 355 of file ContentHandler.php.
Referenced by getModelID().
|
protected |
Definition at line 360 of file ContentHandler.php.
Referenced by getSupportedFormats().