From bca8221609f07ea19ac1794d4be741f15b6d84c3 Mon Sep 17 00:00:00 2001 From: Shish Date: Sat, 3 Jan 2009 13:00:09 -0800 Subject: [PATCH] move extension-specific events into their extensions --- core/event.class.php | 204 +----------------------------------------- ext/image/main.php | 71 +++++++++++++++ ext/index/main.php | 26 ++++++ ext/setup/main.php | 13 +++ ext/tag_edit/main.php | 32 +++++++ ext/upload/main.php | 24 +++++ ext/view/main.php | 21 +++++ 7 files changed, 191 insertions(+), 200 deletions(-) diff --git a/core/event.class.php b/core/event.class.php index 67f1bcd7..6c3cf409 100644 --- a/core/event.class.php +++ b/core/event.class.php @@ -19,103 +19,6 @@ abstract class Event { } -/* - * ConfigSaveEvent: - * Sent when the setup screen's 'set' button has been - * activated; new config options are in $_POST - */ -class ConfigSaveEvent extends Event { - var $config; - - public function ConfigSaveEvent($config) { - $this->config = $config; - } -} - - -/* - * DataUploadEvent: - * $user -- the user uploading the data - * $tmpname -- the temporary file used for upload - * $metadata -- info about the file, should contain at least "filename", "extension", "tags" and "source" - * - * Some data is being uploaded. Should be caught by a file handler. - */ -class DataUploadEvent extends Event { - var $user, $tmpname, $metadata, $hash, $type; - - public function DataUploadEvent($user, $tmpname, $metadata) { - $this->user = $user; - $this->tmpname = $tmpname; - - $this->metadata = $metadata; - $this->metadata['hash'] = md5_file($tmpname); - $this->metadata['size'] = filesize($tmpname); - - // useful for most file handlers, so pull directly into fields - $this->hash = $this->metadata['hash']; - $this->type = strtolower($metadata['extension']); - } -} - - -/* - * DisplayingImageEvent: - * $image -- the image being displayed - * $page -- the page to display on - * - * Sent when an image is ready to display. Extensions who - * wish to appear on the "view" page should listen for this, - * which only appears when an image actually exists. - */ -class DisplayingImageEvent extends Event { - var $image, $page; - - public function DisplayingImageEvent($image, $page) { - $this->image = $image; - $this->page = $page; - } - - public function get_image() { - return $this->image; - } -} - - -/* - * ImageAdditionEvent: - * $user -- the user adding the image - * $image -- the image being added - * - * An image is being added to the database - */ -class ImageAdditionEvent extends Event { - var $user, $image; - - public function ImageAdditionEvent($user, $image) { - $this->image = $image; - $this->user = $user; - } -} - - -/* - * ImageDeletionEvent: - * $image -- the image being deleted - * - * An image is being deleted. Used by things like tags - * and comments handlers to clean out related rows in - * their tables - */ -class ImageDeletionEvent extends Event { - var $image; - - public function ImageDeletionEvent($image) { - $this->image = $image; - } -} - - /* * InitExtEvent: * A wake-up call for extensions @@ -125,10 +28,11 @@ class InitExtEvent extends Event {} /* * PageRequestEvent: - * - * TODO: up to date docs * - * Used for initial page generation triggers + * User requests /view/42 -> an event is generated with $args = array("view", + * "42"); when an event handler asks $event->page_matches("view"), it returns + * true and ignores the matched part, such that $event->count_args() = 1 and + * $event->get_arg(0) = "42" */ class PageRequestEvent extends Event { var $args; @@ -177,68 +81,11 @@ class PageRequestEvent extends Event { } -/* - * ParseLinkTemplateEvent: - * $link -- the formatted link - * $original -- the formatting string, for reference - * $image -- the image who's link is being parsed - */ -class ParseLinkTemplateEvent extends Event { - var $link, $original; - var $image; - - public function ParseLinkTemplateEvent($link, $image) { - $this->link = $link; - $this->original = $link; - $this->image = $image; - } - - public function replace($needle, $replace) { - $this->link = str_replace($needle, $replace, $this->link); - } -} - - -/* - * SourceSetEvent: - * $image_id - * $source - * - */ -class SourceSetEvent extends Event { - var $image_id; - var $source; - - public function SourceSetEvent($image_id, $source) { - $this->image_id = $image_id; - $this->source = $source; - } -} - - -/* - * TagSetEvent: - * $image_id - * $tags - * - */ -class TagSetEvent extends Event { - var $image_id; - var $tags; - - public function TagSetEvent($image_id, $tags) { - $this->image_id = $image_id; - $this->tags = tag_explode($tags); - } -} - - /* * TextFormattingEvent: * $original - for reference * $formatted - with formatting applied * $stripped - with formatting removed - * */ class TextFormattingEvent extends Event { var $original; @@ -252,47 +99,4 @@ class TextFormattingEvent extends Event { $this->stripped = $h_text; } } - - -/* - * ThumbnailGenerationEvent: - * Request a thumb be made for an image - */ -class ThumbnailGenerationEvent extends Event { - var $hash; - var $type; - - public function ThumbnailGenerationEvent($hash, $type) { - $this->hash = $hash; - $this->type = $type; - } -} - - -/* - * SearchTermParseEvent: - * Signal that a search term needs parsing - */ -class SearchTermParseEvent extends Event { - var $term = null; - var $context = null; - var $querylets = array(); - - public function SearchTermParseEvent($term, $context) { - $this->term = $term; - $this->context = $context; - } - - public function is_querylet_set() { - return (count($this->querylets) > 0); - } - - public function get_querylets() { - return $this->querylets; - } - - public function add_querylet($q) { - $this->querylets[] = $q; - } -} ?> diff --git a/ext/image/main.php b/ext/image/main.php index 507073b3..0c9d80ee 100644 --- a/ext/image/main.php +++ b/ext/image/main.php @@ -1,4 +1,75 @@ image = $image; + $this->user = $user; + } +} + + +/* + * ImageDeletionEvent: + * $image -- the image being deleted + * + * An image is being deleted. Used by things like tags + * and comments handlers to clean out related rows in + * their tables + */ +class ImageDeletionEvent extends Event { + var $image; + + public function ImageDeletionEvent($image) { + $this->image = $image; + } +} + + +/* + * ThumbnailGenerationEvent: + * Request a thumb be made for an image + */ +class ThumbnailGenerationEvent extends Event { + var $hash; + var $type; + + public function ThumbnailGenerationEvent($hash, $type) { + $this->hash = $hash; + $this->type = $type; + } +} + + +/* + * ParseLinkTemplateEvent: + * $link -- the formatted link + * $original -- the formatting string, for reference + * $image -- the image who's link is being parsed + */ +class ParseLinkTemplateEvent extends Event { + var $link, $original; + var $image; + + public function ParseLinkTemplateEvent($link, $image) { + $this->link = $link; + $this->original = $link; + $this->image = $image; + } + + public function replace($needle, $replace) { + $this->link = str_replace($needle, $replace, $this->link); + } +} + + /* * A class to handle adding / getting / removing image * files from the disk diff --git a/ext/index/main.php b/ext/index/main.php index 2f7d79d0..bab61055 100644 --- a/ext/index/main.php +++ b/ext/index/main.php @@ -1,4 +1,30 @@ term = $term; + $this->context = $context; + } + + public function is_querylet_set() { + return (count($this->querylets) > 0); + } + + public function get_querylets() { + return $this->querylets; + } + + public function add_querylet($q) { + $this->querylets[] = $q; + } +} class PostListBuildingEvent extends Event { var $page = null; diff --git a/ext/setup/main.php b/ext/setup/main.php index 5085f49b..6992b93c 100644 --- a/ext/setup/main.php +++ b/ext/setup/main.php @@ -1,5 +1,18 @@ config = $config; + } +} +// }}} /* SetupBuildingEvent {{{ * * Sent when the setup page is ready to be added to diff --git a/ext/tag_edit/main.php b/ext/tag_edit/main.php index 4b35f9a6..2d9c3eec 100644 --- a/ext/tag_edit/main.php +++ b/ext/tag_edit/main.php @@ -1,4 +1,36 @@ image_id = $image_id; + $this->source = $source; + } +} + + +/* + * TagSetEvent: + * $image_id + * $tags + * + */ +class TagSetEvent extends Event { + var $image_id; + var $tags; + + public function TagSetEvent($image_id, $tags) { + $this->image_id = $image_id; + $this->tags = tag_explode($tags); + } +} class TagEdit implements Extension { var $theme; diff --git a/ext/upload/main.php b/ext/upload/main.php index d2afcb22..f4668c6e 100644 --- a/ext/upload/main.php +++ b/ext/upload/main.php @@ -1,4 +1,28 @@ user = $user; + $this->tmpname = $tmpname; + + $this->metadata = $metadata; + $this->metadata['hash'] = md5_file($tmpname); + $this->metadata['size'] = filesize($tmpname); + + // useful for most file handlers, so pull directly into fields + $this->hash = $this->metadata['hash']; + $this->type = strtolower($metadata['extension']); + } +} class Upload implements Extension { var $theme; diff --git a/ext/view/main.php b/ext/view/main.php index 446d0cce..2a1e23b9 100644 --- a/ext/view/main.php +++ b/ext/view/main.php @@ -1,4 +1,25 @@ image = $image; + $this->page = $page; + } + + public function get_image() { + return $this->image; + } +} class ImageInfoBoxBuildingEvent extends Event { var $parts = array();