From 08aa4418c30cfc18ccc69a0f0f9cb9e17be6c196 Mon Sep 17 00:00:00 2001 From: Pierre Schmitz Date: Mon, 12 Aug 2013 09:28:15 +0200 Subject: Update to MediaWiki 1.21.1 --- includes/content/TextContentHandler.php | 115 ++++++++++++++++++++++++++++++++ 1 file changed, 115 insertions(+) create mode 100644 includes/content/TextContentHandler.php (limited to 'includes/content/TextContentHandler.php') diff --git a/includes/content/TextContentHandler.php b/includes/content/TextContentHandler.php new file mode 100644 index 00000000..e7f41e18 --- /dev/null +++ b/includes/content/TextContentHandler.php @@ -0,0 +1,115 @@ +checkFormat( $format ); + return $content->getNativeData(); + } + + /** + * Attempts to merge differences between three versions. Returns a new + * Content object for a clean merge and false for failure or a conflict. + * + * All three Content objects passed as parameters must have the same + * content model. + * + * This text-based implementation uses wfMerge(). + * + * @param $oldContent Content|string String + * @param $myContent Content|string String + * @param $yourContent Content|string String + * + * @return Content|Bool + */ + public function merge3( Content $oldContent, Content $myContent, Content $yourContent ) { + $this->checkModelID( $oldContent->getModel() ); + $this->checkModelID( $myContent->getModel() ); + $this->checkModelID( $yourContent->getModel() ); + + $format = $this->getDefaultFormat(); + + $old = $this->serializeContent( $oldContent, $format ); + $mine = $this->serializeContent( $myContent, $format ); + $yours = $this->serializeContent( $yourContent, $format ); + + $ok = wfMerge( $old, $mine, $yours, $result ); + + if ( !$ok ) { + return false; + } + + if ( !$result ) { + return $this->makeEmptyContent(); + } + + $mergedContent = $this->unserializeContent( $result, $format ); + return $mergedContent; + } + + /** + * Unserializes a Content object of the type supported by this ContentHandler. + * + * @since 1.21 + * + * @param $text string serialized form of the content + * @param $format null|String the format used for serialization + * + * @return Content the TextContent object wrapping $text + */ + public function unserializeContent( $text, $format = null ) { + $this->checkFormat( $format ); + + return new TextContent( $text ); + } + + /** + * Creates an empty TextContent object. + * + * @since 1.21 + * + * @return Content + */ + public function makeEmptyContent() { + return new TextContent( '' ); + } +} -- cgit v1.2.3-54-g00ecf