mediawiki-extensions-Visual.../VisualEditorDataModule.php
James D. Forrester 1e0486a679 Remove all Extension:Cite code, now moved there
Depends-on: I39936ed83d5a60471a0a75da753f498e80aef234
Depends-on: Ifd853bf9f901065798bd0063aeaa786a3761aa71
Depends-on: I32c93c5118eafe5f071252290c58d3de8dacc81a
Change-Id: Iba0f25b3ebe4e5e63377da57afb760d6980f9907
2016-02-05 21:36:56 +00:00

101 lines
2.9 KiB
PHP

<?php
/**
* Resource loader module providing extra data from the server to VisualEditor.
*
* @file
* @ingroup Extensions
* @copyright 2011-2016 VisualEditor Team and others; see AUTHORS.txt
* @license The MIT License (MIT); see LICENSE.txt
*/
class VisualEditorDataModule extends ResourceLoaderModule {
/* Protected Members */
protected $origin = self::ORIGIN_USER_SITEWIDE;
protected $targets = array( 'desktop', 'mobile' );
/* Methods */
public function __construct() {
}
public function getScript( ResourceLoaderContext $context ) {
// Messages
$msgInfo = $this->getMessageInfo();
$parsedMessages = array();
$messages = array();
foreach ( $msgInfo['args'] as $msgKey => $msgArgs ) {
$parsedMessages[ $msgKey ] = call_user_func_array( 'wfMessage', $msgArgs )
->inLanguage( $context->getLanguage() )
->parse();
}
foreach ( $msgInfo['vals'] as $msgKey => $msgVal ) {
$messages[ $msgKey ] = $msgVal;
}
return
've.init.platform.addParsedMessages(' . FormatJson::encode(
$parsedMessages,
ResourceLoader::inDebugMode()
) . ');'.
've.init.platform.addMessages(' . FormatJson::encode(
$messages,
ResourceLoader::inDebugMode()
) . ');';
}
protected function getMessageInfo() {
// Messages that just require simple parsing
$msgArgs = array(
'minoredit' => array( 'minoredit' ),
'missingsummary' => array( 'missingsummary' ),
'summary' => array( 'summary' ),
'watchthis' => array( 'watchthis' ),
'visualeditor-browserwarning' => array( 'visualeditor-browserwarning' ),
'visualeditor-wikitext-warning' => array( 'visualeditor-wikitext-warning' ),
);
// Override message value
$msgVals = array(
'visualeditor-feedback-link' => wfMessage( 'visualeditor-feedback-link' )
->inContentLanguage()
->text(),
);
// Copyright warning (based on EditPage::getCopyrightWarning)
$rightsText = $this->config->get( 'RightsText' );
if ( $rightsText ) {
$copywarnMsg = array( 'copyrightwarning',
'[[' . wfMessage( 'copyrightpage' )->inContentLanguage()->text() . ']]',
$rightsText );
} else {
$copywarnMsg = array( 'copyrightwarning2',
'[[' . wfMessage( 'copyrightpage' )->inContentLanguage()->text() . ']]' );
}
// EditPage supports customisation based on title, we can't support that here
// since these messages are cached on a site-level. $wgTitle is likely set to null.
$title = Title::newFromText( 'Dwimmerlaik' );
Hooks::run( 'EditPageCopyrightWarning', array( $title, &$copywarnMsg ) );
// Normalise to 'copyrightwarning' so we have a consistent key in the front-end.
$msgArgs[ 'copyrightwarning' ] = $copywarnMsg;
return array(
'args' => $msgArgs,
'vals' => $msgVals,
);
}
public function enableModuleContentVersion() {
return true;
}
public function getDependencies( ResourceLoaderContext $context = null ) {
return array(
'ext.visualEditor.base',
'ext.visualEditor.mediawiki',
);
}
}