Jump to content
Sign in to follow this  
YuriBtr

Альтернативная смена скинов

Recommended Posts

Не секрет, что существующая система смены скина на сайте страдает недостатками. Один из них это то, что смена происходит по запросу типа POST. И после загрузки страницы, ее просто обновить нельзя - например в FireFox появляется сообщение:

Цитата

"Чтобы отобразить эту страницу, Firefox должен отправить информацию для повторения ранее произведённого действия (например, запрос на поиск или онлайн-покупка)."

Также нельзя ограничить список выводимых шаблонов для переключения, дать им псевдонимы и сделать красивый переключатель. Вобщем я пытаюсь переделать систему изменения скинов под себя, и столкнулся с тем, что если просто изменить куку с именем dle_skin на другой шаблон, и запросить страницу по GET, то смены шаблона не произойдет (((

 

Получается, что необходимо обязательно отправлять POST запрос на сервер с именем нового скина. Мне не понятно, зачем это делать (сервер привязывает выбранный мной шаблон к моей сессии?), ведь нужное мне имя шаблона передается каждый раз в куке dle_skin. Почему бы серверу не брать значение dle_skin именно из куки?

 

P.S.

Сам написал, сам ответил:

1. Текущий подход нужен для того, чтобы не было откатов к прежнему шаблону, если сайт открыт одновременно в нескольких вкладках браузера. Так я поменяю куку в одной вкладке, а в той, что была открыта ранее, кука останется старой, и при любом переходе в этой вкладке старый шаблон вернется сам собой.

2. Текущий подход хорош для оптимизации - накладные расходы в каждом запросе на проверку изменился ли скин в куке, превышают пользу от смены скина через куку.

 

Вопрос снимается, тему можно закрывать. Запрос на смену куки буду пробовать делать в отдельном AJAX POST запросе.

Edited by YuriBtr

Share this post


Link to post
Share on other sites
6 часов назад, YuriBtr сказал:

Также нельзя ограничить список выводимых шаблонов для переключения, дать им псевдонимы и сделать красивый переключатель. Вобщем я пытаюсь переделать систему изменения скинов под себя

С чего это вдруг нельзя? Не пользуйтесь стандартными тегами DLE, а делайте свое оформление на чистом HTML таким каким нужно, главное это послать правильные параметры потом на сервер, и все будет работать.

 

6 часов назад, YuriBtr сказал:

и запросить страницу по GET, то смены шаблона не произойдет (((

Неверное утверждение. DLE принимает как POST так и GET, ему без разницы как вы послали данные в этом вопросе. И если у вас не работает, значит некорректные данные были посланы на сервер.

 

 

  • Thanks 1

Share this post


Link to post
Share on other sites
7 часов назад, YuriBtr сказал:

и запросить страницу по GET, то смены шаблона не произойдет

/index.php?action_skin_change=yes&skin_name=NAME

 

  • Thanks 1

Share this post


Link to post
Share on other sites
1 час назад, celsoft сказал:

Неверное утверждение. DLE принимает как POST так и GET, ему без разницы как вы послали данные в этом вопросе. И если у вас не работает, значит некорректные данные были посланы на сервер.

Вы не поняли. По GET запросу я просто получаю страницу. А вот насчет идеи по отправке GET запроса на смену скина, спасибо. Попробую.

Share this post


Link to post
Share on other sites
В 09.12.2018 в 22:30, YuriBtr сказал:

буду пробовать делать в отдельном AJAX POST запросе.

Удалось сделать смену шаблона таким методом?

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

×
×
  • Create New...