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(