getHash(); if ( isset( $this->modifiedTime[$hash] ) ) { return $this->modifiedTime[$hash]; } global $wgUser; if ( $context->getUser() === $wgUser->getName() ) { return $this->modifiedTime[$hash] = $wgUser->getTouched(); } else { return 1; } } /** * Fetch the context's user options, or if it doesn't match current user, * the default options. * * @param $context ResourceLoaderContext: Context object * @return Array: List of user options keyed by option name */ protected function contextUserOptions( ResourceLoaderContext $context ) { global $wgUser; // Verify identity -- this is a private module if ( $context->getUser() === $wgUser->getName() ) { return $wgUser->getOptions(); } else { return User::getDefaultOptions(); } } public function getScript( ResourceLoaderContext $context ) { return Xml::encodeJsCall( 'mediaWiki.user.options.set', array( $this->contextUserOptions( $context ) ) ); } public function getStyles( ResourceLoaderContext $context ) { global $wgAllowUserCssPrefs; if ( $wgAllowUserCssPrefs ) { $options = $this->contextUserOptions( $context ); // Build CSS rules $rules = array(); if ( $options['underline'] < 2 ) { $rules[] = "a { text-decoration: " . ( $options['underline'] ? 'underline' : 'none' ) . "; }"; } if ( $options['highlightbroken'] ) { $rules[] = "a.new, #quickbar a.new { color: #ba0000; }\n"; } else { $rules[] = "a.new, #quickbar a.new, a.stub, #quickbar a.stub { color: inherit; }"; $rules[] = "a.new:after, #quickbar a.new:after { content: '?'; color: #ba0000; }"; $rules[] = "a.stub:after, #quickbar a.stub:after { content: '!'; color: #772233; }"; } if ( $options['justify'] ) { $rules[] = "#article, #bodyContent, #mw_content { text-align: justify; }\n"; } if ( !$options['showtoc'] ) { $rules[] = "#toc { display: none; }\n"; } if ( !$options['editsection'] ) { $rules[] = ".editsection { display: none; }\n"; } if ( $options['editfont'] !== 'default' ) { $rules[] = "textarea { font-family: {$options['editfont']}; }\n"; } $style = implode( "\n", $rules ); if ( $this->getFlip( $context ) ) { $style = CSSJanus::transform( $style, true, false ); } return array( 'all' => $style ); } return array(); } public function getFlip( $context ) { global $wgContLang; return $wgContLang->getDir() !== $context->getDirection(); } public function getGroup() { return 'private'; } }