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

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

Наумов Алексей
Наумов Алексей
Я тоже пересмотрел, не до конца понял профит (сокращение кол-ва подписей к объектам?).

Зато увидел усложнение, в виде накрутки над классом фасада, который еще сильнее усложнит жизнь).

А может у меня проекты такие, где это не нужно, не знаю)
Андрей Степаненко
Андрей Степаненко
Понимаю
Есть такое
По этому в конце комментариев See оставляется
use MMX\Fenom\App;

/**
 * @method static void addModifier(string $modifier, callable $callback)
 * @method static void fetch($template, array $vars = [])
 * @see \MMX\Fenom\App
 */
То же раздражала навигация.

Спустя какое-то время понял, как ориентироваться, привыкаешь к этому, после того как запомнишь, как функция вызывается и что она делает.

Для разработки чего-то нового, конечно же, не подходит, лучше обычным методом класс вызывать. Но для кода, который уже не первый год, вот тут выигрываешь сильно.
cronAbs
cronAbs
MODX Revolution 2.8.3-pl
Ace 1.9.4-pl
При выборе ACE ошибка:
Uncaught TypeError: Cannot read properties of null (reading 'match')
    at a.$detectNewLine (ace.min.js?v=2.9.3-pl:1:120718)
    at a.insert (ace.min.js?v=2.9.3-pl:1:122464)
    at a.setValue (ace.min.js?v=2.9.3-pl:1:120356)
    at p.setValue (ace.min.js?v=2.9.3-pl:1:153026)
    at S.setValue (modx.texteditor.js?v=2.9.3-pl:185:38)
    at constructor.setValues (ext-all.js:21:603600)
    at miniShop2.panel.UpdateCategory.setup (modx.panel.resource.js?v=2.9.3-pl:57:28)
    at h.Event.fire (ext-all.js:21:3699)
    at miniShop2.panel.UpdateCategory.fireEvent (ext-all.js:21:687)
    at MODx.FormPanel [as constructor] (modx.panel.js:62:14)
Как выбрать текстовый редактор?
Василий Наумкин
Василий Наумкин
Василий Наумкин
Василий Наумкин
Я же выше объяснил, что происходит.

Ничего удалять не надо, просто добавляешь разрешение менять версии уже установленных пакетов ключом -W, что означает --with-all-dependencies.

Это не ошибка, там нет никаких ошибок. Он просто не может разрешить зависимость автоматически и просит тебя указать ему явно разрешение:
composer require mmx/fenom --update-no-dev --with-all-dependencies
Андрей Степаненко
Андрей Степаненко
Василий Наумкин
Василий Наумкин
Андрей Степаненко
Андрей Степаненко
изначально делал так
wget raw.githubusercontent.com/modxcms/revolution/v3.0.4-pl/composer.json
composer install
composer require mmx/fenom
Получал ошибку
modx.pro/development/24702#comment-143091

Попробовал по другому
Удалил composer.lock и core/vendor
сразу выполнил команду
composer require mmx/fenom

все установилось

Update:
кроме самого пакета mmx/fenom (перепутал))) сначала подумал что он то же установился
при повторе, опять ошибка не совместимости
composer require mmx/fenom
Андрей Степаненко
Андрей Степаненко
php 7.4 не установился

пробывал с:
wget
raw.githubusercontent.com/modxcms/revolution/v3.0.4-pl/composer.json
wget raw.githubusercontent.com/modxcms/revolution/v3.0.5-pl/composer.json

