Всего 123 802 комментария

Александр Мельник
30 мая 2023, 18:30
0
если бы вы использовали синтаксис fenom было бы проще.
Внутри чанка вам доступен номер иттерации. [[+idx]]
вы можете написать проверку, на то что номер иттерации без остатка делится на 3.
если это условие верно, то вы будете знать, что завершилась 3,6,9 и так далее иттерация.
и по этому условию вывести другую верстку.
Giant Dad
30 мая 2023, 18:11
0
internet_magazin — это свойство товара, расширенное вручную, не через msAddField
Алексей
30 мая 2023, 17:48
0
Не совсем подходит, так как он заменяет ресурс, и это надо контролировать и учитывать при добавлении
Андрей
30 мая 2023, 17:12
0
Скорее всего вот это поможет:

&tpl_N - Имя чанка для N-го ресурса, например, &tpl_4=`tpl4th` установит шаблон для 4-го ресурса.
&tpl_nN - Имя чанка для каждого N-го ресурса, например, &tpl_n4=`tplEvery4th` будет применено к каждому 4-му ресурсу.

Общие параметры
Добрый день. Как себя ведёт событие mousemove на мобильных устройствах?
Кровельный
30 мая 2023, 10:57
0
Работа с ТВ: Заменить значение в ТВ — не работает
Пакет уже обновлён до последней версии: mspre-2.4.5-pl

В функции newValue. Файла core/components/mspre/model/mspre/mspretvfield.class.php:55 — закомментируйте эту строку
<?php
/*if (empty($current)) {
    return false;
}*/
И всё. Заработает!
Алексей
30 мая 2023, 08:04
0
Кастомные поля созданы с помощью компанента ExtraFields.
Артур Шевченко
29 мая 2023, 21:57
0
Во-первых, сообщение «В форме содержатся ошибки!» выводится всегда, если в форме есть ошибки.
Во-вторых, параметры отвечающие за кастомные сообщения об ошибках отдельных валидаторов строятся по схеме
поле.vTextИмяВалидатора
Имя валидатора в кэмэл-кейсе, т.е. minLength для поля message нужно писать message.vTextMinLength.
У вас же они заданы очень своеобразно, сами придумали или рассказал кто?
Андрей
29 мая 2023, 17:10
0
p.s. Проверил у себя, условие в where рабочее:
{'!msProducts' | snippet:[
  'tpl' => '@INLINE {$id} - {$pagetitle} - {$price} - {$old_price}</br>',
  'limit' => 30,
  'parents' => 151,
  'sortby' => 'RAND()',
  'where' => '[{"Data.old_price:>":"Data.price"},{"Data.internet_magazin:=":"1"}]',
  'showLog' => 1
]}

//формирует запрос
Added where condition: class_key=msProduct, Data.old_price:>=Data.price, Data.internet_magazin:==1, ....

Но, поля расширены через доп — msAddField. Если же internet_magazin это твшка, опция, тогда надо по другому запрос переписать.
Андрей
29 мая 2023, 16:58
0
А что за поле — Data.internet_magazin? Можно включить параметр showLog и посмотреть какой запрос формируется.
Dan
Dan
29 мая 2023, 11:55
0
Дело в разметке. За вывод выбранных фильтров отвечает метод handleSelected. Если посмотрите код default.js от mSearch2, то увидите, что:
1) По умолчанию, контейнер фильтра — это ближайший родительский тег fieldset
2) Заголовок берется из дочернего элемента контейнера с классом .filter_title

Поэтому, раз у вас своя разметка, то нужно:
1) Создать новый js, например custom.js по адресу assets/components/msearch2/js/web/ и скопировать в него код из default.js, находящегося в той же директории.
2) В системных настройках по ключу mse2_frontend_js укажите созданный вами js-файл
3) В самом файле на 15-16 строчках замените значения filter_title и filter_wrapper на нужные вам.

Либо не трогая js указать это в вызове сниппета в параметре filterOptions
Dan
Dan
29 мая 2023, 11:41
0
А кастомные поля вы как создали? Просто добавили в БД?
Вы должны также сообщить о них самому Modx. Можете воспользоваться этим гайдом. Если не нужно отрисовывать поля в админке, то достаточно одного события OnMODXInit
Игорь
29 мая 2023, 09:45
0
Здравствуйте.
У Тинькофф есть новый способ оплаты «Оплата долями» www.tinkoff.ru/dolyame/. Ваш компонент не поддерживает такое пока?
maxgmm
29 мая 2023, 09:36
0
Да спасибо разобрался дополниьельное поле было написанно в феноме это не понравилось
Vladimir
28 мая 2023, 15:04
0
Так
$words = json_decode($res->getTVValue('words'), true);   
$words2 = json_decode($res->getTVValue('words2'), true);

$words3 = json_decode($res->getTVValue('words3'), true);   
$words4 = json_decode($res->getTVValue('words4'), true);   

$wordsToExclude = array_unique(array_merge($words, $words2, $words3, $words4));

$pattern = '/(?:' . join('|', $wordsToExclude) . ')/i';
Евгений
28 мая 2023, 14:23
0
подскажите как сделать чтобы брало не только из одного TV а из двух или трех?
точнее не как брать а как в коде плагина прописать так чтобы исключало сразу слова из 2 или 3 TV?

сейчас это
$words = json_decode($res->getTVValue('words'), true);         
$pattern = '/(?:' . join('|', $words) . ')/i';
как я понимаю можно
1 сделать переменную words2
а в строке pattern добавить его в исключение (не знаю только как )

2 добавить сразу данные из TV поля words2 в переменную words
Евгений
28 мая 2023, 10:17
0
у него есть какой то глюк или ограничение на слова и они просто обнуляются
Александр
27 мая 2023, 20:57
0
Удалость решить созданием точно такого же пресета, с которым импорт прошел. После чего заработал и первый пресет.
Изначально в файле XLSX импорта была ошибка — пустой столбец с родителями. После добавления родителей в файл импорта, все равно не работало, заработало только после создания второго пресета.
Кроме того при указании начинать импорт со строки 2 все равно импортирует первую строку, а если делать повторный импорт уже не импортирует.
Отсюда предположение: В компоненте как то кэшируются настройки.
И вопрос: Как от этого избавиться?