Question

Quand les gens vous inscrire à mon site, je veux qu'ils rejoignent soit un groupe existant ou en créer un nouveau si elle n'existe pas. Ils ne peuvent être membre d'un groupe, et il n'y a qu'un seul type de groupe utilisé sur le site.

J'ai le jeu de widget autocomplete et je veux modifier la fonctionnalité de si au lieu de lancer un message d'erreur, il crée un groupe. Je suppose que og.module est en train de modifier pas une bonne idée car il ne serait pas facile de faire mes changements particuliers de suffisamment générique pour travailler pour un bon nombre de cas d'utilisation alors je ne suis-je raison de penser que je voudrais créer un module personnalisé pour accrocher dans le pré Enregistrer la fonctionnalité de l'entité utilisatrice et faire mon contrôle pour voir si elle existe, si pas créer un groupe et ensuite créer l'adhésion ou il y at-il une autre façon?

J'essayé d'utiliser la taxonomie comme le contenu de mon groupe et en utilisant un champ de saisie semi-automatique de référence à long terme sur mon profil d'utilisateur, mais og ne semble pas fonctionner pleinement avec taxonomie en ce moment, et j'ai eu d'autres problèmes avec des données de terrain attachées n'économiser sur taxonomie donc retourné à l'aide d'un type de noeud que mon type de contenu du groupe.

Était-ce utile?

La solution 2

hook_user_insert() déclenche trop tard dans le processus. Je hook_form_FORM_ID_alter() changer la autocomplete validate rappel à utiliser ma fonction personnalisée.

  function MYMODULE_form_user_register_form_alter(&$form, &$form_state, $form_id) {

  $form['group_audience']['und'][0]['gid']['#element_validate'][0] = 'MYMODULE_field_audience_autocomplete_validate';
}

MYMODULE_field_audience_autocomplete_validate() est identique à la fonction d'origine, sauf que, au lieu de lancer une erreur, il crée un groupe.

Autres conseils

Je pense que votre principe général est saine. Je serais tenté d'utiliser hook_user_insert () au lieu , qui est appelé après que l'utilisateur a été créé, et non avant, depuis:

  • Votre module ne peut pas échouer en fait de créer un groupe ou d'insérer un nouveau.
  • hook_user_presave est vraiment pour les modules qui veulent serialize données (simples) à stocker dans la table des utilisateurs lui-même, ce qui est pas ce que vous faites.

Les crochets nécessaires à OG7 sont tous là pour le contrôle et la création de groupes et d'insérer les utilisateurs.

Licencié sous: CC-BY-SA avec attribution
Non affilié à drupal.stackexchange
scroll top