(bug 144) Dan Keshet's category backlinks special-casing patch, with sql escaping...
authorBrion Vibber <brion@users.mediawiki.org>
Fri, 3 Dec 2004 08:12:50 +0000 (08:12 +0000)
committerBrion Vibber <brion@users.mediawiki.org>
Fri, 3 Dec 2004 08:12:50 +0000 (08:12 +0000)
RELEASE-NOTES
includes/SpecialRecentchangeslinked.php

index 5201e4f..ab17213 100644 (file)
@@ -33,6 +33,7 @@ Major changes from 1.3.x:
 * Installer die if it can not write LocalSettings.php (bug #733)
 * Various special pages no more show the rss/atom feed links (bug #705)
 * Support for external authentication plug-ins
+* (bug 114) use category backlinks in Special:Recentchangeslinked
 * ... and more!
 
 === Caveats ===
index 6a86012..9029923 100644 (file)
@@ -65,13 +65,23 @@ function wfSpecialRecentchangeslinked( $par = NULL ) {
                $cmq = 'AND cur_minor_edit=0';
        } else { $cmq = ''; }
 
-       extract( $dbr->tableNames( 'cur', 'links' ) );
-
-       $sql = "SELECT cur_id,cur_namespace,cur_title,cur_user,cur_comment," .
-         "cur_user_text,cur_timestamp,cur_minor_edit,cur_is_new FROM $links, $cur " .
-         "WHERE cur_timestamp > '{$cutoff}' {$cmq} AND l_to=cur_id AND l_from=$id " .
-          "GROUP BY cur_id,cur_namespace,cur_title,cur_user,cur_comment,cur_user_text," .
-         "cur_timestamp,cur_minor_edit,cur_is_new,inverse_timestamp ORDER BY inverse_timestamp LIMIT {$limit}";
+       // If target is a Category, use categorylinks and invert from and to
+       if ( $nt->getNamespace() == NS_CATEGORY ) {
+               extract( $dbr->tableNames( 'cur', 'categorylinks' ) );
+               $catkey = $dbr->addQuotes( $nt->getDBKey() );
+               $sql = "SELECT cur_id,cur_namespace,cur_title,cur_user,cur_comment," .
+                 "cur_user_text,cur_timestamp,cur_minor_edit,cur_is_new FROM $categorylinks, $cur " .
+                 "WHERE cur_timestamp > '{$cutoff}' {$cmq} AND cl_from=cur_id AND cl_to=$catkey " .
+                 "GROUP BY cur_id,cur_namespace,cur_title,cur_user,cur_comment,cur_user_text," .
+                 "cur_timestamp,cur_minor_edit,cur_is_new,inverse_timestamp ORDER BY inverse_timestamp LIMIT {$limit}";
+       } else {
+               extract( $dbr->tableNames( 'cur', 'links' ) );
+               $sql = "SELECT cur_id,cur_namespace,cur_title,cur_user,cur_comment," .
+                 "cur_user_text,cur_timestamp,cur_minor_edit,cur_is_new FROM $links, $cur " .
+                 "WHERE cur_timestamp > '{$cutoff}' {$cmq} AND l_to=cur_id AND l_from=$id " .
+                         "GROUP BY cur_id,cur_namespace,cur_title,cur_user,cur_comment,cur_user_text," .
+                 "cur_timestamp,cur_minor_edit,cur_is_new,inverse_timestamp ORDER BY inverse_timestamp LIMIT {$limit}";
+       }
        $res = $dbr->query( $sql, $fname );
 
        $wgOut->addHTML("&lt; ".$sk->makeKnownLinkObj($nt, "", "redirect=no" )."<br />\n");