Support for Drupal 7 is ending on 5 January 2025—it’s time to migrate to Drupal 10! Learn about the many benefits of Drupal 10 and find migration tools in our resource center.
To reproduce:
1. Disable overlay
2. Put an overlay URL like http://localhost/drupal7/#overlay=admin/modules in the browser address bar and press return
3. You will arrive at http://localhost/drupal7, when your clear intent is to arrive at http://localhost/drupal7/admin/modules
Since we know have two parallel URL spaces, it's important that mapping from one to the other be clean. Otherwise, URLs will break when interchanged via email, in documentation, or in posts.
Comments
Comment #1
casey CreditAttribution: casey commentedAs David_Rothstein suggested on redirecting overlay-style URLs in #663660: Is it a good idea to have two different types of URL for many administration functions in core?:
Problem is that the URL fragment is never sent to the server. Thus the only option to get this done would be a client-side one; Javascript. But that would mean we need to add that Javascript to any page. I don't really like that as that would be the first unconditionally added Javascript (without overlay being enabled).
Comment #2
shunting CreditAttribution: shunting commentedThen we have a broken system, in that URLs cannot be transparently interchanged between users. As I wrote:
That's especially unfortunate for a content management system and one, moreover, that was designed to be RESTful.
UPDATE I looked at the definition of critical bug, and there doesn't seem to be a case for bugs that render the system more difficult to use for people outside the the system ("email," "documentation"). Surely, however, the process of simply grabbing a URL off the browser's address bar and pasting it into content is ubiquitous. This bug makes that process problematic, every single time, because recipients can't trust that URLs they get will work.
Is that "normal"? I don't know. Is that "critical"? Not by the definition. Not to go all meta, but this problem seems to be identical with the problem of "negative externalities," where the system exports all its problems to the surrounding eco system....
Comment #3
jcisio CreditAttribution: jcisio commentedI think we can put this JS in drupal.js, not necessary in overlay module. About changing the name "overlay" to anything else (display? page?...), is it really necessary?
Comment #4
Damien Tournoud CreditAttribution: Damien Tournoud commentedBecause this requires to change the URL scheme of the overlay, it's too late for Drupal 7.
Comment #5
casey CreditAttribution: casey commented@jcisio or something like #885690: Reverse the overlay implementation (put the parent page in an iframe underneath the administrative page)
Comment #6
jcisio CreditAttribution: jcisio commentedNo, we don't need to change any in the URL scheme (as I suggested that such change is not necessary). This is a bug, and needs a simple fix (a new small JS code into drupal.js).
Comment #7
Damien Tournoud CreditAttribution: Damien Tournoud commentedNope, we are not putting overlay-specific code in
drupal.js
.Comment #8
shunting CreditAttribution: shunting commentedmore on related issues. See also Tim Bray. (This is not a syntactic -- "hash bang" -- issue. It's an issue of how and where and whether Drupal remains RESTful.) Bray writes:
We aren't doing this quite because we have two supposedly independent contracts, one of which is supposed to be a fallback for the other. Unfortunately, because the fail is not graceful, the contract is broken.
Comment #9
nod_Overlay is dead to D8 #2088121: Remove Overlay.