Mobile Style Selector

Статус
В этой теме нельзя размещать новые ответы.

Serg1234

Заблокирован
Сообщения
70
Реакции
38
Баллы
8,115
Ищу исполнителя, для написания плагина, благодаря которому выбор стиля авторизованного пользователя, будет сохраняться не в бд, а в куки и браться соответственно оттуда же.
Для чего это нужно? Форум используется разными девайсами, для телефона мобильный стиль, для пк стандартный. Есть плагин Mobile Style Selector который меняет стиль автоматически, но есть проблема. Если ты авторизованный пользователь, и вручную меняешь стиль на телефоне на мобильный, это записывается в бд, и на пк он тоже становится мобильным, потому что форум берет данные о стиле тоже из бд. Соответственно, выбрав на пк стандартную версию, на телефоне тоже получаем стандартную, это мягко говоря бесит, каждый раз переключать. Буду рад помощи в данном вопросе, о цене договоримся.
 
Последнее редактирование:
Прекрасный раздел Ищу исполнителя чтобы создать там тему, потом забить и сделать самому. Второй заказ игнорируется.
 
Код:
                //isMobile & isMember
                XenForo_Helper_Cookie::setCookie('mobile_style_id', $this->_input->inRequest('style_id'), 86400 * 365);
Вообще, как я вижу он и так пишет стиль в куки. В базе он меняет стиль только если вы сами его себе сменили, но это уже на стороне движка. а не плагина. Собственно как понимаю проблема в том, что стиль не меняется автоматом и надо менять руками, откуда вытекает логичный вопрос: на чем проверяете, что за девайс и браузер?
 
Стиль прекрасно меняется на мобильный и обратно автоматически до тех пор пока не поменял стиль вручную. Но проблема не в том, что стиль не меняет автоматом и что нужно менять руками. Проблема в том, где движок хранит это. Разумеется, если ты сам поменял стиль, то плагин и не должен ничего автоматом менять иначе в чем смысл смены вручную? Проблема, подчеркну еще раз, в способе хранения. Мне нужно, чтобы при назначении стиля на одном девайсе, он не назначался на остальных. То есть в базе может быть просто дефолный стиль, а если есть куки, то значение стиля в них, должно быть приоритетнее того что в базе.
 
Последнее редактирование:
Serg1234, плагин ставит куку, если определил что девайс мобильный. А если вы меняете руками - то меняете в базе, и меняете вы уже на стороне движка. Я поэтому и спросил что за девайс и браузер у вас.

Вообще глянул код дополнения - оно работает только если вот это установлено: Browser Detection (Mobile/MSIE) - установите его, тогда должно корректно мобильные браузеры определять и стиль ставить само.
 
  • Мне нравится
Реакции: Hope
Exile, плагин то работает исправно, так как и должен работать. На всех девайсах и в любых браузерах (тестировал действительно почти везде), претензий к работе плагина нет. Проблема в том, что движок хранит ид выбранного стиля в БД.

Я приведу вам пример, чтобы было понятнее. Если пользователь не авторизован, то есть гость, и впервые зашел, то есть не имеет кук с информацией о стиле, то плагин поставит такой стиль, какое устройство. После этого, гость меняет вручную стиль на ПК, но на телефоне при этом стиль не меняется, потому что он изменен только в куках, локально. А вот авторизованные, только через базу получают иформацию о стиле, и это большая проблема.

установите его, тогда должно корректно мобильные браузеры определять
С определением мобильных браузеров нет проблем. Проблема в другом.

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

Я не знаю как еще объяснить :-)

В общем задача заставить движок хенфоро хранить стиль в куках, и читать оттуда же. Для гостей уже так. Нужно клонировать это и для авторизованных.

Формулировка ТЗ такая: При установке стиля авторизованным пользователем, движок должен писать это значение не в базу, а в cookie. При получении информации о стиле пользователя, движок должен сначала проверять информацию о стиле в cookie, и если там такой информации нет, брать значение с базы.
 
В общем задача заставить движок хенфоро хранить стиль в куках, и читать оттуда же. Для гостей уже так. Нужно клонировать это и для авторизованных.
Ну тогда вообще не надо было упоминать тот плагин, это аддон к движку.
 
В общем set уже нашел где. Осталось get найти и проблема будет решена. Правда хардкодом, на плагины знаний не хватит.

library/XenForo/ControllerPublic/Misc.php
PHP:
if ($visitor['user_id'])
            {
                $dw = XenForo_DataWriter::create('XenForo_DataWriter_User');
                $dw->setExistingData($visitor['user_id']);
                $dw->set('style_id', $styleId);
                $dw->save();

                XenForo_Helper_Cookie::deleteCookie('style_id');
            }
            else
            {
                XenForo_Helper_Cookie::setCookie('style_id', $styleId, 86400 * 365);
            }

Однако, с get-ом проблема.

Точно никто не поможет? Заказ платный.

UPDATE:
Тему можно удалять, сделал сам.
 
Статус
В этой теме нельзя размещать новые ответы.
Современный облачный хостинг провайдер | Aéza

Похожие темы

Назад
Сверху Снизу