Финансовая поддержка VPS, бесплатные дополнения и docs Донаты оплачивают сервер и двигают бесплатные дополнения MODX и документацию. Поддержать

Всего 126 130 комментариев

Ivan K.
Ivan K.
Установил)), кода удалил composer remove nesbot/carbon

UDP
Ни фига не установилось)) Видимо моих знаний не достаточно, чтобы пользоваться этим дополнением.
После команды:
composer exec mmx-forms install
В конце ошибка:
Script mmx-forms handling the __exec_command event returned with error code 255
Ivan K.
Ivan K.
У меня не получилось установить данное дополнение, к сожалению.
Мои действия:
Установил modx3 (3.0.5) (как тут написано
modx.pro/howto/22847):
composer create-project modx/revolution.

установил (Чтобы проверить, как вообще работает компоненты устанавливаемые через composer):
composer require nesbot/carbon

Пробую установить:
composer require mmx/forms

И вот такая ошибка в консоли:
./composer.json has been updated
Running composer update mmx/forms
Loading composer repositories with package information
Updating dependencies
Your requirements could not be resolved to an installable set of packages.

  Problem 1
    - illuminate/support[v10.0.0, ..., v10.16.1] require nesbot/carbon ^2.62.1 -> found nesbot/carbon[2.62.1, ..., 2.x-dev] but it conflicts with your root composer.json require (^3.3).
    - illuminate/support[v10.17.0, ..., 10.x-dev] require nesbot/carbon ^2.67 -> found nesbot/carbon[2.67.0, ..., 2.x-dev] but it conflicts with your root composer.json require (^3.3).
    - vesp/core 4.0.0 requires illuminate/events ^v10.15.0 -> satisfiable by illuminate/events[v10.15.0, ..., 10.x-dev].
    - mmx/forms[dev-main, 1.0.0, ..., 1.3.0] require vesp/core ^4.0 -> satisfiable by vesp/core[4.0.0].
    - illuminate/events[v10.47.0, ..., 10.x-dev] require illuminate/support ^10.0 -> satisfiable by illuminate/support[v10.0.0, ..., 10.x-dev].
    - Root composer.json requires mmx/forms * -> satisfiable by mmx/forms[dev-main, 1.0.0, ..., 1.3.0, 9999999-dev].

Use the option --with-all-dependencies (-W) to allow upgrades, downgrades and removals for packages currently locked to specific versions.
You can also try re-running composer require with an explicit version constraint, e.g. "composer require mmx/forms:*" to figure out if any version is installable, or "composer require mmx/forms:^2.1" if you know which you need.

Installation failed, reverting ./composer.json and ./composer.lock to their original content.
Я так понял версии компонентов не совместимы и ничего не устанавливается) Вот как такое разгуливать в будущем не ясно.
Артур Шевченко
Артур Шевченко
Решение от ИИ
$(document).on('mse2_load', function (e, data) {
  // Получаем все GET-параметры из текущего URL
  var params = new URLSearchParams(window.location.search);

  // Преобразуем параметры в объект JSON
  var jsonParams = {};
  for (var param of params) {
    jsonParams[param[0]] = param[1];
  }

  // Если параметры есть, записываем их в куки
  if (Object.keys(jsonParams).length > 0) {
    Cookies.set('optionFilters', JSON.stringify(jsonParams), { expires: 7, path: '/' });
  }
  // Иначе удаляем куки
  else {
    Cookies.remove('optionFilters', { path: '/' });
  }
});
Oleg
Oleg
Здравствуйте. Статус заказа меняется на «Оплачено» после того как покупатель оплатил товар и произошёл редирект обратно сайт. Появились случаи когда покупатель оплатил и не дожидаясь оплаты просто закрывает сайт. И статус не меняется. Можно как-то сделать чтобы статус менялся каким-то запросом, не только редиректом?
Павел Романов
Павел Романов
Так вроде, пошустрее будет ):
$sql = "
    SELECT tvr.value, tv.caption
    FROM {$modx->getTableName('modTemplateVarResource')} tvr
    LEFT JOIN {$modx->getTableName('modTemplateVar')} tv
    ON tv.id = tvr.tmplvarid 
    WHERE tvr.contentid = {$id} AND tv.category = {$category}
";
$q = $modx->prepare($sql);
$q->execute();
$resources = $q->fetchAll(PDO::FETCH_ASSOC);
foreach($resources as $resource){
    $out .= $modx->getChunk($tpl, $resource);
}
return $out;

В чанке [[+caption]] и [[+value]]:
<div class="item-parent">
    <div class="row">
        <div class="col-9 pr-0">
            <span class="caption">[[+caption]]:</span>
            <div class="item-bg" data-rating="[[+value]]"></div>
        </div>
        <div class="col-3">
            <span class="rating">[[+value]]/10</span>
        </div>
    </div>
</div>

Кстати, верный ID категории можно узнать в Элементы » Категории.
Наумов Алексей
Наумов Алексей
Кстати, если кому интересно, mmxDatabase вроде как можно запустить и на MODX 2.x.

Сначала в консоли делаем так:
composer require mmx/database
выполнять команду install не стоит, всё равно ж не получится.

а затем уже в php вот так:

require_once dirname(__FILE__) . '/vendor/autoload.php';
class_alias(\modX::class, 'MODX\\Revolution\\modX');
$mmxDatabase = new MMX\Database\App($modx);
и можно работать:
$resource = \MMX\Database\Models\Resource::find(1);
print_r($resource->toArray());
Олег
Олег
Пока думал и читал понял, что нужна другая логика.
На странице каталога в фильтре выбираю например «Антиоксиданты» и «Аминокислоты». Появляется список подходящих товаров.
Дальше, переходя в товар надо передать из GET запроса выбранные опции.
Внизу товара отобразить 10-12 товаров, в которых эти опции тоже отмечены.
Наумов Алексей
Наумов Алексей
Слишком общий вопрос, нет волшебных решений.

Что значит у нас много опций, 20 штук? Как вы по ним хотите похожие товары искать?

Вот я к примеру делал так: мне в разделе «Стабилизатор напряжения» в карточке товара нужно вывести 12 похожих товаров, критерии такие:
1. Соответствуют количеству фаз
2. Близкая мощность, плюс минус 20%
3. Близкая цена, плюс минус 30%

Когда я определился с критериями — я написал соответствующий запрос и получил выборку. Для другой категории будет другая выборка, правда же? Ведь спортивные кроссовки по этим критериям уже не подобрать? Там Похожесть это, например, цвет, наличие или отсутствие шнурков.
Олег
Олег
у вас в примере Data это к примеру article, а Size это название опции. правильно? Но как перечислить все опции? Просто их около 20, а отмечены у каждого товара по 1-4 опции.
И как получить значения для WHERE, в котором тоже могут быть несколько опций?