summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--modules/overlay/overlay.install3
-rw-r--r--modules/overlay/overlay.module7
2 files changed, 9 insertions, 1 deletions
diff --git a/modules/overlay/overlay.install b/modules/overlay/overlay.install
index 9d37e9b62..d70fc7c6d 100644
--- a/modules/overlay/overlay.install
+++ b/modules/overlay/overlay.install
@@ -14,6 +14,7 @@
*/
function overlay_enable() {
if (strpos(current_path(), 'admin/modules') === 0) {
- drupal_goto('<front>', array('fragment' => 'overlay=admin/modules'));
+ // Flag for a redirect to <front>#overlay=admin/modules on hook_init().
+ $_SESSION['overlay_enable_redirect'] = 1;
}
}
diff --git a/modules/overlay/overlay.module b/modules/overlay/overlay.module
index 0162b583b..89ff57b9d 100644
--- a/modules/overlay/overlay.module
+++ b/modules/overlay/overlay.module
@@ -59,6 +59,13 @@ function overlay_init() {
// Only act if the user has access to administration pages. Other modules can
// also enable the overlay directly for other uses of the JavaScript.
if (user_access('access overlay')) {
+ // After overlay is enabled on the modules page, redirect to
+ // <front>#overlay=admin/modules to actually enable the overlay.
+ if (isset($_SESSION['overlay_enable_redirect']) && $_SESSION['overlay_enable_redirect']) {
+ unset($_SESSION['overlay_enable_redirect']);
+ drupal_goto('<front>', array('fragment' => 'overlay=' . current_path()));
+ }
+
if (isset($_GET['render']) && $_GET['render'] == 'overlay') {
// If this page shouldn't be rendered here, redirect to the parent.
if (!path_is_admin($_GET['q'])) {