Форумы / National / Russian / Тех. поддержка / Как прописать сss класс для полей смены пароля в users.profile.tpl

vpktz
#1 30.07.2019 14:40

Не могу никак сообразить, все перетыкал что возможно было. Нигде класс не работает.

Пробовал в различные места users.profile.php тыкать в разных местах, так как в некоторых плагинах получалось. 

	'USERS_PROFILE_OLDPASS' => cot_inputbox('password', 'roldpass', '',  array('size' => 12, 'maxlength' => 32)),
	'USERS_PROFILE_NEWPASS1' => cot_inputbox('password', 'rnewpass1', '', array('size' => 12, 'maxlength' => 32, 'autocomplete' => 'off')),
	'USERS_PROFILE_NEWPASS2' => cot_inputbox('password', 'rnewpass2', '', array('size' => 12, 'maxlength' => 32, 'autocomplete' => 'off')),

Но тут не получилось, не работает. Пробовал в $R

$R['form_guest_password'] = '<input class="uk-input" type="password" name="rpassword" maxlength="32" />';

Но почему то тоже не срабатывает

 

Нужно что бы эти 3 поля 

{USERS_PROFILE_OLDPASS}
{USERS_PROFILE_NEWPASS1}
{USERS_PROFILE_NEWPASS2}

стали с классом 

class="uk-input uk-form-width-medium"

Вариант с 

{USERS_PROFILE_OLDPASS|cot_rc_modify($this, 'class="uk-input uk-form-width-medium"')}

Не подходит так как случае неправильного ввода паролей и вывода предупреждений поля дублируются на с классом и без. Я так понимаю что нужно где то выше прописать класс, 

 

 

 

Отредактировано: vpktz (30.07.2019 21:38, 4 года назад)
Roffun
#2 30.07.2019 15:39

Вариантов может быть много, всё зависит от целей.

Если класс нужен только для внешнего вида, то почему бы не взять их в контейнер и по нему обращаться через css, например:

<div class="changepassword">
​{USERS_PROFILE_OLDPASS}
{USERS_PROFILE_NEWPASS1}
{USERS_PROFILE_NEWPASS2}
</div>
.changepassword input[type=password]{
/*нужная стилизация*/
}

или же применить селекторы css по имени, например:  

input[name="roldpass"], 
input[name="rnewpass1"], 
input[name="rnewpass2"] {
/*нужная стилизация*/
}

Также можно с помощью js:

document.querySelector('input[name="roldpass"]').classList.add("uk-input uk-form-width-medium");

А если задача добавить в php конструкцию то:

'USERS_PROFILE_OLDPASS' => cot_inputbox('password', 'roldpass', '',  array('size' => 12, 'maxlength' => 32, 'class' => 'uk-input uk-form-width-medium')),
'USERS_PROFILE_NEWPASS1' => cot_inputbox('password', 'rnewpass1', '', array('size' => 12, 'maxlength' => 32, 'autocomplete' => 'off', 'class' => 'uk-input uk-form-width-medium')),
'USERS_PROFILE_NEWPASS2' => cot_inputbox('password', 'rnewpass2', '', array('size' => 12, 'maxlength' => 32, 'autocomplete' => 'off', 'class' => 'uk-input uk-form-width-medium')),

Но системные файлы лучше не править, а переопределять в ресурсах $R

Улетел на другую планету, а там почты нету.. https://www.cotonti.com/forums/45298?m=posts
vpktz
#3 31.07.2019 09:17

Спасибо, сделал так все работает

'USERS_PROFILE_OLDPASS' => cot_inputbox('password', 'roldpass', '',  array('size' => 12, 'maxlength' => 32, 'class' => 'uk-input uk-form-width-medium')),
'USERS_PROFILE_NEWPASS1' => cot_inputbox('password', 'rnewpass1', '', array('size' => 12, 'maxlength' => 32, 'autocomplete' => 'off', 'class' => 'uk-input uk-form-width-medium')),
'USERS_PROFILE_NEWPASS2' => cot_inputbox('password', 'rnewpass2', '', array('size' => 12, 'maxlength' => 32, 'autocomplete' => 'off', 'class' => 'uk-input uk-form-width-medium')),

Вопрос, такой способ нежелателен только из за возможных проблем с обновлением модуля users?

Roffun
#4 31.07.2019 13:22
#44336 vpktz:  Вопрос, такой способ нежелателен только из за возможных проблем с обновлением модуля users?

Чтобы не затереть при обновлении.

Улетел на другую планету, а там почты нету.. https://www.cotonti.com/forums/45298?m=posts
DenDevin
#5 03.08.2019 06:20

Есть еще функция для добавления класса из коробки cot_rc_modify()
https://www.cotonti.com/reference/api%20-%20functions/package-functions.html#cot_rc_modify()

{Тег который выводит что угодно|cot_rc_modify($this, 'autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false" class="form-control new-form fullwidth firstcapital" id="title" placeholder="Это заголовок" Чтоугодно="что угодно"')}