X-Git-Url: https://scripts.mit.edu/gitweb/autoinstalls/mediawiki.git/blobdiff_plain/d75ce11339b35963b5f8c3d53190819c1c025716..6932310fd58ebef145fa01eb76edf7150284d8ea:/includes/specials/SpecialUnusedimages.php diff --git a/includes/specials/SpecialUnusedimages.php b/includes/specials/SpecialUnusedimages.php index 9d9868f6..9fcbf15f 100644 --- a/includes/specials/SpecialUnusedimages.php +++ b/includes/specials/SpecialUnusedimages.php @@ -1,74 +1,85 @@ [ 'image', 'imagelinks' ], + 'fields' => [ + 'namespace' => NS_FILE, + 'title' => 'img_name', + 'value' => 'img_timestamp', + ], + 'conds' => [ 'il_to IS NULL' ], + 'join_conds' => [ 'imagelinks' => [ 'LEFT JOIN', 'il_to = img_name' ] ] + ]; - if ( $wgCountCategorizedImagesAsUsed ) { - list( $page, $image, $imagelinks, $categorylinks ) = $dbr->tableNamesN( 'page', 'image', 'imagelinks', 'categorylinks' ); + if ( $this->getConfig()->get( 'CountCategorizedImagesAsUsed' ) ) { + // Order is significant + $retval['tables'] = [ 'image', 'page', 'categorylinks', + 'imagelinks' ]; + $retval['conds']['page_namespace'] = NS_FILE; + $retval['conds'][] = 'cl_from IS NULL'; + $retval['conds'][] = 'img_name = page_title'; + $retval['join_conds']['categorylinks'] = [ + 'LEFT JOIN', 'cl_from = page_id' ]; + $retval['join_conds']['imagelinks'] = [ + 'LEFT JOIN', 'il_to = page_title' ]; + } - return "SELECT 'Unusedimages' as type, 6 as namespace, img_name as title, $epoch as value, - img_user, img_user_text, img_description - FROM ((($page AS I LEFT JOIN $categorylinks AS L ON I.page_id = L.cl_from) - LEFT JOIN $imagelinks AS P ON I.page_title = P.il_to) - INNER JOIN $image AS G ON I.page_title = G.img_name) - WHERE I.page_namespace = ".NS_FILE." AND L.cl_from IS NULL AND P.il_to IS NULL"; - } else { - list( $image, $imagelinks ) = $dbr->tableNamesN( 'image','imagelinks' ); + return $retval; + } - return "SELECT 'Unusedimages' as type, 6 as namespace, img_name as title, $epoch as value, - img_user, img_user_text, img_description - FROM $image LEFT JOIN $imagelinks ON img_name=il_to WHERE il_to IS NULL "; - } + function usesTimestamps() { + return true; } function getPageHeader() { - return wfMsgExt( 'unusedimagestext', array( 'parse' ) ); + return $this->msg( 'unusedimagestext' )->parseAsBlock(); } -} - -/** - * Entry point - */ -function wfSpecialUnusedimages() { - list( $limit, $offset ) = wfCheckLimits(); - $uip = new UnusedimagesPage(); - - return $uip->doQuery( $offset, $limit ); + protected function getGroupName() { + return 'maintenance'; + } }