Index: jlightbox.module
===================================================================
RCS file: /cvs/drupal/contributions/modules/jlightbox/jlightbox.module,v
retrieving revision 1.9
diff -u -r1.9 jlightbox.module
--- jlightbox.module	15 Oct 2008 08:14:30 -0000	1.9
+++ jlightbox.module	26 Feb 2009 10:50:27 -0000
@@ -97,7 +97,7 @@
   if (!isset($item['fid'])) {
     return '';
   }
-  $file = _imagefield_file_load($item['fid']);
+  $file = field_file_load($item['fid']);
   $item = array_merge($item, $file);
   if (strpos($formatter, 'jlightbox][') !== FALSE) {
     list($module, $namespace, $type) = explode('][', $formatter);
@@ -123,11 +123,43 @@
  * Implementation of hook_theme().
  */
 function jlightbox_theme() {
-  return array(
-    'imagefield_jlightbox' => array(
+  $theme = array();
+  
+  $rules = array();
+  // ImageCache v2 API.
+  if (function_exists('imagecache_presets')) {
+    $presets = imagecache_presets();
+    foreach ($presets as $preset_id => $preset_info) {
+      $rules[$preset_id] = $preset_info['presetname'];
+    }
+  }
+  // ImageCache v1 API (deprecated).
+  else {
+    $rules = _imagecache_get_presets();
+  }
+  foreach ($rules as $ruleid => $rulename) {
+    $theme['jlightbox_formatter_jlightbox]['. $rulename .'][gallery'] = array(
+      'arguments' => array('element' => NULL),
+      'function' => 'theme_jlightbox_formatter'
+    );
+    $theme['jlightbox_formatter_jlightbox]['. $rulename .'][single'] = array(
+      'arguments' => array('element' => NULL),
+      'function' => 'theme_jlightbox_formatter'
+    );
+  }
+  $theme['imagefield_jlightbox'] = array(
       'arguments' => array('namespace' => '', 'formatter' => NULL, 'field' => array(), 'item' => array(), 'type' => '', 'attributes' => array()),
-    ),
-  );
+    );
+  return $theme;
+}
+
+/**
+ * Implementation of theme_jlightbox_formatter().
+ */
+function theme_jlightbox_formatter($element) {
+  if (isset($element['#item']['nid']) && $node = node_load($element['#item']['nid'])) {
+    return jlightbox_field_formatter($element['#field_name'], $element['#item'], $element['#formatter'], $node);
+  }
 }
 
 /**
