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

deleted
04 апреля 2023, 00:00
+1
Я сейчас весь кастомный бэк в отдельной папке храню. Искать проще и можно на другой сайт быстро скопировать
Александр Мельник
03 апреля 2023, 20:03
0
php консоль в modx имеет свои секреты или это я не понимаю простых вещей?
Подскажите пожалуйста, почему код приведенный выше работает?
Мы задаем количество, задаем сдвиг. Делаем выборку чего либо, получаем массив объектов.
Иттерируемся по этим объектам, выполняем какую то логику.
Когда цикл завершился мы высчитываем новый сдвиг, дополнительно в цикле визуализируем «прогрессбар» НО что заставляет скрипт запустится снова? Почему происходит получение новых объектов и снова запускается цикл?
В моем понимании этот скрипт (конкретно тот что в заметке) должен отработать ровно 1 ресурс (поскольку step=1) и умереть.
Артур Шевченко
03 апреля 2023, 17:45
0
1. Открывать и закрывать нужно через класс, а не через инлайновый стили.
2. В чанке родителя делай проверку
{$_modx->resource.parent == $id ? 'open' : ''}
3. В чанке потомка делай проверку
{$_modx->resource.id == $id ? 'active' : ''}
Сергей
03 апреля 2023, 15:27
0
Отличный плагин, просто незаменимый при отладке. Проблем в его работе не найдено (MODx 3.0.3, PHP 8). Автору искреннее спасибо.
Артур Шевченко
03 апреля 2023, 13:59
+2
Чтобы отделить свой код от чужого. К тому же, мало ли что случится, если кому-то придёт в голову мысль переустановить ZoomX. В общем, я бы назвал это инкапсуляцией.
Николай Савин
03 апреля 2023, 13:49
0
А для чего нужно хранить контроллеры в «своей» папке? Чем родная не подходит?
Эдвард Ерохин
03 апреля 2023, 11:34
0
Подскажите пожалуйста, на последней версии список городов, и отделений выводит только после ввода. Возможно есть какой то способ, который позволит их все таки подгружать сразу а не после ввода первой буквы?
Артур Шевченко
03 апреля 2023, 10:34
0
Если вы начинающий, используйте Modx 2.8.5
Алексей Смирнов
03 апреля 2023, 08:43
0
Минишоп2 4.х не поддерживает MODX 3.
Дима Касаткин
02 апреля 2023, 18:25
0
Подскажите, кто пользуется, что означает функция «Удалить Пользователя» по правому клику в логе посетителей компонента (в моем кейсе все пользователи — гости, сайт без личного кабинета):


И я так понял, что если отметить «Благополучный», то этот User-Agent сможет получить доступ к сайту, верно? Или это IP?

P.S. Вообще это всё мог бы протестировать, но во-первых, страшно нажимать кнопки не глядя (можно и из поиска сайт выкинуть случайно), а во-вторых, ответы останутся тут, и кто-то следующий уже не экспериментируя будет знать что как настраивать!
Артур Шевченко
01 апреля 2023, 22:07
+1
В вёрстке добавляем блок
<div id="remain">0</div>
В ФАЙЛ со скриптами (потому что нужно блюсти чистоту кода) добавляем код:
$(document).on('msoptionsprice_product_action', function (e, action, form, response) {
       $('#remain').innerText = response.modification.count;   
});
Всё.
Николай Мирошниченко
01 апреля 2023, 21:47
0
Кому интересно, то вот так реализовал. Костыли, но работают…
На странице товара вывожу остаток модификации товара

<p class="msoptionsprice-count msoptionsprice-[[*id]] numeric-value" id="ajax-container">[[+count]]</p>
в footer добавил js с таким содержимым

document.addEventListener("DOMContentLoaded", function() {
  function handleAjax() {
    const numericElements = document.querySelectorAll(".numeric-value");
    for (let i = 0; i < numericElements.length; i++) {
      const value = parseFloat(numericElements[i].textContent);
      if (value === 0) {
        numericElements[i].textContent = "Нет в наличии";
      } else if (value > 0) {
        numericElements[i].textContent = "Есть в наличии";
      }
    }
  }
  document.addEventListener("ajaxLoad", handleAjax);
  setTimeout(function() {
    const newNumericValue = document.createElement("span");
    newNumericValue.textContent = "0";
    newNumericValue.classList.add("numeric-value");
    document.body.appendChild(newNumericValue);
    const newNumericValue2 = document.createElement("span");
    newNumericValue2.textContent = "10";
    newNumericValue2.classList.add("numeric-value");
    document.body.appendChild(newNumericValue2);
    const ajaxLoadEvent = new Event("ajaxLoad");
    document.dispatchEvent(ajaxLoadEvent);
  }, 3000);
  const observer = new MutationObserver(function(mutationsList) {
    for (const mutation of mutationsList) {
      if (mutation.type === "childList") {
        const ajaxLoadEvent = new Event("ajaxLoad");
        document.dispatchEvent(ajaxLoadEvent);
      }
    }
  });
  const ajaxContainer = document.querySelector("#ajax-container");
  if (ajaxContainer) {
    observer.observe(ajaxContainer, { childList: true });
  }
});
Николай Мирошниченко
01 апреля 2023, 21:31
0
В целом так и сделал… Благодарю.
Николай Мирошниченко
01 апреля 2023, 12:34
0
Делаю вот так:
Вызываю так на странице товара

[[!msOptionsPrice.modification?
&tpl=`count_tpl`
&where=`{"count" > 0}`
&toPlaceholder=`mycounts`
]]
Чанк count_tpl
[[+count]] шт
Затем пытаюсь вывести на странице так
<span class="msoptionsprice-count msoptionsprice-[[*id]]">[[+mycounts]]</span>
Я понимаю что ошибка но не могу понять как это решить. На примере есть вывод кол-ва товара вот тут, но как его вывести… не пойму
Николай Мирошниченко
01 апреля 2023, 11:41
0
К сожалению не вывожу списком. Работают как опции товара. Скрыть кнопку «купить» если кол-во = 0… подскажите это, в целом, возможно? Возможно был опыт?
Дмитрий
01 апреля 2023, 03:57
0
Автору низкий поклон! Очень нужная тема!
Денис Усачев
31 марта 2023, 21:57
0
Помогите разобраться с ieMsOptionsPrice2. Питаюсь экспортировать исключительно опубликованные товары и модификации но в результате экпортирует все товари включая не опубликованные. Настройки 1 и 2 не помагают.
1. Опции — Документ Modx — Только опубликованные: Да
2. Опции — Общие: — where: {«published:=»:1}
Vladimir
31 марта 2023, 18:43
0
Сделал так и заработало prnt.sc/-KzDCk1OgHuX
Сменил «Кодировка подключения:» на «utf8mb4» и заработало, хотя на сервере баззы данных utf8mb3, до этого Сопоставлении стояло как «utf8mb4_general_ci» но сменил на 3, в целом при установке поменял кодировку и всё заработало