diff options
Diffstat (limited to 'www/wiki/extensions/Scribunto/includes/common/ScribuntoContentHandler.php')
-rw-r--r-- | www/wiki/extensions/Scribunto/includes/common/ScribuntoContentHandler.php | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/www/wiki/extensions/Scribunto/includes/common/ScribuntoContentHandler.php b/www/wiki/extensions/Scribunto/includes/common/ScribuntoContentHandler.php new file mode 100644 index 00000000..ad2c1baa --- /dev/null +++ b/www/wiki/extensions/Scribunto/includes/common/ScribuntoContentHandler.php @@ -0,0 +1,52 @@ +<?php +/** + * Scribunto Content Handler + * + * @file + * @ingroup Extensions + * @ingroup Scribunto + * + * @author Brad Jorsch <bjorsch@wikimedia.org> + */ + +class ScribuntoContentHandler extends CodeContentHandler { + + /** + * @param string $modelId + * @param string[] $formats + */ + public function __construct( + $modelId = CONTENT_MODEL_SCRIBUNTO, $formats = [ CONTENT_FORMAT_TEXT ] + ) { + parent::__construct( $modelId, $formats ); + } + + protected function getContentClass() { + return 'ScribuntoContent'; + } + + /** + * @param string $format + * @return bool + */ + public function isSupportedFormat( $format ) { + // An error in an earlier version of Scribunto means we might see this. + if ( $format === 'CONTENT_FORMAT_TEXT' ) { + $format = CONTENT_FORMAT_TEXT; + } + return parent::isSupportedFormat( $format ); + } + + /** + * Only allow this content handler to be used in the Module namespace + * @param Title $title + * @return bool + */ + public function canBeUsedOn( Title $title ) { + if ( $title->getNamespace() !== NS_MODULE ) { + return false; + } + + return parent::canBeUsedOn( $title ); + } +} |