Всего 123 803 комментария

Maks
05 октября 2022, 22:25
0
Если установить поле Наличие как текстовое поле то все переносится. так что выдает оно то что необходимо.
Станислав
05 октября 2022, 22:10
0
включите стандартный слайдер, самый простой и механизм подключения своего, swiper слишком сложен и гибкий конечно, но вызовет много вопросов, отправлять всех в документацию и платным дополнениям по нему не самая хорошая перспектива
Константин Ильин
05 октября 2022, 22:09
0
не знаю тогда, проверяйте, что дает getvalue
Maks
05 октября 2022, 22:04
0
Нет. Не работает. Указал лимит как вы написали
Получил
SQL time: 0.1978 s
SQL queries: 1654
PHP time: 4.3618 s
Total time: 4.5596 s
Memory: 12 MB

Но ничего не обновилось
Константин Ильин
05 октября 2022, 21:55
0
может быть, пробуйте, поставьте больше

$query->limit(0); тут поставьте 50 проверьте сначала работает ли код
Maks
05 октября 2022, 21:09
0
Через htaccess таким образом
php_value max_execution_time 300
Не получиться увеличить время на обработку?
Константин Ильин
05 октября 2022, 21:08
0
ну тогда надо писать поэтапное обновление, аяксом или сессионно, по 30-50 товаров за проход.
Maks
05 октября 2022, 21:04
0
Получаю на выходе Fatal error: Maximum execution time of 60 seconds exceeded in /core/xpdo/xpdo.class.php on line 2190
Артур Шевченко
05 октября 2022, 21:04
0
Господа, сохраняйте спокойствие, мы вас услышали, вы впилим Swiper по умолчанию, и расскажем как подключить что-то другое, а дальше сами решайте надо оно вам или нет.
Maks
05 октября 2022, 20:56
0
Тут еще проблема в том что товаров более 5к и вылазит за выделенное время. Увеличил до 60 секунда, максимум но все равно не хватает на обработку данных.
Станислав
05 октября 2022, 20:49
0
Люди в курсе, люди привыкли. Лишать их возможности что то применять в стандартном формате крайне не разумно
Константин Ильин
05 октября 2022, 20:44
0
мда…

<?php
$query = $modx->newQuery('msProduct');
$query->select(['msProduct.*']);
$query->where(['class_key' => 'msProduct']);
$query->limit(0);
$resources = $modx->getIterator('msProduct',$query);
foreach ($resources as $resource) {

        // Эти строки не трогайте
        $arr = $resource->toArray();
        $productArray['context_key'] = 'web';
        $productArray['class_key'] = 'msProduct';
        $productArray['alias'] = $arr['alias'];
        $productArray['id'] = $arr['id'];
    
        // Эти строки настраивайте как вам надо
         $productArray['options-available'] = $resource->getTVValue(30);
    
        // Это процессор обновления товара
        $response = $modx->runProcessor('resource/update', $productArray);
}
deleted
05 октября 2022, 20:40
0
У фоторамы последние коммиты на гитхабе были 8 лет назад и она требует jQuery
Maks
05 октября 2022, 20:38
0
Спасибо. Но ничего у меня не получается.
<?php
$query = $modx->newQuery('msProduct');
$query->select(['msProduct.*']);
$query->where(['class_key' => 'msProduct']);
$query->limit(0);
$resources = $modx->getIterator('modResource',$query);
foreach ($resources as $resource) {
        $productArray['options-available'] = $resource->getTVValue(30);
        $resource->set('available',$tv_available);
        $resource->save();
}

Сделал так только ничего не получилось. Параметры не перенеслись.
Станислав
05 октября 2022, 20:28
0
По моему сугубому мнению, лучше оставить стандартную библиотеку фоторамы с исправлениями, а во вкладку настройки минишопа добавить подключаемые библиотеки любого слайдера и все будут счастливы
Константин Ильин
05 октября 2022, 19:44
+1
Примеры я давал, нужно для «Список с автодополнением» передавать массив, а не просто значение
<?
$productArray['tags'] =  ['большие' , 'маленькие'];
$productArray['options-cvet'] = ['белый' , 'кофе', 'серый'];
$productArray['options-napryzhenie'] = ['220' , '320'];
«У вас же заданы конкретные значения для опций, мне же надо эти самые опции вытаянуть из дополнительных полей.»

Ничего трудного же нет в этом, вот чуть просто подумать надо
$productArray['options-available'] = $resource->getTVValue(30);
Просто ведь? да?

Если у вас TV с множеством значений, то его сначала надо разобрать и преобразовать в массив, чтобы условно получилось ['белый', 'кофе', 'серый'] и потом уже присвоить нужной вам опции. Т.е. надо посмотреть что выдает $resource->getTVValue('id или название ТВ') и преобразовать в нужные данные.
Дмитрий
05 октября 2022, 17:04
0
{var $migx_videogallery = $_modx->resource['migx_videogallery'] | fromJSON}
{foreach $migx_videogallery as $v}
    {var $v.videogallery = $v.videogallery | fromJSON}
    {if $v.videogallery.video?}
        <div><img width="200" src="{$v.videogallery.image}" /></div>
        <iframe width="200" height="150" src="{$v.videogallery.video}" frameborder="0" allowfullscreen></iframe>
        {if $v.videogallery.title?}
            <div><b>Название:</b> {$v.videogallery.title}</div>
        {/if}
        {if $v.videogallery.desc?}
            <div><b>Описание:</b> {$v.videogallery.desc}</div>
        {/if}
    {/if}
{/foreach}
Вот это куда вставлять? В шаблон getImageList? Вставляю, ничего не выводится. Если этот код вставить вместо getImageList, то тоже пустота. Так-то тип поля videogallery нормально отрабатывает. А вывести не получается. Может быть подскажете что делать?
Евгений
05 октября 2022, 14:30
0
да
сейчас поглядимс
а где смотреть лог?
Роман
05 октября 2022, 14:13
0
У карточек заполнены характеристики?
В catalogFilter нужно добавить &showLog=`1`, чтобы посмотреть, какой запрос идет в базу
Maks
05 октября 2022, 13:40
-1
Достойный ответ. Спасибо. Вместо такого количество букв можно было бы новичку показать как и на примере одного из полей.
Спасибо за помощь всем.