File: VisualEditorDesktopArticleTargetInitModule.php

package info (click to toggle)
mediawiki 1%3A1.35.13-1%2Bdeb11u2
  • links: PTS, VCS
  • area: main
  • in suites: bullseye
  • size: 274,932 kB
  • sloc: php: 677,563; javascript: 572,709; sql: 11,565; python: 4,447; xml: 3,145; sh: 892; perl: 788; ruby: 496; pascal: 365; makefile: 128
file content (50 lines) | stat: -rw-r--r-- 1,616 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
<?php
/**
 * ResourceLoader module for the 'ext.visualEditor.desktopArticleTarget.init'
 * module. Necessary to incorporate the VisualEditorTabMessages
 * configuration setting.
 *
 * @file
 * @ingroup Extensions
 * @copyright 2011-2020 VisualEditor Team and others; see AUTHORS.txt
 * @license MIT
 */

use MediaWiki\MediaWikiServices;

class VisualEditorDesktopArticleTargetInitModule extends ResourceLoaderFileModule {

	/**
	 * @inheritDoc
	 */
	public function getMessages() {
		$messages = parent::getMessages();
		$services = MediaWikiServices::getInstance();

		$veConfig = $services->getConfigFactory()->makeConfig( 'visualeditor' );
		$messages = array_merge(
			$messages,
			array_filter( $veConfig->get( 'VisualEditorTabMessages' ) )
		);

		// Some skins don't use the default 'edit' and 'create' message keys.
		// Check the localisation cache for which skins have a custom message for this.
		// We only need this for the current skin, but ResourceLoader's message cache
		// does not fragment by skin.
		foreach ( $services->getSkinFactory()->getSkinNames() as $skname => $unused ) {
			foreach ( [ 'edit', 'create' ] as $msgKey ) {
				// Messages: vector-view-edit, vector-view-create
				// Disable database lookups for site-level message overrides as they
				// are expensive and not needed here (T221294). We only care whether the
				// message key is known to localisation cache at all.
				$msg = wfMessage( "$skname-view-$msgKey" )->useDatabase( false )->inContentLanguage();
				if ( $msg->exists() ) {
					$messages[] = "$skname-view-$msgKey";
				}
			}
		}

		return $messages;
	}

}