Курс 2016 года “Разработка на UMI.CMS от 0 до готового сайта”
как подключить модуль "карта сайта"?

Автор RennyРаздел Шаблоны XSLT

Ответов: 7
Просмотров: 9454
Последний ответ 23 Октября 2011, 14:26:36
от admin
Решено: Автоматическое разворачивание разделов сайта в модуле "Структура"

Автор AlexeyРаздел Настройка системы и модулей

Ответов: 2
Просмотров: 3108
Последний ответ 01 Декабря 2011, 19:02:24
от Alexey
Работа модуля Обратная связь (вставка форм в контент сайта) при XSLT

Автор ariusgroupРаздел Шаблоны XSLT

Ответов: 8
Просмотров: 6487
Последний ответ 17 Октября 2012, 15:29:17
от admin
Есть второй домен, нужно повесить туда демошаблон готового сайта

Автор adminmosfaРаздел Шаблоны XSLT

Ответов: 6
Просмотров: 4323
Последний ответ 06 Августа 2013, 19:03:40
от NOIRMAN
Добавление тегов для товаров, и вывод блока с тегами в любом месте сайта

Автор FelixTheCatРаздел Шаблоны XSLT

Ответов: 9
Просмотров: 5530
Последний ответ 26 Июля 2014, 10:58:09
от FelixTheCat

0 Пользователей и 1 Гость просматривают эту тему.

*

webtrend

  • **
  • 89
  • +0/-0
    • Просмотр профиля
Добрый день, как мы все знаем в Юми есть мобильная версия сайта, файлы которой находятся в папке mobile. Так вот данная версия сайта открывается и на планшетах, Задача сделать некую проверку или что то вроде того чтобы моб.версия подхватывалась только на определенных разрешениях экрана. Кто нибудь сталкивался с этим?
Ответ службы заботы Юми
Это можно реализовать. Например, можно делать в клиентской части произвольную проверку на размер экрана/user-agent и т.д. и в зависимости от результата вызывать макрос content getMobileModesList() http://dev.docs.umi-cms.ru/spravochnik_makrosov_umicms/struktura_i_kontent/content_getmobilemodeslist/ (например, через ajax) и переключать режим на мобильный, только если пройдены все проверки.

А как реализовать данный девайс непонятно(

*

e.ioffe

  • ****
  • 369
  • +81/-2
  • Профессиональная разработка на UMI.CMS.
    • Просмотр профиля
    • Fullspace - Лучший хостинг для UMI.CMS
Работает с последней версией UMI (должно быть доступно событие systemPrepare).

В функции system_is_mobile файла libs/system.php есть проверка, установлена ли cookie 'is_mobile'. Если да - показывать мобильную версию, если нет - обычную.

Добавим свой обработчик события, который проверит тип устройства пользователя. Для этого воспользуемся сторонней библиотекой http://mobiledetect.net/

В папке /classes/modules/content/ext/

Добавляем файл common_content_check_tablet.php с содержанием:

class common_content_check_tablet {
    public function onSystemPrepareCheckTablet(iUmiEventPoint $eventPoint) {
        if($eventPoint->getMode() !== 'before') {
            return false;
        }

        require_once CURRENT_WORKING_DIR . '/libs/vendor/MobileDetect/Mobile_Detect.php'; /*(указываете путь до файла библиотеки)*/
$detect = new Mobile_Detect();

        if($detect->isTablet()) {
            setcookie('is_mobile', false); /*Устанавливаем значение в cookie*/
        }
}
}

В эту же папку добавляем файл events_content_check_tablet.php

new umiEventListener('systemPrepare', 'content', 'onSystemPrepareCheckTablet');

И файл permissions.content_check_tablet.php

$permissions = array(
'content' => array(
'onSystemPrepareCheckTablet',
)
);

Не проверял на боевом сайте - под рукой нет примера - но должно работать.
Ускорение сайта на UMI.CMS - http://speed.umispec.ru/

*

webtrend

  • **
  • 89
  • +0/-0
    • Просмотр профиля
Проверили на боевом сайте, ни каких изменений не произошло, на планшете открывается моб. версия а не десктопная.
Папки /classes/modules/content/ext/ не было в системе создали, тестировали на umi 2.12

*

aghigay

  • *****
  • 611
  • +28/-3
  • Просто пытаюсь помочь. Иногда пинком
    • Просмотр профиля
    • umicms.me
А сделать адаптивную верстку и убить механизм выдачи на мобильных других шаблонов не вариант?
Мой блог http://umicms.me

*

webtrend

  • **
  • 89
  • +0/-0
    • Просмотр профиля
Вариант, на данный момент так и есть, но необходимо именно для моб сделать отдельную легкую версию

*

e.ioffe

  • ****
  • 369
  • +81/-2
  • Профессиональная разработка на UMI.CMS.
    • Просмотр профиля
    • Fullspace - Лучший хостинг для UMI.CMS
Проверили на боевом сайте, ни каких изменений не произошло, на планшете открывается моб. версия а не десктопная.
Папки /classes/modules/content/ext/ не было в системе создали, тестировали на umi 2.12

Без доступа к сайту сложно сказать, что не так. Отправьте в ЛС - посмотрю на неделе.
Ускорение сайта на UMI.CMS - http://speed.umispec.ru/

*

aghigay

  • *****
  • 611
  • +28/-3
  • Просто пытаюсь помочь. Иногда пинком
    • Просмотр профиля
    • umicms.me
Решили вопрос с мобильной UMI? Если решили - поделитесь как?
Мой блог http://umicms.me

*

webtrend

  • **
  • 89
  • +0/-0
    • Просмотр профиля
Да решили, спасибо e.ioffe
Работает с последней версией UMI (должно быть доступно событие systemPrepare).

В функции system_is_mobile файла libs/system.php есть проверка, установлена ли cookie 'is_mobile'. Если да - показывать мобильную версию, если нет - обычную.

Добавим свой обработчик события, который проверит тип устройства пользователя. Для этого воспользуемся сторонней библиотекой http://mobiledetect.net/

В папке /classes/modules/content/ext/

Добавляем файл common_content_check_tablet.php с содержанием:
<?php
class common_content_check_tablet {
    public function onSystemPrepareCheckTablet(iUmiEventPoint $eventPoint) {
        if($eventPoint->getMode() !== 'before') {
            return false;
        }

        require_once CURRENT_WORKING_DIR . '/libs/vendor/MobileDetect/Mobile_Detect.php'; /*(указываете путь до файла библиотеки)*/
$detect = new Mobile_Detect();

        $isTablet = $detect->isTablet();

        if($isTablet && system_is_mobile()) {
            setcookie("is_mobile", "0", null, "/");
            $this->redirect(getServer('HTTP_REFERER'));
        }
}
}

В эту же папку добавляем файл events_content_check_tablet.php

<?php
new umiEventListener('systemPrepare', 'content', 'onSystemPrepareCheckTablet');

?>

И файл permissions.content_check_tablet.php

<?php
$permissions = array(
'content' => array(
'onSystemPrepareCheckTablet',
)
);
?>

Проверяли на 11 и 12 версии все работает.

*

crazygeorgio

  • ***
  • 140
  • +7/-0
    • Просмотр профиля
если не секрет, что за условие && system_is_mobile()? зачем им дополнять?