Всем доброго времени суток!
Вопрос вообщем-то отражён в теме, опишу чуть подробнее.
Есть 2 темы - мобильная и десктопная. Сабдомены использовать правильно, но не могу разобраться как, тыкал и Domain и SubDomain модули, пока ничего.
Временно нужно просто переключать тему в зависимости от девайса. Мониторил кучу разных модулей от простейшего Mobile Theme до theme key и прочих. У всех есть один большой минус - я не могу по нажатию на ссылку "перейти на основную версию сайта" сделать так, чтобы в дальнейшем использовалась только она.
Отсюда вопрос - как можно программно сменить тему, кроме как переписывать значение default_theme в БД и правка напрямую в settings.php?
Комментарии
нынче в моде @media для этих дел.
а плодить дубли тем - нешарман
это всё замечательно, если бы суть была просто в смене стиля)
Но проблема то в том, что там помимо стилей ещё и некоторые ТМ, вьюхи и прочие непотребства специально для мобильной версии переделывались)
но:
т.е две версии сайта?
ну так и делайте попросту:
к примеру мобильную на субдомен - аля example.com и m.example.com,
ежели функ-л различен.
То есть всё же придётся копаться с поддоменами...)
Спасибо за быстрый ответ) Будем разбираться, значит)
не нужно становиться рабом обстоятельств, и в угоду им, да вопреки здравому смыслу изменять первоначальные цели.
адаптивность ресурса к различным платформам,
быстродействие ресурса - одни из его немаловажных жизненных факторов.
ну и не может, в вашем случае, настолько в разы отличаться функционал для различных платформ, дабы оправдать существование нескольких версий ресурса.
имхо:
чем городить в этом случае мультисайтинг (с общими пользователями и материалами),
лучше поработать с адаптивным отображением.
тобишь - существующие темы(а так-же вью и иные приблуды) взять, да и переписать; а не цепляться за них, как за единственно верное, только-лишь по тому, что оно уже есть.
не забывать про DRY
вот как-то так)
Прям озадачили меня)
Спасибо, что всё так подробно и доходчиво объяснили!)
Теперь нужно будет думать, что сделать будет быстрее, поскольку мобильную тему делал другой программер, а мне лишь "выпала честь" научить их дружить друг с другом)
И больше всего беспокоит вопрос, а перейдёт ли с мобильника на полную версию, если будет реализовано через @media.
@media это свойство CSS. То есть дизайн один и тот же, но трансформируется от типа экрана. Пример: http://sl-7.ru (уменьшай ширину браузера и поймешь)
Либо ковыряйте адаптивные темы типо https://www.drupal.org/project/bootstrap
Попробуйте zen - отличная тема, интеграция с drush, адаптивный дизайн - то что вам подойдёт, и куча других прелестей
Спасибо за ответы) что такое @media знаю - верстал в своё время адаптивку) от того и вопрос, насколько круто будет переподключать css файлы программно, дабы с мобильника можно было зайти на фул-версию. Другие темы не помогут - там уже 2 отдельных дизайна свёрстаны и работают, вопрос именно в переключении между ними)
Друзья, а как вы думаете, насколько реально переопределить функцию init_theme в template.php? В стандартной функции нет возможности передавать туда имя своей темы, интересно было бы попробовать.
global $custom_theme
https://www.drupal.org/node/224333#custom_theme
спасибо огромное! Прям то, что нужно было!!!)
Не пробуйте никогда Zen!)) Серьёзно. Хоть и адаптивная... и даже есть свой маленький но Grid. Это вообще не спасает. Для изучения адаптивности можно на разок. Но реальные темы на ней делать не вариант.
Не соглашусь. Попробовать стоит. Главное разобраться, посмотрите только какое количество загрузок у неё
Попробовать стоит - это и я написал.
Плохо когда ты подвержен стадному инстинкту. Ну вот по статистике Joomla популярнее Drupal в десятки раз, но бл**ть это не значит что она лучше. Она просто стала популярной ранее.
Да это всё поняно )))
Просто у меня было так: попробовал сначала zen - тоже не понравилась. После ооочень продолжительного времени снова вернулся, изучил более глубоко - теперь делаю только на zen. По поводу загрузок довод, согласен, не убеждает, но вот 128K сайтов, которые сообщают об установленном zen заставляют задуматься. К тому же эта тема очень хорошо и понятно документирована. Хотя, может быть вы и правы, раз вы уже использовали zen - вам есть с чем сравнивать, я же, увы, bootstrap не юзал.
Решал подобную задачу под wordpress.
Логика была следующей:
- если мобильное устройство то основная тема налету менялась на мобильную. но нюанс в том что мобильная тема не устанавливалась как основная, а подменялась только для конкретного пользователя. поскольку если ее ставить в curent то она будет отображатся и для всех остальных пользователей.
- для переключения на десктоп/моб использовал кукисы.
Я думаю такое на дорупале тоже возможно реализовать.
так и пытаюсь делать )
вот только очень странная проблема возникла - не хотят с модулем работать ни $_COOKIES ни $_SESSIONS. Вообще ни в какую. Не понимаю в чём дело.
Вообщем, не могу разобраться в чём дело.
Пытаюсь запилить сессии для мониторинга, что человек нажал.
Создал свой модуль. По умолчанию, если человек заходит с мобильника, ему выдаётся соответствующая версия, это работает нормально. Далее, при нажатии на "Полная версия сайта" его перебрасывает на фульную версию (с помощью GET запроса), а в модуле в function switch_devices_init() идёт проверка, что если GET запрос нужный, то $_SESSION['version']='desktop' и меняем тему. Это тоже работает, а page.tpl основной темы принимаю сессионную переменную - всё ок. В модуле же стоит проверка, если переменная в сессии равна desktop, то выходить из функции, то есть - оставлять ту тему, которая включилась ранее. Пробую перейти по ссылке с главной - снова перебрасывает на мобильную версию, и, что действительно странно, в page.tpl мобильной версии принимаю ту же сессионную переменную - а её там нет.
P.S. Пользователь с uid=0 есть, таблица сессий была восстановлена через TRUNCATE