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

vectorserver
14 ноября 2022, 06:31
-1
Хабр: habr.com/ru/company/southbridge/blog/325568/
Твои посты про Nest на портале про MODX равносильны как, ты приехал на BMW M5 в лес на соревнования по бездорожью!
iWatchYouFromAfar
14 ноября 2022, 02:58
0
Я бы вот например с большим удовольствием почитал статью по организации докера для дева (локально) и для прода (на сервере) с автоматическим деплоем с гита.

Но у меня если честно, в голове на эту тему какой-то сумбур… Помимо миграций, там еще нужно запускать скрипты автоустановки и автонастройки компонентов. Базу файлов тоже поддерживать в актуальном состоянии. Но не думаю что в контексте MODx люди часто разворачивают VPS. В основном многие сидят на шейрингах, а там это как-бы, мало актуально, наверное.

Пишу об этом, т.к. вести разработку через контейнирезацию и Git (для системы версий и деплоя на продакшн), это очень удобно. Особенно когда хорошо умеешь в девопсе.
Виталий
13 ноября 2022, 18:22
0
Направление для решения понял, спасибо, если объем файлового хранилища на хостинге будет поджимать пойду по этому пути. Спасибо, вопрос закрыт.
Алексей Смирнов
13 ноября 2022, 18:17
+1
Нужно написать условие — если фотки нет, то выводить другое…
Если на странице товара — одно условие с msGallery, а если в чанке товара для msProduct то там image плейсхолдер есть его и проверять на пустоту.
Виталий
13 ноября 2022, 18:09
0
Алексей понял, спасибо, значит простого решения нет через параметры снипета, я это и хотел понять, оставлю этот вопрос тогда до лучших времен, так как это просто моя хотелка, принципиальной надобности в этом нет. А не подскажешь как вывести вместо заглушки фото товара, фото из TV поля, или там все тоже непросто и обычной заменой пути к адресу заглушки не обойтись и надо опять писать код.
Алексей Смирнов
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. Шаблон вообще один для товаров как правило и есть. Но суть вопроса все же не понял. Т.е вы указываете один какой-то товар и нужно чтобы показывались связанные только с этим товаром товарчики, а сам товар главный не показывался? Если не угадал то что вы хотите, то приведите пример своей ситуации или логики более четкой.