Commit RELEASE-NOTES line for the wgCategories js variable I added some time ago.
[lhc/web/wiklou.git] / js2 / mwEmbed / php / jsAutoloadLocalClasses.php
1 <?php
2 if ( !defined( 'MEDIAWIKI' ) ) die( 1 );
3
4 global $wgJSAutoloadLocalClasses, $wgMwEmbedDirectory;
5
6 // Load classes from mv_embed.js
7 if ( is_file( $wgMwEmbedDirectory . 'mv_embed.js' ) ) {
8
9 //read the head of the file::
10 $f = fopen( $wgMwEmbedDirectory . 'mv_embed.js' , 'r');
11 $jsvar = '';
12 $file_head='';
13 while (!feof($f)) {
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',
18 'jsClassPathLoader',
19 $file_head
20 );
21 if( $replace_test !== false )
22 break;
23 }
24 fclose( $f );
25 }
26 function jsClassPathLoader( $jvar ) {
27 global $wgJSAutoloadLocalClasses, $wgMwEmbedDirectory;
28 if ( !isset( $jvar[1] ) )
29 return false;
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;
35 }
36 }