Всего 123 791 комментарий

Владимир
23 декабря 2023, 15:01
0
Спасибо, способ хоть и костыльный, но работает. Да, видимо дело в особенностях работы парсера.
Алексей Смирнов
23 декабря 2023, 14:53
0
Предложу дополнительно подумать над фу-м именно наследования параметров по иерархии.
Алексей Смирнов
23 декабря 2023, 14:52
0
Сортировки по migx, опциям и ТВ не будет
А вот это плохая новость. редко требуется сортировка по этим полям. Хоть и редко — печаль что нельзя будет сделать.
Алексей Смирнов
23 декабря 2023, 14:48
+1
Оно будет срабатывать потому что так устроен MODX. тут или большая вложенность или эффект парсера модикс.
Дело в том что он (парсер) рекурсивный, а значит до того как сработает условие — вычисляет данные внутри всех условий (если я не ошибаюсь в формулировках).
Я обычно сниппеты делаю в таком режиме — режим «наоборот».
те есть в модиксе комментирование кода
[[- some code ]]
Поэтому ваше выражение можно переписать так:
[[[[!+modx.user.id:isloggedin:eq=`1`:then=`-`:else=``]]!redirect]]
возможно еще с воскл. знаками поиграться придется. Для другого контента который у вас был, будет условие:
[[!+modx.user.id:isloggedin:eq=`1`:then=` ....  `:else=``]]
Как-то так.
Артур Шевченко
23 декабря 2023, 13:19
0
В будущем планирую сделать возможность фильтровать по любыл таблицам с использованием плагинов.
Сортировки по migx, опциям и ТВ не будет, так как это может сильно замедлить работу фильтров.
Артур Шевченко
23 декабря 2023, 13:16
1
0
Там есть функция копирования конфигурации.
adminixi
23 декабря 2023, 13:03
0
Спасибо, попробую разобраться.
Наумов Алексей
23 декабря 2023, 12:30
0
На этапе создания конфига нужно добавлять поля, по которым фильтруем.
Если делаем много конфигов (для разных категорий, я же верно понял?) — придется много раз одни и те же поля добавлять. Предложил бы сделать отдельный список настроенных полей (фильтров), а уже в конфиге из него выбирать в 1 клик.
Антон
23 декабря 2023, 08:28
0
Либо сделайте в принципе платным этот компонент, пока не заработаете n количество денег. Это знаете как платные дороги или мосты строят. Заработаете, потом откроете бесплатным основной инструмент.
Антон
23 декабря 2023, 08:26
+1
И Николай, вы далеко не тупой человек, раз взялись за это. Просто переосмыслите это как схему заработка. В с вашим сообществом можете из этого сделать конфетку. Modx реально самое удобное что видел.

Еще 10 лет назад говорили, что страдает маркетинг. Почему? потому, что вы освещаете свою деятельность лишь маленькому количеству сообщества, и то основатели ушли на другие технологии. Рассказываете на сторонних площадках, расскажите что есть такая система, об ее преимуществах и что хотите сделать, народ потянется и заработаете.
Антон
23 декабря 2023, 08:22
0
У вас в руках инструмент, на котором вы можете заработать миллионы. Сделайте PRO версию модуля со своими плюшками. А так это просто приведет к тому, что народ просто уйдет, не будет новых разработчиков и старые отвалятся.

Дайте базу, подсадите «на иглу», потом уже деньги зарабатывайте.
Сергей Карпович
23 декабря 2023, 00:12
0
Очень интересно. Особенно кайфово с конфигурациями сделано.
Но есть куча сайтов — каталогов без minishop, будет ли в будущем поддержка фильтрации обычных ресурсов?
Также есть потребность в сортировке ресурсов по значениям MIGX полей.
Артур Шевченко
22 декабря 2023, 23:20
+1
Ну ладно, за копейки.
Николай Савин
22 декабря 2023, 23:10
+1
Зачем за бесплатно. Я думаю мы тысяч 30 соберем сообществом.
Артур Шевченко
22 декабря 2023, 23:08
0
Можно. Берёшь ZoomX, пишешь REST API и обращаешься к нему с удалённого сервера.
Артур Шевченко
22 декабря 2023, 22:57
0
Давай ты за пару недель Tickets адаптируешь под Modx 3, избавишь его от jQuery, добавишь возможность без танцев с бубном менять логику работы, пофиксишь все баги и всё это бесплатно. Потом приходи — обсудим перспективы развития MiniShop и Modx.
Александр Туниеков
22 декабря 2023, 22:42
+1
Или в index.php 'msProductData' вместо массива строка
'msProductData' => "require_once 'msproductdata.map.inc.php'",
Александр Туниеков
22 декабря 2023, 22:09
+1
Какой то не правильный плагин в папке core/components/minishop2/plugins/. Там плагины для расширения полей базы данных минишопа в виде index.php например
<?php
return array(
    'map' => array(
        'msProductData' => require_once 'msproductdata.map.inc.php',
    ),
    'manager' => array(
        'msProductData' => MODX_ASSETS_URL . 'components/minishop2/plugins/myplugin/msproductdata.js',
    ),
);
и msproductdata.map.inc.php
<?php
return array(
    'fields' => array (
		'avaible' => 1,
		'europrice' => 0.0
	  ),
    'fieldMeta' => array (
		'avaible' => 
		array (
		  'dbtype' => 'varchar',
		  'precision' => '50',
		  'phptype' => 'integer',
		  'null' => true,
		),
		'europrice' => 
		array (
		  'dbtype' => 'decimal',
		  'precision' => '12,2',
		  'phptype' => 'float',
		  'null' => true,
		  'default' => 0.0,
		),
    )
    ,'indexes' => array(
.....
наверно index.php присутствует, а файл определенный в строке ниже отсутствует

'map' => array(
        'msProductData' => require_once 'msproductdata.map.inc.php',
то есть для msProductData отсутствует файл msproductdata.map.inc.php.

Возможно в этом причина. Код брал со страницы Плагин товара для miniShop2 MODx Revo
adminixi
22 декабря 2023, 17:23
0
joxi.ru/ZrJ6WPDce33KZr
foreach ($map as $key => $values)
public function loadMap()
    {
        if (method_exists($this->pdoTools, 'makePlaceholders')) {
            $plugins = $this->loadPlugins();
            foreach ($plugins as $plugin) {
                // For legacy plugins
                if (isset($plugin['xpdo_meta_map']) && is_array($plugin['xpdo_meta_map'])) {
                    $plugin['map'] = $plugin['xpdo_meta_map'];
                }
                if (isset($plugin['map']) && is_array($plugin['map'])) {
                    foreach ($plugin['map'] as $class => $map) {
                        if (!isset($this->modx->map[$class])) {
                            $this->modx->loadClass($class, $this->config['modelPath'] . 'minishop2/');
                        }
                        if (isset($this->modx->map[$class])) {
                        foreach ($map as $key => $values) 
                                $this->modx->map[$class][$key] = array_merge($this->modx->map[$class][$key], $values);
                            }
                        }
                    }
                }
            }
        } else {
            $this->modx->log(modX::LOG_LEVEL_ERROR, 'pdoTools not installed, metadata for miniShop2 objects not loaded');
        }
    }
adminixi
22 декабря 2023, 17:18
0
Спасибо за наводку, посмотрю там.