Small todo note about ApiMain
[lhc/web/wiklou.git] / includes / BacklinkCache.php
index 993052d..d17104f 100644 (file)
@@ -22,7 +22,7 @@
  * @author Tim Starling
  * @copyright © 2009, Tim Starling, Domas Mituzas
  * @copyright © 2010, Max Sem
- * @copyright © 2011, Ashar Voultoiz
+ * @copyright © 2011, Antoine Musso
  */
 class BacklinkCache {
 
@@ -75,6 +75,8 @@ 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' );
@@ -174,25 +176,6 @@ class BacklinkCache {
                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
@@ -204,13 +187,18 @@ class BacklinkCache {
                        '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__ );
+                       }
                }
        }
 
@@ -257,7 +245,10 @@ class BacklinkCache {
                                );
                                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;