Всего 125 949 комментариев

Алексей Смирнов
13 ноября 2022, 17:30
+1
Вам просто нужно написать сниппет, который получит id связи у товара.
Пример как сделать запрос есть тут в доке на php: docs.modx.pro/komponentyi/minishop2/interfejs/nastrojki
Но вам параметр Link не нужно будет указывать, но придется немного написать код, чтобы выявить нужный id link из БД.
потом у вас будет ИД link который вы можете подставить в сниппет msProduct и он уже произведет выборку нужную.
Виталий
13 ноября 2022, 16:59
0
Так не получится, так как одна общая деталировка подгружается только к одной группе товаров, если прописать, что при отсутствии фото подгружать фото из папки А, то эта деталировка будет подгружаться ко всем товарам где нет фото. Мне как Алексей посоветовал наверное будет проще подгружать через TV фото деталировки, а при появление фото товара я его просто через карточку загружу, так не запутаюсь и все фото будут соответствовать товарам.
Виталий
13 ноября 2022, 16:39
0
Алексей, попытаюсь пояснить схематически.
Категория товаров одна в ней:

Товары | 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 столбце гипотетически просматриваемый товар покупателем, в последнем столбце то что транслирует слайдер. Если было бы возможно для каждой группы(был бы отдельный шаблон) писать снипет, проблем нет — выбираю по
parents
, но так как снипет один для всех групп, надо как-то оттолкнуться от Id просматриваемого товара, я так думаю. Я не знаю так можно например записать:
[[msProducts?
	&parents=`0`
	&ilink=`1,2,3,4`
       	&master=`[[*id]]`
]]
Будет снипет понимать, что покупатель сейчас смотрит например товар 49 и выводить в слайдер все товары с 41 по 60 связанные связью 3.
Алексей Смирнов
13 ноября 2022, 12:22
0
Те у вас зависимость товар + связь?
Ну id товара известна же...? Это [[*id]]
А вид связи если в товаре один, то не вижу проблем выводить. Просто указать ид связи…
Я поэтому и пытаюсь от вас добиться точной логики как оно должно работать, потому что пока вы сами четко не определите условия показа — посоветовать вам сложно.
И опять задам вопрос: допустим мы открыли какой то конкретный товар. Какие товары, связи конкретно для этого товара должны работать?
Александр Мельник
13 ноября 2022, 08:36
0
Врядли существует «способ из коробки» как грузить один и тот же файл, в качестве изображения для разных товаров. Но конкретно в вашем случае
если нет фото товара я подгружаю схему деталировки, и так как на схеме порядка 30 товаров, выходит, что я гружу одну и ту же фото, т.е. 30 одинаковых фото.
разве не решением будет просто проверять в коде, мол если фотография не загружена в галерею, то вывести ваши 30 фотографий? Складываете один раз ваши файлы со схемами в определенную директорию и нет необходимости загружать их к каждому товару.
Сергей Шлоков
13 ноября 2022, 08:00
0
Фронтов набирают. Vue/Nuxt уровня мидл и выше.
Виталий
13 ноября 2022, 00:50
0
Да я не стал писать полный вызов msProducts, там у меня и лимит есть и master прописан, дело то в другом,
Если я напишу
[[msProducts?
	&parents=`0`
	&ilink=`1`
       	&master=`15`
]]
То это не решит вопрос, снипет в шаблоне один, как другие связи вывести чтоб автоматом подгружались к id нужного товара, или мне надо выбрать связь «один ко многим» и вызывать так:
[[msProducts?
	&parents=`0`
	&ilink=`1,2,3`
       	&master=`15,23,46`
тогда снипет будет понимать из какой связи смотрит товар покупатель и будет подгружать в слайдер нужное.
Блин читаю мануал и не могу понять алгоритм, извиняюсь.
Алексей Смирнов
13 ноября 2022, 00:29
0
не вижу у вас в вызове параметров master.
вот дока docs.modx.pro/komponentyi/minishop2/snippetyi/msproducts
и скрин конкретный, где описывается как получить связи к конкретному товару:
joxi.ru/brR5VP7H7jR5QA
Громов Антон
12 ноября 2022, 23:20
0
Не, снизу нельзя.
Тогда в массив добавляйте
<?php
if ($modx->event->name != 'OnPageNotFound') {return false;}
$uri = $_SERVER['REQUEST_URI'];
$array = array(
    'fanera-fk' => 'fk',
    'search_2' => 'replace_2'
);

foreach($array as $key => $item) {
    if (strpos($uri, $key) !== false) {
        $replacement = str_replace($key,$item,$uri);
        $newUrl = $modx->getOption('site_url').$replacement;
        $modx->sendRedirect($newUrl,array('responseCode' => 'HTTP/1.1 301 Moved Permanently'));
    }
}
never3d22
12 ноября 2022, 22:47
0
а если еще нужен редирект просто снизу дописать переменную?
Громов Антон
12 ноября 2022, 22:45
0
Мой пример выше сработал?
Можно еще плагинчик на событие OnPageNotFound сделать
<?php
if ($modx->event->name != 'OnPageNotFound') {return false;}
$uri = $_SERVER['REQUEST_URI'];
$search = '/fanera-fk/';
$replace = '/fk/';

if (strpos($uri, $search) !== false) {
    $replacement = str_replace($search,$replace,$uri);
    $newUrl = $modx->getOption('site_url').$replacement;
    $modx->sendRedirect($newUrl,array('responseCode' => 'HTTP/1.1 301 Moved Permanently'));
}
never3d22
12 ноября 2022, 22:10
0
redirector стоит. Но не идет редирект со страниц этих категорий.
Громов Антон
12 ноября 2022, 22:08
0
как-то так
RewriteEngine on
RedirectMatch 301 /fanera-fk/ /fk/
Если меняете alias-ы, а не создаете новые категории, можно еще поставить autoRedirector на будущее.
Виталий
12 ноября 2022, 21:58
0
Спасибо, с фото буду пробывать по вашему совету через TV.
По второму вопросу постараюсь пояснить:
Есть родитель у которого допустим 150 товаров, конкретно это какое-то оборудование(родитель) и товары(запчасти). Но запчасти имеют градацию чисто технически, допустим: топливная система, двигатель, шасси и т.д. Товары одной градации при создании я связываю связью «многие к многим», т.е. в одной категории товары идут связанные не со всеми в этой категории а по градации. Т.е. создаю связь с id 1 и связываю одну группу, потом создаю связь с id 2 и связываю другую и т.д.
В карточке товара есть блок-слайдер назовем его допустим «С этими товарами смотрят» где листаются товары которые связаны связью.
Вызов этого блока делаю:
[[msProducts?
	&parents=`102`
	&ilink=`1`	
]]
Вот в ID связи то все и дело, мне нужно чтобы слайдер листал в одной категории товары только связанные с тем что сейчас смотрит покупатель, и так как в
&ilink=`___`
стоит выставленная id связь, то в товарах этого же родителя, но в другой градации будут листаться опять товары Id связи №1. Вот я и спрашивал как можно сделать, чтобы в слайдере msProducts выводил только связи товара который сейчас смотрит покупатель.
Алексей Смирнов
12 ноября 2022, 21:32
+1
1. класически вы просто загружаете одно фото для всех этих товаров.
Как вариант можно где-то оставить фото по умолчанию (в категории в TV или еще где) и сделать условие в чанке — если фоток галереи нет, показывать эту фотку заглушку.
2. Шаблон вообще один для товаров как правило и есть. Но суть вопроса все же не понял. Т.е вы указываете один какой-то товар и нужно чтобы показывались связанные только с этим товаром товарчики, а сам товар главный не показывался? Если не угадал то что вы хотите, то приведите пример своей ситуации или логики более четкой.
Александр Мельник
12 ноября 2022, 21:06
+4
Честно говоря, автор, вы так отвратно описали суть задачи, что я не уверен, что вы действительно ищите совета.
Вы сделали все возможное, чтобы ничего нельзя было понять.
В заголовке вы пишите про какие-то «реф урл на кнопке» и «редиректы».
Если говоря кнопка, вы имеете виду тег button, то у кнопок вообще нет урлов. Совершенно не ясно причем тут редиректы?
Потом ниже уже говорите про какие-то «красивые ссылки» и даете ссылку на сторонний сайт. Еа том сайте я лично не вижу ничего кроме рекламы какого-то очередного разводняка и говорите, что именно там кнопка, которая все прояснит. Я перехожу и вижу зеленую ССЫЛКУ, текст которой перейти на сайт и у нее самый стандартный атрибут href.
Далее пишите про какую то связь между гет параметров в урл строке и ссылкой, а потом еще и ТВ поля как то приплели.
Ужас. ничего не понятно.
Если бы я не знал, что это не первое ваше сообщение, я бы подумал что вы исключительно ради рекламы очередного «naeb_bet» написали.
Но нет, вы ищите сами решение, а значит вам важен результат. Поэтому просто совет, если хотите получить ответ. потрудитесь над составлением вопроса.
Алексей Смирнов
12 ноября 2022, 20:12
0
Вы в снипете не указали to_order, а memory, например, указали.
ну и внутри чанка в переменной $name будет ключ названия to_order
Сделайте условие и проверяйте в зависимости от значения. (в $name ключ опции, а в $values — значение)
Если не поняли о чем я, то лучше обратитесь в раздел работы тк тут нужно начинать с php и понимания переменных и циклов. и потом в fenom уже прыгать.
Алексей Смирнов
12 ноября 2022, 20:02
0
Есть BannerY там ссылки банеров формируются и еще и количество кликов считает.
Пойдет ли вам или нет не знаю.
deleted
12 ноября 2022, 18:10
0
а в компанию случайно разработчики не требуются?)
Евгений
12 ноября 2022, 17:24
0
нашел CloakLinks для EVO
может есть подобное для REVO?