Олег Захаров

Олег Захаров

С нами с 14 октября 2017; Место в рейтинге пользователей: #66
Олег Захаров
02 мая 2018, 13:25
0
тоже искал как решить подобную задачу — на странице категории вывожу подкатегорию и первые 10 товаров подкатегории с выводом картинки товара и названия в виде ссылки. Сделал примерно так (в fenom):
{*получаем список товаров подкатегории*}
{*$cat2level - подставляем id родительской категории*}
{var $products_cats2level = ('pdoResources' | snippet : ['parents' => $cat2level, 'depth' => '0', 'limit' => 10, 'returnIds' => 1, 'sortdir'=>'asc', 'where' => '{"class_key":"msProduct"}'] | split : ',')}
{if $products_cats2level['0'] ?}    {*проверяю есть ли вообще хоть один элемент в массиве*}
	<div class="row" >
		{foreach $products_cats2level as $product_cats2level} 
			<a href="{$_modx->makeUrl($product_cats2level,'','','full')}"> {*вывожу ссылку *}
				<div id="img_{$product_cats2level}" class="col-xs-2 " style="margin-top: 15px;">
					{'msGallery' | snippet : ['product'=>$product_cats2level, 'includeThumbs'=>'mini','tpl'=>'@INLINE <img src="{$files["0"]["mini"]}">']} {*mini - это параметр формата медиаресурса,  у меня mini: "mini":{"h":50,"q":90,"far":"1","bg":"ffffff"}*}
				</div>
				<div id="caption_{$product_cats2level}" class="col-xs-10" style="margin-top: 25px;" >
					{'pdoField' | snippet : ['id' => $product_cats2level]} {*название подкатегории*}
				</div>
				<div class="clear"></div>
			</a>
		{/foreach}
	</div>
{/if}
Олег Захаров
27 апреля 2018, 01:15
0
Подскажите, а как в форме файлы передавать в лиды? Как прописать JSON соответствие если грузим 1 файл, несколько файлов?
Олег Захаров
03 апреля 2018, 22:09
0
Спасибо! Я вроде так же пробовал вначале, но видимо чтото не так написал, сайт не грузил страницу, я грешил на fenom. А ваш код заработал без проблем.
Олег Захаров
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}?