Олег Захаров

Олег Захаров

С нами с 14 октября 2017; Место в рейтинге пользователей: #134
Олег Захаров
03 апреля 2018, 18:46
0
Делюсь наработкой до которой сам дошел путем долгих мучений и борьбы с fenom. Вроде работает, может кому пригодится:

Сниппет вставки кода в (вызываем соответственно сниппет в блоке head, в коде добавлены пробелы до и после { и } чтобы fenom не ругался):
<?php
$idgtm = $modx->getOption("GoogLeTagManagerID");
$hostname=$modx->getOption("http_host");
print '<!-- Google Tag Manager for '.$hostname.' -->
<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","'.$idgtm.'");</script> <!-- End Google Tag Manager -->';
А для кода который вставляется в начало тега body сделал такой чанк (с конструкциями fenom — fenom должен быть включен -если не хотите включать переделайте в сниппет как в примере кода сниппета выше)
<!-- Google Tag Manager (noscript) for {$modx->getOption("http_host")} -->
<noscript><iframe src="https://www.googletagmanager.com/ns.html?id={$modx->getOption("GoogLeTagManagerID")}"
height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
<!-- End Google Tag Manager (noscript) -->
В контекст добавил ключ GoogLeTagManagerID со значением ID GoogleTagManager (который выглядит как GTM-ABCDEFG)
Олег Захаров
03 апреля 2018, 18:41
0
Исправил — хотел чтобы в комментарий было видно для какого контекста выводится код GoogleTagManager чтобы можно было проверить не ошибся ли с номером ID GoogleTagManager (предыдущий коммент можно удалить):
Делюсь наработкой может кому пригодится:

Сниппет вставки кода в (вызываем соответственно сниппет в , в коде добавлены пробелы до и после { и } чтобы fenom не ругался):
<?php
$idgtm = $modx->getOption("GoogLeTagManagerID");
$hostname=$modx->getOption("http_host");
print '<!-- Google Tag Manager for '.$hostname.' -->
<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","'.$idgtm.'");</script> <!-- End Google Tag Manager -->';
А для кода который вставляется после тега body сделал такой чанк (с конструкциями fenom — fenom должен быть включен -если не хотите включать переделайте в сниппет как в примере кода сниппета выше)
<!-- Google Tag Manager (noscript) for {$modx->getOption("http_host")} -->
<noscript><iframe src="https://www.googletagmanager.com/ns.html?id={$modx->getOption("GoogLeTagManagerID")}"
height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
<!-- End Google Tag Manager (noscript) -->
В контекст добавил ключ GoogLeTagManagerID со значением ID GoogleTagManager (который выглядит как GTM-ABCDEFG)
Олег Захаров
03 апреля 2018, 18:23
1
0
Пока думал убил полдня! Но сделал, делюсь наработкой моет кому пригодится:

Сниппет вставки кода в (вызываем соответственно сниппет в , в коде добавлены пробелы до и после { и } чтобы fenom не ругался):
<?php
$idgtm = $modx->getOption("GoogLeTagManagerID");
print '<!-- Google Tag Manager for '.$idgtm.'-->
<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","'.$idgtm.'");</script> <!-- End Google Tag Manager -->';
А для кода который вставляется после тега body сделал такой чанк (с конструкциями fenom — fenom должен быть включен -если не хотите включать переделайте в сниппет как в примере кода сниппета выше)
<!-- Google Tag Manager (noscript) for {$modx->getContext($context_key)}-->
<noscript><iframe src="https://www.googletagmanager.com/ns.html?id={$modx->getOption("GoogLeTagManagerID")}"
height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
<!-- End Google Tag Manager (noscript) -->
В контекст добавил ключ GoogLeTagManagerID со значением ID GoogleTagManager (который выглядит как GTM-ABCDEFG)
Олег Захаров
03 апреля 2018, 18:23
0
А как можно вставить код счетчика через настройки контекста? Чтобы для каждого контекста прописывать номер счетчика? А код был универсальный. Например я хочу сохранить номер ID GoogleTagManager в настройках контекста, а код сниппета и чанка вставки кода GoogleTagManager сделать универсальный один?
Олег Захаров
02 апреля 2018, 23:53
1
0
Хороший мануал по этому поводу тут — я сам по нему делаю.
Олег Захаров
02 апреля 2018, 16:22
0
Подскажите как грамотно увязать привязку с AjaxForm? Примером, а то не совсем понятно.
В описании написано:
Для отправки лидов в Битрикс24 сделан hook modBitrixLead для FormIt.
Нужно добавить в FormIt параметр btxFieldnames, в котором указать в формате JSON соответствие полей. По-умолчанию:
{«name»:«NAME»,«message»:«COMMENTS»,«email»:«EMAIL»,«phone»:«PHONE»}
Как при вызове через AjaxForm прописать параметр? Если как параметр пропишу боюсь из AjaxForm он сам не передастся — надо будет сниппет править?
Олег Захаров
02 апреля 2018, 12:52
0
И еще — в статусах заказа в Minishop2 стоят подставленные фразы Won, Lose, New — их меняем на цифровое значение ID в Битрикс24?
Олег Захаров
02 апреля 2018, 12:42
0
Прошу подсказать а где запускать код для определения статуса сделки? В консоли браузера?
Олег Захаров
07 марта 2018, 00:14
0
А что за изменения в новой версии?
2.0.12-beta (23.02.2018)
— Add «checkStat» [PayAndSee]
— Change «Order.submit» [js]
Олег Захаров
04 марта 2018, 13:20
0
Да, разумеется, и через меню, и вручную.
В названиях ресурсов кавычек нет.
Олег Захаров
03 марта 2018, 00:19
0
С чем это может быть связано? Почему поля так ведут себя? Может ли быть причиной использование php 7-й версии?

