private function storeBackendReferer(Request $request)
{
if (!$this->canModifyBackendSession($request)) {
return;
}
$key = $request->query->has('popup') ? 'popupReferer' : 'referer';
$refererId = $request->attributes->get('_contao_referer_id');
$referers = $this->prepareBackendReferer($refererId, $this->session->get($key));
$ref = $request->query->get('ref', '');
// Move current to last if the referer is in both the URL and the session
if ('' !== $ref && isset($referers[$ref])) {
$referers[$refererId]['last'] = $referers[$ref]['current'];
}
// Set new current referer
$referers[$refererId]['current'] = $this->getRelativeRequestUri($request);
$this->session->set($key, $referers);
}