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); $u_tag = url_escape($tag);
return make_link("post/list/$u_tag/1"); 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 {{{ // maps {{{
private function build_navigation() { private function build_navigation() {
@ -96,14 +106,14 @@ class TagList implements Extension {
$h_alphabetic = "<a href='".make_link("tags/alphabetic")."'>Alphabetic</a>"; $h_alphabetic = "<a href='".make_link("tags/alphabetic")."'>Alphabetic</a>";
$h_popularity = "<a href='".make_link("tags/popularity")."'>Popularity</a>"; $h_popularity = "<a href='".make_link("tags/popularity")."'>Popularity</a>";
$h_cats = "<a href='".make_link("tags/categories")."'>Categories</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() { private function build_tag_map() {
global $database; global $database;
global $config;
$tags_min = $config->get_int('tags_min'); $tags_min = $this->get_tags_min();
$result = $database->execute(" $result = $database->execute("
SELECT SELECT
tag, tag,
@ -128,9 +138,8 @@ class TagList implements Extension {
private function build_tag_alphabetic() { private function build_tag_alphabetic() {
global $database; global $database;
global $config;
$tags_min = $config->get_int('tags_min'); $tags_min = $this->get_tags_min();
$result = $database->execute( $result = $database->execute(
"SELECT tag,count FROM tags WHERE count >= ? ORDER BY tag", "SELECT tag,count FROM tags WHERE count >= ? ORDER BY tag",
array($tags_min)); array($tags_min));
@ -154,9 +163,8 @@ class TagList implements Extension {
private function build_tag_popularity() { private function build_tag_popularity() {
global $database; global $database;
global $config;
$tags_min = $config->get_int('tags_min'); $tags_min = $this->get_tags_min();
$result = $database->execute( $result = $database->execute(
"SELECT tag,count,FLOOR(LOG(count)) AS scaled FROM tags WHERE count >= ? ORDER BY count DESC, tag ASC", "SELECT tag,count,FLOOR(LOG(count)) AS scaled FROM tags WHERE count >= ? ORDER BY count DESC, tag ASC",
array($tags_min)); array($tags_min));
@ -181,9 +189,8 @@ class TagList implements Extension {
private function build_tag_categories() { private function build_tag_categories() {
global $database; 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"); $result = $database->execute("SELECT tag,count FROM tags ORDER BY count DESC, tag ASC LIMIT 9");
$tag_data = $result->GetArray(); $tag_data = $result->GetArray();

View file

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