Tag List to simpleext

This commit is contained in:
Shish 2012-01-27 17:02:08 +00:00
parent 5c2140a028
commit f5eadb9011

View File

@ -5,15 +5,9 @@
* Description: Show the tags in various ways * Description: Show the tags in various ways
*/ */
class TagList implements Extension { class TagList extends SimpleExtension {
var $theme = null; public function onInitExt($event) {
global $config;
// event handling {{{
public function receive_event(Event $event) {
global $config, $database, $page, $user;
if($this->theme == null) $this->theme = get_theme_object($this);
if($event instanceof InitExtEvent) {
$config->set_default_int("tag_list_length", 15); $config->set_default_int("tag_list_length", 15);
$config->set_default_int("popular_tag_list_length", 15); $config->set_default_int("popular_tag_list_length", 15);
$config->set_default_int("tags_min", 3); $config->set_default_int("tags_min", 3);
@ -22,7 +16,10 @@ class TagList implements Extension {
$config->set_default_bool("tag_list_pages", false); $config->set_default_bool("tag_list_pages", false);
} }
if(($event instanceof PageRequestEvent) && $event->page_matches("tags")) { public function onPageRequest($event) {
global $page, $database;
if($event->page_matches("tags")) {
$this->theme->set_navigation($this->build_navigation()); $this->theme->set_navigation($this->build_navigation());
switch($event->get_arg(0)) { switch($event->get_arg(0)) {
default: default:
@ -46,7 +43,7 @@ class TagList implements Extension {
$this->theme->display_page($page); $this->theme->display_page($page);
} }
if(($event instanceof PageRequestEvent) && $event->page_matches("api/internal/tag_list/complete")) { if($event->page_matches("api/internal/tag_list/complete")) {
if(!isset($_GET["s"])) return; if(!isset($_GET["s"])) return;
$all = $database->get_all( $all = $database->get_all(
@ -60,8 +57,10 @@ class TagList implements Extension {
$page->set_type("text/plain"); $page->set_type("text/plain");
$page->set_data(implode("\n", $res)); $page->set_data(implode("\n", $res));
} }
}
if($event instanceof PostListBuildingEvent) { public function onPostListBuilding($event) {
global $config, $page;
if($config->get_int('tag_list_length') > 0) { if($config->get_int('tag_list_length') > 0) {
if(!empty($event->search_terms)) { if(!empty($event->search_terms)) {
$this->add_refine_block($page, $event->search_terms); $this->add_refine_block($page, $event->search_terms);
@ -72,7 +71,8 @@ class TagList implements Extension {
} }
} }
if($event instanceof DisplayingImageEvent) { public function onDisplayingImage($event) {
global $config, $page;
if($config->get_int('tag_list_length') > 0) { if($config->get_int('tag_list_length') > 0) {
if($config->get_string('tag_list_image_type') == 'related') { if($config->get_string('tag_list_image_type') == 'related') {
$this->add_related_block($page, $event->image); $this->add_related_block($page, $event->image);
@ -83,7 +83,7 @@ class TagList implements Extension {
} }
} }
if($event instanceof SetupBuildingEvent) { public function onSetupBuilding($event) {
$sb = new SetupBlock("Tag Map Options"); $sb = new SetupBlock("Tag Map Options");
$sb->add_int_option("tags_min", "Only show tags used at least "); $sb->add_label(" times"); $sb->add_int_option("tags_min", "Only show tags used at least "); $sb->add_label(" times");
$sb->add_bool_option("tag_list_pages", "<br>Paged tag lists: "); $sb->add_bool_option("tag_list_pages", "<br>Paged tag lists: ");
@ -100,7 +100,6 @@ class TagList implements Extension {
$sb->add_bool_option("tag_list_numbers", "<br>Show tag counts: "); $sb->add_bool_option("tag_list_numbers", "<br>Show tag counts: ");
$event->panel->add_block($sb); $event->panel->add_block($sb);
} }
}
// }}} // }}}
// misc {{{ // misc {{{
private function tag_link($tag) { private function tag_link($tag) {