Всего 124 374 комментария

Павлик Мышкин
04 марта 2025, 16:48
0
Батчер я поставил первым делом, он не подходит для этого, но спасибо…
Андрей Шевяков
04 марта 2025, 16:09
0
А блин, прочитал внимательнее, не подойдет это дополнение, если надо перенести в дополнительную категорию (Чтобы товар стал в двух категориях).

Можно будет использовать только если перенести из одной категории в другую.
Андрей Шевяков
04 марта 2025, 16:08
0
В поиске нашел дополнение msPre за 5000 р. и msBatchEditor которого уже нет.
Вот такое есть дополнение для массовой выборки ресурсов и работы с ними Batcher
Дима Касаткин
04 марта 2025, 15:45
0
Не понимаю в чём тут «увы».
Перенести товары в категорию (переместить) → возможно встроенными средствами, добавить дополнительную категорию (чтобы товар в двух одновременно лежал) → тоже возможно. И всё это — используя встроенные функции.

Также можно, используя встроенные возможности выборки товаров, без какого-либо программирования, организовать подгрузку на нужную страницу товаров по определенным параметрам.

Кроме того, существуют готовые вспомогательные средства (в т.ч. платные, как недорогие, так и сравнительно более затратные) для ещё более гибкого и быстрого управления этими функциями.

В этой задаче применять создание дополнительной таблицы и потом ещё добираться до данных в ней я считаю сильно избыточным решением, но никто естественно не мешает так сделать.

Можете уточнить, какого элемента управления вам не хватило? И используемые версии Minishop + MODX, на всякий случай
Дима Касаткин
04 марта 2025, 14:17
0
На всякий случай, по теме: сегодня встретил размер папки кэша pdotools в 106gb. На сайте 3800 записей в таблице БД site_content и всего 125 товаров minishop2. Но есть фильтры и сложные чанки, хотя кода fenom в контенте нигде нет.

Может кому пригодится для ориентира по возможным размерам этой папки…

Решил отключить там настройку pdotools_fenom_cache, но cache_resource оставить включенной. На тестовых страницах замедления не заметил. Такой вот кейс.

pdoTools 2.13.2-pl под MODX 2.8.3
Павлик Мышкин
04 марта 2025, 13:27
0
Спасибо за ответы, есть над чем подумать, действительно несколько нетривиальных вариантов, например в БД сделать в таблицу ms2_product_categories импорт записей product_id > category_id.
Надеялся что я просто не увидел встроенную функцию в минишоп, но увы.
Дима Касаткин
04 марта 2025, 03:24
+1
вручную прощёлкать 300 товаров
Не обязательно :)

Если футболки размечены параметрами или опциями, и в них указаны, какие Черные, а какие Белые по признаку «цвет», и например С принтом или Без принта по признаку «тип», то удобнее создать отдельный шаблон «подборки товаров» и использовать его для страниц данного вида в паре с настроенными выборками через msProductsComposerSelection либо без него, если передать в вызов msProducts или mFilter через параметр &where или &tvFilters нужные данные для выборки иным способом (к примеру через ещё одну TV или опцию ms2)

MODX очень гибкий, всегда есть несколько решений. Даже если разметки характеристик у товаров нет, и прокликивать и размечать 1000 товаров не хочется то, хоть и не так точно и красиво, но всё-таки можно выбрать товары по названию через &where по маске «черн*» и «с принт*», а в случае недостаточной скорости — закэшировать всё это. И возможно, даже обновлять кэш в фоне через, например, scheduler
Матвей
03 марта 2025, 23:15
0
Понял, отлично. Спасибо!)
Матвей
03 марта 2025, 23:15
0
Да, почему то феном в чанке не хочет…
Артур Шевченко
03 марта 2025, 23:07
+1
нужно вручную прощёлкать 300 товаров
Да, либо написать скрипт который выберет товары и добавит в их в нужную категорию создав записи msCategoryMember
Павел Романов
03 марта 2025, 22:42
0
Это у Вас что-то не так ).
Смотрите логи сервера.
Павел Романов
03 марта 2025, 22:41
0
Так в них и выводите. В $category будет ID не родителя, а категории первого уровня.
То есть если у Вас так:…
  • Ракеты (1)
    • Подкатегория 1 (2)
      • Товар 1 (3)
      • Товар 2 (4)
      • Товар 3 (5)
      • Подкатегория 2 (6)
        • Товар 4 (7)
        • Товар 5 (8)

… то для всех подкатегорий и товаров $category будет 1 (ID Ракеты) вне зависимости от вложенности.
Матвей
03 марта 2025, 22:34
0
Протестировал. Ошибка 500
Матвей
03 марта 2025, 21:48
0
Это видел, а вот как работать с теми ресурсами, что вложены в Арбузы, Ракеты и Магию…
Павел Романов
03 марта 2025, 10:40
0
Для получения id верхней категории можно использовать pdoField, а дальше разводить. Если Ракеты, Арбузы, Магия находятся в корне (уровень указывается в topLevel), то так:
{var $category = 'pdoField' | snippet : ['topLevel' => 1, 'field' => 'id']}
{$category == 1}
    {include 'arbuzi'}
{elseif $category == 25}
    {include 'raketi'}
{elseif $category == 100}
    {include 'magic'}
{else}
{/if}
Артур Шевченко
03 марта 2025, 10:04
0
Вообще есть компонент ExtraFields который позволяет легко расширить модель ресурса и не использовать ТВ.

Так же можно написать свой модификатор, который будет получать на вход id родителя и id ресурса и проверять есть родитель в ответе метода $modx->getParentIds($rid). Есть два нюанса. Во-первых я не знаю есть ли такой метод в тройке. Во-вторых если построение карты ресурсов будет отключено в системных настройках, то работать модификатор перестанет.
Матвей
03 марта 2025, 00:00
0
Очередной TV для проверки на Феноме, что этот ресурс содержит указание — какой блок выводить… эх…
Глубина вложенности неопределенная, от 2 до…
Артур Шевченко
02 марта 2025, 23:52
+1
Возможно. На событие успешной отправки, проверяй какая форма была отправлена и в зависимости от этого меняй параметры Notyf
Артур Шевченко
02 марта 2025, 23:51
0
Если глубина вложенности равна 1, то просто проверяй родителя. Если нужна произвольная глубина вложенности лучше сделать у ресурсов доп.поле в котором хранить информацию о нужно чанке.
Матвей
02 марта 2025, 22:59
0
Собственно вопрос — как это реализовать в modX 3…

Вышеуказанные конструкции приводят к ошибке 500…