addOption( 'target', 'Which target to use ("demo" or "test"). Default: false', false, true ); $this->addOption( 'indent', 'Indentation prefix to use (number of tabs or a string)', false, true ); $this->addOption( 've-path', 'Override path to "/modules/". Default by --target', false, true ); $this->addOption( 'section', 'head, body or both', false, true ); } public function execute() { global $wgResourceModules, $wgHtml5, $wgWellFormedXml; $wgHtml5 = true; $wgWellFormedXml = false; $section = $this->getOption( 'section', 'both' ); $target = $this->getOption( 'target', 'demo' ); $indent = $this->getOption( 'indent', 2 ); if ( is_numeric( $indent ) ) { $indent = str_repeat( "\t", $indent ); } // Path to /modules/ $vePath = $this->getOption( 've-path', $target === 'demo' // From /demos/ve/index.php ? '../../modules/' // From /modules/ve/test/index.html : '../../' ); $wgResourceModules['Dependencies'] = array( 'scripts' => array( 'jquery/jquery.js', 'rangy/rangy-core.js', 'rangy/rangy-position.js', 'unicodejs/unicodejs.js', 'unicodejs/unicodejs.textstring.js', 'unicodejs/unicodejs.wordbreak.groups.js', 'unicodejs/unicodejs.wordbreak.js', ), ); $wgResourceModules['Standalone Init'] = array( 'styles' => array( 've/init/sa/styles/ve.init.sa.css', ), 'scripts' => array( 've/init/sa/ve.init.sa.js', 've/init/sa/ve.init.sa.Platform.js', 've/init/sa/ve.init.sa.Target.js', ), 'headAdd' => ' ', 'bodyAdd' => '' ); $self = isset( $_SERVER['PHP_SELF'] ) ? $_SERVER['PHP_SELF'] : ( lcfirst( __CLASS__ ) . '.php' ); $head = $body = ""; $modules = array( 'Dependencies', 'ext.visualEditor.base', 'Standalone Init', 'ext.visualEditor.core', ); foreach ( $modules as $module ) { if ( !isset( $wgResourceModules[$module] ) ) { echo "\nError: File group $module\n not found!\n"; exit( 1 ); } $registry = $wgResourceModules[$module]; $headAdd = $bodyAdd = ''; if ( isset( $registry['styles'] ) && $target !== 'test' ){ foreach ($registry['styles'] as $style) { $headAdd .= $indent . Html::element( 'link', array( 'rel' => 'stylesheet', 'href' => "$vePath$style" ) ) . "\n"; } } if ( isset( $registry['scripts'] ) ) { foreach ($registry['scripts'] as $script) { $bodyAdd .= $indent . Html::element( 'script', array( 'src' => "$vePath$script" ) ) . "\n"; } } if ( isset( $registry['debugScripts'] ) ) { foreach ($registry['debugScripts'] as $script) { $bodyAdd .= $indent . Html::element( 'script', array( 'src' => "$vePath$script" ) ) . "\n"; } } if ( isset( $registry['headAdd'] ) ) { $headAdd .= $indent . implode( "\n$indent", explode( "\n", $registry['headAdd'] ) ) . "\n"; } if ( isset( $registry['bodyAdd'] ) ) { $bodyAdd .= $indent . implode( "\n$indent", explode( "\n", $registry['bodyAdd'] ) ) . "\n"; } if ( $headAdd ) { $head .= "$indent\n$headAdd"; } if ( $bodyAdd ) { $body .= "$indent\n$bodyAdd"; } } if ( $head ) { if ( $section === 'both' ) { echo "\n\n$indent\n$head\n\n"; } elseif ( $section === 'head' ) { echo $head; } } if ( $body ) { if ( $section === 'both' ) { echo "\n\n$indent\n$body\n\n\n"; } elseif ( $section === 'body' ) { echo $body; } } } } $maintClass = 'MakeStaticLoader'; require_once( RUN_MAINTENANCE_IF_MAIN );