%PDF- %PDF-
Direktori : /home/bitrix/www/bitrix/modules/landing/lib/hook/page/ |
Current File : //home/bitrix/www/bitrix/modules/landing/lib/hook/page/yacounter.php |
<?php namespace Bitrix\Landing\Hook\Page; use \Bitrix\Landing\Field; use \Bitrix\Main\Localization\Loc; Loc::loadMessages(__FILE__); class YaCounter extends \Bitrix\Landing\Hook\Page { /** * Map of the field. * @return array */ protected function getMap() { return array( 'USE' => new Field\Checkbox('USE', array( 'title' => Loc::getMessage('LANDING_HOOK_YACOUNTER_USE') )), 'COUNTER' => new Field\Text('COUNTER', array( 'title' => Loc::getMessage('LANDING_HOOK_YACOUNTER_COUNTER'), 'placeholder' => Loc::getMessage('LANDING_HOOK_YACOUNTER_PLACEHOLDER') )) ); } /** * Enable or not the hook. * @return boolean */ public function enabled() { return $this->fields['USE']->getValue() == 'Y'; } /** * Exec or not hook in edit mode. * @return true */ public function enabledInEditMode() { $request = \Bitrix\Main\Application::getInstance()->getContext()->getRequest(); return $request->get('landing_mode') == 'preview'; } /** * Exec hook. * @return void */ public function exec() { $counter = \htmlspecialcharsbx(trim($this->fields['COUNTER'])); $counter = \CUtil::jsEscape($counter); if ($counter) { \Bitrix\Main\Page\Asset::getInstance()->addString( '<!-- Yandex.Metrika counter --> <script type="text/javascript" data-skip-moving="true"> (function (d, w, c) { (w[c] = w[c] || []).push(function() { try { w.yaCounter' . $counter . ' = new Ya.Metrika({ id:' . $counter . ', clickmap:true, trackLinks:true, accurateTrackBounce:true, webvisor:true, trackHash:true }); } catch(e) { } }); var n = d.getElementsByTagName("script")[0], s = d.createElement("script"), f = function () { n.parentNode.insertBefore(s, n); }; s.type = "text/javascript"; s.async = true; s.src = "https://mc.yandex.ru/metrika/watch.js"; if (w.opera == "[object Opera]") { d.addEventListener("DOMContentLoaded", f, false); } else { f(); } })(document, window, "yandex_metrika_callbacks"); </script> <noscript><div><img src="https://mc.yandex.ru/watch/' . $counter . '" style="position:absolute; left:-9999px;" alt="" /></div></noscript> <!-- /Yandex.Metrika counter -->' ); } } }