Форум русской поддержки Joomla!® CMS
22.01.2017, 01:47:22 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
   
   Начало   Поиск Joomla 3.0 FAQ Joomla 2.5 FAQ Joomla 1.5 FAQ Правила форума Новости Joomla Реклама Войти Регистрация Помощь  
Страниц: [1]   Вниз
  Добавить закладку  |  Печать  
Автор

Добавление полей в форму регистрации

 (Прочитано 1013 раз)
0 Пользователей и 1 Гость смотрят эту тему.
kolka-jan
Захожу иногда
**

Репутация: +0/-0
Offline Offline

Сообщений: 23


« : 30.01.2015, 16:42:46 »

Ситуация следующая. Необходимо добавить поле «Возраст» в форму регистрации. Использую альтернативный модуль авторизации BT-login, но, в принципе, вопрос касается любого модуля авторизации, хоть и встроенного, родного.
Делаю следующие шаги:
1.   После поля USERNAME добавляю поле AGE в свою базу данных в таблицу ХХХ_users, поле текстовое, тип VARCHAR, длина 2.

2.    Добавляю в САЙТ/modules/название_модуля_авторизации/tmpl/default.php новое поле – «Возраст»:

<div class="btl-field">
<div class="btl-label"><?php echo JText::_( 'AGE' ); ?></div>
<div class="btl-input">
<input id="btl-input-age" type="age" name="jform[age]" />
</div>
</div>         
<div class="clear"></div>   
Теперь у меня в форме регистрации появляется это поле для заполнения.

3.   Добавляю в профиль пользователя поле «Возраст» в файл САЙТ/components/com_users/models/forms/registration.xml
      
<field name="age" type="text"
         description="Введите свой возраст"
         filter="string"
         label="Возраст"
         required="true"
         size="30"
      />
Появляется это поле для самого пользователя

4.   Аналогично добавляю в профиль пользователя в админке поле «Возраст» в файл САЙТ/administrator/components/com_users/models/forms/user.xml

      <field name="age" type="text"
         description="Введите Ваш возраст"
         label="Возраст"
         required="true"
         size="30"
      />
Появляется поле возраста в админке при просмотре профиля пользователей

5.   В в САЙТ/libraries/joomla/user/user.php после поля username добавляю поле age:

/**
                * The users age
                * @var    string
                * @since  11.1
                */
               public $age = null;


Все поля прописаны, все есть. НО!
Значение возраста, вводимое при регистрации в форму регистрации – не вносится ни в базу данных (поле AGE), ни видно в админке или профиле пользователя!
Как сделать так, чтобы заполнение в форме регистрации синхронизировалось с БД и полями Возраста в профиле пользователя?
Записан
b2z
Support Team
*****

Репутация: +717/-0
Offline Offline

Пол: Мужской
Сообщений: 7592


Разраблю понемногу


« Ответ #1 : 30.01.2015, 18:02:35 »

Для таких вещей используют профиль, а не таблицу users. На форуме вели обсуждение по добавлению полей в форму регистрации. Не понимаю, при чем тут модули - они не отвечают за регистрацию.
Записан
kolka-jan
Захожу иногда
**

Репутация: +0/-0
Offline Offline

Сообщений: 23


« Ответ #2 : 31.01.2015, 15:30:17 »

Для таких вещей используют профиль, а не таблицу users.
Но данные о пользователях находятся как раз в таблице users. Я что-то не так понимаю?
На форуме вели обсуждение по добавлению полей в форму регистрации. Не понимаю, при чем тут модули - они не отвечают за регистрацию.
Честно искал - не нашел. Буду признателен за подсказку. Joomla 3.3.6
Записан
b2z
Support Team
*****

Репутация: +717/-0
Offline Offline

Пол: Мужской
Сообщений: 7592


Разраблю понемногу


« Ответ #3 : 31.01.2015, 22:05:20 »

Да, хранятся. Но доп. данные хранятся в таблице users_profiles. А то, что Вы правите ядро, не есть хорошо.

http://joomlablog.ru/prijomy-poleznye-tryuki/30-rasshirennye-profili-polzovatelej-v-joomla-17
http://library.logicsistemi.it/en/joomla/general-topics/40-joomla-25-extending-users-data-with-custom-fields
Записан
kolka-jan
Захожу иногда
**

