* Try to load the cache from a local file
*/
function loadFromLocal( $hash ) {
- global $wgLocalMessageCache, $wgDBname;
+ global $wgLocalMessageCache;
$this->mCache = false;
if ( $wgLocalMessageCache === false ) {
return;
}
- $filename = "$wgLocalMessageCache/messages-$wgDBname";
+ $filename = "$wgLocalMessageCache/messages-" . wfWikiID();
wfSuppressWarnings();
$file = fopen( $filename, 'r' );
$localHash = fread( $file, 32 );
if ( $hash == $localHash ) {
// All good, get the rest of it
- $serialized = fread( $file, 1000000 );
+ $serialized = fread( $file, 10000000 );
$this->mCache = unserialize( $serialized );
}
fclose( $file );
* Save the cache to a local file
*/
function saveToLocal( $serialized, $hash ) {
- global $wgLocalMessageCache, $wgDBname;
+ global $wgLocalMessageCache;
if ( $wgLocalMessageCache === false ) {
return;
}
- $filename = "$wgLocalMessageCache/messages-$wgDBname";
+ $filename = "$wgLocalMessageCache/messages-" . wfWikiID();
$oldUmask = umask( 0 );
wfMkdirParents( $wgLocalMessageCache, 0777 );
umask( $oldUmask );
}
function loadFromScript( $hash ) {
- global $wgLocalMessageCache, $wgDBname;
+ global $wgLocalMessageCache;
if ( $wgLocalMessageCache === false ) {
return;
}
- $filename = "$wgLocalMessageCache/messages-$wgDBname";
+ $filename = "$wgLocalMessageCache/messages-" . wfWikiID();
wfSuppressWarnings();
$file = fopen( $filename, 'r' );
if ($hash!=$localHash) {
return;
}
- require("$wgLocalMessageCache/messages-$wgDBname");
+ require("$wgLocalMessageCache/messages-" . wfWikiID());
}
function saveToScript($array, $hash) {
- global $wgLocalMessageCache, $wgDBname;
+ global $wgLocalMessageCache;
if ( $wgLocalMessageCache === false ) {
return;
}
- $filename = "$wgLocalMessageCache/messages-$wgDBname";
+ $filename = "$wgLocalMessageCache/messages-" . wfWikiID();
$oldUmask = umask( 0 );
wfMkdirParents( $wgLocalMessageCache, 0777 );
umask( $oldUmask );
}
function replace( $title, $text ) {
- global $wgLocalMessageCache, $wgLocalMessageCacheSerialized, $parserMemc, $wgDBname;
+ global $wgLocalMessageCache, $wgLocalMessageCacheSerialized, $parserMemc;
$this->lock();
$this->load();
- $parserMemc->delete("$wgDBname:sidebar");
+ $parserMemc->delete(wfMemcKey('sidebar'));
if ( is_array( $this->mCache ) ) {
$this->mCache[$title] = $text;
$this->mMemc->set( $this->mMemcKey, $this->mCache, $this->mExpiry );
wfProfileOut( __METHOD__ );
}
+ /**
+ * Get the extension messages for a specific language
+ *
+ * @param string $lang The messages language, English by default
+ */
+ function getExtensionMessagesFor( $lang = 'en' ) {
+ wfProfileIn( __METHOD__ );
+ $messages = array();
+ foreach( $this->mExtensionMessages as $key => $message ) {
+ if ( isset( $message[$lang] ) ) {
+ $messages[$key] = $message[$lang];
+ } elseif ( isset( $message['en'] ) ) {
+ $messages[$key] = $message['en'];
+ }
+ }
+ wfProfileOut( __METHOD__ );
+ return $messages;
+ }
+
/**
* Clear all stored messages. Mainly used after a mass rebuild.
*/
function clear() {
- global $wgLocalMessageCache, $wgDBname;
+ global $wgLocalMessageCache;
if( $this->mUseCache ) {
# Global cache
$this->mMemc->delete( $this->mMemcKey );