From e7210ea0c66bcf64113e7b04bd14782224c58975 Mon Sep 17 00:00:00 2001 From: Romain LE DISEZ Date: Wed, 22 Jul 2009 16:23:03 +0200 Subject: [PATCH] Initial commit --- modules/jhead/helpers/jhead_event.php | 53 +++++++++++++++++++++++ modules/jhead/helpers/jhead_installer.php | 33 ++++++++++++++ modules/jhead/module.info | 3 ++ 3 files changed, 89 insertions(+) create mode 100644 modules/jhead/helpers/jhead_event.php create mode 100644 modules/jhead/helpers/jhead_installer.php create mode 100644 modules/jhead/module.info diff --git a/modules/jhead/helpers/jhead_event.php b/modules/jhead/helpers/jhead_event.php new file mode 100644 index 00000000..260189ca --- /dev/null +++ b/modules/jhead/helpers/jhead_event.php @@ -0,0 +1,53 @@ +is_photo()) { + return; + } + + // Locate jhead + if ( ! is_file($path = exec('which jhead'))) { + // @todo throw an exception ? + Kohana::log('error', 'jhead is not installed'); + } + $binary = str_replace('\\', '/', realpath(dirname($path))); + $binary .= '/jhead'; + $binary .= (PHP_SHLIB_SUFFIX === 'dll') ? '.exe' : ''; + + if ( ! is_file($binary)) { + // @todo throw an exception ? + Kohana::log('error', 'Unable to locate jhead binary'); + } + + // Invoke jhead + if ($error = exec(escapeshellcmd($binary).' -q -autorot '.$item->file_path())) { + // @todo throw an exception ? + Kohana::log('error', 'Error during execution of jhead'); + } + + // Update item + $image_info = getimagesize($item->file_path()); + $item->width = $image_info[0]; + $item->height = $image_info[1]; + $item->save(); + } +} diff --git a/modules/jhead/helpers/jhead_installer.php b/modules/jhead/helpers/jhead_installer.php new file mode 100644 index 00000000..ed2bb243 --- /dev/null +++ b/modules/jhead/helpers/jhead_installer.php @@ -0,0 +1,33 @@ +