From: Brian Wolff Date: Thu, 3 Jul 2014 02:34:00 +0000 (-0300) Subject: Do not include file redirects in Special:Wantedfiles X-Git-Tag: 1.31.0-rc.0~15077^2 X-Git-Url: http://git.cyclocoop.org/%22%20.%20generer_url_ecrire%28%22suivi_revisions%22%2C%22id_auteur=%24connecte%22%29%20.%20%22?a=commitdiff_plain;h=ce6e0e234854771674ec676c5313b6298646cd0e;p=lhc%2Fweb%2Fwiklou.git Do not include file redirects in Special:Wantedfiles If you look at [[Special:WantedFiles]] on commons, its full of file redirects, making the page kind of useless. This makes the query much more complex, but at least the page will be useful. The page will still be useless on non-commons projects due to foreign files being listed as missing. Change-Id: I115fdaa3b67bee81ba0a715ebb427bb35cf0f67e --- diff --git a/includes/specials/SpecialWantedfiles.php b/includes/specials/SpecialWantedfiles.php index fa68504b2a..7d439fa44b 100644 --- a/includes/specials/SpecialWantedfiles.php +++ b/includes/specials/SpecialWantedfiles.php @@ -74,17 +74,39 @@ class WantedFilesPage extends WantedQueryPage { function getQueryInfo() { return array( - 'tables' => array( 'imagelinks', 'image' ), + 'tables' => array( + 'imagelinks', + 'page', + 'redirect', + 'img1' => 'image', + 'img2' => 'image', + ), 'fields' => array( 'namespace' => NS_FILE, 'title' => 'il_to', 'value' => 'COUNT(*)' ), - 'conds' => array( 'img_name IS NULL' ), + 'conds' => array( + 'img1.img_name' => null, + // We also need to exclude file redirects + 'img2.img_name' => null, + ), 'options' => array( 'GROUP BY' => 'il_to' ), - 'join_conds' => array( 'image' => - array( 'LEFT JOIN', - array( 'il_to = img_name' ) + 'join_conds' => array( + 'img1' => array( 'LEFT JOIN', + 'il_to = img1.img_name' + ), + 'page' => array( 'LEFT JOIN', array( + 'il_to = page_title', + 'page_namespace' => NS_FILE, + ) ), + 'redirect' => array( 'LEFT JOIN', array( + 'page_id = rd_from', + 'rd_namespace' => NS_FILE, + 'rd_interwiki' => '' + ) ), + 'img2' => array( 'LEFT JOIN', + 'rd_title = img2.img_name' ) ) );