diff --git a/ext/tag_list/main.php b/ext/tag_list/main.php
index f9216a7d..95a8cfdb 100644
--- a/ext/tag_list/main.php
+++ b/ext/tag_list/main.php
@@ -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 = "Alphabetic";
$h_popularity = "Popularity";
$h_cats = "Categories";
- return "$h_index
$h_map
$h_alphabetic
$h_popularity
$h_cats";
+ $h_all = "Show All";
+ return "$h_index
$h_map
$h_alphabetic
$h_popularity
$h_cats
$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();
diff --git a/ext/tag_list/test.php b/ext/tag_list/test.php
index 660473d2..fc574eab 100644
--- a/ext/tag_list/test.php
+++ b/ext/tag_list/test.php
@@ -1,5 +1,7 @@
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");
+ }
+ }
}
?>