Вставка кода GoogleAnalytics в XSLT-шаблоны
Материал из Umicms
Если стоит задача добавить код GoogleAnalytics в XSTL-шаблон, то можно использовать 2 способа:
- использовать макрос %system googleAnalyticsCode()%
- вставить код непосредственно в шаблон, используя запись <![CDATA[ ... ]]>. Этим же способом можно вставить код любого другого счетчика в шаблоны сайта.
Использование макроса
Для того, чтобы вставить код при помощи макроса, следует воспользоваться инструкцией <xsl:value-of> и функцией document():
<?xml version="1.0" encoding="utf-8"?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> <xsl:output method="html" encoding="utf-8"/> <xsl:template match="/"> <html> <head> <xsl:value-of select="document('udata://system/googleAnalyticsCode/')/udata" disable-output-escaping="yes"/> </head> <body> ... </body> </html> </xsl:template> </xsl:stylesheet>
Преимуществом этого способа является то, что сам идентификатор GoogleAnalytics можно будет всегда поменять из административной панели, не редактируя код шаблонов в дальнейшем. Эта настройка находится в модуле "Конфигурация" во вкладке "Домены" в свойствах каждого домена.
Код в шаблонах
Возьмём к примеру демо-сайт с интернет-магазином бытовой техники.
В файле ~/xsltTpls/layouts/default.xsl, после строчки
<xsl:template match="/" mode="layout">
содержится сам код страницы. Непосредственно внутри тегов <head></head> мы можем добавить код анализатора GoogleAnalytics:
1. устаревший вариант GA:
<script type="text/javascript"> <![CDATA[ var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www."); document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E")); ]]> </script> <script type="text/javascript"> <![CDATA[ try { var pageTracker = _gat._getTracker("ID-00000000-0"); pageTracker._trackPageview(); } catch(err) {} ]]> </script>
В строчке var pageTracker = _gat._getTracker("ID-00000000-0"); вместо ID-00000000-0 укажите ваш код GoogleAnalytics.
2. асинхронный код GA:
<script type="text/javascript"> <![CDATA[ var _gaq = _gaq || []; _gaq.push(['_setAccount', 'ID-00000000-0']); _gaq.push(['_trackPageview']); (function() { var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true; ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js'; var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s); })(); ]]> </script>
В строчке _gaq.push(['_setAccount', 'ID-00000000-0']); вместо ID-00000000-0 укажите ваш код GoogleAnalytics.
