Всего 125 692 комментария

Артур Шевченко
28 ноября 2020, 00:48
0
Ну, товарищ, когда я говорил Нет я имел ввиду прежде всего то, что компонент задумывался для работы с классами minishop2, а так-то конечно можно, но зачем рассказывать человеку о неоптимальных способах реализации, счастье в неведении)))
Олег Щавелев
28 ноября 2020, 00:37
0
@Артур.

А почему вы так считаете? Вопрос в оптимальности, в размере БД и многих других фактором. Но ответ — да можно.

Для индексации запросов mSearch нужно прописать префикс TV и алиас поля и результаты поиска будут индексироваться с учетом значения указанного TV поля. Просто пропишите в системных настройках.



А если мы говорим о фильтрации mFilter2 — там та же история — ссылка на техническую документацию

А для @Сергей Самусев

Но это не означает, что это «идельное» решение, я рекомендую почитать про ТВ поля, как они работают (на сколько быстро), прикинуть какого размера будет БД, сколько будет документов. Взвесить все, почитать доки и дальше приступать к внедрению.
Андрей
27 ноября 2020, 23:37
0
Артур, получилось по решению в первом комменте. Намудрил с условиями. Вынес за скобки и все заработало.
Артур Шевченко
27 ноября 2020, 23:21
0
Нет. Но что мешает установить minishop2 и создавать товары? Точнее ресурсы типа Товар Магазина.
Артур Шевченко
27 ноября 2020, 23:09
0
Надо смотреть на проблему в действии.
Артур Шевченко
27 ноября 2020, 23:07
0
В каком плагине не работает?
Артур Шевченко
27 ноября 2020, 23:02
0
Я делал уведомления на сайте через этот сервис comet-server.com/. Создал таблицу в бд куда писал данные, но если сохранять не надо, то можно и без своей таблицы, просто шлёшь запросы и всё.
Артур Шевченко
27 ноября 2020, 22:41
0
Можно. Но не понятно вы про админку или фронт? Если про админку, то зачем вам одинаковая для всех видео картинка? Если про фронт, то просто добавьте колонку в migx.
Артур Шевченко
27 ноября 2020, 22:37
0
Написать плагин на событие msOnBeforeCreateOrder где проверить группу и изменить стоимость доставки, а на фронте просто проверить группу и посчитать скидку. Например через fenom
{if $_modx->user.id | ismember: 'GroupName'}
    {set $deliveryCost = $deliveryCost * 0.8}
{/if}
Артур Шевченко
27 ноября 2020, 22:29
0
Я бы повесил на событие onDocFormSave и проверял бы class_key если товар, то заполняем свойства, только возможно стоит получить именно объект msProduct, а не modResource. У последнего нет поля weight, поэтому оно и не заполняется.
Артур Шевченко
27 ноября 2020, 22:24
0
Через Контроль доступа. В этой политике miniShopManagerPolicy уберите галочку разрешающую удаление заказов.
Артур Шевченко
27 ноября 2020, 22:19
0
можно использовать конструкцию, которую я назвал compareDate
<?php
$input = new DateTime($input);
if(!$input){return false;}
if(!$options){
    $options = new DateTime();
}else{
    $options = new DateTime($options);
}
$interval = $options->diff($input);
return $interval->format('%R%a');
Это модификатор для сравнения дат. Можно через fenom вывести migx и использовать этот модификатор
{set $tv = json_decode($_modx->resource.migxTvName, 1)}
{foreach $tv as $key => $item}
    {if ('' | compareDate: $item['тут ваша дата']) == 0}
        /* тут то что нужно показать в эту дату */
    {/if}
{/foreach}
Константин
27 ноября 2020, 22:13
0
Я это всё и сделал.
Вопрос вот в чём. Должен ли автоматически создаваться при этом файл sitemap.xml или нет?
И для яндекса и гугла указывать путь в данном случае site/index.php?id=22 или нет?
Артур Шевченко
27 ноября 2020, 22:05
0
Без написания плагина на событие msOnBeforeAddToCart никак. Плагин примерно такой:
<?php
switch ($modx->event->name) {
    case 'msOnBeforeAddToCart':
        $product->get('id');
        $resource = $modx->getObject('modResource',  $product->get('id'));      
        $product->set('price', $resource->getTVValue('price_drop'));       
    break;
}
Для простоты лучше на фронте добавить
<input type="text" name="price_drop">
под price_drop тогда можно будет сделать так
<?php
switch ($modx->event->name) {
    case 'msOnBeforeAddToCart':       
        $product->set('price', $_POST['price_drop']);       
    break;
}
Иван Бочкарев
27 ноября 2020, 21:35
0
Из документации:
Инструкция по созданию файла sitemap.xml

1. Создайте новый документ в корне сайта. На вкладке Документ выберите пустой шаблон, укажите Заголовок документа (не важно какой), и псевдоним sitemap. Проверьте, чтобы стояли галочки «Опубликован» и «Не показывать в меню».
2. Перейдите на вкладку Настройки и укажите «Тип содержимого» — «XML».
3. Уберите галочку с «Использовать HTML-редактор» и сохраните документ.
4. В содержимом ресурса вызовите только сниппет pdoSitemap
Константин
27 ноября 2020, 21:33
0
Это понятно. Ну он у меня получается по адресу site/index.php?id=22.
А по адресу site/sitemap.xml файл пустой. Вот и спрашивается какой адрес указывать?
Алексей Шумаев
27 ноября 2020, 21:21
0
Да, без extjs как-то удобнее получается ))
Попробовали на vue: http://prntscr.com/vreun9
Александр Мельник
27 ноября 2020, 21:20
0
когда перехожу на нужную страницу, то sitemap отображается.
вот этот адрес и указывайте.
Иван Бочкарев
27 ноября 2020, 21:01
0
Странный маленько вопрос =).

Какой адрес у созданного ресурса с картой, обычно https://site/sitemap.xml его и указываем.
Иван Бочкарев
27 ноября 2020, 20:32
0
Все хотелки которые я озвучил выше НУЖНЫ КАЖДОМУ.
Ещё раз говорю, это вам кажется, что всем нужно. Мне например не нужно, Васе, Пете тоже. Вы сделали опрос? У вас есть статистика так говорить за всех?

Каждое улучшение обговаривается группой разработчиков и принимается коллегиальное решение. Также выше уже сказал по платным дополнениям и про компонентный подход.