Курс 2016 года “Разработка на UMI.CMS от 0 до готового сайта”
Печать скидки в заказе (Версия для печати)

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

Ответов: 1
Просмотров: 2117
Последний ответ 23 Марта 2014, 23:59:14
от admin
Версия для печати в свойствах заказа

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

Ответов: 5
Просмотров: 4654
Последний ответ 04 Апреля 2012, 10:57:17
от admin
Английская версия сайта

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

Ответов: 1
Просмотров: 3162
Последний ответ 19 Ноября 2011, 17:56:25
от admin
Английская версия сайта в TPL

Автор pandusРаздел Шаблоны TPL

Ответов: 1
Просмотров: 1624
Последний ответ 23 Мая 2017, 17:43:31
от pandus
Английская версия в 2.8.5

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

Ответов: 1
Просмотров: 2280
Последний ответ 28 Апреля 2012, 21:30:53
от admin

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

*

ragivort

  • *
  • 20
  • +0/-0
    • Просмотр профиля
Приветствую,
Сайт на XSLT адаптивная верстка.
Как сделать в мобильной версии кнопку перейти на полную версию.
Полная версия достигается заменой мета тега
 <meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1.0,maximum-scale=2.0">
на
<meta name="viewport" content="width=1200">

Спасибо

*

aghigay

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

*

ragivort

  • *
  • 20
  • +0/-0
    • Просмотр профиля
Не замена, а условие.
Если мобильная версия, то 1 тег, если включаем полную, то другой
На пхп делали так

<?php
session_start();
if($_GET['show_desktop_mode'] == 'true') {
    $_SESSION['desktopmode'] = 'true';
} else {
    $_SESSION['desktopmode'] = 'false';
}
?>


Теги

<?php
if($_SESSION['desktopmode'] == 'true') {
        //DESKTOP MODE, could be any width you want
        ?>
        <meta name="viewport" content="width=1200">
        <?php
    } else {
        // DEFAULT, utilize device width
        ?>
        <meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1.0,maximum-scale=2.0">
        <?php
    } ?>


Кнопки

            if($_SESSION['desktopmode'] == 'true') {
               // Checking for desktop mode. If yes, provide device link  ?>
                <p class="view-device"><a href="?show_desktop_mode=false">Мобильная версия</a></p>
            <?php
            } else {
               // // Checking for desktop mode. If yes, provide Desktop link  ?>
            <p class="view-desktop"><a href="?show_desktop_mode=true">Полная версия сайта</a></p> <?php } ?>   

Вот тоже самое надо сделать на XSLT, не вникну как

*

aghigay

  • *****
  • 611
  • +28/-3
  • Просто пытаюсь помочь. Иногда пинком
    • Просмотр профиля
    • umicms.me
Параметры прописываются через
<xsl:param name="desktopmode" />
<xsl:param name="show_desktop_mode" />
В данном случае не важно откуда они пришли: get-параметр или coockie
Условие - через
<xsl:if test=""></xsl:if>
Мой блог http://umicms.me

*

ragivort

  • *
  • 20
  • +0/-0
    • Просмотр профиля
Как в условиях присваивать переменным значения, которые до этого были определены
<xsl:param name="desktopmode" />
<xsl:param name="show_desktop_mode" />

*

aghigay

  • *****
  • 611
  • +28/-3
  • Просто пытаюсь помочь. Иногда пинком
    • Просмотр профиля
    • umicms.me
<xsl:if test="$desktopmode = 1"></xsl:if>
Мой блог http://umicms.me

*

aghigay

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

*

ragivort

  • *
  • 20
  • +0/-0
    • Просмотр профиля
Это проверка, если дэсктоп 1
А если он 1, то переменной show_desktop_mode присвоить 0?

*

aghigay

  • *****
  • 611
  • +28/-3
  • Просто пытаюсь помочь. Иногда пинком
    • Просмотр профиля
    • umicms.me
<xsl:variable name="vA">
     <xsl:choose>
      <xsl:when test="//B">1</xsl:when>
      <xsl:otherwise>2</xsl:otherwise>
     </xsl:choose>
   </xsl:variable>
