Всего 125 683 комментария

Иван Бочкарев
12 ноября 2020, 12:19
+1
Спасибо, вчера обнаружили и исправили таким же образом. В релиз не попало. Будет исправлено в 2.6.1
vrm13
12 ноября 2020, 12:12
+2
Скорее всего это у меня что-то не так, но:

На php 7.4 при открытии категории с товарами лог ошибок заваливался сообщением равным количеству товаров в ней — PHP warning: count()

В фале core/components/minishop2/processors/mgr/product/getlist.class.php на 240 строке заменил
if (count($this->options)) {

на

if (is_countable($this->options))
ошибка ушла. Но всё ли правильно сделал, при следующем обновлении же слетит?
Иван Бочкарев
12 ноября 2020, 09:35
0
Вроде не выявлено. Если, что будет пишите сразу issue, будем исправлять. Новые релизы будут раз в месяц (если все будет хорошо)
Наумов Алексей
12 ноября 2020, 09:34
+1
Здорово, спасибо!
С обновлением то на существующих сайтах проблем не будет?
Конечно, кроме случаев, когда нужно и css/js файлы на фронте обновить…
Alexey
12 ноября 2020, 08:42
+1
Огромное спасибо, будем тестить!
Алексей Суслов
12 ноября 2020, 07:16
1
0
Плюсую за генерацию имени файлов, так как менеджеры грузят, что попало, бывает в классе загрузки меняю имя на поле alias товара, а если файлов несколько, там уже это предусмотрено и к файлам автоматически добавляется порядковый номер. Кстати с галереей есть несколько доработок, которые частенько требуются:

1) Нормальное уменьшение изображения, если оно превысило максимальную ширину или высоту.
Часто, менеджеры заливают все подряд и желательно качественно обрабатывать этот момент.
Сейчас если происходит превышение, то ресайз происходит на стороне загрузчика plupload — а он не лучшим образом справляется с этим. Его плюс — это то что он намного быстрее это делает, на стороне браузера и не требуется заливать огромную картинку на сервер, но качество страдает.
Специально сейчас сделал тест на новой версии minishop2 по умолчанию и на проекте, где я реализовал ресайз средствами самого php в обход plupload. Исходником было это изображение raw.githubusercontent.com/nwtn/image-resize-tests/master/assets-unoptimized/3B-1.jpg

Вот сравнение, ресайз был до 300 по ширине, слева plupload, справа phpthumb:



Соглашусь, что результат не сказать прям земля и небо, но справа четче кнопки на джойстике, надпись PS4 на консоле.
Кстати у plupload есть еще парочка недостатков: можете увидеть что он не совсем правильно отресайзил по высоте, снизу полоска в 1 пиксель. При ресайзе, получилась высота 147.6923 и plupload решил округлить вниз. Это уже известный баг и вроде даже в поздних версиях поправлен, но не в той, с которой идет minishop2.
И еще немаловажный факт: при сжатии phpthumb файл стал весить 8кб, а при сжатии plupload 32кб! в 4 раза, мне кажется это существенно, особенно если учесть, что качество изображения явно не лучше в 4 раза, а на мой взгляд даже похуже.

2) Возможно стоит сделать генерацию нескольких превью под DPI 2x и добавить srcset в чанки. В наше время, когда половина трафика идет через мобильные устройства, это уже, я думаю, должно идти по умолчанию. Многие клиенты жалуются, что на телефонах фото мыльные, сейчас даже не на айфонах DPI 2x идет частенько. И на многих ноутбуках по умолчанию включено 1.25.

