diff --git a/sites/all/modules/contrib/views/plugins/views_plugin_display.inc b/sites/all/modules/contrib/views/plugins/views_plugin_display.inc index b338043..41caa00 100644 --- a/sites/all/modules/contrib/views/plugins/views_plugin_display.inc +++ b/sites/all/modules/contrib/views/plugins/views_plugin_display.inc @@ -398,7 +398,7 @@ class views_plugin_display extends views_plugin { 'group_by' => array('group_by'), 'query' => array('query'), 'use_more' => array('use_more', 'use_more_always', 'use_more_text'), - 'link_display' => array('link_display', 'link_url'), + 'link_display' => array('link_display', 'link_url', 'link_url_query'), // Force these to cascade properly. 'style_plugin' => array('style_plugin', 'style_options', 'row_plugin', 'row_options'), @@ -466,6 +466,7 @@ class views_plugin_display extends views_plugin { 'link_display' => TRUE, 'link_url' => '', + 'link_url_query' => '', 'group_by' => TRUE, 'style_plugin' => TRUE, @@ -547,6 +548,9 @@ class views_plugin_display extends views_plugin { 'link_url' => array( 'default' => '', ), + 'link_url_query' => array( + 'default' => '', + ), 'group_by' => array( 'default' => FALSE, 'bool' => TRUE, @@ -1748,6 +1752,12 @@ class views_plugin_display extends views_plugin { '#description' => t('A Drupal path or external URL the more link will point to. Note that this will override the link display setting above.') . $output, '#dependency' => array('radio:link_display' => array('custom_url')), ); + $form['link_url_query'] = array( + '#type' => 'textfield', + '#title' => t('Custom query'), + '#default_value' => $this->get_option('link_url_query'), + '#description' => t('Custom key/value-pairs (without any URL-encoding) to append to the link. EG: param1=value1¶m2=value2. If any key is present as a filter in current view it will be override.') . $output, + ); break; case 'analyze-theme': $form['#title'] .= t('Theming information'); @@ -2281,6 +2291,7 @@ class views_plugin_display extends views_plugin { case 'link_display': $this->set_option('link_url', $form_state['values']['link_url']); + $this->set_option('link_url_query', $form_state['values']['link_url_query']); case 'title': case 'css_class': case 'display_comment': @@ -2483,6 +2494,26 @@ class views_plugin_display extends views_plugin { if (!empty($this->view->exposed_raw_input)) { $url_options['query'] = $this->view->exposed_raw_input; } + if($this->get_option('link_url_query')) { + // Parse custom query + $queryFields = preg_split('/[&;]/', $this->get_option('link_url_query')); + $link_url_query = array(); + foreach($queryFields as $fields) { + $keyvalue = preg_split('/=/', $fields); + if(isset($keyvalue['1'])) { + $link_url_query[$keyvalue['0']] = $keyvalue['1']; + } + else { + $link_url_query[$keyvalue['0']] = null; + } + } + if(!isset($url_options['query'])) { + $url_options['query'] = $link_url_query; + } + else { + $url_options['query'] = array_merge($url_options['query'], $link_url_query); + } + } $theme = views_theme_functions('views_more', $this->view, $this->display); $path = check_url(url($path, $url_options)); -- 1.7.10.msysgit.1