Index: quicktabs.module =================================================================== RCS file: /cvs/drupal-contrib/contributions/modules/quicktabs/quicktabs.module,v retrieving revision 1.10.2.49 diff -u -p -r1.10.2.49 quicktabs.module --- quicktabs.module 31 Jan 2009 22:05:12 -0000 1.10.2.49 +++ quicktabs.module 6 Feb 2009 00:05:14 -0000 @@ -318,7 +318,8 @@ function _quicktabs_construct_tab_attrib case 'view': if (module_exists('views')) { if ($tab['args'] != '') { - $details = array($tab['vid'], $tab['display'], str_replace(',', '-', $tab['args'])); + $args = _quicktabs_get_views_args($tab['args']); + $details = array($tab['vid'], $tab['display'], implode('-', $args)); } else { $details = array($tab['vid'], $tab['display']); @@ -480,10 +481,7 @@ function quicktabs_render_tabpage($tab) if (module_exists('views')) { $args = array(); if ($tab['args'] != '') { - $args_array = explode(',', $tab['args']); - foreach ($args_array as $arg) { - $args[] = trim($arg); - } + $args = _quicktabs_get_views_args($tab['args']); } $func_args = array_merge(array($tab['vid'], $tab['display']), $args); $output = call_user_func_array('views_embed_view', $func_args); @@ -560,11 +558,9 @@ 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); - } + $args = _quicktabs_get_views_args($tab['args']); // We need to pass view details to js in case there is ajax paging. $settings = array( 'views' => array( @@ -584,3 +580,20 @@ function _quicktabs_prepare_views($tabs) } } } + +/** + * Helper function to create an array of view args based on the + * comma-separated list of args entered for the tab. + */ +function _quicktabs_get_views_args($tab_args) { + $args = array(); + $args_array = explode(',', $tab_args); + foreach ($args_array as $arg) { + $arg = trim($arg); + if (strpos($arg, '%') === 0) { + $arg = arg(substr($arg, 1)); + } + $args[] = $arg; + } + return $args; +} \ No newline at end of file Index: includes/admin.inc =================================================================== RCS file: /cvs/drupal-contrib/contributions/modules/quicktabs/includes/Attic/admin.inc,v retrieving revision 1.1.2.38 diff -u -p -r1.1.2.38 admin.inc --- includes/admin.inc 22 Jan 2009 01:48:32 -0000 1.1.2.38 +++ includes/admin.inc 6 Feb 2009 00:05:15 -0000 @@ -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', Index: js/quicktabs.js =================================================================== RCS file: /cvs/drupal-contrib/contributions/modules/quicktabs/js/quicktabs.js,v retrieving revision 1.3.2.13 diff -u -p -r1.3.2.13 quicktabs.js --- js/quicktabs.js 23 Jan 2009 01:10:07 -0000 1.3.2.13 +++ js/quicktabs.js 6 Feb 2009 00:05:15 -0000 @@ -91,12 +91,8 @@ 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 = tab.tabDetails[5] ? tab.tabDetails[5].replace(/-/g, '/') : ''; var viewData = { 'view_name': tab.tabDetails[3], 'view_display_id': tab.tabDetails[4], @@ -164,4 +160,4 @@ var quicktabsClick = function() { Drupal.theme.prototype.quicktabsResponse = function(tab, result) { var newDiv = tab.tabType == 'view' ? '
' : '
' + result['data'] + '
'; return newDiv; -}; +};