Залежно від значення поля type використовуються різні правила валідації і шаблони листа.
[!FormLister?
&formid=`basic`
&rules=`{
"name":{
"required":"Обов'язково введіть имя"
},
"email":{
"required":"Обов'язково введіть email",
"email":"Введіть email правильно"
},
"phone":{
"required":"Обов'язково введіть номер телефону",
"phone":"Введіть номер правильно"
}
}`
&entRules=`{
"entname":{
"required":"Обов'язково введіть ім'я"
},
"entemail":{
"required":"Обов'язково введіть email",
"email":"Введіть email правильно"
},
"entphone":{
"required":"Обов'язково введіть номер телефону",
"phone":"Введіть номер правильно"
},
"entaddress":{
"required":"Обов'язково введіть адресу"
}
}`
&formControls=`type`
&defaults=`{"type":"Фізична особа"}`
&formTpl=`@CODE:
<div class="row">
<div class="col-md-8 col-md-offset-2">
<div class="well">
<form method="post">
<input type="hidden" name="formid" value="basic">
<div class="form-group">
<label class="radio-inline">
<input type="radio" name="type" value="Фізична особа" [+c.type.Фізична особа+]> Фізична особа
</label>
<label class="radio-inline">
<input type="radio" name="type" value="Юридична особа" [+c.type.Юридична особа+]> Юридична особа
</label>
</div>
<h3>Заповнюється тільки фізособами</h3>
<div class="form-group[+name.errorClass+][+name.requiredClass+]">
<label for="name">* Ім'я</label>
<input type="text" class="form-control" id="name" placeholder="Ім'я" name="name" value="[+name.value+]">
[+name.error+]
</div>
<div class="row">
<div class="col-md-6">
<div class="form-group[+email.errorClass+][+email.requiredClass+]">
<label for="email">* Email</label>
<input type="text" class="form-control" id="email" placeholder="Email" name="email" value="[+email.value+]">
[+email.error+]
</div>
</div>
<div class="col-md-6">
<div class="form-group[+phone.errorClass+][+phone.requiredClass+]">
<label for="phone">* Телефон</label>
<input type="text" class="form-control" id="phone" placeholder="+375 29 123 45 67" name="phone" value="[+phone.value+]">
[+phone.error+]
</div>
</div>
</div>
<h3>Заповнюється тільки юрособами</h3>
<div class="form-group[+entname.errorClass+][+entname.requiredClass+]">
<label for="name">* Назва підприємства</label>
<input type="text" class="form-control" id="entname" placeholder="Назва підприємства" name="entname" value="[+entname.value+]">
[+entname.error+]
</div>
<div class="row">
<div class="col-md-6">
<div class="form-group[+entemail.errorClass+][+entemail.requiredClass+]">
<label for="entemail">* Email</label>
<input type="text" class="form-control" id="entemail" placeholder="Email" name="entemail" value="[+entemail.value+]">
[+entemail.error+]
</div>
</div>
<div class="col-md-6">
<div class="form-group[+entphone.errorClass+][+entphone.requiredClass+]">
<label for="phone">* Телефон</label>
<input type="text" class="form-control" id="entphone" placeholder="+375 29 123 45 67" name="entphone" value="[+entphone.value+]">
[+entphone.error+]
</div>
</div>
</div>
<div class="form-group[+entaddress.errorClass+][+entaddress.requiredClass+]">
<label for="name">* Юридична адреса</label>
<input type="text" class="form-control" id="entaddress" placeholder="Юридична адреса" name="entaddress" value="[+entaddress.value+]">
[+entaddress.error+]
</div>
[+form.messages+]
<div class="form-group">
<button type="submit" class="btn btn-primary"><i class="glyphicon glyphicon-envelope"></i> Надіслати</button>
</div>
</form>
</div>
</div>
</div>`
&to=`test@test.com`
&subjectTpl=`@CODE:[+type.value+]`
&reportTpl=`@CODE:
<p>Ім'я: [+name.value+]</p>
<p>Телефон: [+phone.value+]</p>
<p>Email: <a href="mailto:[+email.value+]">[+email.value+]</a></p>
`
&reportEntTpl=`@CODE:
<p>Назва підприємства: [+entname.value+]</p>
<p>Телефон: [+entphone.value+]</p>
<p>Email: <a href="mailto:[+entemail.value+]">[+entemail.value+]</a></p>
<p>Юридична адреса: [+entaddress.value+]</p>
`
&prepare=`typeSelector`
&errorClass=` has-error`
&requiredClass=` has-warning`
&messagesOuterTpl=`@CODE:<div class="alert alert-danger" role="alert">[+messages+]</div>`
&errorTpl=`@CODE:<span class="help-block">[+message+]</span>`
!]
if ($FormLister->getField('type') == 'Юридична особа') {
$FormLister->config->setConfig(array(
'rules'=>$FormLister->getCFGDef('entRules'),
'reportTpl'=>$FormLister->getCFGDef('reportEntTpl')
));
} else {
$FormLister->setField('type','Фізична особа');
}