Isarra has uploaded a new change for review. https://gerrit.wikimedia.org/r/213014
Change subject: Convert extension registration to use skin.json ...................................................................... Convert extension registration to use skin.json Change-Id: I601b7c83bf78a9934ce59271ddcdb9a2f050cdc5 --- D BlueSky.i18n.php M BlueSky.php A skin.json 3 files changed, 196 insertions(+), 228 deletions(-) git pull ssh://gerrit.wikimedia.org:29418/mediawiki/skins/BlueSky refs/changes/14/213014/1 diff --git a/BlueSky.i18n.php b/BlueSky.i18n.php deleted file mode 100644 index 42233bf..0000000 --- a/BlueSky.i18n.php +++ /dev/null @@ -1,35 +0,0 @@ -<?php -/** - * This is a backwards-compatibility shim, generated by: - * https://git.wikimedia.org/blob/mediawiki%2Fcore.git/HEAD/maintenance%2FgenerateJsonI18n.php - * - * Beginning with MediaWiki 1.23, translation strings are stored in json files, - * and the EXTENSION.i18n.php file only exists to provide compatibility with - * older releases of MediaWiki. For more information about this migration, see: - * https://www.mediawiki.org/wiki/Requests_for_comment/Localisation_format - * - * This shim maintains compatibility back to MediaWiki 1.17. - */ -$messages = array(); -if ( !function_exists( 'wfJsonI18nShimb1f505ade9a49d1b' ) ) { - function wfJsonI18nShimb1f505ade9a49d1b( $cache, $code, &$cachedData ) { - $codeSequence = array_merge( array( $code ), $cachedData['fallbackSequence'] ); - foreach ( $codeSequence as $csCode ) { - $fileName = dirname( __FILE__ ) . "/skins/BlueSky/i18n/$csCode.json"; - if ( is_readable( $fileName ) ) { - $data = FormatJson::decode( file_get_contents( $fileName ), true ); - foreach ( array_keys( $data ) as $key ) { - if ( $key === '' || $key[0] === '@' ) { - unset( $data[$key] ); - } - } - $cachedData['messages'] = array_merge( $data, $cachedData['messages'] ); - } - - $cachedData['deps'][] = new FileDependency( $fileName ); - } - return true; - } - - $GLOBALS['wgHooks']['LocalisationCacheRecache'][] = 'wfJsonI18nShimb1f505ade9a49d1b'; -} diff --git a/BlueSky.php b/BlueSky.php old mode 100644 new mode 100755 index 4acc5fc..425c964 --- a/BlueSky.php +++ b/BlueSky.php @@ -14,201 +14,22 @@ * To install place the BlueSky folder (the folder containing this file!) into * skins/ and add this line to your wiki's LocalSettings.php: * require_once("$IP/skins/BlueSky/BlueSky.php"); + * + * Soup has been moved to the skin.json. All comments have been removed because json is dumb. */ -if ( !defined( 'MEDIAWIKI' ) ) { - die( 'This is not a valid entry point to MediaWiki.' ); +if ( function_exists( 'wfLoadSkin' ) ) { + wfLoadSkin( 'BlueSky' ); + // Keep i18n globals so mergeMessageFileList.php doesn't break + $wgMessagesDirs['BlueSky'] = __DIR__ . '/i18n'; + $wgExtensionMessagesFiles['BlueSky'] = __DIR__ . '/BlueSky.alias.php'; + wfWarn( + 'Deprecated PHP entry point used for BlueSky skin. Please use wfLoadSkin instead, ' . + 'see https://www.mediawiki.org/wiki/Extension_registration for more details.' + ); + return; +} else { + die( 'This version of the BlueSky skin requires MediaWiki 1.25+' ); } -// Skin credits that will show up on Special:Version -$wgExtensionCredits['skin'][] = array( - 'path' => __FILE__, - 'name' => 'BlueSky', - 'version' => '1.0', - 'author' => array( 'wikiHow', 'Jack Phoenix' ), - // @todo To be moved into the i18n file eventually once i18n is stable enough. - // No need to cause translators unnecessary extra work before I finalize - // the description. (Suggestions for a better desc? Let me know!) - 'description' => 'Skin based on the current version (late 2013-) of wikiHow\'s skin', - 'url' => 'https://www.mediawiki.org/wiki/Skin:BlueSky', -); - -// The first instance must be strtolower()ed so that useskin=bluesky works and -// so that it does *not* force an initial capital (i.e. we do NOT want -// useskin=Bluesky) and the second instance is used to determine the name of -// *this* file. -$wgValidSkinNames['bluesky'] = 'BlueSky'; - -// Autoload the skin class, make it a valid skin, set up i18n, set up CSS & JS -// (via ResourceLoader) -$wgAutoloadClasses['SkinBlueSky'] = __DIR__ . '/BlueSky.skin.php'; -$wgAutoloadClasses['SkinBlueSkyHooks'] = __DIR__ . '/BlueSky.hooks.php'; -$wgExtensionMessagesFiles['SkinBlueSky'] = __DIR__ . '/BlueSky.i18n.php'; -$wgMessagesDirs['SkinBlueSky'] = __DIR__ . '/i18n'; - -// Main CSS ResourceLoader module -$wgResourceModules['skins.bluesky'] = array( - 'styles' => array( - // MonoBook also loads these - #'skins/common/commonElements.css' => array( 'media' => 'screen' ), - #'skins/common/commonContent.css' => array( 'media' => 'screen' ), - 'skins/common/commonInterface.css' => array( 'media' => 'screen' ), - // Styles custom to this skin - 'skins/BlueSky/resources/css/nonarticle.css' => array( 'media' => 'screen' ), - 'skins/BlueSky/resources/css/searchresults.css' => array( 'media' => 'screen' ), - 'skins/BlueSky/resources/css/special.css' => array( 'media' => 'screen' ), - 'skins/BlueSky/resources/css/printable.css' => array( 'media' => 'print' ), - #'skins/BlueSky/resources/css/iphone.css' => array( 'media' => 'only screen and (max-device-width: 480px)' ), - ), - 'position' => 'top' -); - -// zzz prefix is a hack to ensure that this module is loaded after the main -// skins.bluesky module -$wgResourceModules['zzzskins.bluesky.mainpage'] = array( - 'styles' => array( - 'skins/BlueSky/resources/css/home.css' => array( 'media' => 'screen' ), - ), - 'position' => 'top' -); - -$wgResourceModules['skins.bluesky.externallinks.123'] = array( - 'styles' => array( - 'skins/BlueSky/resources/css/externallinks-123.css' => array( 'media' => 'screen' ), - ), - 'position' => 'top' -); - -$wgResourceModules['skins.bluesky.externallinks.124'] = array( - 'styles' => array( - 'skins/BlueSky/resources/css/externallinks-124.css' => array( 'media' => 'screen' ), - ), - 'position' => 'top' -); - -// LESS versions of things that used to be PHP-side core hacks -$wgResourceModules['skins.bluesky.hacks.general'] = array( - 'styles' => 'skins/BlueSky/resources/css/hacks/general.less', - 'position' => 'top' -); - -// Action-specific LESS hacks -$wgResourceModules['skins.bluesky.hacks.action.delete'] = array( - 'styles' => 'skins/BlueSky/resources/css/hacks/mediawiki.action.delete.less', - 'position' => 'top' -); - -$wgResourceModules['skins.bluesky.hacks.action.edit'] = array( - 'styles' => 'skins/BlueSky/resources/css/hacks/mediawiki.action.edit.less', - 'position' => 'top' -); - -$wgResourceModules['skins.bluesky.hacks.action.history'] = array( - 'styles' => 'skins/BlueSky/resources/css/hacks/mediawiki.action.history.less', - 'position' => 'top' -); - -$wgResourceModules['skins.bluesky.hacks.action.protect'] = array( - 'styles' => 'skins/BlueSky/resources/css/hacks/mediawiki.action.protect.less', - 'position' => 'top' -); - -// Namespace-specific LESS hacks -$wgResourceModules['skins.bluesky.hacks.filepage'] = array( - 'styles' => 'skins/BlueSky/resources/css/hacks/mediawiki.filepage.less', - 'position' => 'top' -); - -// (Special) page-specific LESS hacks -$wgResourceModules['skins.bluesky.hacks.special.log'] = array( - 'styles' => 'skins/BlueSky/resources/css/hacks/mediawiki.special.log.less', - 'position' => 'top' -); - -$wgResourceModules['skins.bluesky.hacks.special.movepage'] = array( - 'styles' => 'skins/BlueSky/resources/css/hacks/mediawiki.special.movepage.less', - 'position' => 'top' -); - -$wgResourceModules['skins.bluesky.hacks.special.recentchanges'] = array( - 'styles' => 'skins/BlueSky/resources/css/hacks/mediawiki.special.recentchanges.less', - 'position' => 'top' -); - -$wgResourceModules['skins.bluesky.hacks.special.undelete'] = array( - 'styles' => 'skins/BlueSky/resources/css/hacks/mediawiki.special.undelete.less', - 'position' => 'top' -); - -$wgResourceModules['skins.bluesky.hacks.special.watchlist'] = array( - 'styles' => 'skins/BlueSky/resources/css/hacks/mediawiki.special.watchlist.less', - 'position' => 'top' -); - -// Themes -// The 'themeloader.' prefix is a hack around https://bugzilla.wikimedia.org/show_bug.cgi?id=66508 -$wgResourceModules['themeloader.skins.bluesky.blue'] = array( - 'styles' => array( - 'skins/BlueSky/resources/css/theme/blue.less' => array( 'media' => 'screen' ) - ), - 'position' => 'top' -); - -$wgResourceModules['themeloader.skins.bluesky.green'] = array( - 'styles' => array( - 'skins/BlueSky/resources/css/theme/green.less' => array( 'media' => 'screen' ) - ), - 'position' => 'top' -); - -$wgResourceModules['themeloader.skins.bluesky.grey'] = array( - 'styles' => array( - 'skins/BlueSky/resources/css/theme/grey.less' => array( 'media' => 'screen' ) - ), - 'position' => 'top' -); - -$wgResourceModules['themeloader.skins.bluesky.red'] = array( - 'styles' => array( - 'skins/BlueSky/resources/css/theme/red.less' => array( 'media' => 'screen' ) - ), - 'position' => 'top' -); - -$wgResourceModules['themeloader.skins.bluesky.white'] = array( - 'styles' => array( - 'skins/BlueSky/resources/css/theme/white.less' => array( 'media' => 'screen' ) - ), - 'position' => 'top' -); - -$wgResourceModules['skins.bluesky.js.easing'] = array( - 'scripts' => 'skins/BlueSky/resources/js/jquery.easing.js', - 'position' => 'top' -); - -// Main JS module for this skin -$wgResourceModules['skins.bluesky.js'] = array( - 'scripts' => array( - // not ready yet - #'skins/BlueSky/resources/js/social.js', - 'skins/BlueSky/resources/js/bluesky.js', - ), - 'messages' => array( - 'navlist_collapse', 'navlist_expand', - 'userlogin-yourname-ph', 'userlogin-yourpassword-ph', - 'bluesky-js-no-thanks' - ), - 'dependencies' => array( - 'jquery.client', - 'skins.bluesky.js.easing', - // for the e-mail to a friend stuff (well, at least as long as it's - // there...) - 'jquery.ui.dialog' - ) -); - $blueSkyTOC = ''; - -$wgHooks['OutputPageParserOutput'][] = 'SkinBlueSkyHooks::wfTOCCrap'; -$wgHooks['BeforePageDisplay'][] = 'SkinBlueSkyHooks::onBeforePageDisplayCrap'; diff --git a/skin.json b/skin.json new file mode 100644 index 0000000..9987f9c --- /dev/null +++ b/skin.json @@ -0,0 +1,182 @@ +{ + "name": "BlueSky", + "version": "1.0", + "author": [ + "wikiHow", + "Jack Phoenix" + ], + "url": "https://www.mediawiki.org/wiki/Skin:BlueSky", + "description": "Skin based on the current version (late 2013-) of wikiHow's skin", + "type": "skin", + "ValidSkinNames": { + "bluesky": "BlueSky" + }, + "MessagesDirs": { + "SkinBlueSky": [ + "i18n" + ] + }, + "AutoloadClasses": { + "SkinBlueSky": "BlueSky.skin.php", + "SkinBlueSkyHooks": "BlueSky.hooks.php" + }, + "ResourceModules": { + "skins.bluesky": { + "styles": { + "skins/common/commonInterface.css": { + "media": "screen" + }, + "skins/BlueSky/resources/css/nonarticle.css": { + "media": "screen" + }, + "skins/BlueSky/resources/css/searchresults.css": { + "media": "screen" + }, + "skins/BlueSky/resources/css/special.css": { + "media": "screen" + }, + "skins/BlueSky/resources/css/printable.css": { + "media": "print" + } + }, + "position": "top" + }, + "zzzskins.bluesky.mainpage": { + "styles": { + "skins/BlueSky/resources/css/home.css": { + "media": "screen" + } + }, + "position": "top" + }, + "skins.bluesky.externallinks.123": { + "styles": { + "skins/BlueSky/resources/css/externallinks-123.css": { + "media": "screen" + } + }, + "position": "top" + }, + "skins.bluesky.externallinks.124": { + "styles": { + "skins/BlueSky/resources/css/externallinks-124.css": { + "media": "screen" + } + }, + "position": "top" + }, + "skins.bluesky.hacks.general": { + "styles": "skins/BlueSky/resources/css/hacks/general.less", + "position": "top" + }, + "skins.bluesky.hacks.action.delete": { + "styles": "skins/BlueSky/resources/css/hacks/mediawiki.action.delete.less", + "position": "top" + }, + "skins.bluesky.hacks.action.edit": { + "styles": "skins/BlueSky/resources/css/hacks/mediawiki.action.edit.less", + "position": "top" + }, + "skins.bluesky.hacks.action.history": { + "styles": "skins/BlueSky/resources/css/hacks/mediawiki.action.history.less", + "position": "top" + }, + "skins.bluesky.hacks.action.protect": { + "styles": "skins/BlueSky/resources/css/hacks/mediawiki.action.protect.less", + "position": "top" + }, + "skins.bluesky.hacks.filepage": { + "styles": "skins/BlueSky/resources/css/hacks/mediawiki.filepage.less", + "position": "top" + }, + "skins.bluesky.hacks.special.log": { + "styles": "skins/BlueSky/resources/css/hacks/mediawiki.special.log.less", + "position": "top" + }, + "skins.bluesky.hacks.special.movepage": { + "styles": "skins/BlueSky/resources/css/hacks/mediawiki.special.movepage.less", + "position": "top" + }, + "skins.bluesky.hacks.special.recentchanges": { + "styles": "skins/BlueSky/resources/css/hacks/mediawiki.special.recentchanges.less", + "position": "top" + }, + "skins.bluesky.hacks.special.undelete": { + "styles": "skins/BlueSky/resources/css/hacks/mediawiki.special.undelete.less", + "position": "top" + }, + "skins.bluesky.hacks.special.watchlist": { + "styles": "skins/BlueSky/resources/css/hacks/mediawiki.special.watchlist.less", + "position": "top" + }, + "themeloader.skins.bluesky.blue": { + "styles": { + "skins/BlueSky/resources/css/theme/blue.less": { + "media": "screen" + } + }, + "position": "top" + }, + "themeloader.skins.bluesky.green": { + "styles": { + "skins/BlueSky/resources/css/theme/green.less": { + "media": "screen" + } + }, + "position": "top" + }, + "themeloader.skins.bluesky.grey": { + "styles": { + "skins/BlueSky/resources/css/theme/grey.less": { + "media": "screen" + } + }, + "position": "top" + }, + "themeloader.skins.bluesky.red": { + "styles": { + "skins/BlueSky/resources/css/theme/red.less": { + "media": "screen" + } + }, + "position": "top" + }, + "themeloader.skins.bluesky.white": { + "styles": { + "skins/BlueSky/resources/css/theme/white.less": { + "media": "screen" + } + }, + "position": "top" + }, + "skins.bluesky.js.easing": { + "scripts": "skins/BlueSky/resources/js/jquery.easing.js", + "position": "top" + }, + "skins.bluesky.js": { + "scripts": [ + "skins/BlueSky/resources/js/bluesky.js" + ], + "messages": [ + "navlist_collapse", + "navlist_expand", + "userlogin-yourname-ph", + "userlogin-yourpassword-ph", + "bluesky-js-no-thanks" + ], + "dependencies": [ + "jquery.client", + "skins.bluesky.js.easing", + "jquery.ui.dialog" + ] + } + }, + "Hooks": { + "OutputPageParserOutput": [ + "SkinBlueSkyHooks::wfTOCCrap" + ], + "BeforePageDisplay": [ + "SkinBlueSkyHooks::onBeforePageDisplayCrap" + ] + } +} -- To view, visit https://gerrit.wikimedia.org/r/213014 To unsubscribe, visit https://gerrit.wikimedia.org/r/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I601b7c83bf78a9934ce59271ddcdb9a2f050cdc5 Gerrit-PatchSet: 1 Gerrit-Project: mediawiki/skins/BlueSky Gerrit-Branch: master Gerrit-Owner: Isarra <[email protected]> _______________________________________________ MediaWiki-commits mailing list [email protected] https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits
