diff options
Diffstat (limited to 'www/wiki/extensions/Cite/CiteDataModule.php')
-rw-r--r-- | www/wiki/extensions/Cite/CiteDataModule.php | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/www/wiki/extensions/Cite/CiteDataModule.php b/www/wiki/extensions/Cite/CiteDataModule.php new file mode 100644 index 00000000..2aa0ce4e --- /dev/null +++ b/www/wiki/extensions/Cite/CiteDataModule.php @@ -0,0 +1,63 @@ +<?php +/** + * Resource loader module providing extra data from the server to Cite. + * + * Temporary hack for T93800 + * + * @file + * @ingroup Extensions + * @copyright 2011-2016 Cite VisualEditor Team and others; see AUTHORS.txt + * @license The MIT License (MIT); see MIT-LICENSE.txt + */ + +class CiteDataModule extends ResourceLoaderModule { + + /* Protected Members */ + + protected $origin = self::ORIGIN_USER_SITEWIDE; + protected $targets = array( 'desktop', 'mobile' ); + + /* Methods */ + + public function getScript( ResourceLoaderContext $context ) { + $citationDefinition = json_decode( + $context->msg( 'visualeditor-cite-tool-definition.json' ) + ->inContentLanguage() + ->plain() + ); + + $citationTools = array(); + if ( is_array( $citationDefinition ) ) { + foreach ( $citationDefinition as $tool ) { + if ( !isset( $tool->title ) ) { + $tool->title = $context->msg( 'visualeditor-cite-tool-name-' . $tool->name ) + ->text(); + } + $citationTools[] = $tool; + } + } + + return + 've.init.platform.addMessages(' . FormatJson::encode( + array( + 'visualeditor-cite-tool-definition.json' => json_encode( $citationTools ) + ), + ResourceLoader::inDebugMode() + ) . ');'; + } + + public function getDependencies( ResourceLoaderContext $context = null ) { + return array( + 'ext.visualEditor.base', + 'ext.visualEditor.mediawiki', + ); + } + + public function getDefinitionSummary( ResourceLoaderContext $context ) { + $summary = parent::getDefinitionSummary( $context ); + $summary[] = array( + 'script' => $this->getScript( $context ), + ); + return $summary; + } +} |