как расширить поля регистрации без изменения файлов ядра Joomla - PullRequest
1 голос
/ 21 марта 2012

Я работаю с Joomla 1.7.Я хочу расширить поля регистрации или добавить настраиваемые поля без изменения основных файлов. В будущем я буду обновляться до новой версии, это не повлияет на изменения. Может кто-нибудь, пожалуйста, помогите мне?

Ответы [ 6 ]

2 голосов
/ 25 января 2013

ОЧЕНЬ ПРОСТО:

Активируйте встроенный плагин «Пользователь - профиль» и настройте его (только J1.6 +).Это добавляет много дополнительных полей в регистрационную форму и профили пользователей.Вам может понадобиться изменить языковой файл для плагина, чтобы изменить некоторые имена полей на suite.

1 голос
/ 30 ноября 2013

Вы можете использовать копию основных файлов, которые вам нужно взломать, и сохранить их в своем шаблоне. Это не что иное, как знаменитые «переопределения шаблонов». Когда вы делаете это, вы не теряете свои хаки при обновлении Joomla. Посмотрите на http://docs.joomla.org/How_to_override_the_output_from_the_Joomla!_core и http://docs.joomla.org/Understanding_Output_Overrides. Надеюсь, что это полезно.

1 голос
/ 27 марта 2012

Это не так уж сложно - и нет необходимости взламывать ядро. Одна из действительно интересных вещей в 1.6+ заключается в том, что расширение полей регистрации относительно просто.

Вот один источник: http://www.joellipman.com/articles/web-development/joomla-cms/28-tutorials/499-creating-a-profile-plugin-for-joomla-16.html

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

  • Скопируйте это и назовите это как-нибудь по-другому ... скажи свой профиль
  • Откройте файлы в текстовом редакторе и измените ссылки так, чтобы они ссылались на «ваш профиль» вместо «профиль».
  • Отредактируйте файлы PHP и XML так, чтобы вы только добавляли нужные поля, но вы можете использовать то, что есть, для моделирования того, чего вы хотите достичь (например, вам нужно поле выбора? Переименуйте их и удалите остальные)
  • Установите его (либо используйте «Discover», либо бросьте в папку tmp и установите из tmp, либо заархивируйте и загрузите) и включите его.
  • Проклятие, что есть ошибка, потому что вы что-то пропустили, вернитесь и измените
  • Повторите
  • И готово!

Одно предостережение - то, что не работает с этим методом, - это способ заставить определенное поле быть обязательным. В joomlacode есть патч, но я не смог заставить его работать, и, похоже, у многих других тоже были проблемы (хотя другие говорят, что он работал нормально).

0 голосов
/ 10 августа 2012

Если вы хотите сохранить новые данные в таблице пользователей, это просто:

Отредактируйте administrator/components/com_users/models/forms/user.xml и добавьте новые поля, затем измените базу данных, чтобы таблица пользователей могла принимать новые данные. Вот и все.

Индивидуальная регистрация сложнее. В качестве отправной точки создайте плагин и найдите функции "onUser".

Загрузите плагин, перейдя на (administrator)->Extensions->Manage->install из каталога, затем активируйте его, перейдя на (administrator)->Extensions->Plugins->(choose yours)->Enable

Используйте onUserAfterSave() для сохранения информации и onContentPrepareData() для ее загрузки. Например: onContentPrepareData установит $data->yourNewField, а onUserAfterSave получит $user['yourNewField'] и сохранит его в базе данных (или еще много чего).

0 голосов
/ 22 марта 2012

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

Он также совместим с Joomla 1.7 и 2.5, поэтому у вас не будет проблем с обновлением.

http://extensions.joomla.org/extensions/access-a-security/site-access/authentication/14303

0 голосов
/ 21 марта 2012

Это один из тех вопросов, которые многие люди задают о Joomla.Расширить поля регистрации не так просто.Вы можете взломать основной код, но это не очень хорошая идея.

В каталоге расширений Jomla есть расширения, которые могут вам помочь.Другой способ - установить Seblod, CCK, который позволяет расширять все поля / формы в Joomla (http://www.seblod.com).

...