Current File : /home/jvzmxxx/wiki1/extensions/Wikibase/repo/includes/Modules/MediaWikiConfigModule.php
<?php

namespace Wikibase\Repo\Modules;

use ResourceLoader;
use ResourceLoaderContext;
use ResourceLoaderModule;
use Xml;

/**
 * Generic, reusable ResourceLoader module to set a JavaScript configuration variable via
 * mediaWiki.config.set.
 *
 * @since 0.5
 *
 * @license GPL-2.0+
 * @author Adrian Heine <adrian.heine@wikimedia.de>
 */
class MediaWikiConfigModule extends ResourceLoaderModule {

	/**
	 * @var callable
	 */
	private $getConfigValueProvider;

	/**
	 * @param array $options ResourceLoader module options. Must include a "getconfigvalueprovider"
	 *  callable that returns a MediaWikiConfigValueProvider when called.
	 */
	public function __construct( array $options ) {
		$this->getConfigValueProvider = $options['getconfigvalueprovider'];
	}

	/**
	 * @see ResourceLoaderModule::getScript
	 *
	 * @param ResourceLoaderContext $context
	 *
	 * @return string JavaScript code
	 */
	public function getScript( ResourceLoaderContext $context ) {
		/** @var MediaWikiConfigValueProvider $configValueProvider */
		$configValueProvider = call_user_func( $this->getConfigValueProvider );

		return Xml::encodeJsCall(
			'mediaWiki.config.set',
			[
				$configValueProvider->getKey(),
				$configValueProvider->getValue()
			],
			ResourceLoader::inDebugMode()
		);
	}

	/**
	 * @return bool Always true.
	 */
	public function enableModuleContentVersion() {
		return true;
	}

}