При попытке отредактировать дополнительные поля заданные как img картинка вываливается куча ошибок
[2018-03-03 00:16:57] (ERROR @ /home/...core/model/modx/modx.class.php : 1612)
[OnTVInputRenderList]

Notice:  Undefined property: modX::$videogallery in /home/host15...core/cache/includes/elements/modplugin/14.include.cache.php on line 5



Notice:  Undefined index: mgr in /home/host15...core/cache/includes/elements/modplugin/14.include.cache.php on line 11

[2018-03-03 00:16:57] (ERROR @ /home/host1...core/model/modx/modx.class.php : 1612)
[OnTVInputRenderList]

Notice:  Undefined index: mgr in /home/host15...core/cache/includes/elements/modplugin/14.include.cache.php on line 11

[2018-03-03 00:16:57] (ERROR @ /home/host15...core/model/modx/modx.class.php : 1612)
[OnTVInputRenderList]

Notice:  Undefined index: mgr in /home/host15...core/cache/includes/elements/modplugin/14.include.cache.php on line 11


Warning: Cannot modify header information - headers already sent by (output started at /home/host15...core/xpdo/xpdo.class.php:2094) in /home/host1...core/model/modx/modconnectorresponse.class.php on line 154

Warning: Cannot modify header information - headers already sent by (output started at /home/host15...core/xpdo/xpdo.class.php:2094) in /home/host15...core/model/modx/modconnectorresponse.class.php on line 159

Warning: Cannot modify header information - headers already sent by (output started at /home/host1...core/xpdo/xpdo.class.php:2094) in /home/host1...core/model/modx/modconnectorresponse.class.php on line 160
Название файла  

Бабушка и дедушка
 Notice: Undefined index: style in /home/.../cache/mgr/smarty/7e0fc8406b0273c0d74dedf7f2e80aeba5f2ceae_0.file.textbox.tpl.php on line 39

Notice: Trying to get property of non-object in /home/...core/cache/mgr/smarty/7e0fc8406b0273c0d74dedf7f2e80aeba5f2ceae_0.file.textbox.tpl.php on line 39
tvtype="text" />
Олег Захаров
02 марта 2018, 23:37
0
Кажется разобрался — в шаблоне были назначены доп.поля Медиа, которые почему-то не инициализировались. Отключил эти поля для шаблона, сохранил шаблон, перезагрузил ресурс — все заработало. Затем обратно добавил шаблону отключенные дополнительные поля — и поля (ранее заполненные и добавленные) заработали и подцепились снова.
Олег Захаров
02 марта 2018, 22:59
0
До этого перенес папку core и переименовал ее, все сделал как надо, поправив везде где следует пути (т.е. в файлах:
/core/config/config.inc.php
/config.core.php
/connectors/config.core.php
/manager/config.core.php).
Обновил версию самого MODX. Поставил Tickets, но потом деинсталлировал его (пока не понял как права и политики доступа верно настроить).
Не открывается определенный список ресурсов с ID от 196 до 200.
При этом если нахожусь в другом ресурсе который нормально открывается — при клике правой кнопкой мыши по проблемным ресурсам «Быстро обновить» все открывается. При копировании проблемного ресурса когда не внутри проблемного ресурса — я ведь не могу в него войти) скопированная версия также открывается с ошибками.
Олег Захаров
22 февраля 2018, 22:03
0
а ну все понял, насчет плейсхолдера согласен.
А конструкцию [[*id]] внутри конструкции fenom нельзя использовать?
Используем {$_modx->resource.id}?
Олег Захаров
22 февраля 2018, 21:51
0
Так по смыслу это же одно и то же?
Олег Захаров
22 февраля 2018, 21:50
0
Я так понимаю внутри конструкций fenom нельзя использовать квадратные скобки?
Олег Захаров
22 февраля 2018, 21:31
0
когда обновил не заметил что перестали из-за этого чанки отрабатывать. И в итоге неделю сайт работал неправильно :((((