Интеграция пользовательских компонентов Joomla с Joomla com_user

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

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

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

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

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

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


person SIA    schedule 27.02.2010    source источник


Ответы (1)


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

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

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

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


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