Merge branch 'alltags'

This commit is contained in:
Shish 2010-04-21 17:10:24 +01:00
commit 0b2bc99a9d
2 changed files with 34 additions and 9 deletions

View file

@ -88,6 +88,16 @@ class TagList implements Extension {
$u_tag = url_escape($tag);
return make_link("post/list/$u_tag/1");
}
private function get_tags_min() {
if(isset($_GET['mincount'])) {
return int_escape($_GET['mincount']);
}
else {
global $config;
return $config->get_int('tags_min');
}
}
// }}}
// maps {{{
private function build_navigation() {
@ -96,14 +106,14 @@ class TagList implements Extension {
$h_alphabetic = "<a href='".make_link("tags/alphabetic")."'>Alphabetic</a>";
$h_popularity = "<a href='".make_link("tags/popularity")."'>Popularity</a>";
$h_cats = "<a href='".make_link("tags/categories")."'>Categories</a>";
return "$h_index<br>$h_map<br>$h_alphabetic<br>$h_popularity<br>$h_cats";
$h_all = "<a href='?mincount=1'>Show All</a>";
return "$h_index<br>&nbsp;<br>$h_map<br>$h_alphabetic<br>$h_popularity<br>$h_cats<br>&nbsp;<br>$h_all";
}
private function build_tag_map() {
global $database;
global $config;
$tags_min = $config->get_int('tags_min');
$tags_min = $this->get_tags_min();
$result = $database->execute("
SELECT
tag,
@ -128,9 +138,8 @@ class TagList implements Extension {
private function build_tag_alphabetic() {
global $database;
global $config;
$tags_min = $config->get_int('tags_min');
$tags_min = $this->get_tags_min();
$result = $database->execute(
"SELECT tag,count FROM tags WHERE count >= ? ORDER BY tag",
array($tags_min));
@ -154,9 +163,8 @@ class TagList implements Extension {
private function build_tag_popularity() {
global $database;
global $config;
$tags_min = $config->get_int('tags_min');
$tags_min = $this->get_tags_min();
$result = $database->execute(
"SELECT tag,count,FLOOR(LOG(count)) AS scaled FROM tags WHERE count >= ? ORDER BY count DESC, tag ASC",
array($tags_min));
@ -181,9 +189,8 @@ class TagList implements Extension {
private function build_tag_categories() {
global $database;
global $config;
$tags_min = $config->get_int('tags_min');
$tags_min = $this->get_tags_min();
$result = $database->execute("SELECT tag,count FROM tags ORDER BY count DESC, tag ASC LIMIT 9");
$tag_data = $result->GetArray();

View file

@ -1,5 +1,7 @@
<?php
class TagListTest extends ShimmieWebTestCase {
var $pages = array("map", "alphabetic", "popularity", "categories");
function testTagList() {
$this->get_page('tags/map');
$this->assert_title('Tag List');
@ -15,5 +17,21 @@ class TagListTest extends ShimmieWebTestCase {
# FIXME: test that these show the right stuff
}
function testMinCount() {
foreach($this->pages as $page) {
$this->get_page("tags/$page?mincount=999999");
$this->assert_title("Tag List");
$this->get_page("tags/$page?mincount=1");
$this->assert_title("Tag List");
$this->get_page("tags/$page?mincount=0");
$this->assert_title("Tag List");
$this->get_page("tags/$page?mincount=-1");
$this->assert_title("Tag List");
}
}
}
?>