Отличить JS pop-up от главного окна

Ямерт

The Old One
Отличить JS pop-up от главного окна

Привет!

Есть следующая проблема.
В системе предусмотрено динамическое подключение графического дизайна. В сессию запихивается код графической схемы ($_SESSION['myscheme'] = 'blue_footer'), и компонент View, учитывая эту текущую схему, подключает нужные шаблоны. Сделано это для партнёрских программ - то есть у одного, скажем, на экране будет синий футер, у другого вообще нет ни хэдэра ни футера. Всё замечательно и сказочно.

Но. Заказчики теперь хотят, чтобы в этой же системе открывалось поп-ап окошко, в котором будет она же, но только тоже с другим дизайном. И вот тут проблема. Если в поп-апе я поставлю $_SESSION['myscheme'] = 'popup_style', то это также будет установлено и в главном окне. А этого надо избежать. Можно, конечно, таскать имя схемы в УРЛе, но для этого придётся переколбашивать СТОЛЬКО кода, что просто аллес капут. У меня всё идёт через index.php, партнёрские программы идут на другой PHP, который после установки необходимой инфы в сессию редиректит всё на тот же index.php, где таскается только код контроллера запроса.
Поэтому наиболее простой вариант - это как-то отличать поп-ап от главного окна. Главная проблема в том, что домен-то один и тот же.

У меня такие идеи:
1) через JS ставить в pop-up'e COOKIE - document.setcookie. Таким образом, поставится он только в поп-апе, не так ли?
2) начинать в поп-апе новую сессию. Только вот сохранится ли старая в главном окне?

У кого какие есть идеи?
 

Кром

Новичок
А почему не сделать просто:
$_SESSION['myscheme'] = 'blue_footer',
$_SESSION['mypopupscheme'] = 'popup_style',
 

crocodile2u

http://vbolshov.org.ru
А что если попап будет работать не с index.php, а с другим файлом, который, собсно, будет копией index.php, за исключением механизма определения цветовой схемы. Тогда можно просто завести в сессии еще одну переменную, отвечающую за цветовую схему попап-окна. Ставить куки с пом. JS - все-таки сильно зависит от пользователя. С новой сессией, имхо, будут проблемы. Точно не знаю, но, по-моему, передавать два разных сида в разных окнах браузер не сможет.

2 Кром:
просто завести еще одну переменную в сессии вряд ли поможет, ведь и попап, и основное окно - один и тот же index.php, а нужно еще различить, какую из переменных сессии использовать
 

Ямерт

The Old One
Потому что скрипты-то одни и те же.
Поэтому если я напишу
если ($_SESSION['mypopupscheme'])
использовать_$_SESSION['mypopupscheme']
то это будет работать и в родительском окне - там ведь та же сессия.
 

Gas

может по одной?
Если в pop-up'е только одна страница будет показваться почему бы просто гетом не передавать схему.

Если какой-то раздел с навигацией, то гетом + создание новой сессии и в неё писать схему.
 
Сверху