Всего 125 675 комментариев

Артур Шевченко
02 февраля 2021, 10:45
+2
Хорошо бы сделать напоминалку по формату обращения за помощью. А то часто, да и я так делал по началу, пишут «у меня не выводится вот это, что делать?» А где, как, для чего он это выводит непонятно. Думаю если бы при написании заметки в раздел «Вопросы» вылазила бы памятка типа:
Напишите что пытаетесь сделать и что не получается или идёт не так?
Приведите код который должен это делать? Покажите логи или иной результат выполнения, если есть.
Николай Савин
02 февраля 2021, 10:43
+4
готовил к выходу версию сообщества на VueJS, но так как у меня нет опыта работы с ним — оставим пока на будущее.
И этот человек себя фронтэндером называет ))

Меня как автора интересуют инструменты для работы с заметками.
1. В выпадающем меню пользователя хочу видеть пункт Мои заметки
2. Хочу получить возможность удалять свои заметки и вопросы. Сейчас их можно только снять с публикации
3. Не особо удобный текстовый редактор.
4. Крайне неудобная работа с изображениями. Для их загрузки в статью нужно запускать дополнительный сервис.

5. Как автора программ меня интересует возможность получать уведомления об упоминании моих программ. Тем более выборка упоминаемых программ уже есть давно. Осталось уведомить автора. Это позволит быстрее реагировать на вопросы пользователей и лучше собирать обратную связь.
При чем желательно у себя в ЛК иметь возможность проставить отметки по каким из программ я хочу получать уведомления.

6. Пожалуй еще хочу быстрый доступ к избранному
Andrew
02 февраля 2021, 10:02
0
В консоли ошибки есть, только я слабо разбираюсь в этом. Пишет что не видит некоторые файлы (404) и ещё какие-то ошибки.
Чистка папки с кешем не помогла. Заметил что надо обновить некоторые компоненты, в том числе и pdoTools, сейчас попробую обновиться)
Кстати, есть другой сайт на модх, там всё работает, а здесь не хочет пока)
Alexey
02 февраля 2021, 09:14
0
Привет! В консоли браузера есть ошибки?

Как это не тривиально звучит, в первую очередь я бы почистил папку с кешем (именно, физически удалить). Если не помогает, стал бы по очереди отключать плагины и смотреть результат
Артур Шевченко
02 февраля 2021, 00:52
+1
$products = $modx->getIterator('msProduct', array('class_key' => 'msProduct', 'parent' => тут id категории));
Не думаю что на 12к фотографий нужно 12 часов. Я думаю счёт пойдет на минуты.
Андрей
02 февраля 2021, 00:28
0
Товаров 3-4к, фото примерно 1-3 в каждом.
А как поправить скрипт, чтобы он брал товары одной категории, вместе с ее подкатегориями?
Артур Шевченко
02 февраля 2021, 00:15
0
А если частями, попробуйте для начала на небольшом количестве. Сколько примерно фотографий?
Константин Ильин
02 февраля 2021, 00:02
0
Так попробуйте. Надо исходить из последних изменений которые вы делали. Например обновили минишоп и что-то не работает, повысили php — отвалилось все. У вас работало и вдруг долго стало и ошибки пошли, причинно-следственную связь надо построить.
Первое, чтобы я попробовал это версия пхп.
так же версии модх и минишопа написать можно.
Андрей
01 февраля 2021, 23:51
0
Не, это не вариант… он по 12 часов работает и не факт что сделает.
Может версия php пониже нужна?
Артур Шевченко
01 февраля 2021, 23:19
0
Нужно оставить открытой.
Андрей
01 февраля 2021, 23:18
0
Админка должна работать или можно запустить и выйти?
Артур Шевченко
01 февраля 2021, 23:15
0
Cкрипт который вы скинули работает в админке через Console, я проверил, значит дело не в скрипте.
Андрей
01 февраля 2021, 23:07
0
Я пробовал скрипт от хорошего человека. И почему-то раньше он работал безукоризненно.
Теперь и он отдает ошибки:
Fatal error: Uncaught Error: Call to a member function set() on null in /core/components/minishop2/processors/mgr/gallery/generate.class.php:45 Stack trace: #0 /core/model/modx/modprocessor.class.php(177): msProductFileGenerateProcessor->process() #1 /core/model/modx/modx.class.php(1764): modProcessor->run() #2 /core/components/console/processors/exec.class.php(24): eval()'d code(14): modX->runProcessor('mgr/gallery/gen...', Array, Array) #3 /core/components/console/processors/exec.class.php(24): eval() #4 /core/model/modx/modprocessor.class.php(177): ConsoleExecProcessor->process() #5 /core/model/modx/modx.class.php(1764): modProcessor->run() #6 /core/model/modx/modconnectorresponse.class.php(144): modX->runProcessor('exec', Array, Array) #7 /core/model/modx/modconnectorrequest.class.php(86): modConnectorResponse->outputContent(Array) #8 /core/model/modx/modconnectorrequest.class.php(73): modConnectorRequest->prepareResponse(Array) #9 /manager/components/console/connectors/console.php(11): modConnectorRequest->handleRequest(Array) #10 {main} thrown in /core/components/minishop2/processors/mgr/gallery/generate.class.php on line 45
Артур Шевченко
01 февраля 2021, 23:03
0
А в админку доступ есть? Установите Console и запустите, уверен всё сработает.
Константин Ильин
01 февраля 2021, 23:01
0
Есть отличный скрипт от хорошего человека :)

