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

maxgmm
11 августа 2022, 17:02
0
А есть возможность реализовать всплывающие уведомления о сообщениях?
Артур Шевченко
11 августа 2022, 16:22
0
Аналогично этому плейсхолдеру
{$_pls['vendor.logo']}
Или проблема в том, чтобы получить значение опции Статус производителя? Если да, то для этого есть msProductOptions
Константин
11 августа 2022, 15:58
0
На моем сайте установлен slick slider, я просто перед закрывающим тегом body вызываю 2 раза так:

/* Несколько slick слайдеров на одной странице */
$('.led-grid').each(function(){
    /* Основной слайдер */
    $(this).find('.slider-for').slick({
      slidesToShow: 1,
    slidesToScroll: 1,
    arrows: false,
    fade: true,
      autoplay: true,
      autoplaySpeed: 8000,
      asNavFor: $(this).find('.slider-nav'),
      dots: false
    });

    /* Связанный слайдер */
    $(this).find('.slider-nav').slick({
     slidesToShow: 3,
    slidesToScroll: 1,
      asNavFor: $(this).find('.slider-for'),
       dots: false,
    centerMode: true,
    focusOnSelect: true,
    arrows : false
    });
  });
</script>
  
<script>
  /* Несколько slick слайдеров на одной странице совместно с фильтрами и пагинацией*/
$(document).on('mse2_load', function(e, data) {
  $('.led-grid').each(function(){
    /* Основной слайдер */
    $(this).find('.slider-for').slick({
      slidesToShow: 1,
    slidesToScroll: 1,
    arrows: false,
    fade: true,
      autoplay: true,
      autoplaySpeed: 8000,
      asNavFor: $(this).find('.slider-nav'),
      dots: false
    });

    /* Связанный слайдер */
    $(this).find('.slider-nav').slick({
     slidesToShow: 3,
    slidesToScroll: 1,
      asNavFor: $(this).find('.slider-for'),
       dots: false,
    centerMode: true,
    focusOnSelect: true,
    arrows : false
    });
  });
});
</script>
Michael
11 августа 2022, 14:35
0
Здравствуйте, нет. Самостоятельно попробовал все способы какие считал максимально подходящими, не заработало. Никто так и не показал наглядного примера как это сделать. Если решите, буду благодарен за подсказку.
Александр Туниеков
11 августа 2022, 14:28
+1
Чтобы сразу был открыт чат с каким-то определенным юзаром надо добавить в ссылку GET-параметр user_id. урл_страницы_мессенджера?user_id=20
Чтобы убрать поиск юзера, чатов и список чатов, надо скопировать чанк tpl.RealMessenger.outer закомментировать в нем панель ctrl-panel. Например my.b4.tpl.RealMessenger.outer
<div id="realmessenger" data-hash="{$hash}">
    <div class="row">
        {*<div class="ctrl-panel">
            {$search_contact}
            {$search_chat}
            {$chats}
        </div>*}
        <div class="mess-panel">
            {$messages}
            {$form}

        </div>
    </div>
</div>
Иназначить этот чанк сниппету:
{'!RealMessenger' | snippet :[
    'OuterTpl'=>'my.b4.tpl.RealMessenger.outer',
]}
Константин
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 — там есть.