git-svn-id: file:///home/shish/svn/shimmie2/branches/branch_2.2@1141 7f39781d-f577-437e-ae19-be835c7a54ca
		
			
				
	
	
		
			275 lines
		
	
	
		
			5.5 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			275 lines
		
	
	
		
			5.5 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
<?php
 | 
						|
/*
 | 
						|
 * Event:
 | 
						|
 * generic parent class
 | 
						|
 */
 | 
						|
class Event {
 | 
						|
	var $vetoed = false, $veto_reason = null;
 | 
						|
 | 
						|
	public function veto($reason="") {
 | 
						|
		$this->vetoed = true;
 | 
						|
		$this->veto_reason = $reason;
 | 
						|
	}
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
/*
 | 
						|
 * 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
 | 
						|
 */
 | 
						|
class InitExtEvent extends Event {
 | 
						|
	public function InitExtEvent() {
 | 
						|
	}
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
/*
 | 
						|
 * PageRequestEvent:
 | 
						|
 *   $page_name   -- the main name of the page, eg "post"
 | 
						|
 *   $args        -- the arguments, eg "list"
 | 
						|
 *   $page        -- a page object to add things to
 | 
						|
 *   $user        -- the user requesting the page
 | 
						|
 *   get_arg(int)
 | 
						|
 *   count_args()
 | 
						|
 *	
 | 
						|
 * User requests /view/42 -> an event is generated with
 | 
						|
 * $page_name="view" and $args=array("42");
 | 
						|
 *
 | 
						|
 * Used for initial page generation triggers
 | 
						|
 */
 | 
						|
class PageRequestEvent extends Event {
 | 
						|
	var $page_name, $args, $page, $user;
 | 
						|
 | 
						|
	public function PageRequestEvent($page_name, $args, $page, $user) {
 | 
						|
		$this->page_name = $page_name;
 | 
						|
		$this->args = $args;
 | 
						|
		$this->page = $page;
 | 
						|
		$this->user = $user;
 | 
						|
	}
 | 
						|
 | 
						|
	public function get_arg($n) {
 | 
						|
		return isset($this->args[$n]) ? $this->args[$n] : null;
 | 
						|
	}
 | 
						|
 | 
						|
	public function count_args() {
 | 
						|
		return isset($this->args) ? count($this->args) : 0;
 | 
						|
	}
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
/*
 | 
						|
 * 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;
 | 
						|
	var $formatted;
 | 
						|
	var $stripped;
 | 
						|
 | 
						|
	public function TextFormattingEvent($text) {
 | 
						|
		$h_text = html_escape(trim($text));
 | 
						|
		$this->original  = $h_text;
 | 
						|
		$this->formatted = $h_text;
 | 
						|
		$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 $querylet = null;
 | 
						|
 | 
						|
	public function SearchTermParseEvent($term) {
 | 
						|
		assert(!is_null($term));
 | 
						|
		$this->term = $term;
 | 
						|
	}
 | 
						|
 | 
						|
	public function is_querylet_set() {
 | 
						|
		return !is_null($this->querylet);
 | 
						|
	}
 | 
						|
 | 
						|
	public function get_querylet() {
 | 
						|
		return $this->querylet;
 | 
						|
	}
 | 
						|
 | 
						|
	public function set_querylet($q) {
 | 
						|
		$this->querylet = $q;
 | 
						|
	}
 | 
						|
}
 | 
						|
?>
 |