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

Константин
11 августа 2022, 08:47
0
Спасибо!!! Разобрался) Но почему-то стали дублироваться в фильтре марки и модели: disk.yandex.ru/i/W-3JcFircMkXsg

Вывожу так же, только объект другой:
<script>
var carsModelsObject = {
    "KIA": {
        "Rio 3 QBR (11-17)": [],
        "Rio 4 FB (2017- )": [],
        "Soul 3 SK3 (2019- )": [],
        "Creta 1 GSR (2016-21)":[]
    },

    "Hyundai": {
        "Solaris 1 RBR (10-17)": [],
        "Solaris 2 HCR (2017- )": []
    }
}
</script>
<script>
      window.onload = function() {
        var carSel = document.getElementById("msoption|marka_0"); // мои названия опций
        var modelSel = document.getElementById("msoption|model_0"); // мои названия опций
    
        for (var x in carsModelsObject) {
            carSel.options[carSel.options.length] = new Option(x, x);
        }
        carSel.onchange = function() {
    
            modelSel.length = 1;
          //display correct values
          for (var y in carsModelsObject[this.value]) {
            modelSel.options[modelSel.options.length] = new Option(y, y);
          }
        }
      }
    </script>
И сам фильтр не работает, так как залетает в строку параметром опция marka как бы дублем:

Корректная строка:
https://rioek.ru/zapchasti/?marka=KIA&model=Soul%203%20SK3%20(2019-%20)
Строка с дублем марки:
https://rioek.ru/zapchasti/?marka=KIA&model=KIA%20Soul%203%20SK3%20(2019-%20)
Константин
11 августа 2022, 07:54
0
Дак это понятно, так у меня к примеру наличие выводится:
{if $available==1?}
	<div class="stock"><span></span> <span class="status-stock">В наличии</span></div>
{/if}
{if $available==2?}
	<div class="stock"><span></span> <span class="status-stock">Нет в наличии</span></div>
{/if}
{if $available==3?}
	<div class="stock"><span></span> <span class="status-stock">Под заказ</span></div>
{/if}
{if $available==4?}
	<div class="stock"><span></span> <span class="status-stock">Ожидается (в дороге)</span></div>
{/if}
Вопрос в другом. Как выводить 2 в 1 или даже 3 в 1, как на примере опции производитель. Ведь у этой опции есть еще поля, такие как наименование, логотип, страна производителя и проч.
Это можно сделать через MIGX, но использовать TV нет желания, по этому и вопрос, как это сделать средствами minishop2 м возможно ли?
Артур Шевченко
10 августа 2022, 23:06
0
А Вы пробовали прикладывать ум не к гаданию, а к документации?
Николай Савин
10 августа 2022, 19:35
+1
Объект это элемент и термин языка программирования, в данном случае JS. Это массив данных, вот в примере выше как раз, которым можно манипулировать. Источник данных может быть любым. А именно объект в контексте разговора это логический элемент языка. В него можно поместить данные. Данными можно манипулировать. Откуда они берутся — это уже десятый разговор.
Константин
10 августа 2022, 17:00
0
Дмитрий добрый вечер, можете подсказать что есть объект для начинающего? Это внешний xml файл, с таким содержимым?
var carsModelsObject = {
    "Alfa Romeo": {
        "146": [],
        "147": [],
        "156": []    
    },

    "Audi": {
        "80": [],
        "90": [],
        "100": [],
        "A2": [],
        "A3": [],
        "A4": [],
        "A5": [],
        "A6": [],
        "A6 Allroad": [],
        "A8": [],
        "Q2": [],
        "Q3": [],
        "Q5": [],
        "Q7": [],
        "TT": [],
        "V8": [],

    },
// и так далее по всем маркам...
}
Если да, то как его использовать, обращаться к нему?
Со скриптом понятно, а что с объектом делать не пойму…
Заранее спасибо, буду очень благодарен.
Сергей С
10 августа 2022, 16:16
0
Добрый день! Переносим сайт на другой хостинг. Сделали копию сайта и модуль перестал запускать импорт по крон. При крон настроен. Не запускается даже при запуске на странице настроек импорта.
Алекс Назаренко
10 августа 2022, 14:27
0
Спасибо! Плагины лишний раз использовать не люблю.
Николай Савин
10 августа 2022, 11:44
+2
У вас же кастомный класс корзины. Значит в любом месте, где это удобно по вашей бизнес-логике сделать, пишите примерно следующее
// сохраняете корзину в переменную
$cart = $this->get();
// Тут меняете корзину
$cart[$key]['price'] = 100;
// Перезаписываете корзину
$this->set($cart);
И это совсем не обязательно делать внутри класса корзины. Можно использовать функционал плагинов. Только там будет немного другое обращение к корзине через $ms2->cart->get() и set() соотвественно
Артур Шевченко
09 августа 2022, 23:54
0
Конкретно этот никак, поскольку он сделан на ExtJs не думаю, что есть смысл ради календаря подключать этот фреймворк. А передать с фронта можно как и любе другое поле — отправить запрос на сервер. Записать в БД можно предварительно преобразовав дату в UNIX формат.
Алекс Назаренко
09 августа 2022, 21:55
0
Так а где эту корзину исправлять? Она исправляется в
public function change($key, $count)
где и проверяется количество товара, от которого зависит цена.
Мне нужно именно из этого метода отправить, до обновления это делалось легко.
Николай Савин
09 августа 2022, 20:08
0
Метод change по заложенной в него логике отвечает только за изменение количества.
Чтобы изменить цену — корректнее будет использовать метод set, передав туда исправленную корзину.
Иван Бочкарев
09 августа 2022, 19:50
0
А можно будет пост сделать?
Константин Ильин
09 августа 2022, 17:31
0
Спасибо Сергей! работает

Вот только в документации нет такого параметра в разделе «Общие параметры» и у самого pdoSitemap, а вот заглянул сейчас в pdoMenu — там есть.
Сергей Шлоков
09 августа 2022, 17:10
+2
В параметрах сниппета отключи кэш
{'!pdoSitemap' | snippet : [
   ...
  'cache' => false
]}
Stepan
09 августа 2022, 15:00
0
Ну сам код события пригодится еще при отправке письма, а тут только тест
Алекс Назаренко
09 августа 2022, 14:38
0
Как теперь можно в кастомном классе msCartHandler c помощью функции change отправить в корзину новую цену при изменении количества товара?
Раньше вопрос решался добавлением однойстроки
$this->cart[$key]['price'] = 100;
А теперь, что дописать, чтобы изменить цену на 100?
Константин Ильин
09 августа 2022, 11:37
0
Понял Вас.
При смене http_host и site_url, pdoSitemap должен среагировать и сформировать новый sitemap.
Максим
09 августа 2022, 10:27
+1
Ну причем тут города? Я привел для примера и объяснил, что бы у вас было понимание, что делает данный плагин… Что бы вы могли увидеть схожесть ситуаций и понять, что я так же мог столкнуться с такой проблемой… Но не столкнулся…
Предположил, что ModX мог отдавать старый кеш шаблона\страницы так как в системных настройках видит соответствующий домен… Поэтому и предложил до начала обработки кеша изменить домен на корректный… Я давно не лазил в модуль кеширования и не помню что и как там реализовано…
Просто еще раз напомню, что с такой реализацией у меня и контент в полях корректный и роботсы и сайтмапы…
Константин Ильин
09 августа 2022, 09:22
0
@Сергей Шлоков, не проясните ситуацию?