Вставка кода GoogleAnalytics в XSLT-шаблоны — различия между версиями
| Ver (обсуждение | вклад)  (Новая страница: «== Задача ==  Категория:Верстка в XSLT») | Danil (обсуждение | вклад)  | ||
| (не показано 5 промежуточных версий 2 участников) | |||
| Строка 1: | Строка 1: | ||
| − | + | Если стоит задача добавить код GoogleAnalytics в XSTL-шаблон, то можно использовать 2 способа: | |
| + | * использовать макрос [http://help-dev.umi-cms.ru/system.googleAnalyticsCode.html %system googleAnalyticsCode()%] | ||
| + | * вставить код непосредственно в шаблон, используя запись [http://ru.wikipedia.org/wiki/CDATA <nowiki><![CDATA[ ... ]]></nowiki>]. Этим же способом можно вставить код любого другого счетчика в шаблоны сайта. | ||
| − | [[Категория:Верстка в XSLT]] | + | == Использование макроса == | 
| + | |||
| + | Для того, чтобы вставить код при помощи макроса, следует воспользоваться инструкцией <xsl:value-of> и функцией document(): | ||
| + | |||
| + | <source lang="xml"> | ||
| + | <?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> | ||
| + | </source> | ||
| + | |||
| + | Преимуществом этого способа является то, что сам идентификатор GoogleAnalytics можно будет всегда поменять из административной панели, не редактируя код шаблонов в дальнейшем. Эта настройка находится в модуле "Конфигурация" во вкладке "Домены" в свойствах каждого домена.  | ||
| + | |||
| + | == Код в шаблонах == | ||
| + | Возьмём к примеру демо-сайт с интернет-магазином бытовой техники. | ||
| + | |||
| + | В файле ~/xsltTpls/layouts/default.xsl, после строчки | ||
| + | <source lang="xml"> | ||
| + | <xsl:template match="/" mode="layout"> | ||
| + | </source> | ||
| + | содержится сам код страницы. | ||
| + | Непосредственно внутри тегов <head></head> мы можем добавить код анализатора GoogleAnalytics: | ||
| + | |||
| + | |||
| + | '''1. устаревший вариант GA:''' | ||
| + | |||
| + | <source lang="xml"> | ||
| + |  <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> | ||
| + | </source> | ||
| + | |||
| + | В строчке '''var pageTracker = _gat._getTracker("ID-00000000-0");''' вместо ID-00000000-0 укажите ваш код GoogleAnalytics. | ||
| + | |||
| + | |||
| + | '''2. асинхронный код GA:''' | ||
| + | |||
| + | <source lang="xml"> | ||
| + |  <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>  | ||
| + | </source> | ||
| + | |||
| + | В строчке '''_gaq.push(['_setAccount', 'ID-00000000-0']);''' вместо ID-00000000-0 укажите ваш код GoogleAnalytics. | ||
| + | |||
| + | [[Категория:Вопросы и уроки разработки сайтов на UMI.CMS]][[Категория:Верстка в XSLT]] | ||
Текущая версия на 12:03, 7 сентября 2010
Если стоит задача добавить код 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.
