Интеграция пользовательских компонентов Joomla с Joomla com_user - PullRequest
0 голосов
/ 27 февраля 2010

Я создаю компонент, в котором зарегистрированные пользователи смогут использовать функции моего компонента.

Мой компонент имеет несколько форм и представлений. Я хочу разрешить только зарегистрированным пользователям доступ к ссылкам на мой компонент.

Как я могу добавить дополнительные настраиваемые поля в форму регистрации пользователя Joomla? У меня есть несколько дополнительных полей для ввода, таких как адрес и название компании.

Как я могу интегрировать аутентификацию с моим компонентом?

Как выполнить мой компонент, не создавая снова функции регистрации и аутентификации пользователя. Поскольку я знаю, что могу использовать регистрацию пользователя joomla и интегрировать ее с моим компонентом. Но я не знаю, как это сделать.

Пожалуйста, помогите Спасибо

1 Ответ

1 голос
/ 28 февраля 2010

Есть много способов сделать это. Лучшие методы OFC всегда интегрируются без использования хаков. Тем не менее, я бы предложил два пути.

Существует множество плагинов или компонентов, расширяющих поля регистрации пользователей. Но это решения сами по себе, поэтому они не будут полезны для вашего компонента, который содержит собственные данные (адрес, компания и т. Д.).

  1. Вы просто создаете представление веб-интерфейса регистрации для своего компонента, используя модель пользователей joomla. Таким образом, пользователи могут зарегистрироваться через ваш компонент и добавить все дополнительные поля, которые вам нравятся. Вам просто нужно позаботиться о добавлении нестандартных полей в таблицы БД в модели.

  2. Если вы действительно не хотите создавать форму регистрации самостоятельно, вы можете создать плагин пользователя в сочетании с переопределением содержимого для формы регистрации. Плагин затем позаботится о добавлении дополнительных полей в ваши таблицы БД. Правильное событие пользователя будет:


function onAfterStoreUser($user, $isnew, $success, $msg) {
   ...
   if ($isnew)
   {
      myComponent::createExtraFields($user['id'], $args);    }
   else
   {
      myComponent::updateExtraFields($user['id'], $args); 
   }
   ...
}
...