X-Git-Url: http://git.heureux-cyclage.org/?a=blobdiff_plain;f=includes%2FParserCache.php;h=129b713213017f0a0f1eb06851ed3388a35a4c52;hb=2cdff4cf67b77a3a7bb54c656a05bfe8a529ae3d;hp=712c664cdfdbcae868f05b85454e998a5917ec77;hpb=ff375dd5f78978fb8d5159c25782448b7e198233;p=lhc%2Fweb%2Fwiklou.git diff --git a/includes/ParserCache.php b/includes/ParserCache.php index 712c664cdf..129b713213 100644 --- a/includes/ParserCache.php +++ b/includes/ParserCache.php @@ -1,19 +1,14 @@ mMemc =& $memCached; } function getKey( &$article, &$user ) { - global $wgDBname, $action; + global $action; $hash = $user->getPageRenderingHash(); - if( !$article->mTitle->userCanEdit() ) { + if( !$article->mTitle->quickUserCan( 'edit' ) ) { // section edit links are suppressed even if the user has them on $edit = '!edit=0'; } else { @@ -43,7 +38,7 @@ class ParserCache { } $pageid = intval( $article->getID() ); $renderkey = (int)($action == 'render'); - $key = "$wgDBname:pcache:idhash:$pageid-$renderkey!$hash$edit"; + $key = wfMemcKey( 'pcache', 'idhash', "$pageid-$renderkey!$hash$edit" ); return $key; } @@ -56,8 +51,6 @@ class ParserCache { $fname = 'ParserCache::get'; wfProfileIn( $fname ); - $hash = $user->getPageRenderingHash(); - $pageid = intval( $article->getID() ); $key = $this->getKey( $article, $user ); wfDebug( "Trying parser cache $key\n" ); @@ -97,23 +90,30 @@ class ParserCache { function save( $parserOutput, &$article, &$user ){ global $wgParserCacheExpireTime; $key = $this->getKey( $article, $user ); - $now = wfTimestampNow(); - $parserOutput->setCacheTime( $now ); - // Save the timestamp so that we don't have to load the revision row on view - $parserOutput->mTimestamp = $article->getTimestamp(); - - $parserOutput->mText .= "\n\n"; - wfDebug( "Saved in parser cache with key $key and timestamp $now\n" ); + if( $parserOutput->getCacheTime() != -1 ) { + + $now = wfTimestampNow(); + $parserOutput->setCacheTime( $now ); + + // Save the timestamp so that we don't have to load the revision row on view + $parserOutput->mTimestamp = $article->getTimestamp(); + + $parserOutput->mText .= "\n\n"; + wfDebug( "Saved in parser cache with key $key and timestamp $now\n" ); + + if( $parserOutput->containsOldMagic() ){ + $expire = 3600; # 1 hour + } else { + $expire = $wgParserCacheExpireTime; + } + $this->mMemc->set( $key, $parserOutput, $expire ); - if( $parserOutput->containsOldMagic() ){ - $expire = 3600; # 1 hour } else { - $expire = $wgParserCacheExpireTime; + wfDebug( "Parser output was marked as uncacheable and has not been saved.\n" ); } - $this->mMemc->set( $key, $parserOutput, $expire ); } + } -?>