? exhibit_style-plugin-extensions_847492_1.patch
Index: exhibit.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/exhibit/exhibit.module,v
retrieving revision 1.10
diff -u -p -r1.10 exhibit.module
--- exhibit.module	1 May 2009 05:09:27 -0000	1.10
+++ exhibit.module	7 Jul 2010 16:36:54 -0000
@@ -425,8 +425,9 @@ function exhibit_feed_load($fid) {
         // Check each display, add those using the Exhibit JSON style plugin
         foreach (array_keys($view->display) as $id) {
           $plugin = views_fetch_plugin_data('display', $view->display[$id]->display_plugin);
+          $style_plugin_ids = exhibit_get_style_plugins();
           $display_options = $view->display[$id]->display_options;
-          if ($plugin['handler'] == 'views_plugin_display_feed' && $display_options['style_plugin'] == 'exhibit_json') {
+          if ($plugin['handler'] == 'views_plugin_display_feed' && in_array($display_options['style_plugin'], $style_plugin_ids)) {
             $view_feed_id = $view->vid . '_' . $id;
             if ($view_feed_id == $fid) {
               return array('fid' => $view_feed_id,
@@ -463,8 +464,9 @@ function exhibit_get_feeds($key = NULL) 
       // Check each display, add those using the Exhibit JSON style plugin
       foreach (array_keys($view->display) as $id) {
         $plugin = views_fetch_plugin_data('display', $view->display[$id]->display_plugin);
+        $style_plugin_ids = exhibit_get_style_plugins();
         $display_options = $view->display[$id]->display_options;
-        if ($plugin['handler'] == 'views_plugin_display_feed' && $display_options['style_plugin'] == 'exhibit_json') {
+        if ($plugin['handler'] == 'views_plugin_display_feed' && in_array($display_options['style_plugin'], $style_plugin_ids)) {
           $view_feed_id = $view->vid . '_' . $id;
           if ($key) {
             switch ($key) {
@@ -552,6 +554,17 @@ function exhibit_compact_item($item) {
   return $item;
 }
 
+function exhibit_get_style_plugins() {
+  $style_plugin_ids = array('exhibit_json');
+  $style_plugins = views_fetch_plugin_data('style');
+  foreach ($style_plugins as $style_plugin_id => $style_plugin) {
+    if ($style_plugin['parent'] == 'exhibit_json') {
+      $style_plugin_ids[] = $style_plugin_id;
+    }
+  }
+  return $style_plugin_ids;
+}
+
 //////////////////////////////////////////////////////////////////////////////
 // Theme callbacks
 
