Недавно я наткнулся на ситуацию в Joomla 3.1.1, где мне нужно добавить настраиваемое поле, прикрепленное с формой регистрации по умолчанию.
Я просмотрел существующие ресурсы, которые говорят, что я должен перейти к joomla_root / components / com_users / models / forms / registration.xml, а затем соответствующим образом изменить файл.
Я сделал это, но ничего не появляется. Мне также нужно изменить registration.php в модели и контроллере. Итак, мне нужны ваши материалы о том, как это сделать. Я не могу использовать плагин профиля или коммерческие расширения.
One more thing that I've noticed is the fact that changing registration.xml file and such things work perfectly fine in Joomla 2.5 but isn't working in 3.x.
Joomla поставляется с пользовательским плагином с именем «profile», который может содержать поля, которые вы хотите добавить уже.
В администраторе перейдите к расширениям / плагинам, фильтруйте по типу и выберите «пользователь», затем найдите «Профиль» и откройте его. Проверьте варианты правой руки, включите плагин и вуаля.
Предупреждение : большинство шаблонов переопределяют регистрационную форму, и обычно они не запускают правильные события плагина. Если это так, ваши пользователи будут видеть только «стандартные» поля в регистрации. И если вы установите какие-либо поля по мере необходимости в плагине, они не будут зарегистрированы, но будут перенаправлены на полную страницу регистрации (компонент пользователя), где они найдут поля, которые они уже заполняли, за исключением паролей, что может быть вполне раздражает.
Если полей «профиля» недостаточно, скопируйте плагин профиля и создайте свой собственный.
НЕ изменяйте файлы плагина профиля или com_users, как вы это делали, это ядро Joomla и будет перезаписано при следующем обновлении.
В конце концов выясняется, что проблема заключалась в компоненте K2. Я пробовал этот пользовательский материал для регистрации в joomla 2.5, а затем внезапно подумал о том, как отключить системный плагин K2 .. Он работал.
Im отправляю шаги для этого:
1. Перейдите к joomla_root / components / com_users / models / forms / registration.xml и добавьте там поле.
2. Затем откройте joomla_root / components / com_users / models / registration.php, а затем в регистре функций () измените пользовательские поля ur.
3. Не забудьте добавить поле в таблицу базы данных ur # #, которое вы добавили в registration.xml
В зависимости от того, нужно ли вам настраивать поле для добавления в базу данных или нет, вы можете использовать компонент построения формы, такой как RSForm! Pro или ChronoForms . Они оба могут подключиться к системе регистрации пользователей в Joomla и предоставить вам большую гибкость в настраиваемых электронных письмах, добавлении информации в таблицы базы данных и т. Д. Это изолирует вас от любых основных обновлений, которые могут уничтожить ваши изменения. Я считаю, что Chronoforms является бесплатным, если вы не возражаете против ссылки на разработчиков в форме.
Если вы не можете этого сделать, я бы удостоверился, что у меня была резервная копия файлов, которые я модифицировал, прежде чем обновлять сайт. Joomla 3.1.x – это краткосрочная сборка, поэтому у вас есть более высокий риск изменения файлов, чем если бы вы работали на сайте Joomla 2.5.x.