Николай Мирошниченко

Николай Мирошниченко

Был в сети 18 октября 2023, 20:18
Заказы не принимаю
Кому интересно, то вот так реализовал. Костыли, но работают…
На странице товара вывожу остаток модификации товара

<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 });
  }
});
Не проблема в переименовании классов. Вот я выставляю параметр

&levelClass=`level-`
и вставляю его через [[+classnames]] в свой код вот так

<ul class="[[+classnames]] ">
<li><a href="#">пункт третьего порядка</a></li>
</ul>
Но класс не изменяется на level-3 и такая вот картина
<ul class="">
levelClass работает с li а не с ul как я понял.
Работаю с MODX достаточно давно. Делаю на нем от Лендингов (Клиенты хотят что бы админка была) до интернет магазинов. Мой сайт (сайт веб студии) так же сделан на MODX. Из личного опыта скажу что большинству клиентов ваще пофиг на движок, главное что бы функции которые им нужны были в нем. Есть конечно не большой процент клиентов которые хотят конкретный движок. Я думаю выбор CMS должно зависеть от поставленных задач перед Вами. В моем, конкретном, случае, 90% (примерно) всех проектов реализованы на MODX, так как все что хотели заказчики, я мог реализовать именно на этой платформе. Да, в MODX есть свои минусы и плюсы (мои размышления по этому поводу тут), но в какой CMS их нет? Если взять, например, усредненный корпоративный сайт и поставить на выбор три CMS, например: Joomla, WP, MODX (дальше субъективно) то я без раздумий выберу MODX.
Я уверен что любители других CMS сделают другой выбор.
Немного инфы.
Исходя из данных «IT Рейтинг Украина» MODX входит в тройку лидеров среди CMS в Украине. Хочу заметить что в данном рейтинге участвуют как платные так и бесплатные CMS. MODX в отличии от других CMS имеет самую большую гибкость разработки, которая приближает его по возможностям к фреймворкам. Управление контентом для владельца сайта реализовано достаточно просто (работал в Microsoft Office — проблем не будет) в отличии от процесса разработки, он иногда становиться непонятным для начинающих веб-мастеров.
Надеюсь MODX 3 принесет много позитивного для нашего сообщества.
Приветствую. я написал для себя инструкцию по настройке мультиязычности, использую ее для своих проектов ни разу не возникло проблем. Использую Babel + контексты. Я думаю лучше позже чем никогда. Для автора вопроса, возможно, не актуально, но все же для кого то будет полезно.