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

Константин Ильин
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
Достойный ответ. Спасибо. Вместо такого количество букв можно было бы новичку показать как и на примере одного из полей.
Спасибо за помощь всем.
vectorserver
05 октября 2022, 13:25
0
Тебе дали 100500, подсказок, разжевали как могли!
Изучай документацию, и методы работы с компонентом minishop, если не понимаешь что к чему, пиши в раздел modx.pro/work
Евгений
05 октября 2022, 13:01
0
ага, понятно
но оба варианта не работают
$where = $modx->toJSON(array($filter));
заменить на 
$where = $modx->toJSON($filter);
Maks
05 октября 2022, 12:30
0
Я одного не могу понять почему из обычного тв в поле price все прописывается а в поле Список с автодополнением ничего записываться не хочет.

Может за деньги поможете?
Константин Ильин
05 октября 2022, 12:28
0
Ну это уже совсем. Программированию вас никто учить не будет. Включите голову, как присваиваются переменные. Вам уже все дали, как получить из ТВ, засунуть ее в переменную, как обновлять товар и его опции, осталось чуть подумать собрать все вместе, удалить ненужное.
Maks
05 октября 2022, 12:26
-1
У вас же заданы конкретные значения для опций, мне же надо эти самые опции вытаянуть из дополнительных полей.
Роман
05 октября 2022, 12:26
+1
/test?sortby=pagetitle&sortdir=asc
/test?sortby=pagetitle&sortdir=desc
/test?sortby=price&sortdir=asc
/test?sortby=price&sortdir=desc
Maks
05 октября 2022, 12:21
-1
$productArray['options-available'] = 1; как сюда добавить тв с которого данные вытянуть необходио?
Евгений
05 октября 2022, 12:19
0
как определил что сортировка работает? вижу что не выгружаются блоки с ресурсами
Константин Ильин
05 октября 2022, 11:59
0
Так я вам и дал код который туда вставить, в цикл, внимательно смотрите.
Maks
05 октября 2022, 11:57
-2
<?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) {
      $tv_available = $resource->getTVValue('30');
        $resource->set('available',$tv_available);
        $resource->save();
}
А сюда нельзя добавить запись именно в поля такие как Список с автодополнением?

Пользуюсь поиском видимо не так ищу. Подскажите пожалуйста, уже голова отваливается никак не могу разобраться.