composer require mmx/fenom
./composer.json has been updated
Running composer update mmx/fenom
Loading composer repositories with package information
Updating dependencies
Your requirements could not be resolved to an installable set of packages.

  Problem 1
    - illuminate/container[v8.0.0, ..., 8.x-dev] require psr/container ^1.0 -> found psr/container[1.0.0, ..., 1.x-dev] but the package is fixed to 2.0.2 (lock file version) by a partial update and that version does not match. Make sure you list it as an argument for the update command.
    - illuminate/events[v10.47.0, ..., 10.x-dev] require php ^8.1 -> your php version (7.4.33) does not satisfy that requirement.
    - mmx/database[1.1.0, ..., 1.2.0] require illuminate/events ^v8.83|^v10.47 -> satisfiable by illuminate/events[v8.83.0, ..., 8.x-dev, v10.47.0, ..., 10.x-dev].
    - mmx/fenom[dev-main, 1.0.0] require mmx/database ^1.1 -> satisfiable by mmx/database[1.1.0, 1.1.1, 1.2.0].
    - illuminate/events[v8.83.0, ..., 8.x-dev] require illuminate/container ^8.0 -> satisfiable by illuminate/container[v8.0.0, ..., 8.x-dev].
    - Root composer.json requires mmx/fenom * -> satisfiable by mmx/fenom[dev-main, 1.0.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/fenom:*" to figure out if any version is installable, or "composer require mmx/fenom:^2.1" if you know which you need.

Installation failed, reverting ./composer.json and ./composer.lock to their original content.
bash-5.1$ php -v
PHP 7.4.33 (cli) (built: Nov 12 2022 05:16:49) ( NTS )
Copyright © The PHP Group
Zend Engine v3.4.0, Copyright © Zend Technologies
Алексей Смирнов
Алексей Смирнов
Вы не указали где именно вывести.
Есть у нас как минимум 3 места: Страница товара, страница со списком товаров, корзина.
На странице товара пример есть по ссылке в теме гитхаба,
списки что в корзине что в каталоге — расписал.
по работе — лучше создайте или на сайте или в телеграмм-канале (раздел работа) предложение о работе — кто-нибудь откликнется.
Наумов Алексей
Наумов Алексей
За поддержку php 7.4 все ж спасибо! Как я писал в комментарии к прошлой заметке, я запустил mmxDatabase в связке с сайтом на modx 2.8.5, что оказалось очень удобно для одной из текущих задач (а именно выгрузка всего контента сайта в формате json для переноса данных на другую платформу). с mmxDatabase это решается очень быстро!
Олег
Олег
Если посетитель выбирает опции в фильтре и переходит в товар — все отрабатывает отлично. Но если затем он переходит между товарами через те же «похожие товары» или «недавно просмотренные товары», тогда в куки ничего нового не записывается и в «похожих товарах» выводятся постоянно одни и те же товары.
Как вариант — после перехода в товар из фильтра отображать похожие товары как уже предложили и сразу удалять куки. И далее в каждом товаре проверять наличие куки. При отсутствии куки записать в массив определенный список опций текущего товара, получить список id товаров с таким же набором опций и в «похожих товарах» вывести этот список.

Вот собственно проблема, которую гугл не помог решить:
Как получить в массив или лучше в JSON все опции из списка для текущего товара.
Сергей
Сергей
я делаю связи и задача не в товаре а просто в каталоге вывести точки с цветом (hex) и я не понимаю как применить то что написали выше. Если не сложно, можете дать пример вывода? или напишите мне в ЛС я готов оплатить поддержку
Алексей Смирнов
Алексей Смирнов
Обсуждение возможностей тут github.com/modx-pro/miniShop2/pull/761
А чтобы вытащить значения из БД в удобном формате — достаточно написать небольшой сниппет и результат его работы сохранить в переменную или Placeholder или setOption.
Простой сниппет Kvazicolor который вытащит сопоставление:
$name = 'colorushka'; // имя опции которая имеет цвета.
$tableon = $modx->getOption('table_prefix');
$asf = $modx->query("SELECT properties FROM `".$tableon."ms2_options` WHERE `key` = '".$name."'")->fetch(PDO::FETCH_ASSOC);
$out = json_decode($as['properties'],1);
$outx = [];
foreach ($out['values'] as $line){
    $outx[$line['name']] = $line['value'];
}
return $outx;
Далее в феноме до вызова mfiler засунуть это все в плейсхолдер, например:
{set $mypole = 'colorushka'}
{set $masscol[$lit['alias']] = 'Kvazicolor' | snippet : ['name' => $mypole]}
{$_modx->setPlaceholder('arrcolors',$masscol)}
Далее в чанке row
получаем:
{var $key = $table ~ $delimeter ~ $filter}
{set $ezhikcolors = 'arrcolors' | placeholder}
..... любой код ....
<span class="checking" style="background-color: {$ezhikcolors [$filter_key][$value]}">{$title}</span>
Вот как то так.