Lori

Lori

Был в сети 14 июля 2026, 22:00
Заказы не принимаю
Dan
Dan
Нельзя сделать из коробки, поэтому вам так и ответили, ибо это все таки техподдержка, а не фриланс-биржа, а вообще сделать можно. Я сам такое делал и не на одном проекте. Нужно лишь написать свой метод фильтрации, и конкретно в этом случае ничего сложного. Попробуйте, он все равно ничего не сломает, либо будет работать, либо нет. А когда все таки получится сделать, то поймете, что в принципе несложно. Просто зайдите по ссылке, которую я в 1ом комменте скидывал и делайте все по примеру.
Dan
Dan
Вы сможете создать ресурс с таким же алиасом только в том случае, если у вас включены вложенные урлы и копировать вы будете в другого родителя. В противном случае не получится сохранить ресурс с таким же алиасом.
Вообще такие вещи лучше делать через процессор, но процессор resource/dublicate не предусматривает указание нового родителя. А почему вам нужно сохранить алиас?
Dan
Dan
Если не хотите использовать ajax, то можно сделать так немного закостылить:
1) Немного правите ваш текущий чанк galAlbumRowWithCoverTpl
[[!Gallery?
    &album=`[[+id]]`
    &toPlaceholder=`photos`
    &thumbTpl=`tpl.gallery.image`
]]
<a href="[[+url:is=``:then=`[[+image]]`:else=`[[+url]]`]]" [[+link_attributes]] class="gallery-preview" data-photos="[[+photos:commaSeparate]]">
    [[+image:notempty=`<img src="[[+image]]" [[+cls:notempty=`class="[[+cls]]"`]] alt="[[+title]]" />`]]
</a>
2) Создаете чанк tpl.gallery.image
[[+image_absolute]],
3) Создаете сниппет commaSeparate
<?php
return rtrim($input, ',');
4) Пишете js-код:
$(document).ready(function() {
   $('.gallery-preview').click(function(e) {
        e.preventDefault();
        let photos = [];

        if ($(this).attr('data-photos') && $(this).attr('data-photos') != '') {
            let list = $(this).attr('data-photos').split(',');
            $.each(list,function(i){
                photos.push({href: list[i]});
            });
        }        
        
        $.fancybox.open(photos);
   });
});