(bug 30344) Add configuration variable for setting custom priorities when generating...
authorJohn Du Hart <johnduhart@users.mediawiki.org>
Tue, 23 Aug 2011 19:27:38 +0000 (19:27 +0000)
committerJohn Du Hart <johnduhart@users.mediawiki.org>
Tue, 23 Aug 2011 19:27:38 +0000 (19:27 +0000)
includes/DefaultSettings.php
maintenance/generateSitemap.php

index 9bf4cf7..83078bc 100644 (file)
@@ -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
 
 /************************************************************************//**
index 50b3a47..b31eebd 100644 (file)
@@ -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;
+                       }
+               }
        }
 
        /**