Артур Шевченко

Артур Шевченко

С нами с 24 мая 2019; Место в рейтинге пользователей: #4
Отправить деньги
Артур Шевченко
21 января 2021, 13:22
0
$resources = $modx->getCollection('msProduct');
foreach($resources as $resource){
    if($files = $resource->getMany('Files')){
        foreach($files as $f){
            $f->remove();
        }
    }
}
Артур Шевченко
21 января 2021, 09:46
0
Ну да, не подумал. В таком случае я бы попробовал другие таблицы ms и ms_product, если не поможет, то через msaddfieds расширил бы модель товара, добавив поле Основная категория и фильтровал по нему. Другой вариант это писать свой фильтр, но это немного сложнее. А ещё можно в техподдержку написать, может автор чего посоветует.
Артур Шевченко
20 января 2021, 17:17
0
Вы не поняли, вместо этого parent:categories пробовали parent:default?
Артур Шевченко
20 января 2021, 17:06
0
а просто фильтр default по полю parent пробовали?
Артур Шевченко
20 января 2021, 16:50
0
Я бы в шаблоне tpl.mFilter2.filter.categories_pr просто скрыл по условию ненужные категории.
Артур Шевченко
18 января 2021, 14:19
0
Да, я обычно не использую в названиях -, только _
Артур Шевченко
18 января 2021, 12:48
+1
Попробуйте перейти на fenom и выводить в цикле
{set $items = $_modx->resource.staff-migx | fromJSON}
{foreach $items as $item}
{$item['img']}
{/foreach}
Но повторюсь, не понимаю для чего вам нужно использовать такой вариант конфигурации. А ещё мне кажется, что всё работает как надо, потому что есть в migx поле img заполняется из picture, то логично что img==picture
Артур Шевченко
18 января 2021, 12:10
0
Я правильно понимаю: вы указываете в конфигурации migx для TV staff-migx, что данные для поля img нужно брать из другого TV с именем picture и это же TV привязываете к тому же шаблону к которому привязано staff-migx? Если да, то зачем вы вообще так делаете? Я достаточно часто использую migx и такого рода проблем никогда не было, потому что я не использую в конфигурации inputTV, не вижу сценариев в которых это было бы нужно. Лучше делайте как написал Алексей и проблем не будет.
Артур Шевченко
16 января 2021, 20:22
+1
Чувствую себя идиотом, намекните хоть на что смотреть?
Артур Шевченко
16 января 2021, 17:47
0
По скриншоту непонятно, что именно не так с картинкой.
Артур Шевченко
15 января 2021, 09:41
0
Товар может принадлежать сразу к нескольким категориям и url не поменяется, если вы конечно отдельно товары по акции выводить не будете. Насчёт sitemap не знаю, надо смотреть что там будет, но это тоже можно скорректировать как надо. Ваш вариант по сути тоже самое, только вы вместо подкатегорий создали таблицу с акциями, но как по мне это сложнее, проще использовать уже имеющиеся возможности.
Артур Шевченко
14 января 2021, 18:20
0
Я бы сделал категорию, в которую добавлял бы товары участвующие в акции, величину скидки можно устанавливать либо через системные настройки, если скидка одна на все товары, либо индивидуально у товара, либо сделать подкатегории по величине скидки. Если акций несколько, то тогда точно нужно создавать категорию и подкатегории с акциями. А потом написал бы сниппет, который запускался бы по cron раз в сутки и проверял бы какие товары пора убирать из акции или какую акцию отключать. Я так делал для всех товаров сайт и для одной акции, поэтому обошёлся без дополнительных категорий.
Это сниппет который запускается по крону
<?php
$snippet = $argv[1]; // этот аргумент содержит название сниппет, который будет работать с акциями
require_once '/home/a/a99963am/art-sites.ru/public_html/config.core.php';
require_once MODX_CORE_PATH.'model/modx/modx.class.php';

$modx = new modX();
$modx->initialize('web');
$modx->getService('error','error.modError', '', '');
echo $modx->runSnippet($snippet);

Вот пример задания для крон SnippetName — имя сниппета для параметра $argv[1]
/usr/local/bin/php5.6 ~/domain.ru/public_html/assets/cron-run-snippet.php SnippetName
А ваш вариант кажется мне избыточно сложным, зачем вам отдельная таблица?
Артур Шевченко
12 января 2021, 11:58
0
Тогда так
{if ($files | count) > 1}
{foreach $files as $file}
    <img src="{$file['small']}" alt="{$pagetitle}" title="{$pagetitle}">
    {/foreach}
    {/if}
Артур Шевченко
12 января 2021, 11:40
0
Если предположить что вторая картинка называется medium, тогда так
{foreach $files as $file}
    {if $file['medium']}
    <img src="{$file['small']}" alt="{$pagetitle}" title="{$pagetitle}">
    {/if}
    {/foreach}
Артур Шевченко
11 января 2021, 20:49
0
И ещё скорее всего TV.brand:IN вместо TVbrand.value:IN. И ещё $published_brands можно массивом оставить.
Артур Шевченко
11 января 2021, 20:18
+1
если уж используете fenom проще писать через массивы
{'!mFilter2' | snippet : [
    'parents'   => $_modx->resource.id,
    'includeTVs' => 'brand',
    'where'     => ["TVbrand.value:IN" => $published_brands],
    'class'     => 'msProduct',
    'element'   => 'msProducts',
    'sortby'    => 'editedon',
    'sortdir'   => 'DESC',
    'limit'     => 18,
}
А если очень хочется json
'where'     => '{ "TVbrand.value:IN": ' ~ $published_brands~' }'