(bug 5250) Introduce Special:Unusedtemplates
authorRob Church <robchurch@users.mediawiki.org>
Tue, 18 Apr 2006 03:49:13 +0000 (03:49 +0000)
committerRob Church <robchurch@users.mediawiki.org>
Tue, 18 Apr 2006 03:49:13 +0000 (03:49 +0000)
RELEASE-NOTES
includes/QueryPage.php
includes/SpecialPage.php
includes/SpecialUnusedtemplates.php [new file with mode: 0644]
languages/Messages.php

index b914301..804f8e9 100644 (file)
@@ -94,6 +94,7 @@ it from source control: http://www.mediawiki.org/wiki/Download_from_SVN
 * (bug 5595) Localisation for Bosnian language (bs)
 * (bug 2910) Default view preferences for watchlists
 * Add "hide bot edits from the watchlist" user preference
+* (bug 5250) Introduce Special:Unusedtemplates
 
 == Compatibility ==
 
index 79ce0ba..eb1a028 100644 (file)
@@ -40,6 +40,7 @@ $wgQueryPages = array(
        array( 'WantedCategoriesPage',          'Wantedcategories'              ),
        array( 'WantedPagesPage',               'Wantedpages'                   ),
        array( 'UnwatchedPagesPage',            'Unwatchedpages'                ),
+       array( 'UnusedtemplatesPage', 'Unusedtemplates' ),
 );
 wfRunHooks( 'wgQueryPages', array( &$wgQueryPages ) );
 
index eb64341..72ce4dc 100644 (file)
@@ -79,6 +79,7 @@ $wgSpecialPages = array(
        'Unwatchedpages' => new SpecialPage( 'Unwatchedpages', 'unwatchedpages' ),
        'Listredirects' => new SpecialPage( 'Listredirects' ),
        'Revisiondelete' => new SpecialPage( 'Revisiondelete', 'deleterevision' ),
+       'Unusedtemplates' => new SpecialPage( 'Unusedtemplates' ),
 );
 
 if( !$wgDisableCounters ) {
diff --git a/includes/SpecialUnusedtemplates.php b/includes/SpecialUnusedtemplates.php
new file mode 100644 (file)
index 0000000..428a5a9
--- /dev/null
@@ -0,0 +1,53 @@
+<?php
+
+/**
+ * @package MediaWiki
+ * @subpackage Special pages
+ *
+ * @author Rob Church <robchur@gmail.com>
+ * @copyright © 2006 Rob Church
+ * @license http://www.gnu.org/copyleft/gpl.html GNU General Public License 2.0 or later
+ */
+
+/* */
+require_once 'QueryPage.php';
+
+/**
+ * @package MediaWiki
+ * @subpackage SpecialPage
+ */
+
+class UnusedtemplatesPage extends QueryPage {
+
+       function getName() { return( 'Unusedtemplates' ); }
+       function isExpensive() { return( true ); }
+       function isSyndicated() { return( false ); }
+       function sortDescending() { return( false ); }
+
+       function getSQL() {
+               $dbr =& wfGetDB( DB_SLAVE );
+               extract( $dbr->tableNames( 'page', 'templatelinks' ) );
+               $sql = "SELECT 'Unusedtemplates' AS type, page_title AS title, page_namespace AS namespace, 0 AS value FROM $page LEFT JOIN $templatelinks ON page_namespace = tl_namespace AND page_title = tl_title WHERE page_namespace = 10 AND tl_from IS NULL";
+               return( $sql );
+       }
+
+       function formatResult( $skin, $result ) {
+               $title = Title::makeTitle( NS_TEMPLATE, $result->title );
+               $pageLink = $skin->makeKnownLinkObj( $title, '', 'redirect=no' );
+               $wlhLink = $skin->makeKnownLinkObj( Title::makeTitle( NS_SPECIAL, 'Whatlinkshere' ), wfMsgHtml( 'unusedtemplateswlh' ), 'target=' . $title->getPrefixedUrl() );
+               return( $pageLink . ' (' . $wlhLink . ')' );
+       }
+
+       function getPageHeader() {
+               return( wfMsgHtml( 'unusedtemplatestext' ) );
+       }
+
+}
+
+function wfSpecialUnusedtemplates() {
+       list( $limit, $offset ) = wfCheckLimits();
+       $utp = new UnusedtemplatesPage();
+       $utp->doQuery( $offset, $limit );
+}
+
+?>
\ No newline at end of file
index 3404f6a..babcae7 100644 (file)
@@ -919,6 +919,11 @@ this old version, (rev) = revert to this old version.
 # List redirects
 'listredirects' => 'List redirects',
 
+# Unused templates
+'unusedtemplates' => 'Unused templates',
+'unusedtemplatestext' => 'This page lists all pages in the template namespace which are not included in another page. Remember to check for other links to the templates before deleting them.',
+'unusedtemplateswlh' => 'other links',
+
 # Statistics
 #
 'statistics'   => 'Statistics',