Счетчик посещений для всех страниц сайта — различия между версиями
Davidov (обсуждение | вклад) |
Po4emu4ka (обсуждение | вклад) |
||
Строка 52: | Строка 52: | ||
Если нам требуется добавить код других счетчиков или вставить карту - создавать дочернюю страницу не требуется, достаточно просто добавить новые поля (для уже созданного типа "Настройки сайта") в шаблонах данных. | Если нам требуется добавить код других счетчиков или вставить карту - создавать дочернюю страницу не требуется, достаточно просто добавить новые поля (для уже созданного типа "Настройки сайта") в шаблонах данных. | ||
+ | [[category:Сторонние сервисы и программы]] |
Текущая версия на 13:11, 16 июля 2018
Задача: вставить на страницу код счетчика.
Решение: мы будем рассматривать, вставку кода счетчика на примере вставки счетчика yandex-метрика.
Для реализации этой задачи, нам необходимо выполнить следующие действия:
1. В модуле "Шаблоны Данных" добавить дочерний тип для "Страниц контента";
2. В новом типе добавить поле "Метрика", тип "Простой текст";
3. Создать новую страницу в структуре "Настройки сайта" (снять галочку "Отображать в меню");
4. Изменить тип страницы на созданный в шаблонах данных (изменяется в "дополнительных настройках" страниц);
5. В поле "Метрика" вставить код нужного счетчика, например yandex-метрики и примерно код этого счетчика будет выглядеть так:
<!-- Yandex.Metrika counter -->
<div style="display:none;"><script type="text/javascript">
(function(w, c) {
(w[c] = w[c] || []).push(function() {
try {
w.yaCounter123456 = new Ya.Metrika({id:123456, enableAll: true});
}
catch(e) { }
});
})(window, 'yandex_metrika_callbacks');
</script></div>
<script src="//mc.yandex.ru/metrika/watch.js" type="text/javascript" defer="defer"></script>
<noscript><div><img src="//mc.yandex.ru/watch/123456" style="position:absolute; left:-9999px;" alt="" /></div></noscript>
<!-- /Yandex.Metrika counter -->
так же можно вставить текст копирайта и сохраняем страницу;
6. Последний шаг будет различаться, в зависимости от того, какой шаблонизатор мы используем. Для tpl-шаблонизатора вывод содержания этого поля в шаблон дизайна будет производится с помощью макроса %data getProperty()%. Подробное описание этого макроса в документации разработчиков сайтов [[1]].
В xslt-шаблонизаторе, для того, чтобы получить свойство страницы необходимо использовать протокол upage. Если мы хотим увидеть конкретное свойство страницы, например "Метрики" - вводим в адресной строке браузера следующий запрос: httр://silaest.ru/upage/XX.YY , где XX - это ID страницы, свойство которой необходимо вывести, YY - идентификатор поля (XX и YY следует разделить точкой). То есть, если ID созданной страницы настроек 414 (httр://silaest.ru/admin/content/edit/414/), а идентификатор поля метрик в шаблонах данных "metrika", то запрос будет выглядеть следующим образом: httр://silaest.ru/upage/414.metrika
Если мы хотим установить счетчик для всех страниц потребуется отредактировать шаблон "~/xsltTpls/layouts/default.xsl" - вывести свойство страницы "Настройки сайта" до закрывающего тега <body>, то есть:
...
<xsl:value-of select="document('upage://414.metrika')/udata/property/value" disable-output-escaping="yes" />
</body>
...
Также, обращаем свое внимание, что поле "wysiwyg" (Визуальный редактор) не предназначен для вставки кода (например yandex-метрики). Для этих целей следует использовать тип поля "Простой текст", при создании нового поля в "Шаблонах данных" (шаг 2). В противном случае часть кода будет вырезана визуальным редактором и счетчик работать не будет.
Если нам требуется добавить код других счетчиков или вставить карту - создавать дочернюю страницу не требуется, достаточно просто добавить новые поля (для уже созданного типа "Настройки сайта") в шаблонах данных.