Доброго времени суток. У меня такая проблема: Я использую компонент Login и сниппет Register для регистрации. В документации описано, как можно проверить пароли на идентичность(подтверждение пароля). Вот мой код страницы регистрации:
[[!Register?
&submitVar=`register-btn`
&activationResourceId=`49`
&successMsg=`Спасибо за регистрацию. На ваш E-mail выслано письмо активации аккаунта`
&activationEmailTpl=`Email.Activation`
&activationEmailSubject=`Вы зарегистрированы на сайте example.com`
&placeholderPrefix=`reg.`
&usergroups=`Users::Member`
&usernameField=`email`
&passwordField=`password`
&validate=`nospam:blank,
name:required,
family:required,
email:required:email,
password:required:minLength=^6^,
password_confirm:required:minLength=^6^:password_confirm=^password^
`
]][[!+error.message:eq=``:then=`
<div>
<div class="menuContent">
<h2 class="topH2"><div class="leftLeaf"></div><p>Регистрация</p><div class="rightLeaf"></div></h2>
<div class="regContent">
<form action="[[~[[*id]]]]" method="POST" id="register_form">
<div class="regItem">
<label for="reg_name">Имя <span>*</span></label>
<input type="text" name="name" id="reg_name" value="[[!+reg.name]]">
<div class="errorMsg">[[!+reg.error.name]]</div>
</div>
<div class="regItem">
<label for="reg_family">Фамилия <span>*</span></label>
<input type="text" name="family" id="reg_family" value="[[!+reg.family]]">
<div class="errorMsg">[[!+reg.error.family]]</div>
</div>
<div class="regItem">
<label for="reg_date">Дата рождения</label>
<input type="date" name="birthdate" id="reg_data">
<div class="errorMsg"></div>
</div>
<div class="regItem">
<label for="reg_email">Email <span>*</span></label>
<input type="email" name="email" id="reg_email" value="[[!+reg.email]]">
<div class="errorMsg">[[!+reg.error.email]]</div>
</div>
<div class="regItem">
<label for="reg_password">Пароль <span>*</span></label>
<input type="password" id="reg_password" name="password" value="[[+password]]">
<div class="errorMsg">[[!+reg.error.password]]</div>
</div>
<div class="regItem">
<label for="reg_password_confirm">Подтвердите пароль <span>*</span></label>
<input type="password" id="reg_password_confirm" name="password_confirm" value="[[+password_confirm]]">
<div class="errorMsg">[[!+reg.error.password_confirm]]</div>
</div>
<div class="regItem">
<input type="submit" name="register-btn" value="Регистрация">
</div>
</form>
</div>
</div>
</div>
`:else=`<div class="errorMsg"><p>[[!+error.message]]</p></div>`]]
Атрибуты name полей input ввода пароля и подтверждения у меня соответственно password и pasword_confirm. Я проверяю их в сниппете таким образом:
password:required:minLength=^6^,
password_confirm:required:minLength=^6^:password_confirm=^password^
Как я понимаю, в password_confirm можно написать как имя поля, так и конкретное значение.
Проблема в том, что эта проверка не работает, всё время выдаёт "Пароли не совпадают". Пробовал писать свой сниппет, прикреплял через customValidators, но почему-то у значения $scriptProperties('value') длина нормальная(вводим в поле с name "password_confirm": 111111, и у нас в сниппете String(6):111111), а в $scriptProperties('param'), куда мы передаём [[!+reg.pass]] длина строки "[[!+reg.pass]]", т.е. String(14):111111 в сниппете. Проверяю через сниппет - не получается. Пробовал через фильтры вывода передавать в свой сниппет проверки либо true, если :eq([[!+reg.pass]]), либо сообщение "Пароли не совпадают". Тоже самое.