From: Ævar Arnfjörð Bjarmason Date: Sat, 16 Apr 2005 23:51:42 +0000 (+0000) Subject: * (bug 510) added the ability to do Special:Randompage/Namespace to get a X-Git-Tag: 1.5.0alpha1~247 X-Git-Url: http://git.cyclocoop.org/%22%20.%20generer_url_ecrire%28%22suivi_revisions%22%2C%22id_auteur=%24connecte%22%29%20.%20%22?a=commitdiff_plain;h=27f2fbb3c14e1a43a85a6dd15fd02a084aec76e0;p=lhc%2Fweb%2Fwiklou.git * (bug 510) added the ability to do Special:Randompage/Namespace to get a random page from that namespace. --- diff --git a/includes/SpecialRandompage.php b/includes/SpecialRandompage.php index 7cd7ff0f9a..f2cf40aae3 100644 --- a/includes/SpecialRandompage.php +++ b/includes/SpecialRandompage.php @@ -6,11 +6,20 @@ /** * Constructor + * + * @param string $par the namespace to get a random page from (default NS_MAIN), + * used as e.g. Special:Randompage/Category */ -function wfSpecialRandompage() { - global $wgOut, $wgTitle, $wgArticle, $wgExtraRandompageSQL; +function wfSpecialRandompage( $par = NS_MAIN ) { + global $wgOut, $wgTitle, $wgArticle, $wgExtraRandompageSQL, $wgContLang; $fname = 'wfSpecialRandompage'; + # Determine the namespace to get a random page from. + $namespace = $wgContLang->getNsIndex($par); + if ($namespace === false || $namespace < NS_MAIN) { + $namespace = NS_MAIN; + } + # NOTE! We use a literal constant in the SQL instead of the RAND() # function because RAND() will return a different value for every row # in the table. That's both very slow and returns results heavily @@ -34,7 +43,7 @@ function wfSpecialRandompage() { } $sqlget = "SELECT page_id,page_title FROM $page $use_index - WHERE page_namespace=".NS_MAIN." AND page_is_redirect=0 $extra + WHERE page_namespace=".$namespace." AND page_is_redirect=0 $extra AND page_random>$randstr ORDER BY page_random LIMIT 1"; @@ -42,7 +51,7 @@ function wfSpecialRandompage() { $title = null; if( $s = $db->fetchObject( $res ) ) { - $title =& Title::makeTitle( NS_MAIN, $s->page_title ); + $title =& Title::makeTitle( $namespace, $s->page_title ); } if( is_null( $title ) ) { # That's not supposed to happen :)