Константин Ильин

Константин Ильин

Был в сети 22 октября 2025, 18:41
Заказы принимаю
Приветствую Сергей!

Интересует пункт с правами родителя и дочерних документов.
Попробовал выставить права
- все - запрещено
- гости - запрещено
- Users - разрешено
Но неавторизированный пользователь все равно может просматривать дочерний документ.
Я полагаю такой функционал не сделан?
Подскажите пожалуйста как проще ограничить доступ к дочерним ресурсам? дочерних ресурсов много в ручную конечно же не вариант(все-таки 21 век)

Мысль написать плагин, чтобы слать всех на страницу авторизации если не авторизирован, но это как то «велосипедно», хотелось бы по уму.
В том проекте был смысл такой, что при определении региона показывать магазины в этом регионе, ну или городе. Это так сказать для юзабилити было. Но то решение с адресом тоже присутствовало на сайте. Просто Илон Маск не добрался до этой проблемы ;)
Самое простое это создать еще один чанк и готовить вывод заранее, а потом выводить в основном [[+subMIGX]]

foreach ($rows as $key => $row) {

    .......

    if(!empty($row['tv_name2'])){
        $subArr = json_decode($row['tv_name2'],1);

        foreach ($subArr as $keySub => $rowSub) {
            $row['subMIGX'] .= $pdo->getChunk($chunk, $rowSub, false);
        }
    }
    
   .......
}
$output = $pdo->getChunk($chunk, $row, false);
Вы каждый раз переписывайте значение $output, а не «соединяете» с предыдущим. Нужно делать конкатенацию результата.
вот так:
$output .= $pdo->getChunk($chunk, $row, false);
На счет кеширования точно сказать не могу, но насколько я понимаю кешируется сниппет и все что в нем, если вызывать его кешированным.
Зачем сниппет писать, если можно пару строчек взять из getImageList ну или просто применить свои навыки программирования, благо феном позволяет все на месте писать.

умник ворвется крича что «цикл foreach тебя спасет»
А как еще можно пройтись по массиву?

Если зайти в сниппет getImageList можно найти такие строчки
.....
$fields['_alt'] = $idx % 2;
$idx++;
$fields['_first'] = $idx == 1 ? true : '';
$fields['_last'] = $idx == $limit ? true : '';
$fields['idx'] = $idx;
.....
Надо просто применить их на феноме:
{set $rows = json_decode($_modx->resource.migx_tv, true)}
{set $idx = 0}
{foreach $rows as $idxArr => $row}
    {set $row['idx'] = $idx++} {* idx от созданной переменной с инкриментом*}
    {set $row['idxForeach'] = $row@index} {* idx от foreach*}
    {*set $idxMIGX = $row['MIGX_id']*} {* idx от MIGX*}
    {if $row@first} 
        {set $row['_first'] = 'first item'}
    {/if}
    {if $row@last} 
        {set $row['_last'] = 'last item'}
    {/if}
    {if !($idx % 2)}
        {set $row['_alt'] = 'odd item'}
    {/if}
    {$row | print_r}
{/foreach}
— если используешь феном то надо вызывать некешированным
— бывает, что в css есть какие-то символы на которые минификс ругается и создает белеберду, у меня так с бутстрапом был глюк, убирал его из списка все норм работало.

после правки css заходить в админку и чистить кеш…
ну так для этого и нужен минификс, собрать все файлы воедино 1 раз и выдавать по запросу. Работай тогда пока без минификс, потом когда закончишь уже соберешь.
В админке при просмотре модификации работает и соответствует сортировке в категории.
А на фронте что-то надо поменять? какой параметр? т.к. там отображается в конце
{$_modx - > runSnippet('!msOptionsPrice.modification', [
        'tpl' => 'tpl.imagess',
        'includeThumbs' => '360x800',
        'sortby' => 'rank',
        'processOptions' => 1
])}
Привет Володя, не могу утверждать, что это баг, но ко мне обратились с такой проблемой:
При добавление в моификацию опции, отображались не все опции
joxi.ru/82Qpan0sj73Kem

Чтож полез в процессор «mgr/misc/option/getkeys.class.php», вывел массив в лог joxi.ru/1A5QnldhnYkE4A
Там получил все опции нормально.

Пошел дальше с мыслью, что где-то исключается и как вариант лимит стоит, посмотрел функцию getData(). Там установил лимит на 0 и начали отображаться все опции.
joxi.ru/12M7daECM9X6xr

Версия последняя.