Вопрос с MultiFields как сделать обёртку (контейнер)

Добрый день, изучаю MultiFields документации не много но что-то есть, вроде всё получается, но никак не соображу как сделать обёртку всего контейнера, для элемента есть конструкция tpl вывожу так:


[[multifields?    
&tpl_rowSlider_text=`@CODE: <div class="akcia">[+value+]</div>`
&data=`[(client_akc)]`
]]    


сама конфигурация


<?php

return [
    'settings' => [],
    'templates' => [
        'rowSlider' => [
            'type' => 'row',    
            'value' => false,            
            'items' => [             
                'rowSlider_text' => [
                    'type' => 'richtext',
                    'placeholder' => 'Добавить текст акции',
                    'class' => 'col-12'
                ]
            ]
        ]
    ]
];

19 комментариев

avatar
Контейнер в данном случае можно добавить для элемента rowSlider.
&tpl_rowSlider=`@CODE:<div>[+mf.items+]</div>`
  • 64j
  • 0
avatar
Спасибо за ответ, у меня почему то оборачивает каждую строчку а не весь результат

<div>
<div class="akcia">НАПИТОК В ПОДАРОК!</div>
</div> 

<div>
<div class="akcia">ЗАКАЗЫ ПРИНИМАЮТСЯ ДО 17:00</div>
</div>


а хотелось бы обернуть весь вывод так


<div>
<div class="akcia">НАПИТОК В ПОДАРОК!</div>
<div class="akcia">ЗАКАЗЫ ПРИНИМАЮТСЯ ДО 17:00</div>
</div>
avatar
Всё верно. Оборачивается каждый дочерний элемент.
В планах создание параметра типа wrap_rowSlider для обёртки результата.
avatar
Было бы отлично, если бы появился такой параметр. Пока просто обернул вызов MultiFields.
avatar
Дело в том что он внесёт большую путаницу.
В парадигму DocLister, MultiTv он отлично вписывается, но в Multifields, не совсем.
avatar
Я раньше пользовался MultiTv, на ваше решение наткнулся случайно, и оно мне кажется более современным и удобным. Не знаю по поводу путаницы я пока только разбираюсь с MultiFields, но иногда к примеру нужно обернуть весь вывод в какой-то контейнер, и например если в MultiFields нет результата не выводить ничего. А так получается что обёртка контейнер остаётся при любом результате.
avatar
Вижу у вас параметр data
&data=`[(client_akc)]`

Это для примера или в него передаёте данные?
avatar
Это JSON, формирует модуль ClientSettings (настройки сайта), там создано поле akc с типом multifilds
avatar
Понял.
Просто не видел чтобы его кто-то использовал.
Сам использую для подмены изображений товаров с торговыми предложениями.
avatar
Добрый день, появился вопрос по использованию полей по типу select (примерах и документации описания не нашёл). Вроде тип вывода задаю крестик появился, а вот как туда значения добавить не понятно. Вызов такой

    'settings' => [],
    'templates' => [
        'rowSocial' => [
            'type' => 'row',    
             'value' => false,          
            'items' => [             
                'rowSocial_icons' => [
                    'type' => 'dropdown',				
                    'placeholder' => 'Иконка сети',
                    'class' => 'col-4'
                ],
				'rowSocial_link' => [				 
                    'placeholder' => 'Ссылка на группу',
                    'class' => 'col-8'
                ]
            ]
        ]
    ]


Буду благодарен если кто подскажет.
avatar
Стандартные типы полей системы обрабатываются как и раньше.
В элемент «elements» заполняются возможные значения, например
"elements" => "1||2||3"
avatar
Спасибо!
avatar
Подскажите а нет ли такой возможности в multifilds, по ограничению вывода количества строк, например 5 строк а далее + пропадает? Вроде такое где-то видел ранее по моему в плагине ManagerManager
avatar
в конфиг файле параметр
limit => 5
avatar
Работает, но только при условии что я добавляю поля нажимая на зелёный крестик, если я начинаю добавлять промежуточные строки нажимая на синий крестик то limit уже не работает.
avatar
Других вариантов нет.
avatar
Есть вариант, добавить
'actions' => ['move','del', 'edit'],	
тогда синего крестика для промежуточных полей не будет, и
limit => 5
работает как надо.
avatar
Добрый день, спасибо что подсказываете. Возник вопрос как можно в multifilds проверить на пустоту, помню в multiTV можно было так
<code>[+links:ne=``:then=` <a href="[+links+]">Подробнее</a>`+]</code>
Пробовал через сниппет IF в шаблоне вызова multifilds не работает. Нужно вывести кнопку Подробнее если поле rowLink заполнено, а если не заполнено то не выводить.
<code>
return [
    'settings' => [],
    'templates' => [
        'rowSlider' => [
            'type' => 'row',    
             'value' => false,          
            'items' => [
                 'Slider_thumb' => [
                    'type' => 'thumb',
					'actions' => ['del', 'edit'],           
                    'attr' => 'style="width: 135px;"'
					
                ],			
                'rowSlider_name' => [ 
				    'type' => 'textareamini',
                    'placeholder' => 'Заголовок',
                    'class' => 'col-5'
					
                ],
				'rowSlider_opis' => [
                    'type' => 'textareamini',				
                    'placeholder' => 'Описание',
                    'attr' => 'style="width: 100%;"'
					
                ],			
                'rowLink' => [ 
				    'type' => 'text',
                    'placeholder' => 'Ссылка если есть',
                    'class' => 'col-12'
					
                ]
            ]
        ]
    ]
];
</code>
PS через сниппет IF работает, если вынести шаблон в отдельный чанк.
Комментарий отредактирован 2021-03-11 15:24:38 пользователем webzic
avatar
Посмотрите параметр prepare
64j.gitbook.io/multifields-2/elementy
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.