MediawikiExtensions/Top Categories

From s23
Jump to navigation Jump to search

An extension to display the "Top Categories" automatically ,ordered by number of pages in them.

example[edit]

<topcat>10</topcat>

result[edit]

<topcat>10</topcat>

extension source[edit]

<?php
# Top Categories Mediawiki extension
# display a list of the biggest categories on the wiki
# and the number of pages in them
# <topcat>23</topcat>
# where "23" would be the number of results to display
# by mutante 23.10.2005

$wgExtensionFunctions[] = "wfTopCatExtension";

function wfTopCatExtension() {
global $wgParser;
$wgParser->setHook( "topcat", "renderTopCat" );
}

function renderTopCat( $input ) {

$input = mysql_escape_string($input);

# check if input is integer else set to 5
if (is_int($input)){
$limit = $input;
} else {
$limit = 5;
}

$hd = mysql_connect("localhost", "wikiuser", "password") or die ("Unable to connect");
mysql_select_db ("wikidb", $hd) or die ("Unable to select database");

$res= mysql_query("SELECT cl_to , COUNT(*) AS total FROM categorylinks GROUP BY cl_to ORDER BY total DESC LIMIT $input", $hd) or die ("Unable to run query");

$output="<table border=\"1\"><tr><th colspan=\"2\" align=\"center\">Top $input Categories</th></tr><tr><th align=\"left\">category</th><th align=\"right\"># of pages</th></tr>";

while ($row = mysql_fetch_assoc($res))
{
$category = $row["cl_to"];
$pages = $row["total"];
$output.="<tr><td align=\"right\"><a href=\"http://s23.org/wiki/Category:$category\">$category</a></td><td align=\"right\">$pages</td></tr>";
}
$output.="</table>";

return $output;
}

also see: MediawikiExtensions/Top Pages