summaryrefslogtreecommitdiff
path: root/www/wiki/extensions/Scribunto/includes/common/ScribuntoContentHandler.php
diff options
context:
space:
mode:
Diffstat (limited to 'www/wiki/extensions/Scribunto/includes/common/ScribuntoContentHandler.php')
-rw-r--r--www/wiki/extensions/Scribunto/includes/common/ScribuntoContentHandler.php52
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 );
+ }
+}