diff options
Diffstat (limited to 'modules/gallery/helpers/graphics.php')
| -rw-r--r-- | modules/gallery/helpers/graphics.php | 22 | 
1 files changed, 18 insertions, 4 deletions
| diff --git a/modules/gallery/helpers/graphics.php b/modules/gallery/helpers/graphics.php index acb11bfb..39c87fbd 100644 --- a/modules/gallery/helpers/graphics.php +++ b/modules/gallery/helpers/graphics.php @@ -170,23 +170,37 @@ class graphics_Core {          foreach (self::_get_rules($target) as $rule) {            $args = array($working_file, $output_file, unserialize($rule->args), $item); -          call_user_func_array($rule->operation, $args); -          $working_file = $output_file; +          try { +            call_user_func_array($rule->operation, $args); +            $working_file = $output_file; +          } catch (Exception $e) { +            // Ignore this rule and move on. +            Kohana_Log::add("error", "Caught exception processing image: {$item->title}\n" . +                            $e->getMessage() . "\n" . $e->getTraceAsString()); +          }          }        }        if (!empty($ops["thumb"])) { +        if (file_exists($item->thumb_path())) { +          $item->thumb_dirty = 0; +        } else { +          copy(MODPATH . "gallery/images/missing_photo.png", $item->thumb_path()); +        }          $dims = getimagesize($item->thumb_path());          $item->thumb_width = $dims[0];          $item->thumb_height = $dims[1]; -        $item->thumb_dirty = 0;        }        if (!empty($ops["resize"]))  { +        if (file_exists($item->resize_path())) { +          $item->resize_dirty = 0; +        } else { +          copy(MODPATH . "gallery/images/missing_photo.png", $item->resize_path()); +        }          $dims = getimagesize($item->resize_path());          $item->resize_width = $dims[0];          $item->resize_height = $dims[1]; -        $item->resize_dirty = 0;        }        $item->save();      } catch (Exception $e) { | 
