Евгений

Евгений

Был в сети 12 июля 2023, 00:21
Заказы не принимаю
0
Добрый день, компонент в корзине работает, но что делать если корзина вызывается с любой страницы по ajax в модальное окно бутсрапа, в такм случае скрипты не отрабатывают. подскажите как сделать по фэншую, чтобы скрипты отрабатывали.
0
например основные фото и фото покупателей. просто хотелось бы грузить через админку тоже и через стандартный интерфейс, но вот группу задать негде. наверное один из вариантов использовать префикс файла в качестве группы, тогда можно и через админку управлять
0
Долго искал, в итоге написал свое, тк есть много подводных камней, одно из них кэширование. если говорим про минишоп2, то там еще больше камней. вобщем сделал свои табшлицы, администрирование таблиц через админку при помощи migx, + доработал кэш. поддомены делают для увеличения трафика, какой трафик планируется?
0
$filter_result['innerJoin'] = '{
                "op":{
        "class":"msopModification",
                    "on":"op.rid = msProduct.id "
                },
        "o":{
                "class":"msopModificationOption",
                "on":"o.rid = msProduct.id AND o.mid = op.id AND o.key = \'size\' and o.value=\'50\'"
            }                
            }';
    $filter_result['sort'] = 'mo|price:asc';
сделал так, inner join двух таблиц, т.к. msopModification содержит цену, а msopModificationOption опцию, что конечно не очень удобно
0
тут modx.pro/components/10835 писали что есть такая проблема при множественном удалении, но Василий не отреагировал.

переписал на удаление по одному, все работает. может кому то пригодится:

$images = $this->modx->getCollection('msProductFile', array('type' => 'image', 'product_id' => $id));
        $ids = array();
        foreach ($images as $image) {

            $ids[] = $image->get('id');

            $response = $this->modx->runProcessor('gallery/multiple',
                array(
                    'method' => 'remove',
                    'ids' => json_encode($image->get('id')),
                ),
                array('processors_path' => MODX_CORE_PATH.'components/minishop2/processors/mgr/')
            );
            if ($response->isError()) {
                die("imageserror ".$image->get('id')." ".$response->getMessage());
            }
        }
0
вот кстати стек трейс распечатал
string(1666) "#0 /usr/share/nginx/www/core/xpdo/xpdo.class.php(1236): xPDO->loadClass('minishop2', '', false, true)
#1 /usr/share/nginx/www/core/components/minishop2/model/minishop2/mspayment.class.php(23): xPDO->getService('miniShop2')
#2 /usr/share/nginx/www/core/xpdo/xpdo.class.php(788): msPayment->__construct(Object(modX))
#3 /usr/share/nginx/www/core/xpdo/om/xpdoobject.class.php(319): xPDO->newObject('msPayment_mysql')
#4 /usr/share/nginx/www/core/xpdo/om/xpdoobject.class.php(370): xPDOObject::_loadInstance(Object(modX), 'msPayment', Object(xPDOQuery_mysql), Array)
#5 /usr/share/nginx/www/core/xpdo/om/xpdoobject.class.php(494): xPDOObject::_loadCollectionInstance(Object(modX), Array, 'msPayment', Object(xPDOQuery_mysql), Array, false, true)
#6 /usr/share/nginx/www/core/xpdo/xpdo.class.php(761): xPDOObject::loadCollection(Object(modX), 'msPayment', Object(xPDOQuery_mysql), true)
#7 /usr/share/nginx/www/core/xpdo/xpdo.class.php(867): xPDO->call('msPayment', 'loadCollection', Array)
#8 /usr/share/nginx/www/core/xpdo/cache/xpdocachemanager.class.php(1037): xPDO->getCollection('msPayment')
#9 /usr/share/nginx/www/core/xpdo/cache/xpdocachemanager.class.php(70): xPDOCache->isInitialized()
#10 /usr/share/nginx/www/core/xpdo/cache/xpdocachemanager.class.php(733): xPDOCacheManager->getCacheProvider('system_settings', Array)
#11 /usr/share/nginx/www/core/model/modx/modx.class.php(2641): xPDOCacheManager->get('config', Array)
#12 /usr/share/nginx/www/core/model/modx/modx.class.php(1440): modX->_loadConfig()
#13 /usr/share/nginx/www/core/model/modx/modx.class.php(555): modX->getConfig()
#14 /usr/share/nginx/www/index.php(50): modX->initialize('web')
#15 {main}"