image = $image; } } class ImageAdditionException extends SCoreException { } /** * An image is being deleted. */ class ImageDeletionEvent extends Event { /** @var Image */ public $image; /** @var bool */ public $force = false; /** * Deletes an image. * * Used by things like tags and comments handlers to * clean out related rows in their tables. */ public function __construct(Image $image, bool $force = false) { parent::__construct(); $this->image = $image; $this->force = $force; } } /** * An image is being replaced. */ class ImageReplaceEvent extends Event { /** @var int */ public $id; /** @var Image */ public $image; /** * Replaces an image. * * Updates an existing ID in the database to use a new image * file, leaving the tags and such unchanged. Also removes * the old image file and thumbnail from the disk. */ public function __construct(int $id, Image $image) { parent::__construct(); $this->id = $id; $this->image = $image; } } class ImageReplaceException extends SCoreException { } /** * Request a thumbnail be made for an image object. */ class ThumbnailGenerationEvent extends Event { /** @var string */ public $hash; /** @var string */ public $type; /** @var bool */ public $force; /** @var bool */ public $generated; /** * Request a thumbnail be made for an image object */ public function __construct(string $hash, string $type, bool $force=false) { parent::__construct(); $this->hash = $hash; $this->type = $type; $this->force = $force; $this->generated = false; } } /* * 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 string */ public $link; /** @var string */ public $original; /** @var Image */ public $image; public function __construct(string $link, Image $image) { parent::__construct(); $this->link = $link; $this->original = $link; $this->image = $image; } public function replace(string $needle, ?string $replace): void { if(!is_null($replace)) { $this->link = str_replace($needle, $replace, $this->link); } } }