There may be a better way of doing this, but...
Had the situation where I had an admin page (set up to appear in an overlay) on which there were other links to forms. The problem was that when I clicked "Submit" on one of these forms it went back to the original page and not the previous overlay page.
If there is a destination in drupal_get_destination() this takes precedence over any form setting. So I needed to somehow force this to be what I wanted. The solution is relatively easy though might be considered a bit hacky.
What you need to do is this:
$_GET['destination'] = $_GET['q'];
which forces the current page to be the one you go back to. But this won;t always work because if drupal_get_destination() has already been called the destination will now be held in drupal_static(). So what we actually need is this:
drupal_static('drupal_get_destination', NULL, TRUE);
$_GET['destination'] = $_GET['q'];
This wipes out any older version and ensures you get what you want.
No comments:
Post a Comment