* @author Tim Starling
* @copyright © 2009, Tim Starling, Domas Mituzas
* @copyright © 2010, Max Sem
- * @copyright © 2011, Ashar Voultoiz
+ * @copyright © 2011, Antoine Musso
*/
class BacklinkCache {
* Serialization handler, diasallows to serialize the database to prevent
* failures after this class is deserialized from cache with dead DB
* connection.
+ *
+ * @return array
*/
function __sleep() {
return array( 'partitionCache', 'fullResultCache', 'title' );
return $ta;
}
- /**
- * Get the distant backtemplatelinks for the table globaltemplatelinks. Cached in process memory only.
- * @return ResultWrapper list of distant pages that use the local title
- */
- public function getDistantTemplateLinks( ) {
- global $wgGlobalDatabase, $wgLocalInterwiki;
-
- $dbr = $dbr = wfGetDB( DB_SLAVE, array(), $wgGlobalDatabase );
- $res = $dbr->select(
- array( 'globaltemplatelinks', 'globalinterwiki' ),
- array( 'gtl_from_wiki', 'gtl_from_page', 'gtl_from_title', 'giw_prefix' ),
- array( 'gtl_to_prefix' => $wgLocalInterwiki, 'gtl_to_title' => $this->title->getDBkey( ) ),
- __METHOD__,
- null,
- array( 'gtl_from_wiki = giw_wikiid' )
- );
- return $res;
- }
-
/**
* Get the field name prefix for a given table
* @param $table String
'categorylinks' => 'cl',
'templatelinks' => 'tl',
'redirect' => 'rd',
- 'globaltemplatelinks' => 'gtl',
);
if ( isset( $prefixes[$table] ) ) {
return $prefixes[$table];
} else {
- throw new MWException( "Invalid table \"$table\" in " . __CLASS__ );
+ $prefix = null;
+ wfRunHooks( 'BacklinkCacheGetPrefix', array( $table, &$prefix ) );
+ if( $prefix ) {
+ return $prefix;
+ } else {
+ throw new MWException( "Invalid table \"$table\" in " . __CLASS__ );
+ }
}
}
);
break;
default:
- throw new MWException( "Invalid table \"$table\" in " . __CLASS__ );
+ $conds = null;
+ wfRunHooks( 'BacklinkCacheGetConditions', array( $table, $this->title, &$conds ) );
+ if( !$conds )
+ throw new MWException( "Invalid table \"$table\" in " . __CLASS__ );
}
return $conds;