Мобильная версия сайта

Привет всем. Вопрос тем кто работал с копмонентом Mobile Detection
Тестирую компонент Mobile Detection, для моб. версии сайта. Отличный компонент, но хотелось бы чтобы была возможность заходить на моб. версию сайта самостоятельно.
То есть компонент работает, только если зайти на сайт с телефона, тогда моб версия активируется. Если перейти site.com/?browser=mobile на стационарном компе, он не включает моб версию.
Может кто знает, как сделать чтобы можно было путешествовать из мобильной версии в обчную без проблем?
Решение под катом
Решение по мобильной версии:
Качаем компонент tagstemplate-0.0.1-beta.transport.zip.
Переименовываем его соответственно в tagstemplate-0.0.1-beta.transport.zip
Pаливаем на сервер в папку /core/packeges/
Устанавливаем
В шаблоне все что будет мобильной версией заключаем в тэги
все что обычная версия сайта в тэги
Можно также добавить версию для слабовидящих заключив ее в тэги

UPD 25.12.2014:
Выводить чанки версий сайта лучше так:
<normal>
	[[!$[[!#COOKIE.ttTemplate:is=`normal`:or:is=``:or:if=`[[!#GET.theme]]`:is=`normal`:then=`.n.front`:else=``]]]]
</normal>
<mobile>
	[[!$[[!#COOKIE.ttTemplate:is=`mobile`:or:if=`[[!#GET.theme]]`:is=`mobile`:then=`.m.front`:else=``]]]]
</mobile>
<blind>
	[[!$[[!#COOKIE.ttTemplate:is=`blind`:or:if=`[[!#GET.theme]]`:is=`blind`:then=`.b.front`:else=``]]]]
</blind>
Чтобы не рендерилось 3 чанка сразу, а выбирался нужный.

/?theme=mobile — адрес для мобильной версии
/?theme=blind — адрес для версии для слабовидящих
/?theme=normal — обычная версия

Автор плагина: Виктор
Николай Загумённов
13 сентября 2014, 10:01
modx.pro
7
7 942
+1
Поблагодарить автора Отправить деньги

Комментарии: 28

Ганин Роман
13 сентября 2014, 16:23
+1
Google Chrome Dev Tools не подойдёт?

    Виктор
    13 сентября 2014, 19:42
    0
    там вроде ?browser=mobi

    Вообще у меня лежит допиленный под свои нужны Mobile Detection… но пока не до конца собранный в пакет((

    Если интересно плагин на событие OnWebPagePrerender и обновленный mdetect в assets/components/tagstemplate.

    Можно пакет скомпилировать и он тоже будет работать, но хочу параметры вынести из плагина, зачем то… видимо для опыта)
      Виктор
      13 сентября 2014, 19:54
      0
      Ой оказывается я их уже вынес и просто не сбросил коммит ;)))
      щас проверю отпишусь
    Мордынский Николай
    13 сентября 2014, 22:20
    0
    Хммм помниться прошлой зимой, пришлось пилить самому плагин на переключения шаблона а тут уже приложение есть норм.)) Раньше пакет модмобайл был но он умер…
      Мордынский Николай
      13 сентября 2014, 22:35
      0
      Василий, а вызов мобильной версии перепишет кеш десктопной или нет?.. На сколько я вникал в это дело народ в основном боролся за то что бы хранить паралельно кеши для разных устройств

      У меня было как, то так чтобы держать 2 кеша паралельно
      switch ($modx->event->name) {
          
          case 'OnWebPageInit':{
              
              require_once($modx->getOption('core_path').'components/modMobileSite/model/detectmobile.class.php');
              $mobileDetector= new DetectMobile($modx, $scriptProperties);
              session_start();
              
              if(!isset($_GET['switcher'])) {
                  $_SESSION['devise_type'] = $mobileDetector->detect_Mobile();
                  } else {
                  $_SESSION['devise_type'] = $_GET['switcher'];
                  }
              
              if($_SESSION['devise_type']) {
                  $modx->setOption('cache_resource_key', 'resource/'.$mobile_cache_key  = $modx->getOption('mobile_cache_key',$config,'mobile'));
                  $modx->setOption('mobile_detected', true);
              }
                  
              break;    
          }
          case 'OnLoadWebDocument':{
              if ($modx->getOption('mobile_detected')) {
                  
                  $mobile_tpl_prefix = $modx->getOption('mobile_tpl_prefix',$config,'mobile');
                  //получаем список стандартных шаблонов иделаем мпасив шаблон->моб.шаблон
                  foreach ( explode(",",$modx->getOption('modSite_tpls')) as $key=>$value) {
                      $tpls_arr[$value]=$mobile_tpl_prefix.'.'.$value;
                  };
                  
                  //получаем объект текущего ресурса и его шаблона
                  
                  $tpl_id = $modx->resource->get('template');
                  $tpl_object = $modx->getObject('modTemplate',array('id'=>$tpl_id));
                  
                  //проверка на то какая версия шаблона установлена сейчас - если текущий шаблон вернул мобильный шаблон то ставим мобильную версию
                  if($mobile_tpl_name=$tpls_arr[$tpl_object->templatename]) {
                       $mobile_tpl_object = $modx->getObject('modTemplate',array('templatename'=>$mobile_tpl_name));
                       $modx->resource->set('template',$mobile_tpl_object->id);
                  }
                  
              }
              
              break;    
          }
      }
        Василий Наумкин
        13 сентября 2014, 22:45
        0
        По идее, да — перепишет.

        Можно заменить системный modRequest своим, чтобы раскладывать кэш раздельно для обычной и мобильной версии. Вот этот метод надо расширить — он управляет загрузкой ресурса из кэша или БД.
        TITAN-UZ
        28 ноября 2014, 23:39
        0
        Как настроить ЧПУ для этих линков
          Николай Загумённов
          29 ноября 2014, 10:28
          0
          Через файл htaccess
            TITAN-UZ
            29 ноября 2014, 11:20
            0
            Знаю что за это отвечает htaccess 2 часа перебор символов так и не смог найти правленый вариант!

            За модуль спасибо! Все работает!
          Нариман Рамазанов
          06 января 2015, 23:31
          0
          Выводить чанки версий сайта лучше так:

          Не делайте так, будут проблемы с доступом для ботов (индексацией)
            Николай Загумённов
            07 января 2015, 00:18
            +1
            Почему?
              Нариман Рамазанов
              07 января 2015, 00:51
              0
              Обдумал еще раз — возможно я сам виноват и пропустил условие ":or:is=``" в результате чего при неустановленной куке отдавалась пустая страница
                Нариман Рамазанов
                09 января 2015, 01:28
                0
                Все таки тут что-то неладное. Проверяю этим
                developers.google.com/speed/pagespeed/insights/

                <mobile>
                	[[!$[[!#COOKIE.ttTemplate:is=`mobile`:or:if=`[[!#GET.theme]]`:is=`mobile`:then=`.m.front`:else=``]]]]
                </mobile>
                вот это условие. Если Зашли с мобильного устройства, но в то же время кука еще не установлена и ГЕТ тоже не установлен — то получим пустую страницу
            Николаевич
            07 января 2015, 04:40
            0
            <normal>
            	[[!$[[!#COOKIE.ttTemplate:is=`normal`:or:is=``:or:if=`[[!#GET.theme]]`:is=`normal`:then=`.n.front`:else=``]]]]
            </normal>
            Чёт у меня пустую страницу выводит. Кроме tagstemplate никакого больше плагина устанавливать не надо?
              Николай Загумённов
              07 января 2015, 13:06
              0
              pdotools
              так как используется пдо парсер
                Николаевич
                07 января 2015, 14:57
                0
                Так он как бы установлен. Или включать эксперементальный парсер?
                  Николай Загумённов
                  07 января 2015, 16:46
                  0
                  да, он должен быть вкл
                    Николаевич
                    07 января 2015, 17:06
                    0
                    Действительно. Правда перестал работать MinifyX и tickets не подгружает на страницу ссылки типа
                    tickets/js/web/default.js
                      Николай Загумённов
                      07 января 2015, 22:01
                      0
                      Да, сталкивался с такой проблемой, все скрипты вручную пришлось добавить. Так и не решил
            konar777
            15 июня 2015, 10:07
            0
            Ребят, столкнулся сейчас тоже с версткой мобильной версии для своего сайта. Установил mobile detection, все отлично работает. Вопрос только вот по кешу остался у меня, может кто поделится решением? а то не очень гуд если будет рендериться каждый раз. Спасибо.

            P.S. Хочу сделать еще кнопку при просмотре мобильной версии (полная версия сайта) насколько понимаю параметр будет в cookie записываться думаю писать под это дело свой сниппет, но такое чувство что здесь уже все написано, нужно только разобраться.
                konar777
                15 июня 2015, 10:55
                0
                Спасибо огромное. Насколько я понял теперь в самом плагине все встроено и не нужно tagstemplate-0.0.1-beta.transport.zip. устанавливать. Качал из управления пакетами этот плагин, там нет настроек которые на скрине из вашего репозитория. Сейчас установлю версию предложеную вами. Спасибо еще раз большое.
            Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
            28