171 похожих чатов

Добрый вечер, подскажите, пожалуйста, есть вызов через mFilter товаров, в

котором один из параметров &includeThumbs=`medium`,

В чанке далее получаем превьюшку {if $thumb} {$medium} {/if}

Как получить массив превьюшек, надо в цикл их запустить?

77 ответов

104 просмотра

Надо в чанке вызывать msGallery

Дмитрий- Автор вопроса
Артур Шевченко💀
Надо в чанке вызывать msGallery

если чанк формируется в шаблоне категории товаров, это для каждой карточки товара он будет вызываться по N-раз на страницу тогда, не слишком это тяжело?

Дмитрий
если чанк формируется в шаблоне категории товаров,...

Именно так. Другой вариант изменить msProducts, чтобы он цеплял все превьюшки

Дмитрий- Автор вопроса
Дмитрий
"изменить msProducts" - сорцы чтоли править?

Зачем? Сделай копию сниппета и допиши джойн еще одной таблицы

Дмитрий- Автор вопроса

Ок, примерно понятно. Тут ещё в сниппете и ошибка кстать, ругается на 111 строке

Дмитрий
Ок, примерно понятно. Тут ещё в сниппете и ошибка...

Ну ты не знаешь на какую версию PHP настроен линтер в админке, вряд ли на 7.4

Дмитрий- Автор вопроса
Артур Шевченко💀
Зачем? Сделай копию сниппета и допиши джойн еще од...

тут нагуглил ещё, что через $modx->getObject можно получить url к превьюшкам <?php $size = $iddd."/340x390/"; // размер превью $rank = 1; //порядковый номер if ($r = $modx->getObject('msProductFile',array('product_id'=>$iddd, 'path'=>$size,'rank'=>$rank))){ echo $r->get('url'); } else { echo 'нет такого'; } но тут конкретно второе превью получают, а как массив получить и ограничить его лимитом? например задать limit=5 и он выдаст массив 5 первых url

Дмитрий
тут нагуглил ещё, что через $modx->getObject можно...

Единственный эффективный способ получить превью это джоин

Дмитрий- Автор вопроса
Артур Шевченко💀
Единственный эффективный способ получить превью эт...

а вот тут разве он не джоинит все првеьюшки? только он получает самый первый элемент, а не все rank=0

Дмитрий- Автор вопроса
Артур Шевченко💀
Ну да, только тебе же не одну надо а все

ну вот и говорю, может не надо дописывать новый джоин, а текущий изменить, убрать rank или как

Дмитрий
ну вот и говорю, может не надо дописывать новый дж...

Ну получается не надо новый, я просто код всех сниппетов наизусть не помню)))

Дмитрий- Автор вопроса
Артур Шевченко💀
Ну получается не надо новый, я просто код всех сни...

но я так понимаю это потом потянет за собой везде, где мы выводим thumb - надо будет указывать rank 0 везде, где нужно получить только первое превью

Дмитрий
но я так понимаю это потом потянет за собой везде,...

Нет, ты же сделаешь копию и где надо получить массив файлов вызывай кастомный, а где не надо - вызывай обычный

Дмитрий- Автор вопроса

Если msGallery вызывать для каждого блока товара, это намного тормознее будет, чем делать выборку в сниппете msProduct? например, если на странице 36 блоков с товарами

Дмитрий- Автор вопроса
Артур Шевченко💀
Если товаров до 1000 то не сильно

вообще-то в базе товаров много будет, но на одной странице категории будет выводиться 36 за раз.

Дмитрий- Автор вопроса
Артур Шевченко💀
Насколько много?

ну больше 10 тыс. , а может 20 тыс.

Дмитрий
ну больше 10 тыс. , а может 20 тыс.

Ну тогда лучше джойн сделать

Дмитрий- Автор вопроса
Дмитрий- Автор вопроса
Артур Шевченко💀
Ну тогда лучше джойн сделать

