Вопросы

Как с контекста вытянуть настройки для снипета?

Как прописать в снипете и вытянуть настройку «site_start» с настроек текущего контекста и вытянуть текущий id ресурса для сравнения их ???

$context = $modx->getObject('modContext', ['key' => $contextKey]);
Alex
08 декабря 2022, 22:19
modx.pro
1 570
0

Несколько слайдеров в mFilter2

Нужно реализовать 3 слайдера с min и max input-ами по 3 разным параметрам. Делаю так:

[[!mFilter2?
    &parents=`0`
    &limit=`8`
    &element=`msProducts`
    &filters=`
        msoption|ndiametr:number,
        msoption|dlina:number, 
        msoption|diametr:number
    `
    &class=`msProduct`
    &tplFilter.row.msoption|ndiametr=`tpl.mFilter2.filter.number`
    &tplFilter.outer.msoption|ndiametr=`tpl.mFilter2.filter.slider`
    &tplFilter.row.msoption|dlina=`tpl.mFilter2.filter.number`
    &tplFilter.outer.msoption|dlina=`tpl.mFilter2.filter.slider`
    &tplFilter.row.msoption|diametrp=`tpl.mFilter2.filter.number`
    &tplFilter.outer.msoption|diametr=`tpl.mFilter2.filter.slider`
]]

но сортируется только по первому параметру. Последующие не работают. Судя по всему, они пытаются сработать на значения первого параметра. Как быть, как разделить их?
Александр
08 декабря 2022, 13:45
modx.pro
718
0

Таблица modx_msop_modifications поле price - varchar

Вобщем встал вопрос о том чтобы сортировать по полю из этой таблице, но вдруг неожиданно поле price — varchar у меня вопрос, а как по нему сортировать? вобщем расстроен тк нужно делать костыли(((
Евгений
08 декабря 2022, 13:29
modx.pro
830
0

userFields minishop2 mobilephone

Добрый день!
Почему данная конструкция может на рабоать?
{$_modx->runSnippet('!msOrder', ['userFields' => ['phone' => 'mobilephone']])}
Задача, при оформлении заказа, дублировать поле телефона в поле мобильный телефон (Если честно не совсем понимаю почему у minishop2 используется не мобильный телефон).
Сергей
08 декабря 2022, 13:04
modx.pro
787
0

Не логинится HybridAuth через Facebook

Доброго дня!
После ввода логина и пароля в ФБ идёт редирект на главную с добавлением /#_=_ в URL, и авторизация на сайте, соответственно, не происходит.
Раньше всё работало.
В чем может быть дело?
Игорь
07 декабря 2022, 22:24
modx.pro
680
0

Вывод всех строк таблицы через while (fetch_object())

Добрый день.
Проблема у меня видимо с непониманием
while ($full = $fullresult->fetch_object())
Pavel
07 декабря 2022, 13:12
modx.pro
1 128
0

Перестал работать Minifyx

Друзья, всем привет!

Возник такой вопрос, после обновления Minifyx на MODX 2.8.3 он перестал работать полностью.
Стили подключает, но не в сжатом виде.

Причем это произошло на всех сайтах версии 2.8.3, на которых обновил Minifyx.

Кто-нибудь знает как решить проблему?

В лог ничего не пишет, в настройках Minifyx тоже пробовал активировать / деактивировать сжатие
Андрей
07 декабря 2022, 11:26
modx.pro
1
1 144
+1

Ручная сортировка строчек товаров в msCategory не работает

MODX Revolution 2.8.3-pl (traditional)
miniShop2 2.5.0-pl

Столкнулся с тем, что список товаров в категории после нажатия на заголовок столбца для сортировки по цене или названию перестает реагировать на ручной drug and drop, товар тащится, но не остается там, где я его ставлю в списке.

Как победить эту неведомую хрень? Может у кого было подобное.

Заказчику удобно перетаскивать вручную, но при этом если случайно нажать заголовок столбца, надо откатывать базу, чтобы восстановить работоспособность админки
Sergey
07 декабря 2022, 06:27
modx.pro
852
0

Плагин на событие mSyncOnProductOffers

Добрый день!
Помогите написать не большой плагин на событие mSyncOnProductOffers.
Что бы при выгрузке из 1с обновлялось поле у товара, созданное через msFieldsManager (поле называется remain).

Установлен компонент для учета остатков msProductRemains (он работает по такому-же событию и обновляет свои остатки)

case 'mSyncOnProductOffers':
		$xml = $modx->getOption('xml', $scriptProperties);
		$field = $modx->getOption('mspr_msync_field', $scriptProperties, 'Количество');
		if ( !is_object($xml) || !isset($xml->$field) ) break;
		$product = $modx->getOption('resource', $scriptProperties);
		$msProductRemains->saveRemains(array_merge($product->get('options')?:array(), array(
			'product_id' => $product->get('id')
			,'count' => (float) $xml->$field
			,'set' => true
		)));
		break;
Нужно что бы при обновлении товара, добавлялось количество в поле remain, сейчас это работает на сохранение товара.

Есть плагин, которые работает при сохранении товара.
<?php
$eventName = $modx->event->name;
switch($eventName) {
    case 'OnDocFormSave':
        if ($resource->get('class_key') == 'msProduct') {
                $modx->addPackage('msproductremains', $modx->getOption('msproductremains.core_path',null,$modx->getOption('core_path').'components/msproductremains/').'model/');
                $stock = 0;
                $sql = "SELECT remains FROM {$modx->getTableName('msprRemains')} WHERE product_id = ".$id;
                $query = $modx->prepare($sql);
                $query->execute(array(0));
                $remains = $query->fetchAll(PDO::FETCH_ASSOC);
                foreach ($remains as $remain) {
                    $stock += $remain['remains'];
                }
             // $resource->setTVValue('stock', $stock);
                $resource->set('remain', $stock);
                $resource->save();
            }
        break;
}
Сергей
06 декабря 2022, 13:54
modx.pro
1
924
0

Кто-нибудь пробовал писать кеширование для mFilter2?

Этот сниппет нужно вызывать некешированным.
Но это потому что стандартный механизм кеша в MODX кеширует слишком… топорно.

Что, если написать свое кеширование, которое будет зависеть от get-параметров? В него будет включена пагинация и примененные фильтры.

Кто-нибудь пробовал? Какие тут подводные камни?

Не хочется потратить несколько часов, а то и дней. И понять, что идея «так себе».
Andry
06 декабря 2022, 00:58
modx.pro
889
0