2 if ( !defined( 'MEDIAWIKI' ) ) die( 1 );
4 global $wgJSAutoloadLocalClasses, $wgMwEmbedDirectory;
6 // Load classes from mv_embed.js
7 if ( is_file( $wgMwEmbedDirectory . 'mv_embed.js' ) ) {
9 //read the head of the file::
10 $f = fopen( $wgMwEmbedDirectory . 'mv_embed.js' , 'r');
14 $file_head.= fread($f, 8192);
15 // Call jsClassPathLoader() for each lcPaths() call in the JS source
16 $replace_test = preg_replace_callback(
17 '/lcPaths\s*\(\s*{(.*)}\s*\)\s*/siU',
21 if( $replace_test !== false )
26 function jsClassPathLoader( $jvar ) {
27 global $wgJSAutoloadLocalClasses, $wgMwEmbedDirectory;
28 if ( !isset( $jvar[1] ) )
30 $jClassSet = json_decode( '{' . $jvar[1] . '}', true );
31 foreach ( $jClassSet as $jClass => $jPath ) {
32 // Strip $ from jClass (as they are stripped on URL request parameter input)
33 $jClass = str_replace( '$', '', $jClass );
34 $wgJSAutoloadLocalClasses[$jClass] = $wgMwEmbedDirectory . $jPath;