check if thumbnail already exists before regenerating it, way to force regen.

This commit is contained in:
Thasan 2012-01-12 03:54:27 +02:00
parent 8cfa72d7cf
commit 9f8a49483f
4 changed files with 18 additions and 3 deletions

View File

@ -18,7 +18,7 @@ class RegenThumb extends SimpleExtension {
if($event->page_matches("regen_thumb") && $user->is_admin() && isset($_POST['image_id'])) {
$image = Image::by_id(int_escape($_POST['image_id']));
send_event(new ThumbnailGenerationEvent($image->hash, $image->ext));
send_event(new ThumbnailGenerationEvent($image->hash, $image->ext, true));
$this->theme->display_results($page, $image);
}
}

View File

@ -194,7 +194,12 @@ abstract class DataHandlerExtension implements Extension {
}
if(($event instanceof ThumbnailGenerationEvent) && $this->supported_ext($event->type)) {
$this->create_thumb($event->hash);
if (method_exists($this, 'create_thumb_force') && $event->force == true) {
$this->create_thumb_force($event->hash);
}
else {
$this->create_thumb($event->hash);
}
}
if(($event instanceof DisplayingImageEvent) && $this->supported_ext($event->image->ext)) {

View File

@ -48,6 +48,15 @@ class PixelFileHandler extends DataHandlerExtension {
}
protected function create_thumb($hash) {
$outname = warehouse_path("thumbs", $hash);
if(file_exists($outname)) {
return true;
}
return $this->create_thumb_force($hash);
}
protected function create_thumb_force($hash) {
echo "x";
$inname = warehouse_path("images", $hash);
$outname = warehouse_path("thumbs", $hash);
global $config;

View File

@ -97,9 +97,10 @@ class ThumbnailGenerationEvent extends Event {
* @param $hash The unique hash of the image
* @param $type The type of the image
*/
public function ThumbnailGenerationEvent($hash, $type) {
public function ThumbnailGenerationEvent($hash, $type, $force=false) {
$this->hash = $hash;
$this->type = $type;
$this->force = $force;
}
}