* Available filters are:
* - minify-js \see JSMin::minify
* - minify-css \see CSSMin::minify
- * - flip-css \see CSSJanus::transform
*
* If $data is empty, only contains whitespace or the filter was unknown,
* $data is returned unmodified.
// For empty/whitespace-only data or for unknown filters, don't perform
// any caching or processing
if ( trim( $data ) === ''
- || !in_array( $filter, array( 'minify-js', 'minify-css', 'flip-css' ) ) )
+ || !in_array( $filter, array( 'minify-js', 'minify-css' ) ) )
{
wfProfileOut( __METHOD__ );
return $data;
case 'minify-css':
$result = CSSMin::minify( $data );
break;
- case 'flip-css':
- $result = CSSJanus::transform( $data, true, false );
- break;
}
} catch ( Exception $exception ) {
throw new MWException( 'ResourceLoader filter error. ' .
$styles = array();
if ( $context->shouldIncludeStyles() ) {
$styles = $module->getStyles( $context );
- // Flip CSS on a per-module basis
- if ( $styles && $module->getFlip( $context ) ) {
- foreach ( $styles as $media => $style ) {
- $styles[$media] = $this->filter( 'flip-css', $style );
- }
- }
}
// Messages
*/
public function getStyles( ResourceLoaderContext $context ) {
// Merge general styles and skin specific styles, retaining media type collation
- $styles = $this->readStyleFiles( $this->styles );
+ $styles = $this->readStyleFiles( $this->styles, $this->getFlip( $context ) );
$skinStyles = $this->readStyleFiles(
- self::tryForKey( $this->skinStyles, $context->getSkin(), 'default' ) );
+ self::tryForKey( $this->skinStyles, $context->getSkin(), 'default' ),
+ $this->getFlip( $context )
+ );
foreach ( $skinStyles as $media => $style ) {
if ( isset( $styles[$media] ) ) {
* @return Array: List of concatenated and remapped CSS data from $styles,
* keyed by media type
*/
- protected function readStyleFiles( array $styles ) {
+ protected function readStyleFiles( array $styles, $flip ) {
if ( empty( $styles ) ) {
return array();
}
$styles = self::collateFilePathListByOption( $styles, 'media', 'all' );
foreach ( $styles as $media => $files ) {
$styles[$media] = implode(
- "\n", array_map( array( $this, 'readStyleFile' ), array_unique( $files ) )
+ "\n",
+ array_map(
+ array( $this, 'readStyleFile' ),
+ array_unique( $files ),
+ array( $flip )
+ )
);
}
return $styles;
* @param $path String: File path of script file to read
* @return String: CSS data in script file
*/
- protected function readStyleFile( $path ) {
+ protected function readStyleFile( $path, $flip ) {
$localPath = $this->getLocalPath( $path );
$style = file_get_contents( $localPath );
if ( $style === false ) {
throw new MWException( __METHOD__.": style file not found: \"$localPath\"" );
}
+ if ( $flip ) {
+ $style = CSSJanus::transform( $style, true, false );
+ }
$dir = $this->getLocalPath( dirname( $path ) );
$remoteDir = $this->getRemotePath( dirname( $path ) );
// Get and register local file references