diff -urp quicktabs.orig/includes/admin.inc quicktabs/includes/admin.inc --- quicktabs.orig/includes/admin.inc 2009-01-22 18:35:22.000000000 +1030 +++ quicktabs/includes/admin.inc 2009-01-22 18:33:44.000000000 +1030 @@ -206,7 +206,7 @@ function _quicktabs_form($details) { '#size' => '40', '#required' => FALSE, '#default_value' => isset($details['args']) ? $details['args'] : '', - '#description' => t('Provide a comma separated list of arguments to pass to the view.'), + '#description' => t('Provide a comma separated list of arguments to pass to the view. You may use "%1" to obtain the second argument etc.'), ); $form['view']['get_displays'] = array( '#type' => 'submit', diff -urp quicktabs.orig/js/quicktabs.js quicktabs/js/quicktabs.js --- quicktabs.orig/js/quicktabs.js 2009-01-22 18:35:22.000000000 +1030 +++ quicktabs/js/quicktabs.js 2009-01-27 16:06:13.000000000 +1030 @@ -95,12 +95,7 @@ Drupal.quicktabs.tab.prototype.quicktabs if (ajax_path.constructor.toString().indexOf("Array") != -1) { ajax_path = ajax_path[0]; } - var args; - if (tab.tabDetails.length == 6) { - args = tab.tabDetails[5].replace(/-/g, '/'); - } else { - args = ''; - } + var args = Drupal.settings.views.ajaxViews[tab.qtid].view_args; var viewData = { 'view_name': tab.tabDetails[3], 'view_display_id': tab.tabDetails[4], @@ -168,4 +163,4 @@ var quicktabsClick = function() { Drupal.theme.prototype.quicktabsResponse = function(tab, result) { var newDiv = tab.tabType == 'view' ? '
' : '
' + result['data'] + '
'; return newDiv; -}; +}; diff -urp quicktabs.orig/quicktabs.module quicktabs/quicktabs.module --- quicktabs.orig/quicktabs.module 2009-01-22 18:35:22.000000000 +1030 +++ quicktabs/quicktabs.module 2009-01-27 16:05:26.000000000 +1030 @@ -321,7 +321,7 @@ function _quicktabs_construct_tab_attrib case 'view': if (module_exists('views')) { if ($tab['args'] != '') { - $details = array($tab['vid'], $tab['display'], str_replace(',', '-', $tab['args'])); + $details = array($tab['vid'], $tab['display'], str_replace(',', '-', str_replace('%', 'arg', $tab['args']))); } else { $details = array($tab['vid'], $tab['display']); @@ -485,7 +485,11 @@ function quicktabs_render_tabpage($tab) if ($tab['args'] != '') { $args_array = explode(',', $tab['args']); foreach ($args_array as $arg) { - $args[] = trim($arg); + $arg = trim($arg); + if (strpos($arg, '%') === 0) { + $arg = arg(substr($arg, 1)); + } + $args[] = $arg; } } $func_args = array_merge(array($tab['vid'], $tab['display']), $args); @@ -558,10 +562,15 @@ function _quicktabs_prepare_views($tabs) views_add_js('ajax_view'); views_add_css('views'); foreach ($tabs as $key => $tab) { + $args = array(); if ($tab['type'] == 'view') { $args_array = explode(',', $tab['args']); foreach ($args_array as $arg) { - $args[] = trim($arg); + $arg = trim($arg); + if (strpos($arg, '%') === 0) { + $arg = arg(substr($arg, 1)); + } + $args[] = $arg; } // We need to pass view details to js in case there is ajax paging. $settings = array(