From 370e83bb0dfd0c70de268c93bf07ad5ee0897192 Mon Sep 17 00:00:00 2001 From: Pierre Schmitz Date: Fri, 15 Aug 2008 01:29:47 +0200 Subject: Update auf 1.13.0 --- includes/specials/SpecialListredirects.php | 58 ++++++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 includes/specials/SpecialListredirects.php (limited to 'includes/specials/SpecialListredirects.php') diff --git a/includes/specials/SpecialListredirects.php b/includes/specials/SpecialListredirects.php new file mode 100644 index 00000000..808aab14 --- /dev/null +++ b/includes/specials/SpecialListredirects.php @@ -0,0 +1,58 @@ + + * @copyright © 2006 Rob Church + * @license http://www.gnu.org/copyleft/gpl.html GNU General Public License 2.0 or later + */ + +/** + * Special:Listredirects - Lists all the redirects on the wiki. + * @ingroup SpecialPage + */ +class ListredirectsPage extends QueryPage { + + function getName() { return( 'Listredirects' ); } + function isExpensive() { return( true ); } + function isSyndicated() { return( false ); } + function sortDescending() { return( false ); } + + function getSQL() { + $dbr = wfGetDB( DB_SLAVE ); + $page = $dbr->tableName( 'page' ); + $sql = "SELECT 'Listredirects' AS type, page_title AS title, page_namespace AS namespace, 0 AS value FROM $page WHERE page_is_redirect = 1"; + return( $sql ); + } + + function formatResult( $skin, $result ) { + global $wgContLang; + + # Make a link to the redirect itself + $rd_title = Title::makeTitle( $result->namespace, $result->title ); + $rd_link = $skin->makeLinkObj( $rd_title, '', 'redirect=no' ); + + # Find out where the redirect leads + $revision = Revision::newFromTitle( $rd_title ); + if( $revision ) { + # Make a link to the destination page + $target = Title::newFromRedirect( $revision->getText() ); + if( $target ) { + $arr = $wgContLang->getArrow() . $wgContLang->getDirMark(); + $targetLink = $skin->makeLinkObj( $target ); + return "$rd_link $arr $targetLink"; + } else { + return "$rd_link"; + } + } else { + return "$rd_link"; + } + } +} + +function wfSpecialListredirects() { + list( $limit, $offset ) = wfCheckLimits(); + $lrp = new ListredirectsPage(); + $lrp->doQuery( $offset, $limit ); +} -- cgit v1.2.3-54-g00ecf