3) Возможность поворачивать изображения, чтобы не заставлять менеджеров обрабатывать фото перед заливкой в сторонних программах.
Олег Щавелев
12 ноября 2020, 04:17
+1
Ребят Вы супер. Всем спасибо было очень интересно, я думаю дальше больше.
Руслан Алеев
12 ноября 2020, 00:47
+1
Там есть проверка разрешений, так что не-админ лишнего не увидит.
Андрей Шевяков
11 ноября 2020, 23:13
0
Вопрос по нововведению:
Добавляет кнопку перехода в настройки магазина на странице заказов и наоборот [PR #435]
Для контент менеджера как-то можно будет убирать ссылку на Настройки?
На магазинах обычно для менеджера просят оставить доступ только к контенту и к заказам.
Все остальное, что может потом навредить работе магазина просят оставлять пользователю с админскими правами.
Николай Савин
11 ноября 2020, 22:06
+3
Предлагаю вынести PayPal в отдельный компонент, как это сделано для всех платежных систем. Никогда не понимал зачем он нужен в коробке.
Sergey (Sentinel)
11 ноября 2020, 22:04
+1
Спасибо. Просто огонь!
Руслан Алеев
11 ноября 2020, 22:02
+3
Уху! Мощнейшие улучшения, спасибо! Отдельный поклон @Иван Бочкарев за активное участие и координацию!
Андрей Шевяков
11 ноября 2020, 21:58
+1
Спасибо всем за проделанную работу!!! Огонь новость!
Здоров Александр
11 ноября 2020, 21:57
+2
Просто бомба обновление, благодарю!) будем тестировать!
Андрей Шевяков
11 ноября 2020, 21:48
+1
Еще вот подумал что пригодилось бы. Генерация имени загружаемых изображений для товара. Можно на основе url товара + маска, которую можно задать например. Я давно пытался найти что-то готовое, не нашел. Хз может есть уже такое.
Александр Мельник
11 ноября 2020, 20:01
0
понимаю, что не в тему, да и не очень красиво это с моей стороны, но…
читал вашу заметку и у меня чуть мозг не вышел из строя. Ваш родной язык не русский? Такое чувство, что оригинал был на арабском, а потом при помощи переводчика magic goody, популярного в 1998 году, сделали перевод. Это же набор мало связанных фраз, лишенных местами смысла, а местами знаков препинания. Очень тяжело читать.
В качестве решения вашей проблемы может выступить компонент импорта-экспорта товаров. modstore.pro/packages/import-and-export/msimportexport
Кирилл
11 ноября 2020, 19:28
0
пробую импортировать базу сайта с modx revo 2.73 с товарами ms2 одной и той же версии на другой домен с такой же версией modx revo

получаю, такую ошибку



несилён в вопросах запросов mysql и тд

подскажите как исправить

у меня просто других мыслей нет, как таблицы товаров ms2 с одного сайта на другой домен перенести, чтобы опять вручную ненаполнять

спасибо заранее
Иван Бочкарев
11 ноября 2020, 14:13
+2
Добавлено в 2.6.0. Спасибо
Denis Bushaev
11 ноября 2020, 10:04
0
Пример загрузки изображений для msOptionsPrice2
$msoptionsprice = $modx->getService('msoptionsprice');
$msoptionsprice->initialize('web');

$pcsAction = 'mgr/gallery/upload';
$pcsOptions = ['id' => $productId, 'name' => $imgName, 'file' => $imgTmpPath];
$pcsConfig = ['processors_path' => MODX_CORE_PATH . 'components/minishop2/processors/'];
/** @var \modProcessorResponse $response */
$response = $this->modx->runProcessor($pcsAction, $pcsOptions, $pcsConfig);
if ($response->isError()) {
    $this->modx->log(MODX_LOG_LEVEL_ERROR, "Не удалось установить фото для товара ($productId). Сообщение: {$response->getMessage()}");
}

$responseObject = $response->getObject();
$id = $responseObject['id'];

$modifications = array(
    array(
        'price'   => '1860.0',
        'article' => 'BL802-32A',
        'weight'  => '150',
        'image' => $id,
        'options' => array(
            'size' => '32A'
        )
    ),
);

$rid = 152;

$modifications = $modx->call('msopModification', 'saveProductModification', array(&$modx, $rid, $modifications));