* (bug 9069) Use galleries in query pages dedicated to images
* (bug 9177) Installer now warns of various conditions affecting session.save_path
which can lead to broken session storage
+* (bug 9046) Special page to list pages without language links
== Bugfixes since 1.9 ==
* (bug 7292) Fix site statistics when moving pages in/out of content namespaces
'WantedCategoriesPage' => 'includes/SpecialWantedcategories.php',
'WantedPagesPage' => 'includes/SpecialWantedpages.php',
'WhatLinksHerePage' => 'includes/SpecialWhatlinkshere.php',
+ 'WithoutInterwikiPage' => 'includes/SpecialWithoutinterwiki.php',
'SquidUpdate' => 'includes/SquidUpdate.php',
'ReplacementArray' => 'includes/StringUtils.php',
'Replacer' => 'includes/StringUtils.php',
array( 'DeadendPagesPage', 'Deadendpages' ),
array( 'DisambiguationsPage', 'Disambiguations' ),
array( 'DoubleRedirectsPage', 'DoubleRedirects' ),
- array( 'ListredirectsPage', 'Listredirects' ),
+ array( 'ListredirectsPage', 'Listredirects' ),
array( 'LonelyPagesPage', 'Lonelypages' ),
array( 'LongPagesPage', 'Longpages' ),
array( 'MostcategoriesPage', 'Mostcategories' ),
array( 'ShortPagesPage', 'Shortpages' ),
array( 'UncategorizedCategoriesPage', 'Uncategorizedcategories' ),
array( 'UncategorizedPagesPage', 'Uncategorizedpages' ),
- array( 'UncategorizedImagesPage', 'Uncategorizedimages' ),
+ array( 'UncategorizedImagesPage', 'Uncategorizedimages' ),
array( 'UnusedCategoriesPage', 'Unusedcategories' ),
array( 'UnusedimagesPage', 'Unusedimages' ),
array( 'WantedCategoriesPage', 'Wantedcategories' ),
array( 'WantedPagesPage', 'Wantedpages' ),
array( 'UnwatchedPagesPage', 'Unwatchedpages' ),
- array( 'UnusedtemplatesPage', 'Unusedtemplates' ),
+ array( 'UnusedtemplatesPage', 'Unusedtemplates' ),
+ array( 'WithoutInterwikiPage', 'Withoutinterwiki' ),
);
wfRunHooks( 'wgQueryPages', array( &$wgQueryPages ) );
'Revisiondelete' => array( 'SpecialPage', 'Revisiondelete', 'deleterevision' ),
'Unusedtemplates' => array( 'SpecialPage', 'Unusedtemplates' ),
'Randomredirect' => array( 'SpecialPage', 'Randomredirect' ),
+ 'Withoutinterwiki' => array( 'SpecialPage', 'Withoutinterwiki' ),
'Mypage' => array( 'SpecialMypage' ),
'Mytalk' => array( 'SpecialMytalk' ),
--- /dev/null
+<?php
+
+/**
+ * Special page lists pages without language links
+ *
+ * @package MediaWiki
+ * @author Rob Church <robchur@gmail.com>
+ */
+class WithoutInterwikiPage extends PageQueryPage {
+
+ function getName() {
+ return 'Withoutinterwiki';
+ }
+
+ function getPageHeader() {
+ return '<p>' . wfMsgHtml( 'withoutinterwiki-header' ) . '</p>';
+ }
+
+ function sortDescending() {
+ return false;
+ }
+
+ function isExpensive() {
+ return true;
+ }
+
+ function isSyndicated() {
+ return false;
+ }
+
+ function getSQL() {
+ $dbr = wfGetDB( DB_SLAVE );
+ list( $page, $langlinks ) = $dbr->tableNamesN( 'page', 'langlinks' );
+ return
+ "SELECT 'Withoutinterwiki' AS type,
+ page_namespace AS namespace,
+ page_title AS title,
+ page_title AS value
+ FROM $page
+ LEFT JOIN $langlinks
+ ON ll_from = page_id
+ WHERE ll_title IS NULL
+ AND page_namespace=" . NS_MAIN . "
+ AND page_is_redirect = 0";
+ }
+
+}
+
+function wfSpecialWithoutinterwiki() {
+ list( $limit, $offset ) = wfCheckLimits();
+ $wip = new WithoutInterwikiPage();
+ $wip->doQuery( $offset, $limit );
+}
+
+?>
\ No newline at end of file
'brokenredirects-edit' => '(edit)',
'brokenredirects-delete' => '(delete)',
+'withoutinterwiki' => 'Pages without language links',
+'withoutinterwiki-header' => 'The following pages do not link to other language versions:',
+
# Miscellaneous special pages
#
'nbytes' => '$1 {{PLURAL:$1|byte|bytes}}',