Added sorting - needs generalising.

This commit is contained in:
ikawhero
2006-03-22 16:48:35 +00:00
parent 4b920216ac
commit 7d61cf6596
+40 -16
View File
@@ -6,13 +6,24 @@ class block_blog_tags extends block_base {
$this->version = 2006032000;
}
function instance_allow_multiple() {
return true;
}
function has_config() {
return true;
}
function instance_allow_config() {
return true;
}
function get_content() {
global $CFG;
$timewithin = time() - 7776000; // last 90 days
$topentries = 20; // get the 20 most popular tags
if ($this->content !== NULL) {
return $this->content;
@@ -38,30 +49,43 @@ class block_blog_tags extends block_base {
$sql .= 'ORDER BY ct DESC, t.text ASC ';
$sql .= "LIMIT $topentries ";
$tags = get_records_sql($sql) or array();
if ($tags = get_records_sql($sql)) {
$size = 20; $lasttagcount = -1; $sizecount = 1;
foreach ($tags as $tag) {
$class = "$tag->type s$size";
$link = $CFG->wwwroot.'/blog/index.php?filtertype=site&tagid='.$tag->id;
$this->content->text .= '<a href="'.$link.'" class="'.$class.'">'.$tag->text.'</a> ';
$size = 20; $lasttagcount = -1; $sizecount = 1;
$etags = array();
foreach ($tags as $tag) {
$tag->class = "$tag->type s$size";
$etags[] = $tag;
/// Set the size class
if ($tag->ct != $lasttagcount) {
$size -= $sizecount;
$lasttagcount = $tag->ct;
$sizecount = 1;
} else {
$sizecount++;
/// Set the size class
if ($tag->ct != $lasttagcount) {
$size -= $sizecount;
$lasttagcount = $tag->ct;
$sizecount = 1;
} else {
$sizecount++;
}
}
}
usort($etags, "blog_tags_sort");
foreach ($etags as $tag) {
$link = $CFG->wwwroot.'/blog/index.php?filtertype=site&tagid='.$tag->id;
$this->content->text .= '<a href="'.$link.'" class="'.$tag->class.'">'.$tag->text.'</a> ';
}
}
return $this->content;
}
function applicable_formats() {
return array('all' => true, 'my' => false);
}
}
function blog_tags_sort($a, $b) {
return strcmp($a->text, $b->text);
}
?>