Connexion



Inscription
Mot de passe oublié ?

Inscription

L'inscription à DotNetNuke France est entièrement gratuite et vous permet de profiter pleinement des outils mis à votre disposition. L'inscription ne donne néanmoins pas le statut d'adhérent à l'association.

  • Discutez sur le forum et suivez son activité
  • Répondez aux articles
  • Soutenez l'association
  • Téléchargez les traductions

 

DotNetNuke France

Association francophone

Module d'inscription simplifié

Auteur : Sébastien Fichot

Date de pulication : 12 mai 2010

Classement : Module à découvrir

Article consulté 25245 fois Article Rating (2 votes)
 

MàJ 28/07/2010 : Le module a été mis à jour.

Avec l'ouverture de la nouvelle plateforme DotNetNuke France, j'ai décidé d'offrir à la communauté open-source un certain nombre de modules développés pour l'occasion sous l'espace de nom OpenSourceObject (OSO). Je présenterai dans le futur d'autres modules de ce genre, mais je souhaite commencer par le module OSO.Register.to.Newsletter.

Le module  OSO.Register.to.Newsletter est le module que vous pouvez voir en bas de cette page, sous la bannière "Restez informé !". Il se compose d'un texte d'introduction, d'une zone de texte, et d'un bouton "S'inscrire".



Ce module très simple dans son code fonctionne suivant le processus suivant :

  1. Reçoit une adresse courriel dans la zone de texte au moment du click sur "S'inscrire".
  2. Valide l'adresse courriel et affiche un message d'erreur au besoin.
  3. Créé un compte utilisateur en générant le login à partir de la partie de l'adresse courriel se situant avant l'arobase. Par exemple, si je m'inscris avec l'adresse courriel Toto@dnn.com, mon pseudonyme sera Toto.
  4. Enfin, il inscrit le nouvel utilisateur à la lettre d'information. Si l'utilisateur est déjà inscrit au site, il l'enregistre uniquement pour recevoir la lettre d'information (Si ce n'est pas déjà fait).
Et c'est tout !

La bibliothèque de fichiers contient le package d'install et le code source.


Le module sera maintenu à la demande et sur les version majeures de DotNetNuke.
Il n'est pas prévu d'amélioration pour le moment, et le module se base sur jQuery pour valider l'adresse courriel. Vous êtes libres de modifier ce module comme bon vous semble et de l'intégrer dans vos dispositifs commerciaux, mais vous devrez livrer à la communauté DotNetNuke France le fruit de vos améliorations. Nous aurons l'occasion de discuter un peu plus tard des licenses qui s'appliquent aux modules open-source qui seront distribués sur la plateforme DotNetNuke France, mais comme c'est le lancement il reste beaucoup d'autres choses pus importantes à faire.

La distribution du module est assurée par la librairie de fichiers. Pour accéder au dossier du module et télécharger la dernière version, cliquez ici.

La principale fonction du module :
Protected Sub cmdSubmit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdSubmit.Click
            Try

                If Me.UserInfo.IsInRole("Registered users") Then
                    ' Registered user

                    If Not Me.UserInfo.IsInRole("Subscribers") Then
                        ' The user is not already in the subscribers role
                        Dim objRCtler As New RoleController
                        Dim objRole As RoleInfo = objRCtler.GetRoleByName(Me.PortalId, "Subscribers")

                        objRCtler.AddUserRole(Me.PortalId, Me.UserId, objRole.RoleID, Null.NullDate)
                        DotNetNuke.Services.Mail.Mail.SendMail(Me.UserInfo, Services.Mail.MessageType.ProfileUpdated, Me.PortalSettings)

                    End If
                Else
                    ' New user

                    Dim strPart As String = Me.txtNewsletterEmail.Text.Split("@")(0)

                    ' Create and hydrate User
                    Dim objUser As New UserInfo
                    objUser.Profile.InitialiseProfile(Me.PortalId, True)
                    objUser.PortalID = Me.PortalId
                    objUser.DisplayName = strPart
                    objUser.Email = Me.txtNewsletterEmail.Text
                    objUser.FirstName = strPart
                    objUser.LastName = strPart
                    objUser.Username = strPart
                    objUser.Membership.CreatedDate = Date.Now
                    objUser.Membership.Password = DotNetNuke.Entities.Users.UserController.GeneratePassword(9)
                    objUser.Membership.UpdatePassword = True

                    Select Case PortalRegistrationType.VerifiedRegistration
                        Case PortalRegistrationType.PublicRegistration
                            objUser.Membership.Approved = True
                        Case Else
                            objUser.Membership.Approved = False
                    End Select

                    ' Create the user
                    Dim objAnswer As UserCreateStatus = UserController.CreateUser(objUser)
                    Dim boNotify As Boolean = False

                    Select Case objAnswer
                        Case UserCreateStatus.Success
                            boNotify = True
                        Case Else
                            ' registration error
                            boNotify = False
                    End Select

                    If boNotify Then
                        '    'Send Notification to User
                        Select Case PortalRegistrationType.VerifiedRegistration

                            Case PortalRegistrationType.NoRegistration
                                ' Do nothing

                            Case PortalRegistrationType.PrivateRegistration
                                DotNetNuke.Services.Mail.Mail.SendMail(objUser, Services.Mail.MessageType.UserRegistrationPrivate, Me.PortalSettings)

                            Case PortalRegistrationType.PublicRegistration
                                DotNetNuke.Services.Mail.Mail.SendMail(objUser, Services.Mail.MessageType.UserRegistrationPublic, Me.PortalSettings)

                            Case PortalRegistrationType.VerifiedRegistration
                                DotNetNuke.Services.Mail.Mail.SendMail(objUser, Services.Mail.MessageType.UserRegistrationVerified, Me.PortalSettings)

                        End Select

                    End If

                End If


            Catch ex As Exception
                ProcessModuleLoadException(Me, ex)
            End Try

        End Sub

 

Notez cet article !

DotNetNuke c'est ...

  • Facile à utiliser
  • Open Source et gratuit
  • 100% personnalisable
  • Des milliers d'extensions
  • Multilingue
  • Multi-site
  • Maintenu par une communauté d'experts
  • Sécurisé

Restez informé !

Inscrivez vous pour recevoir notre lettre d'information.

x

Restez connecté !

Le fichier que vous téléchargez sera probablement mis à jour très bientôt.

Inscrivez vous
et nous vous informerons des mises à jour