Курс 2016 года “Разработка на UMI.CMS от 0 до готового сайта”
%total% для %data doSelection()%

Автор albionРаздел Макросы UMI.CMS

Ответов: 5
Просмотров: 3024
Последний ответ 24 Июль 2011, 10:29:40
от albion
Фильтр по полю

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

Ответов: 1
Просмотров: 1263
Последний ответ 18 Октябрь 2013, 22:53:46
от PHOENIX-75
autothumbs.php версии 2,8,4

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

Ответов: 6
Просмотров: 4050
Последний ответ 21 Июль 2011, 18:00:19
от admin
Не выводятся все теги в xslt

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

Ответов: 2
Просмотров: 1765
Последний ответ 03 Июнь 2014, 13:52:04
от goodprofy
Зависимые фильтры

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

Ответов: 5
Просмотров: 1841
Последний ответ 28 Сентябрь 2013, 16:44:23
от Aisamiery

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

*

thecoder

  • *
  • 44
  • +0/-0
    • Просмотр профиля
Яндекс.Карта на сайте
« : 17 Июль 2013, 17:22:12 »
Привет.
Застрял с выводом яндекс.карты на xslt.
Вывожу данные объекта каталога и на странице надо показать карту (скрипт взят для примера):

Цитировать
<script src="http://api-maps.yandex.ru/2.0-stable/?load=package.full&lang=" type="text/javascript"></script>
<script type="text/javascript">
          var myMap = new ymaps.Map('myMap', {
            // центр и коэффициент масштабирования однозначно
            // определяют область картографирования
            center: [55.76, 37.64],
            zoom: 7
          });
</script>

в поле div myMap карта как бы есть но ее не видно :(
В чем косяк? Как правильно сделать вывод карты?

Как вообще в xslt вставлять код js?

*

muldy

  • ***
  • 222
  • +9/-1
    • Просмотр профиля
Re:Яндекс.Карта на сайте
« Ответ #1 : 17 Июль 2013, 18:12:32 »
Если хотите использовать код карт на всех страницах одинаковый и выводить его на страницах, то оптимальнее это сделать добавив новый тип данных простой текст и туда вставить карту, примерно таким выводом:
 <xsl:value-of select="document('upgae://ID вашей страницы')//property[@name = 'Имя поля с картой']/value" disable-output-escaping="yes"/>

Если хотите менять какой то параметр то скрипт можно заключить в CD DATA^ вот здесь инструкция:
http://wiki.umisoft.ru/%D0%94%D0%BE%D0%B1%D0%B0%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D1%81%D1%87%D0%B5%D1%82%D1%87%D0%B8%D0%BA%D0%B0_liveinternet

*

e.ioffe

  • ****
  • 369
  • +81/-2
  • Профессиональная разработка на UMI.CMS.
    • Просмотр профиля
    • Fullspace - Лучший хостинг для UMI.CMS
Re:Яндекс.Карта на сайте
« Ответ #2 : 18 Июль 2013, 08:35:16 »
Оптимальнее будет <xsl:value-of select="document(concat('upage://', ID вашей страницы, '.Имя поля с картой')//value" disable-output-escaping="yes" />

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

*

thecoder

  • *
  • 44
  • +0/-0
    • Просмотр профиля
Re:Яндекс.Карта на сайте
« Ответ #3 : 18 Июль 2013, 16:00:20 »
Либо я туплю либо яндекс.
Включил firebug и увидел

ymaps.Map is not a constructor 
т.е. в подключаемом скрипте нет конструктора? Фигня какая-то.

Оказалось что туплю все таки я :) Заработало.
« Последнее редактирование: 18 Июль 2013, 16:26:48 от thecoder »

*

admin

  • *****
  • 2421
  • +172/-1
    • Просмотр профиля
Re:Яндекс.Карта на сайте
« Ответ #4 : 21 Июль 2013, 13:26:36 »
подытожим и добавим...

1. проверьте, что вы заменили символ & на &amp; , так как иначе xslt будет ругаться... Например в вызове (очень частая проблема) <script src="http://api-maps.yandex.ru/2.0-stable/?load=package.full&lang=" type="text/javascript"></script>

2.
для надежности вынесите js код в отдельный файл или заключите его в CDATA блок. Например

<script type="text/javascript">
          <![CDATA[
          var myMap = new ymaps.Map('myMap', {
            // центр и коэффициент масштабирования однозначно
            // определяют область картографирования
            center: [55.76, 37.64],
            zoom: 7
          });
          ]]>
</script>


3.
вынесите js код в отдельное поле какой-то страницы в админке и выведите его одним из предложенных выше вариантов. Например так <xsl:value-of select="document(concat('upage://', ID вашей страницы, '.Имя поля с картой')//value" disable-output-escaping="yes" />

*

thecoder

  • *
  • 44
  • +0/-0
    • Просмотр профиля
Re:Яндекс.Карта на сайте
« Ответ #5 : 22 Июль 2013, 16:14:40 »
сделал все как описано только без п.3 - работает, оставим пока так :)