diff options
author | Pierre Schmitz <pierre@archlinux.de> | 2013-08-12 09:28:15 +0200 |
---|---|---|
committer | Pierre Schmitz <pierre@archlinux.de> | 2013-08-12 09:28:15 +0200 |
commit | 08aa4418c30cfc18ccc69a0f0f9cb9e17be6c196 (patch) | |
tree | 577a29fb579188d16003a209ce2a2e9c5b0aa2bd /includes/resourceloader/ResourceLoaderModule.php | |
parent | cacc939b34e315b85e2d72997811eb6677996cc1 (diff) |
Update to MediaWiki 1.21.1
Diffstat (limited to 'includes/resourceloader/ResourceLoaderModule.php')
-rw-r--r-- | includes/resourceloader/ResourceLoaderModule.php | 56 |
1 files changed, 41 insertions, 15 deletions
diff --git a/includes/resourceloader/ResourceLoaderModule.php b/includes/resourceloader/ResourceLoaderModule.php index 9c49c45f..03f3cc37 100644 --- a/includes/resourceloader/ResourceLoaderModule.php +++ b/includes/resourceloader/ResourceLoaderModule.php @@ -58,6 +58,7 @@ abstract class ResourceLoaderModule { /* Protected Members */ protected $name = null; + protected $targets = array( 'desktop' ); // In-object cache for file dependencies protected $fileDeps = array(); @@ -77,10 +78,10 @@ abstract class ResourceLoaderModule { } /** - * Set this module's name. This is called by ResourceLodaer::register() + * Set this module's name. This is called by ResourceLoader::register() * when registering the module. Other code should not call this. * - * @param $name String: Name + * @param string $name Name */ public function setName( $name ) { $this->name = $name; @@ -91,17 +92,17 @@ abstract class ResourceLoaderModule { * with ResourceLoader::register() * * @return Int ResourceLoaderModule class constant, the subclass default - * if not set manuall + * if not set manually */ public function getOrigin() { return $this->origin; } /** - * Set this module's origin. This is called by ResourceLodaer::register() + * Set this module's origin. This is called by ResourceLoader::register() * when registering the module. Other code should not call this. * - * @param $origin Int origin + * @param int $origin origin */ public function setOrigin( $origin ) { $this->origin = $origin; @@ -290,10 +291,19 @@ abstract class ResourceLoaderModule { } /** + * Get target(s) for the module, eg ['desktop'] or ['desktop', 'mobile'] + * + * @return array of strings + */ + public function getTargets() { + return $this->targets; + } + + /** * Get the files this module depends on indirectly for a given skin. * Currently these are only image files referenced by the module's CSS. * - * @param $skin String: Skin name + * @param string $skin Skin name * @return Array: List of files */ public function getFileDependencies( $skin ) { @@ -319,8 +329,8 @@ abstract class ResourceLoaderModule { /** * Set preloaded file dependency information. Used so we can load this * information for all modules at once. - * @param $skin String: Skin name - * @param $deps Array: Array of file names + * @param string $skin Skin name + * @param array $deps Array of file names */ public function setFileDependencies( $skin, $deps ) { $this->fileDeps[$skin] = $deps; @@ -329,13 +339,14 @@ abstract class ResourceLoaderModule { /** * Get the last modification timestamp of the message blob for this * module in a given language. - * @param $lang String: Language code + * @param string $lang Language code * @return Integer: UNIX timestamp, or 0 if the module doesn't have messages */ public function getMsgBlobMtime( $lang ) { if ( !isset( $this->msgBlobMtime[$lang] ) ) { - if ( !count( $this->getMessages() ) ) + if ( !count( $this->getMessages() ) ) { return 0; + } $dbr = wfGetDB( DB_SLAVE ); $msgBlobMtime = $dbr->selectField( 'msg_resource', 'mr_timestamp', array( @@ -356,7 +367,7 @@ abstract class ResourceLoaderModule { /** * Set a preloaded message blob last modification timestamp. Used so we * can load this information for all modules at once. - * @param $lang String: Language code + * @param string $lang Language code * @param $mtime Integer: UNIX timestamp or 0 if there is no such blob */ public function setMsgBlobMtime( $lang, $mtime ) { @@ -375,7 +386,7 @@ abstract class ResourceLoaderModule { * NOTE: The mtime of the module's messages is NOT automatically included. * If you want this to happen, you'll need to call getMsgBlobMtime() * yourself and take its result into consideration. - * + * * @param $context ResourceLoaderContext: Context object * @return Integer: UNIX timestamp */ @@ -397,7 +408,6 @@ abstract class ResourceLoaderModule { return false; } - /** @var JSParser lazy-initialized; use self::javaScriptParser() */ private static $jsParser; private static $parseCacheVersion = 1; @@ -426,10 +436,10 @@ abstract class ResourceLoaderModule { try { $parser->parse( $contents, $fileName, 1 ); $result = $contents; - } catch (Exception $e) { + } catch ( Exception $e ) { // We'll save this to cache to avoid having to validate broken JS over and over... $err = $e->getMessage(); - $result = "throw new Error(" . Xml::encodeJsVar("JavaScript parse error: $err") . ");"; + $result = "throw new Error(" . Xml::encodeJsVar( "JavaScript parse error: $err" ) . ");"; } $cache->set( $key, $result ); @@ -449,4 +459,20 @@ abstract class ResourceLoaderModule { return self::$jsParser; } + /** + * Safe version of filemtime(), which doesn't throw a PHP warning if the file doesn't exist + * but returns 1 instead. + * @param string $filename File name + * @return int UNIX timestamp, or 1 if the file doesn't exist + */ + protected static function safeFilemtime( $filename ) { + if ( file_exists( $filename ) ) { + return filemtime( $filename ); + } else { + // We only ever map this function on an array if we're gonna call max() after, + // so return our standard minimum timestamps here. This is 1, not 0, because + // wfTimestamp(0) == NOW + return 1; + } + } } |