Фото товаров в MIniShop2
        Товарищи, коллеги и иные представители родства с MODX. 
Добрый день!..
Столкнулся с проблемой MiniShop2. Модуль крашнулся и единственным выходом его восстановление стало удаление и чистка кеша для повторной установки.
Всё заработало, но при этом все товары потеряли фотографии при том, что они физически есть на сервере и структура сохранена.
Можно, как-то, привязать эти фото к товарам без перезаливки в каждый товар?
Заранее спасибо если найдутся те-кто уже решил такую проблему.
    
    
                                                                                
            Добрый день!..
Столкнулся с проблемой MiniShop2. Модуль крашнулся и единственным выходом его восстановление стало удаление и чистка кеша для повторной установки.
Всё заработало, но при этом все товары потеряли фотографии при том, что они физически есть на сервере и структура сохранена.
Можно, как-то, привязать эти фото к товарам без перезаливки в каждый товар?
Заранее спасибо если найдутся те-кто уже решил такую проблему.
Комментарии: 7
                Перенесите топик в раздел «Вопросы». Раздел «Сайты на MODX»о том, как кто-то что-то сделал, а не о том, как у кого-то что-то сломалось и надо это починить.            
                    
                А по поводу вопроса — достаточно просто. Можете тупо пройтись по файлам и папкам скриптом, брать название папки как ID товара, и с помощью процессора загрузки картинок перезагрузить фото.            
                    
                Не знаю, насколько хорош код, как код, но работает. Делал пару месяцев назад. Комментарии по качеству кода — приветствуются. 
                    <?php
//set_time_limit(00);
define('MODX_API_MODE', true);
require 'index.php';
$basePath = getcwd();
$modx->getService('error', 'error.modError');
$modx->setLogLevel(modX::LOG_LEVEL_ERROR);
$modx->setLogTarget(array
    (
    'target' => 'FILE',
    'options' => array
        (
        'filename' => 'gallery.' . strftime('%Y-%m-%dT%H:%M:%S')
        )
    )
);
chdir($basePath . '/assets/images/resources/');
$folders = scandir(getcwd(),0);
foreach ($folders as $folder) {
    if (($folder != '.') && ($folder != '..')) {
        if (is_dir($folder)) {
            $catalog = getcwd() . '/' . $folder;
            chdir($catalog);
            $files = scandir(getcwd(),0);
            foreach ($files as $file) {
                if (is_dir($file) == FALSE) {
                    //для лога выведем все файлы и id ресурсов
                    //echo 'Грузим: ' . getcwd() . '/' . $file . ' ID ресурса: ' . $folder . '
';                    
                    $res = $modx->runProcessor('gallery/upload', array(
                        'file' => getcwd() . '/' . $file,
                        'id' => $folder
                            ), array(
                        'processors_path' => MODX_CORE_PATH . 'components/ms2gallery/processors/mgr/'
                            )
                    );
                    if ($res->isError()) {
                        print_r($res->getAllErrors());
                    } else {
                        print_r($res->getObject());
                    }
                }
            }
            chdir(getcwd() . '/..');
        }
    }
}            
                Спасибо за совет, тему перенёс            
                    
                Не за что) Два момента:
1. Скрипт актуален для ms2Gallery, для стандартной галереи miniShop2, наверное, нужно будет что-нибудь подправить. Подозреваю, что путь к процессору. В любом случае, это можно найти в постах на этом ресурсе.
2. Запускать скрипт нужно из консоли. Не из Console, не через браузер, а через SSH. Иначе скрипт по таймауту вылетит на 10-ом товаре (условно, конечно).
                    1. Скрипт актуален для ms2Gallery, для стандартной галереи miniShop2, наверное, нужно будет что-нибудь подправить. Подозреваю, что путь к процессору. В любом случае, это можно найти в постах на этом ресурсе.
2. Запускать скрипт нужно из консоли. Не из Console, не через браузер, а через SSH. Иначе скрипт по таймауту вылетит на 10-ом товаре (условно, конечно).
                К сожалению код не помог. Изменил корневой путь до фото и строка 4 кода выводиться как ошибка в консоле.            
                    
                ах. ну-да. Вы уточнили про ms2Gall            
                    
                            Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.