Мой блог http://umicms.me

*

e.ioffe

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

В classes/modules/custom.php

public function checkDesktopMode() {
if($_GET['show_desktop_mode'] == 'true') {
$_SESSION['desktopmode'] = 'true';
} else {
$_SESSION['desktopmode'] = 'false';
}
}

public function getDesktopMode() {
return (int) getSession('desktopmode') == 'true';
}

в шаблоне
<xsl:choose>
<xsl:when test="document('udata://custom/getDesktopMode/')/udata = 1">
</xsl:when>
<xsl:otherwise>
</xsl:otherwise>
</xsl:choose>
Ускорение сайта на UMI.CMS - http://speed.umispec.ru/

*

aghigay

  • *****
  • 611
  • +28/-3
  • Просто пытаюсь помочь. Иногда пинком
    • Просмотр профиля
    • umicms.me
Re: Полная / Мобильная версия заменой мета тега
« Ответ #10 : 10 Ноября 2016, 12:27:18 »
Когда Евгений сказал "Это не решается" - он имел в виду сохранение значения в сессии не решается с помощью шаблонов XSLT, а только с помощью кастомов. :-)
Мой блог http://umicms.me

*

e.ioffe

  • ****
  • 369
  • +81/-2
  • Профессиональная разработка на UMI.CMS.
    • Просмотр профиля
    • Fullspace - Лучший хостинг для UMI.CMS
Re: Полная / Мобильная версия заменой мета тега
« Ответ #11 : 10 Ноября 2016, 12:33:57 »
Цитировать
Когда Евгений сказал "Это не решается" - он имел в виду сохранение значения в сессии не решается с помощью шаблонов XSLT, а только с помощью кастомов. :-)

Задача разбивается на две:
- логика
- отображение

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

Можно извращаться и делать все в шаблоне, но поддерживать такой код занятие неприятное и дорогое.
Ускорение сайта на UMI.CMS - http://speed.umispec.ru/

*

ragivort

  • *
  • 20
  • +0/-0
    • Просмотр профиля
Re: Полная / Мобильная версия заменой мета тега
« Ответ #12 : 11 Ноября 2016, 14:02:30 »
Когда в шаблон вставляю
<xsl:choose>
   <xsl:when test="document('udata://custom/getDesktopMode/')/udata = 1">
   </xsl:when>
   <xsl:otherwise>
   </xsl:otherwise>
</xsl:choose>

Белый экран

*

aghigay

  • *****
  • 611
  • +28/-3
  • Просто пытаюсь помочь. Иногда пинком
    • Просмотр профиля
    • umicms.me
Re: Полная / Мобильная версия заменой мета тега
« Ответ #13 : 11 Ноября 2016, 16:10:54 »
Включайте отладку и смотрите что за проблема
http://dev.docs.umi-cms.ru/nastrojka_sistemy/dostupnye_sekcii/sekciya_debug/#sel=5:1,6:3
Мой блог http://umicms.me

*

ragivort

  • *
  • 20
  • +0/-0
    • Просмотр профиля
Re: Полная / Мобильная версия заменой мета тега
« Ответ #14 : 11 Ноября 2016, 16:32:41 »
Ошибку поправил

Сделал так

   <xsl:choose>
   <xsl:when test="document('udata://custom/getDesktopMode/')/udata = 1">
        
         <meta name="viewport" content="width=1200"/>
   </xsl:when>
   <xsl:otherwise>        
        <meta name="viewport" content="width=device-width, initial-scale=1"/>
   </xsl:otherwise>
   </xsl:choose>


Кнопки

   <xsl:choose>
   <xsl:when test="document('udata://custom/getDesktopMode/')/udata = 1">
          
          <p class="view-device"><a href="?show_desktop_mode=false">Мобильная версия</a></p>

   </xsl:when>
   <xsl:otherwise>
         <p class="view-desktop"><a href="?show_desktop_mode=true">Полная версия сайта</a></p>
   </xsl:otherwise>
   </xsl:choose>


При нажатии на полную версию, добавляется в адрес ?show_desktop_mode=true

Но ничего не происходит