я сделал кастомный msProduct, убрал rank из выборки 'on' => "`{$thumb}`.product_id = msProduct.id AND {$thumb}.path LIKE '%/{$thumb}/%'", но у меня теперь выводится не массив изображений внутри одного товара, а столько блоков товаров, сколько изображений у него.. то есть если у товара 5 изображений - он мне 5 карточек выводит

Дмитрий- Автор вопроса

пробовал rank через i++ запускать, но там дичь какая-то получилась)

Дмитрий
я сделал кастомный msProduct, убрал rank из выборк...

Тебе нужно что-то типа такого https://yandex.ru/search/?text=sql+как+присоединить+несколько+строк+&lr=35&clid=2358536

Дмитрий
пробовал rank через i++ запускать, но там дичь как...

я правильно понимаю, что тебе для мобилок надо другой размер выводить?

Дмитрий- Автор вопроса
Дмитрий- Автор вопроса
Денис Усманов
пфф) изиже

ну я чёт не понял как мне массив thumbs получить для этого)

Дмитрий- Автор вопроса
Денис Усманов
msGallery конечно же

ну вот там выше Артур предлагал, либо в чанк добавить вызов msGallery, либо кастомный сниппет msProducts сделать, но вроде как через msGallery тормознее будет)

Дмитрий- Автор вопроса

да хз) наверно пока товаров немного норм, будет, вопрос когда товаров будет 20 тыщ

ответ хочешь? lazyload...

Дмитрий
да хз) наверно пока товаров немного норм, будет, в...

ну и да, ты же не сразу будешь выкатывать на страницу 20к товаров, ajaxMode всему голова

Денис Усманов
ну и да, ты же не сразу будешь выкатывать на стран...

и вряд ли будут те, кто эти 20к товаров будут мотать от и до

Дмитрий- Автор вопроса
Дмитрий- Автор вопроса
Дмитрий- Автор вопроса
Денис Усманов
ну и да, ты же не сразу будешь выкатывать на стран...

на одной странице будет по 36 карточек товаров и пагинация

Дмитрий
а фильтры в категории?

ну, фильтр же подгружать будет опять же с ajaxMode лимитированно

Дмитрий
на одной странице будет по 36 карточек товаров и п...

ну ты реализуй и смотри в debugParser, какое время вывода там будет

Дмитрий
на одной странице будет по 36 карточек товаров и п...

я бы главное максимум по 3 фотки вытаскивал, а не все у товаров

Дмитрий- Автор вопроса
Дмитрий- Автор вопроса
Денис Усманов
я бы главное максимум по 3 фотки вытаскивал, а не ...

так а я и хотел так, только limit=5 поставить. Нафига мне туда по 20 штук фоток вытаскивать

Дмитрий
так а я и хотел так, только limit=5 поставить. Наф...

ну вот, а при таком раскладе, считай 36 карточек - это если все умещаются на странице максимум 36 фото подгружаются, даже если jpg/png размером ~200-300x200x300 то вес не большой, норм

Дмитрий- Автор вопроса
Дмитрий- Автор вопроса
Денис Усманов
тем более webp раз...

👌 сделаю через msGallery, посмотрю как рабоатть будет, ну в крайнем случае уже переделаю, если проблемы каки-будут

Дмитрий- Автор вопроса
Денис Усманов
тем более webp раз...

Денис, подскажи ещё пжлс, а как мне передать id товаров в каждую карточку товара?

Дмитрий- Автор вопроса

да, спасибо, всё получилось

Дмитрий- Автор вопроса
Денис Усманов
а что надо то? msGallery не работает?)

короче, всё кайфово получилось, единственное, после применения любых фильтров mFilter у меня слетает этот HvrSlider.. Как его инициализировать заново?

Дмитрий
короче, всё кайфово получилось, единственное, посл...

хм, хз даже) повесь setInterval на него ахах) так будет работать, но точки тупить будут, да и это костыль тот ещё

Дмитрий
хм...

