From f5aa9a1a99145742443ab096b7abfe640bb1403b Mon Sep 17 00:00:00 2001 From: John Du Hart Date: Tue, 23 Aug 2011 19:27:38 +0000 Subject: [PATCH] (bug 30344) Add configuration variable for setting custom priorities when generating sitemaps --- includes/DefaultSettings.php | 14 ++++++++++++++ maintenance/generateSitemap.php | 15 +++++++++++++++ 2 files changed, 29 insertions(+) diff --git a/includes/DefaultSettings.php b/includes/DefaultSettings.php index 9bf4cf70c6..83078bc1fb 100644 --- a/includes/DefaultSettings.php +++ b/includes/DefaultSettings.php @@ -4250,6 +4250,20 @@ $wgUseTwoButtonsSearchForm = true; */ $wgSitemapNamespaces = false; +/** + * Custom namespace priorities for sitemaps. Setting this will allow you to + * set custom priorities to namsepaces when sitemaps are generated using the + * maintenance/generateSitemap.php script. + * + * This should be a map of namespace IDs to priority + * Example: + * $wgSitemapNamespacesPriorities = array( + * NS_USER => '0.9', + * NS_HELP => '0.0', + * ); + */ +$wgSitemapNamespacesPriorities = false; + /** @} */ # end of search settings /************************************************************************//** diff --git a/maintenance/generateSitemap.php b/maintenance/generateSitemap.php index 50b3a47b38..b31eebd226 100644 --- a/maintenance/generateSitemap.php +++ b/maintenance/generateSitemap.php @@ -162,6 +162,8 @@ class GenerateSitemap extends Maintenance { } private function setNamespacePriorities() { + global $wgSitemapNamespacesPriorities; + // Custom main namespaces $this->priorities[self::GS_MAIN] = '0.5'; // Custom talk namesspaces @@ -183,6 +185,19 @@ class GenerateSitemap extends Maintenance { $this->priorities[NS_HELP_TALK] = '0.1'; $this->priorities[NS_CATEGORY] = '0.5'; $this->priorities[NS_CATEGORY_TALK] = '0.1'; + + // Custom priorities + if ( $wgSitemapNamespacesPriorities !== false ) { + foreach ( $wgSitemapNamespacesPriorities as $namespace => $priority ) { + $float = floatval( $priority ); + if ( $float > 1.0 ) { + $priority = '1.0'; + } elseif ( $float < 0.0 ) { + $priority = '0.0'; + } + $this->priorities[$namespace] = $priority; + } + } } /** -- 2.20.1