From e06da1d7c35b2117d2086ee0dc277b3383a6cedc Mon Sep 17 00:00:00 2001 From: David Rothstein Date: Sun, 3 Jul 2016 17:07:16 -0400 Subject: [PATCH] Issue #1116326 by s_leu, yannickoo, dawehner, nod_, pwolanin, David_Rothstein, ksenzee, realityloop, miro_dietiker, broeker, mariagwyn, Christian DeLoach: Support admin overlay in exposed forms --- CHANGELOG.txt | 3 +++ modules/overlay/overlay.module | 14 ++++++++++++++ 2 files changed, 17 insertions(+) diff --git a/CHANGELOG.txt b/CHANGELOG.txt index 830a0aef5d9..ce884443448 100644 --- a/CHANGELOG.txt +++ b/CHANGELOG.txt @@ -47,6 +47,9 @@ Drupal 7.50, xxxx-xx-xx (development version) broke contributed modules that override the "admin/people" page. - Fixed a bug which caused ip_address() to return nothing when the client IP address and proxy IP address are the same. +- Made method="get" forms work inside the administrative overlay. The fix adds + a new hidden field to these forms when they appear inside the overlay (minor + data structure change). Drupal 7.44, 2016-06-15 ----------------------- diff --git a/modules/overlay/overlay.module b/modules/overlay/overlay.module index 7b2fc939390..7e54734ebf6 100644 --- a/modules/overlay/overlay.module +++ b/modules/overlay/overlay.module @@ -78,6 +78,20 @@ function overlay_theme() { ); } +/** + * Implements hook_form_alter(). + */ +function overlay_form_alter(&$form, &$form_state) { + // Add a hidden element to prevent dropping out of the overlay when a form is + // submitted inside the overlay using a GET method. + if (isset($form['#method']) && $form['#method'] == 'get' && isset($_REQUEST['render']) && $_REQUEST['render'] == 'overlay' && !isset($form['render'])) { + $form['render'] = array( + '#type' => 'hidden', + '#value' => 'overlay', + ); + } +} + /** * Implements hook_form_FORM_ID_alter(). */