не, а если по правильному... надо повесить переинициализацию Hvr после фильтрации...

Дмитрий- Автор вопроса
Денис Усманов
не, а если по правильному... надо повесить переини...

Это я понимаю. Есть какой-нибудь eventlistener на события mFilter?

Дмитрий
Это я понимаю. Есть какой-нибудь eventlistener на ...

да просто кинь jquery где при клике на кнопку "фильтровать" (если такая имеется) переинициализировать Hvr

Дмитрий
Это я понимаю. Есть какой-нибудь eventlistener на ...

а если нету, то смотри у mFilter какое событие по JS происходит при фильтрации

Дмитрий- Автор вопроса
Дмитрий- Автор вопроса
Дмитрий- Автор вопроса
Денис Усманов
на вот, изучай

Денис, подскажи, пжс, а ты не делал на данном примере возврат первого изображения при отведении мыши из области? Я правда этот код на jquery взял, но мне бы хоть суть понять, событие вот начинаю обрабатывать, а дальше хз) hvrSectors.on("mouseleave", function (e) { console.log('Мышь сбежала'); });

Дмитрий- Автор вопроса
Денис Усманов
на вот, изучай

jquery у автора взял отсюда https://dimox.name/hover-images-slider-preview/#comment-22732

Дмитрий
Денис, подскажи, пжс, а ты не делал на данном прим...

ну, там же jquery, советую потыкать ChatGPT по такому вопросу

Дмитрий- Автор вопроса
Денис Усманов
ну, там же jquery, советую потыкать ChatGPT по так...

норм, в этот раз gpt помог, а то обычно дичь какую-то выдает) правда в основном про php я его спрашивал

Дмитрий
норм, в этот раз gpt помог, а то обычно дичь какую...

Готовые скрипты дает, ему надо научиться правильно вопросы задавать

Дмитрий- Автор вопроса
Александр Щербаков
Готовые скрипты дает, ему надо научиться правильно...

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

Похожие вопросы

Обсуждают сегодня

А как старый хаскел с новым стыковать ? потому как тут работает https://play.haskell.org/saved/C3xpMzcd, а вот тут https://stepik.org/lesson/7602/step/9?unit=1473 нет ошибка C...
Fedor
131
что насчет пагинга? на осдеве непонятно(
Vi Chapmann 🪙
26
Вопрос я правильно понимаю что в коде newtype ArrowMap k v = ArrowMap { getArrowMap :: k -> Maybe v } getArrowMap есть функция типа k -> Maybe v, если да, то не понимаю задач...
Fedor
64
Ребят, что лучше для реверса: гидра или ида?
En Vind Av Sorg
26
Делаю велосипед логгер. К сообщению хочу прикрутить некоторую информацию, типа, кем отправлено, какой уровень, и всякое такое. И тут подумалось мне, почему бы не хранить весь...
Serjone
24
Как Вы считаете нормально ли в двадцатых годах 21 века в ВУЗах Российской Федерации обучать студентов работе с TASM? Не слишком ли это "архаично"? (Если оффтоп или флейм для э...
Spiker01
52
Комрады, хотел уточнить. Проперть в OnDestroy юнита-хозяина по-прежнему доступна? И еще уточнение: finalization юнита наступает раньше или позже OnDestroy?
Ed Doc
48
если загрузчик efi? если сама PML4 PDPT PDT PT лежит в неудобном для меня месте?
Vi Chapmann 🪙
8
Продолжая диалог про свифт в проде – сейчас возник вопрос в активном наборе бекендеров. В основном в нашей компании мы фанаты Java Spring и полностью ей довольны. Однако найм ...
Guseyn
27
Читаю сейчас [нет, уже больше не читаю!] курсовую о Булгакове, написанную, похоже, с помощью ChatGPT. Это удивительный психоделический опыт. Текст в основном написан в стиле б...
✨ Uni [🌊 В отпуске]
1
Карта сайта