UMIhelp

Разработка сайта на UMI.CMS => Шаблоны XSLT => Тема начата: psfdek от 20 Апреля 2016, 14:12:26

Название: Ошибка при вставке кода в XSLT шаблон
Отправлено: psfdek от 20 Апреля 2016, 14:12:26
Не получается вставить код в шаблон.
Так не работает:
<xsl:text disable-output-escaping="yes">
&lt;!-- Google Tag Manager --&gt;
&lt;noscript&gt;&lt;iframe src=&quot;//www.googletagmanager.com/ns.html?id=GTM-KRL5H8&quot;
height=&quot;0&quot; width=&quot;0&quot; style=&quot;display:none;visibility:hidden&quot;&gt;&lt;/iframe&gt;&lt;/noscript&gt;
&lt;script&gt;(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({&quot;gtm.start&quot;:
new Date().getTime(),event:&quot;gtm.js&quot;});var f=d.getElementsByTagName(s)[0],
j=d.createElement(s),dl=l!=&quot;dataLayer&quot;?&quot;&l=&quot;+l:&quot;&quot;;j.async=true;j.src=
&quot;//www.googletagmanager.com/gtm.js?id=&quot;+i+dl;f.parentNode.insertBefore(j,f);
})(window,document,&quot;script&quot;,&quot;dataLayer&quot;,&quot;GTM-KWL5H8&quot;);&lt;/script&gt;
&lt;!-- End Google Tag Manager --&gt;
</xsl:text>

Так тоже не работает!
Странно то что рядом код яндекс метрики похожий стоит и нормально работает.
<!-- Google Tag Manager -->
<noscript><iframe src="//www.googletagmanager.com/ns.html?id=GTM-KRL5H8"
height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
<script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
'//www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
})(window,document,'script','dataLayer','GTM-KWL5H8');</script>
<!-- End Google Tag Manager -->
Название: Re: Ошибка при вставке кода в XSLT шаблон
Отправлено: aghigay от 20 Апреля 2016, 14:58:04
Ну просто нужно добавлять код:
<xsl:text disable-output-escaping="yes">
<!-- Google Tag Manager -->
<noscript><iframe src="//www.googletagmanager.com/ns.html?id=GTM-KRL5H8"
height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
<script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
'//www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
})(window,document,'script','dataLayer','GTM-KWL5H8');</script>
<!-- End Google Tag Manager -->
</xsl:text>
Название: Re: Ошибка при вставке кода в XSLT шаблон
Отправлено: psfdek от 20 Апреля 2016, 22:36:01
Ну просто нужно добавлять код:
<xsl:text disable-output-escaping="yes">
<!-- Google Tag Manager -->
<noscript><iframe src="//www.googletagmanager.com/ns.html?id=GTM-KRL5H8"
height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
<script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
'//www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
})(window,document,'script','dataLayer','GTM-KWL5H8');</script>
<!-- End Google Tag Manager -->
</xsl:text>

Оно так тоже крашит......
Название: Re: Ошибка при вставке кода в XSLT шаблон
Отправлено: aghigay от 20 Апреля 2016, 23:08:40
А что выводит? Есть ссылка? Тут вообще вот такие штуки {} представлены, что не есть хорошо
Название: Re: Ошибка при вставке кода в XSLT шаблон
Отправлено: psfdek от 20 Апреля 2016, 23:14:00
А что выводит? Есть ссылка? Тут вообще вот такие штуки {} представлены, что не есть хорошо

Ничего не выводит, пустую страницу.
Название: Re: Ошибка при вставке кода в XSLT шаблон
Отправлено: aghigay от 21 Апреля 2016, 11:33:58
Тогда вам прямая дорога в config.ini включать режим дебага:
http://dev.docs.umi-cms.ru/nastrojka_sistemy/dostupnye_sekcii/sekciya_debug/

После этого страница точно будет не пустая :-)
Название: Re: Ошибка при вставке кода в XSLT шаблон
Отправлено: Teh от 15 Декабря 2017, 06:15:48
Извиняюсь за некропостинг, но проблема та же самая. Не могу вставить код GTM в шаблон. Включил дебаг, оказывается на сайте и так ошибок хватает, но если добавить код GTM, то добавляются следующие ошибки
Warning: XSLTProcessor::importStylesheet(): /var/www/u0152108/data/www/site.ru/templates/viz-corp/xslt/layouts/default.xsl:35: parser error : EntityRef: expecting ';' in /var/www/u0152108/data/www/site.ru/classes/system/subsystems/umiTemplaters/types/umiTemplaterXSLT.php on line 33

Warning: XSLTProcessor::importStylesheet(): j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= in /var/www/u0152108/data/www/site.ru/classes/system/subsystems/umiTemplaters/types/umiTemplaterXSLT.php on line 33

Warning: XSLTProcessor::importStylesheet(): ^ in /var/www/u0152108/data/www/site.ru/classes/system/subsystems/umiTemplaters/types/umiTemplaterXSLT.php on line 33

Warning: XSLTProcessor::importStylesheet(): compilation error: file /var/www/u0152108/data/www/site.ru/templates/viz-corp/xslt/default.xsl line 40 element include in /var/www/u0152108/data/www/site.ru/classes/system/subsystems/umiTemplaters/types/umiTemplaterXSLT.php on line 33

Warning: XSLTProcessor::importStylesheet(): xsl:include : unable to load /var/www/u0152108/data/www/site.ru/templates/viz-corp/xslt/layouts/default.xsl in /var/www/u0152108/data/www/site.ru/classes/system/subsystems/umiTemplaters/types/umiTemplaterXSLT.php on line 33

Собственно 33 строка приходится на начало скрипта
<!-- Google Tag Manager -->
<script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
})(window,document,'script','dataLayer','GTM-MBDF89C');</script>
<!-- End Google Tag Manager -->

Пробовал добавлять
<xsl:text disable-output-escaping="yes">
</xsl:text>
Те же самые ошибки выдает.
Название: Re: Ошибка при вставке кода в XSLT шаблон
Отправлено: aghigay от 15 Декабря 2017, 12:48:55
Нужно еще cdata добавлять - ибо иначе скобки вида { } могут вызывать проблемы в XSLT