Как реализовать одну фотографию на сервере для многих товаров Minishop2 ?
Добрый день.
Подскажите есть два вопроса по Minishop2.
Может зря конечно пишу и ответ очевиден, и как всегда напишут читай матчасть. Но если честно тыкните якорь-ссылочку, где почитать, не могу найти ответа в интернете.
1. В карточке товара, в галерее, фото можно подгрузить только с внешнего источника(комп и т.д.), но вопрос в том, что мне желательно присвоить одну фотографию большому количеству товаров. Поясню, если нет фото товара я подгружаю схему деталировки, и так как на схеме порядка 30 товаров, выходит, что я гружу одну и ту же фото, т.е. 30 одинаковых фото. Подскажите, как в галерее в карточке товара можно присвоить фото что лежит уже на сервере, перетаскивание в поле загрузочной панели из файловой системы заблокировано.
2. Делаю выборку на странице товаров с помощью msProducts, сейчас через связи слайдер листает все товары грубо говоря одного комплекта. Но дело в том, что в msProducts надо прописывать Id связи товаров. А так как шаблон карточки один, не могу понять как сделать чтобы msProducts подцеплял связь автоматически
P/s Извиняюсь, если объяснил не совсем доходчиво свои мысли.
Подскажите есть два вопроса по Minishop2.
Может зря конечно пишу и ответ очевиден, и как всегда напишут читай матчасть. Но если честно тыкните якорь-ссылочку, где почитать, не могу найти ответа в интернете.
1. В карточке товара, в галерее, фото можно подгрузить только с внешнего источника(комп и т.д.), но вопрос в том, что мне желательно присвоить одну фотографию большому количеству товаров. Поясню, если нет фото товара я подгружаю схему деталировки, и так как на схеме порядка 30 товаров, выходит, что я гружу одну и ту же фото, т.е. 30 одинаковых фото. Подскажите, как в галерее в карточке товара можно присвоить фото что лежит уже на сервере, перетаскивание в поле загрузочной панели из файловой системы заблокировано.
2. Делаю выборку на странице товаров с помощью msProducts, сейчас через связи слайдер листает все товары грубо говоря одного комплекта. Но дело в том, что в msProducts надо прописывать Id связи товаров. А так как шаблон карточки один, не могу понять как сделать чтобы msProducts подцеплял связь автоматически
&link=`.........`, чтобы не писать Id связи и использовать один шаблон для всех товаров и всех комплектов созданных связей. Грубо говоря, хочется чтобы msProducts видел Id товара и автоматом выводил в слайдер все товары только этой связи а не других. P/s Извиняюсь, если объяснил не совсем доходчиво свои мысли.
Комментарии: 13
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
Как вариант можно где-то оставить фото по умолчанию (в категории в TV или еще где) и сделать условие в чанке — если фоток галереи нет, показывать эту фотку заглушку.
2. Шаблон вообще один для товаров как правило и есть. Но суть вопроса все же не понял. Т.е вы указываете один какой-то товар и нужно чтобы показывались связанные только с этим товаром товарчики, а сам товар главный не показывался? Если не угадал то что вы хотите, то приведите пример своей ситуации или логики более четкой.
По второму вопросу постараюсь пояснить:
Есть родитель у которого допустим 150 товаров, конкретно это какое-то оборудование(родитель) и товары(запчасти). Но запчасти имеют градацию чисто технически, допустим: топливная система, двигатель, шасси и т.д. Товары одной градации при создании я связываю связью «многие к многим», т.е. в одной категории товары идут связанные не со всеми в этой категории а по градации. Т.е. создаю связь с id 1 и связываю одну группу, потом создаю связь с id 2 и связываю другую и т.д.
В карточке товара есть блок-слайдер назовем его допустим «С этими товарами смотрят» где листаются товары которые связаны связью.
Вызов этого блока делаю:
Вот в ID связи то все и дело, мне нужно чтобы слайдер листал в одной категории товары только связанные с тем что сейчас смотрит покупатель, и так как в стоит выставленная id связь, то в товарах этого же родителя, но в другой градации будут листаться опять товары Id связи №1. Вот я и спрашивал как можно сделать, чтобы в слайдере msProducts выводил только связи товара который сейчас смотрит покупатель.
вот дока docs.modx.pro/komponentyi/minishop2/snippetyi/msproducts
и скрин конкретный, где описывается как получить связи к конкретному товару:
joxi.ru/brR5VP7H7jR5QA
Если я напишу То это не решит вопрос, снипет в шаблоне один, как другие связи вывести чтоб автоматом подгружались к id нужного товара, или мне надо выбрать связь «один ко многим» и вызывать так:
тогда снипет будет понимать из какой связи смотрит товар покупатель и будет подгружать в слайдер нужное.
Блин читаю мануал и не могу понять алгоритм, извиняюсь.
Ну id товара известна же...? Это [[*id]]
А вид связи если в товаре один, то не вижу проблем выводить. Просто указать ид связи…
Я поэтому и пытаюсь от вас добиться точной логики как оно должно работать, потому что пока вы сами четко не определите условия показа — посоветовать вам сложно.
И опять задам вопрос: допустим мы открыли какой то конкретный товар. Какие товары, связи конкретно для этого товара должны работать?
Категория товаров одна в ней:
Товары | ID Связи | Карточка товара | Слайдер товаров
с 1 по 20 | 1 | допустим товар 11 | с 1 по 20
с 21 по 40 | 2 | допустим товар 25 | с 21 по 40
с 41 по 60 | 3 | допустим товар 49 | 41 по 60
с 61 по 80 | 4 | допустим товар 75 | с 61 по 80
Теперь поясню, группы товаров связаны связью(многие к многим) столбцы 1 и 2, в 3 столбце гипотетически просматриваемый товар покупателем, в последнем столбце то что транслирует слайдер. Если было бы возможно для каждой группы(был бы отдельный шаблон) писать снипет, проблем нет — выбираю по , но так как снипет один для всех групп, надо как-то оттолкнуться от Id просматриваемого товара, я так думаю. Я не знаю так можно например записать:
Будет снипет понимать, что покупатель сейчас смотрит например товар 49 и выводить в слайдер все товары с 41 по 60 связанные связью 3.
Пример как сделать запрос есть тут в доке на php: docs.modx.pro/komponentyi/minishop2/interfejs/nastrojki
Но вам параметр Link не нужно будет указывать, но придется немного написать код, чтобы выявить нужный id link из БД.
потом у вас будет ИД link который вы можете подставить в сниппет msProduct и он уже произведет выборку нужную.
Если на странице товара — одно условие с msGallery, а если в чанке товара для msProduct то там image плейсхолдер есть его и проверять на пустоту.
разве не решением будет просто проверять в коде, мол если фотография не загружена в галерею, то вывести ваши 30 фотографий? Складываете один раз ваши файлы со схемами в определенную директорию и нет необходимости загружать их к каждому товару.