ilyaut.ru/cheats/to-rebuild-all-previews-of-products/
Андрей
01 февраля 2021, 22:56
0
Запускаю в консоли сервера, через SSH
Артур Шевченко
01 февраля 2021, 22:35
0
Вы в консоли весь этот код запускаете? Достаточно вот этого
<?php
// Проходимся по всем товарам
$products = $modx->getIterator('msProduct', array('class_key' => 'msProduct'));
foreach ($products as $product) {
    // Получаем оригиналы их картинок
    $files = $product->getMany('Files', array('parent' => 0));
    foreach ($files as $file) {
        // Затем получаем их преью
        $children = $file->getMany('Children');
        foreach ($children as $child) {
            // Удаляем эти превью, вместе с файлами
            $child->remove();
        }
        // И генерируем новые
        $file->generateThumbnails();

        // Если это первый файл в галерее - обновляем ссылку на превью товара
        /** @var msProductData $data */
        if ($file->get('rank') == 0 && $data = $product->getOne('Data')) {
            $thumb = $file->getFirstThumbnail();
            $data->set('thumb', $thumb['url']);
            $data->save();
        }
    }
}
Фарит
Фарит
01 февраля 2021, 22:34
0
Пусть начнут хотя бы по единой цене продавать, может быть потом до них дойдет, что можно и по разной цене продавать, даже один и тот же продукт одного и того же производителя.
Андрей
01 февраля 2021, 22:25
0
<?php
define('MODX_API_MODE', true);
require 'index.php'; // Этот файл лежит в корне сайта

$modx->getService('error','error.modError');
$modx->setLogLevel(modX::LOG_LEVEL_ERROR);
$modx->setLogTarget(XPDO_CLI_MODE ? 'ECHO' : 'HTML');

// Проходимся по всем товарам
$products = $modx->getIterator('msProduct', array('class_key' => 'msProduct'));
foreach ($products as $product) {
    // Получаем оригиналы их картинок
    $files = $product->getMany('Files', array('parent' => 0));
    foreach ($files as $file) {
        // Затем получаем их преью
        $children = $file->getMany('Children');
        foreach ($children as $child) {
            // Удаляем эти превью, вместе с файлами
            $child->remove();
        }
        // И генерируем новые
        $file->generateThumbnails();

        // Если это первый файл в галерее - обновляем ссылку на превью товара
        /** @var msProductData $data */
        if ($file->get('rank') == 0 && $data = $product->getOne('Data')) {
            $thumb = $file->getFirstThumbnail();
            $data->set('thumb', $thumb['url']);
            $data->save();
        }
    }
}

echo microtime(true) - $modx->startTime;