Репутация: +0/-0
Offline Offline

Сообщений: 23


« Ответ #4 : 01.02.2015, 18:55:17 »

Спасибо за ссылки - решение рабочее, хорошо. Однако оно работает с родным модулем авторизации. Не могу разобраться - как заставить его работать с альтернативным модулем авторизации.
Записан
perezxxx
Захожу иногда
**

Репутация: +0/-1
Offline Offline

Сообщений: 12


« Ответ #5 : 13.03.2015, 10:41:29 »

Получилось победить проблему?
У меня такая же
Записан
Mila
Захожу иногда
**

Репутация: +0/-0
Offline Offline

Сообщений: 18


« Ответ #6 : 29.12.2016, 13:45:21 »

Добрый день. Помогите разобраться, пожалуйста. Только не плюйте в меня, что полезла в движок (при изначальном поиске решения проблемы полезла на форумы и нашла такое решение. Почти работает. Но только "почти"  Wink

Суть вопроса: нужно добавить дополнительное поле с целью регистрации на сайте в форму регистрации. Поле только одно, так что подключать целый плагин профилей не хотелось.

Что сделала:
1. добавила строку "purpose" в базу данных, таблица _users. (varchar(100), utf8).
2. Внесла изменения в файл user.php из папки libraries/joomla/user: добавила код public $purpose= null;
3. Внесла изменения в файл users.xml из папки administrator/components/com_users/models/forms. Добавила код
 
Код:
   <field name="purpose" type="text"
        description="Определите цель регистрации: регистрация на вэбинар, запись на консультацию"
        label="Цель регистрации"
        required="true"
        size="60"
/>
4. Добавила тот же код в registration.xml из папки components/com_users/models/forms

И все бы хорошо, да только вместо нормальной формы выбегают крокозяблы. И внизу маленькая приписочка: 500 JForm::getInstance could not load file  Smiley

Поможете?
Записан
Mila
Захожу иногда
**

Репутация: +0/-0
Offline Offline

Сообщений: 18


« Ответ #7 : 29.12.2016, 17:30:32 »

Заменила русские буквы на константы, прописала константы в языковом файле. Форма появилась, но вместо букв знаки вопроса. И одного поля не хватает. Т.е. надписей 9, а полей для ввода 8. Может кто сталкивался, подскажите.
« Последнее редактирование: 29.12.2016, 18:00:55 от Mila » Записан
b2z
Support Team
*****

Репутация: +717/-0
Offline Offline

Пол: Мужской
Сообщений: 7592


Разраблю понемногу


« Ответ #8 : 29.12.2016, 18:48:48 »

Будем ругать - зачем в ядро, если можно написать плагин профиля?
Записан
Mila
Захожу иногда
**

Репутация: +0/-0
Offline Offline

Сообщений: 18


« Ответ #9 : 29.12.2016, 18:52:59 »

Предлагаете вернуть все как было и включить таки плагин профиля? Жаль, а так хотелось домучать начатое)) А главное, что все выглядит очень логично и не понятно почему не работает(( Sad Кстати, дополнительное поле добавилось, а вот с кодировкой так вопрос и не решила. Откатываю обратно(
« Последнее редактирование: 29.12.2016, 19:12:54 от Mila » Записан
b2z
Support Team
*****

Репутация: +717/-0
Offline Offline

Пол: Мужской
Сообщений: 7592


Разраблю понемногу


« Ответ #10 : 29.12.2016, 19:21:12 »

Предлагаете вернуть все как было и включить таки плагин профиля? Жаль, а так хотелось домучать начатое)) А главное, что все выглядит очень логично и не понятно почему не работает(( Sad Кстати, дополнительное поле добавилось, а вот с кодировкой так вопрос и не решила. Откатываю обратно(
Лучше плагин. А выйдет 3.7, появятся кастомные поля и вообще всё проще будет.
Записан
Страниц: [1]   Вверх
  Добавить закладку  |  Печать  
 
Перейти в:  

Powered by SMF 1.1.21 | SMF © 2006, Simple Machines

Joomlaforum.ru is not affiliated with or endorsed by the Joomla! Project or Open Source Matters.
The Joomla! name and logo is used under a limited license granted by Open Source Matters
the trademark holder in the United States and other countries.

LiveInternet