? .DS_Store
? .viewsdisplaytabs.module.swp
? viewsdisplaytabs.patch
Index: viewsdisplaytabs.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/viewsdisplaytabs/viewsdisplaytabs.module,v
retrieving revision 1.1.2.4
diff -u -p -r1.1.2.4 viewsdisplaytabs.module
--- viewsdisplaytabs.module	29 Jul 2009 22:17:37 -0000	1.1.2.4
+++ viewsdisplaytabs.module	5 Oct 2009 17:10:43 -0000
@@ -1,5 +1,5 @@
 <?php
-// $Id: viewsdisplaytabs.module,v 1.1.2.4 2009/07/29 22:17:37 solipsist Exp $
+// $Id: viewsdisplaytabs.module,v 1.1.2.3 2009/07/29 21:51:01 solipsist Exp $
 
 /**
  * Copyright (C) 2009 imBridge NodeOne AB
@@ -68,8 +68,12 @@ function viewsdisplaytabs_preprocess_vie
   $empty = !(bool) count($view->result);
   $settings = variable_get('viewsdisplaytabs_settings', array());
   $show = ( $empty ? $empty && $settings['view_show_empty'][$view->name] == 1 : true );
-
-  if ($settings['view_enabled'][$view->name] == 1 && $show) {
+  
+  if ($settings['view_exclude_displays'][$view->name]) {
+    $excluded = in_array($view->current_display, $settings['view_exclude_displays'][$view->name]);
+  }
+  
+  if ($settings['view_enabled'][$view->name] == 1 && $show && !$excluded) {
     $selected_displays = $settings['view_displays'][$view->name];
 
     // Collect displays and build grouping array
@@ -126,7 +130,7 @@ function viewsdisplaytabs_preprocess_vie
 function theme__viewsdisplaytabs_admin($form) {
 
   // Overview table:
-  $header = array(t('Enabled'), t('Name'), t('Displays'), t('Default Active'), t('Show when empty'), t('Separator'), t('Throbber'), t('Edit'));
+  $header = array(t('Enabled'), t('Name'), t('Displays'), t('Exclude Displays'), t('Default Active'), t('Show when empty'), t('Separator'), t('Throbber'), t('Edit'));
 
   $view_list = $form['views']['view_list'];
 
@@ -136,6 +140,7 @@ function theme__viewsdisplaytabs_admin($
         drupal_render($view_list['view_enabled'][$key]),
         drupal_render($view_list['view_name'][$key]),
         drupal_render($view_list['view_displays'][$key]),
+        drupal_render($view_list['view_exclude_displays'][$key]),
         drupal_render($view_list['view_displays_default'][$key]),
         drupal_render($view_list['view_show_empty'][$key]),
         drupal_render($view_list['view_group_separator'][$key]),
@@ -209,7 +214,7 @@ function _viewsdisplaytabs_admin() {
 
   $form = array();
   $form[] = array(
-    '#value' => t("<p>Views Display Tabs exposes a view's displays as simple tabs which you can style as you like if you so choose.</p>"),
+    '#value' => t("<p>Views Display Tabs exposes a view's displays as links which you can then style as tabs if you so choose.</p>"),
   );
   $form['help'] = array(
     '#type' => 'fieldset',
@@ -227,6 +232,9 @@ function _viewsdisplaytabs_admin() {
 	<dt>Displays</dt>
 	<dd><p>Check the displays you want to expose as tabs. If no displays are checked, all tabs become displays.</p></dd>
 
+	<dt>Exclude Displays</dt>
+	<dd><p>Check the displays you don't want the tabs to be displayed in. If no displays are checked, all displays will show the selected tabs.</p></dd>
+	
 	<dt>Default Active</dt>
 	<dd><p>The 'default active' select field allows you to set a tab to be active by default. Doing this won't make the display associated with that tab load by default it will only <em>make it seem as if that display were loaded by default</em>.</p>
 	<p>This is useful as it will give the site's users the impression that one tab is already active. They will also conclude that what they see is a result of the filtering done with that tab and that they can return to that filtering again simply by clicking that tab.</p>
@@ -292,6 +300,19 @@ $form['views'] = array(
         '#default_value' => ( $settings['view_displays'][$vid] ? $settings['view_displays'][$vid] : array() ),
         '#options' => ( is_array($view_data->displays) ? $view_data->displays : array() ),
       );
+      
+      $view_exclude_displays_fieldset = array(
+        '#type' => 'fieldset',
+        '#title' => t('Exclude Displays'),
+        '#collapsed' => !(is_array($settings['view_exclude_displays'][$vid]) && count($settings['view_exclude_displays'][$vid])),
+        '#collapsible' => true
+      );
+
+      $view_exclude_displays_fieldset["view_exclude_displays_$vid"] = array(
+        '#type' => 'checkboxes',
+        '#default_value' => ( $settings['view_exclude_displays'][$vid] ? $settings['view_exclude_displays'][$vid] : array() ),
+        '#options' => ( is_array($view_data->displays) ? $view_data->displays : array() ),
+      );
 
       $view_displays_default = array(
         '#type' => 'select',
@@ -320,6 +341,7 @@ $form['views'] = array(
       $form['views']['view_list']['view_enabled'][$vid]["view_enabled_$vid"] = $view_enabled;
       $form['views']['view_list']['view_name'][$vid]["view_name_$vid"] = array('#value' => $view->name);
       $form['views']['view_list']['view_displays'][$vid]["view_displays_fieldset_$vid"] = $view_displays_fieldset;
+      $form['views']['view_list']['view_exclude_displays'][$vid]["view_exclude_displays_fieldset_$vid"] = $view_exclude_displays_fieldset;
       $form['views']['view_list']['view_displays_default'][$vid]["view_displays_default_$vid"] = $view_displays_default;
       $form['views']['view_list']['view_show_empty'][$vid]["view_show_empty_$vid"] = $view_show_empty;
       $form['views']['view_list']['view_group_separator'][$vid]["view_group_separator_$vid"] = $view_group_separator;
@@ -395,6 +417,14 @@ function _viewsdisplaytabs_admin_submit(
         }
       }
     }
+    elseif (preg_match('/view_exclude_displays_(.*)/i', $field, $result)) {
+      // We only save displays that have been checked, value is 1
+      foreach ($value as $display_name => $display_selected) {
+        if ($display_selected) {
+         $view_exclude_displays[$result[1]][$display_name] = $display_selected;
+        }
+      }
+    }
     elseif (preg_match('/view_group_separator_(.*)/i', $field, $result)) {
       $view_group_separator[$result[1]] = $value;
     }
@@ -405,6 +435,7 @@ function _viewsdisplaytabs_admin_submit(
   variable_set('viewsdisplaytabs_settings', array(
     'view_enabled' => $view_enabled,
     'view_displays' => $view_displays,
+    'view_exclude_displays' => $view_exclude_displays,
     'view_displays_default' => $view_displays_default,
     'view_show_empty' => $view_show_empty,
     'view_group_separator' => $view_group_separator,
