• avatar webzic
  • 0
Добрый день, спасибо что подсказываете. Возник вопрос как можно в 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 работает, если вынести шаблон в отдельный чанк.
  • avatar webzic
  • 0
Есть вариант, добавить
'actions' => ['move','del', 'edit'],	
тогда синего крестика для промежуточных полей не будет, и
limit => 5
работает как надо.
  • avatar 64j
  • 0
Других вариантов нет.
  • avatar webzic
  • 0
Работает, но только при условии что я добавляю поля нажимая на зелёный крестик, если я начинаю добавлять промежуточные строки нажимая на синий крестик то limit уже не работает.
  • avatar 64j
  • 0
в конфиг файле параметр
limit => 5
  • avatar webzic
  • 0
Подскажите а нет ли такой возможности в multifilds, по ограничению вывода количества строк, например 5 строк а далее + пропадает? Вроде такое где-то видел ранее по моему в плагине ManagerManager
  • avatar tmih
  • 0
СПАСИБИЩЕ!!!
name2 и phone2 уже стояло в тексте — здесь не исправил
а вот эта волшебная строчка с
var m_data=new FormData(this);
$.ajax({
    processData: false,
    contentType: false,

решила все проблемы.
Коты всех мастей — это сила :)
  • avatar Temus
  • 1

"name2":{
    "required":"Обязательно введите имя"
},
"phone2":{

<form enctype="multipart/form-data" method="post" id="Form3">


var m_data=new FormData(this);
$.ajax({
    processData: false,
    contentType: false,
  • avatar tmih
  • 0
Спасибо за ответ!
да есть этот код. И пробовал весь код из примера брать — все-равно не получилось.
  • avatar tmih
  • 0
Сорри — сейчас увидел ответ. Вот код формы
++++++++++++++++
вот код чанка «letter» с формой
[!FormLister?
&formid=`Form3`
&rules=`{
"name":{
    "required":"Обязательно введите имя"
},
"phone":{
    "required":"Обязательно введите номер телефона",
    "phone":"Введите номер правильно"
},	
"special":{
    "maxLength":{
        "params":0
    }
},
"agree":{
    "required":"Вы не можете отправить обращение, если не согласны с правилами"
}
}`
&attachments=`first`
&fileRules=`{
"first":{
    "required":"Приложите документ",
    "allowed":{
        "params": [ ["doc","docx","pdf"] ],
        "message": "Разрешены только документы Word и Pdf"
    },
    "maxSize" : {
        "params": 1024,
        "message": "Размер файла не должен превышать 1Мб"
    }
}
}`
&formTpl=`@CODE:
       <form method="post" name="Form3" id="Form3">
		<div class="row">
                <input type="hidden" name="formid" value="Form3">
				<input name="special" class="special" type="text" placeholder="Спец" value="[+special.value+]">
			<div class="col-12">
                <div class="form-group[+name2.errorClass+][+name2.requiredClass+]">
					[+name2.error+]
                    <input type="text" class="input-sm form-full" id="name2" placeholder="Имя *" name="name2" value="[+name2.value+]">                        
                </div>				
                <div class="form-group[+phone2.errorClass+][+phone2.requiredClass+]">
					[+phone2.error+]
                        <input type="text" class="input-sm form-full phnx" id="phone2" placeholder="+7 (XXX) XXX-XX-XX *" name="phone2" value="[+phone2.value+]">
                </div>
			</div>
			<div class="col-12">	
				<div class="form-group[+first.errorClass+][+first.requiredClass+]">
                    <label for="first" class="control-label">* Приложите документ (Word или Pdf)</label>
                    <div class="col-sm-10">
                        <input type="file" class="form-control" id="first" name="first">
                        [+first.error+]
                    </div>
                </div>
			</div>
			<div class="col-12">	
				<div class="checkbox[+agree.requiredClass+]">
					 [+agree.error+]
                  <label>
                    <input type="checkbox" name="agree" value="Да" [+c.agree.Да+]>
                    Я согласен с <a href="[~30~]" target="_blank">правилами обработки персональных данных</a>
                  </label>                   
                </div>
                <div class="form-group">
                    <button type="submit" class="btn btn-md btn-black form-full">Отправить</button>
                </div>
				
			</div>            
        </div>
	</form>`
&to=моя почта`
&errorClass=` has-error`
&requiredClass=` has-warning`
&reportTpl=`@CODE:
<p>Имя: [+name2.value+]</p>
<p>Телефон: [+phone2.value+]</p>
<p>Документы:[+first.value+]</p>
<p>Доп.:[+userfile.value+]
<p>Вложения: [+attachments.value+]</p>
`&subject=`Заказ обратного звонка с [(site_name)]`
&messagesOuterTpl=`@CODE:<div class="alert alert-danger" role="alert">[+messages+]</div>`
&errorTpl=`@CODE:<span class="help-block">[+message+]</span>`
!]			

 

это сама форма и у нее есть обертка — вызов в модальном окне
<div class="modal fade" id="letter" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel" aria-hidden="true">
	  <div class="modal-dialog" role="document">
		<div class="modal-content">
		  <div class="modal-header">
			<h5 class="modal-title" id="exampleModalLabel">Отправьте документы</h5>
			<button type="button" class="close" data-dismiss="modal" aria-label="Close">
			  <span aria-hidden="true">×</span>
			</button>
		  </div>
		  <div id="myModal_form-lt" class="modal-body">
			{{letter}}
		  </div>		  
		</div>
	  </div>
	</div>
<script>
    $(function(){
        $(document).on("submit","#Form3",function(e){
            e.preventDefault();
            var m_method=$(this).attr('method');
            var m_action=$(this).attr('action');
            var m_data=$(this).serialize();
            $.ajax({
                type: m_method,
                url: m_action,
                data: m_data,
                resetForm: 'true',
                success: function(result){
                    var data = $(result).find("#myModal_form-lt").html();
                    $("#myModal_form-lt").html(data);
                }
            });
        });
    });
</script>
  • avatar 3fir
  • 0
&attachments= `tvname`

Такое есть?
Хотелось бы увидеть ваш код формы
  • avatar webzic
  • 0
Спасибо!
  • avatar 64j
  • 0
Стандартные типы полей системы обрабатываются как и раньше.
В элемент «elements» заполняются возможные значения, например
"elements" => "1||2||3"
  • avatar webzic
  • 0
Добрый день, появился вопрос по использованию полей по типу select (примерах и документации описания не нашёл). Вроде тип вывода задаю крестик появился, а вот как туда значения добавить не понятно. Вызов такой

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


Буду благодарен если кто подскажет.
  • avatar flash
  • 0
Спасибо!
  • avatar kassio
  • 0
Нет, такой возможности нет. Врядли это можно реализовать в каком-то универсальном виде, но в вашем случае это можно решить плагином на сохранение тв. В плагине брать значения из тв, раскидывать по товарам.
Дяденьки, помогите!!! Не сильно я шарю во всем, но сделал по инструкции все.
php 7.4.14
Версия MODX 1.2.2-d10
eform 1.4.8
Ключи капчи сделал для v3

Fatal error: Uncaught Error: Call to undefined function setReCaptcha() in /var/www/u0556245/data/www/journaljournal.ru/assets/snippets/eform/eform.inc.php:646 Stack trace: #0 /var/www/u0556245/data/www/journaljournal.ru/assets/snippets/eform/snippet.eform.php(114): eForm(Object(DocumentParser), Array) #1 /var/www/u0556245/data/www/journaljournal.ru/manager/includes/document.parser.class.inc.php(1407): eval()'d code(1): require('/var/www/u05562...') #2 /var/www/u0556245/data/www/journaljournal.ru/manager/includes/document.parser.class.inc.php(1407): eval() #3 /var/www/u0556245/data/www/journaljournal.ru/manager/includes/document.parser.class.inc.php(1514): DocumentParser->evalSnippet('return require ...', Array) #4 /var/www/u0556245/data/www/journaljournal.ru/manager/includes/document.parser.class.inc.php(1456): DocumentParser->_get_snip_result('eForm? &formid=...') #5 /var/www/u0556245/data/www/journaljournal.ru/assets/plugins/phx/phx.parser.class.inc.php(132): DocumentParser->evalSnippets('[[eForm? &formi...') #6 /var/w in /var/www/u0556245/data/www/journaljournal.ru/assets/snippets/eform/eform.inc.php on line 646

если что оно сейчас тут: journaljournal.ru/zadat-vopros
  • avatar flash
  • 0
Здравствуйте. Подскажите как лучше поступит в следующей ситуации. Есть раздел каталога с USB флэшками. У каждой флэшки есть своя базовая цена за 32Гб. На странице изделия можно выбрать версию с большей емкостью за отдельную доплату. Стоимость опции прибавляется к базовой цене — {32Gb==0руб||64Gb==200руб||128Gb==600руб}. Все флэшки в разделе имеют одинаковое соотношение емкость-доплата.

Дополнение commerce-options позволяет решить эту задачу, но есть такие моменты:
1) не смотря на то, что соотношение емкость-доплата у всех флэшек одинаковое, но для каждого товара нужно зайти на вкладку «ОПЦИИ ТОВАРА» и нажать «Добавить все значения».
2) В случае если наценка для флэшки на 128Gb изменилась, то недостаточно только изменить цену для опции в соответствующем TV, нужно еще пройтись по всем изделиям очистить старые опции и загрузить новые. Когда таких изделий за 50шт, то это будет напрягать.
3) Аналогично п.2 если, например, добавилась новая опция на 256Гб.

Может быть есть возможность автоматически подгружать данные в «Опции товара» на странице изделия из TV и автоматически их обновлять в случае изменения в TV?
Плюсую вопрос — при вставке эмоджи в шаблон, чанк этот элемент бъется в базе. Спасает только бекап базы, если он есть. Много раз клиенты на разных хостингах причем убивали сайт. С кодировкой базы всё в порядке было