The goal of this tutorial is demonstrate how you can create a custom Registration and Login screen using Dynamic Forms and Workflows without the need for a custom module.
We will extend the User type to store additional information about the user: first name and last name, just to demonstrate how to collect and store additional information about the user during the registration process.
As we shall see, there are two approaches to using a form for the creation of a user. The first approach uses a method called binding, while the second approach uses a Workflow activity called CreateUser.
We will look at both of them.
Oftentimes there are cases where you need to store additional information as part of a user. This can be done in a variety of ways. For our sample, we will simply attach two content fields to the User content type: FirstName and LastName.
To attach these fields to the User content type, go to Content Definition, edit the User type, and add two TextFields. Name them FirstName and LastName, respectively. The Display Name for these fields can be anything you like. I named them "First Name" and "Last Name".
The next thing we need to do is create a new Form content item. Enable the Dynamic Forms feature if you haven't already done so, and click on the "Form" menu item in the "New" section of the admin menu.
When we create a new Form content item, we will start out with a single Form and Button element. The first thing we will want to do is give this form element a name and enable client validation.
Specify "Registration" for the form's name and enabled client validation.
Note: the Form content item itself will be called "Register". Don't confuse this with the Form element, which will be called "Registration". We could use the same names if we wanted to, but I think "register" makes more sense for the content item and its URL, whereas submissions of the form element itself kind of represent a registration. Anyway, up to you.
We will not store the submitted form, but we will want to create a new content item when the form is submitted: we will create a new User content item.
The Form Element properties should look like this:
Next, we will add the neccessary form elements to our form.
For our registration form, we want the user to provide the following fields:
Field | Element Type |
First name | Text Field |
Last name | Text Field |
Email Field | |
Password | Password Field |
Confirm password | Password Field |
Accept terms and conditions | Checkbox |
We will also add a Validation Summary element to show any validation errors to the user.
The form will look like the following in design mode:
For each element, we can configure their name, whether or not to show a label, configure bindings, validation, and more.
The settings should be pretty much self-explanatory, but let's have a look at the Bindings section for the First Name field.
What we see here is a list of bindings. A binding enables you to route an incoming form value to a part or field on the content item being created. The incoming form value is provided by the form element, which in the case of the First Name field is a TextField. Since the name of this field is "FirstText", the form value with that key will be supplied to the selected bindings.
Since we configured the form element to create a new content item of type User, the bindings section of a given form field element will enumerate all content fields and parts of that type for which a binding is available.
At the moment of this writing, the following bindings are available:
If the User content type would have a BodyPart attached, then we would see its bindings as well.
As seen in the above picture, we checked the FirstName.Text binding, which means that any value submitted for this First Name text field element will be set to the Text property of the FirstName content field on the User content type.
We'll do the same for the Last Name, UserName, Email and Password fields.
However, when we try and select the bindings for the UserPart, we will find that these bindings don't appear in the list of bindings. What's going on?
The way the Bindings screen works is by inspecting the Content Type definition of the configured content type. Since the UserPart is welded onto the User content item dynamically at runtime, it won't find this part on the User type.
This is easily fixed by following these steps:
Now when you go back to the Form editor and edit the UserName field element, you'll see the UserPart bindings as seen in the previous image.
An important aspect of most forms is input validation. Some examples of input validation are:
With Dynamic Forms, each element type provides its own validation settings that we can configure. For example, the Text Field element supports a Required, Minimum Length and Maximum Length setting.
We can optionally provide a custom validation message that will be displayed when any of these rules add a validation error. If we leave that field empty, a default validation error will be presented to the user.
The "Show Validation Message" provides us with a way to automatically render the validation error message close to the input field. Since elements are rendered using shapes, this can be customized on a theme level.
Alternatively, we could add a Validation Message element to our form and position it anywhere we like, just as long as it is a child of the same Form element.
In this tutorial, we simply added the Validation Summary element to the beginning of our form. For this element to work properly, it too must be a child of the Form element.
Dynamic Forms supports client validation. To enable this, simply go to the Form element's properties, and check the "Enable Client Validation" option.
Now the form fields will be validated on the client side (in addition to serverside validation).
For the "Confirm Password" field (which is a Password Field element) we will use the Compare validator:
All we have to do is specify the name of the element whos value to compare with.
And that is basically all it takes to create a custom Registration form!
But wait a minute, what happens if the user tries to register with a username or email that is already taken?
Oh dear, that would be a problem indeed. We need unique logins. Also, we want to inform the user if he tries to register with an already existing username or email address.
And what if we want to assign the newly created user a role and send a welcome email?
Do we need a custom module after all?
Not if Orchard Workflows has any say in the matter!
Orchard Workflows is a feature introduced with 1.7, and provides us with a way to visually program rules. They are like Orchard Rules, but way more powerful.
Dynamic Forms comes with a small set of workflow activities that will enable us to control what happens when a form is submitted. This enables us to prevent any from being submitted by adding a model error.
Let's define what our workflow should do when a Registration form is submitted:
Such a workflow would look like this:
Note that the start activity is the "Dynamic Form Validating" event (which is configured to only capture this event for the "Registration" form).
This event is triggered before the "Dynamic Form Submitted" event, and gives us a chance to perform custom validation and prevent the form from submitting data / creating content by adding a model error.
We use the Verify User Unicity activity to validate the specified user name and email like this:
What we see here is the usage of a new token provided by the Dynamic Forms module: {FormSubmission.Field:*}, where the * is to be substituted with the form field name.
However, there is one problem with this workflow: the Approve User activity works only if the content item associated with the workflow is a User, but when a form is being validated, no content item is created yet.
This means that we need to devide our workflow into two: one workflow to validate the form, and another workflow to approve the user, login the user, assign a role, and send the welcome email.
After the modifications, the first workflow will look like this:
The second workflow, the one that will execute only after a user has been created, will look like this:
Here, we listen for the Content Published event (configured to trigger only for new published User events).
The Approve User activity will approve this user, then we assign the user the "Contributer" role, sigin in the user, send a welcome message, display a "Welcome" notification, and redirect to the administration dashboard.
Although the approach we've taken works nicely, I want to show you a slightly different approach.
This time, we won't be creating a new User content item via binding, but by using the Create User activity.
The idea here is that we will simply listen for the Form Submitted event, and execute the Create User activity. The Create User activity has two branches: if the specified user name and or email is already in use, we add a model error. Otherwise, we continue and assign the user a role, send a welcome message, etc.
This enables us to use a single workflow.
Let's see how that works.
First of all, we need to change our Form element configuration by not creating a User content item anymore:
Next, we'll delete the two workflows created earlier, and create a new one:
This time, we listen for the "Form Submitted" event (specifically for the "Registration" form to be submitted).
When that happens, we execute the Create User activity, which is configured as follows:
The Create User activity requires a user name, email and password, which we provide using the FormSubmission.Fields:* token.
We also checked the "Approved" checkbox so that the user is autmatically approved, so no need to use the Approve User activity.
Now, we are also expecting the First Name and Last Name fields, which we want to store as part of the new user.
With the bindings approach, we were able to bind these form fields with the new user. How to do it without?
Meet the Decision activity. This activity, provided by the "C# Scripting" feature, enables as to execute C# code.
By lack of a "Bind Form" activity, we shall use the Decision activity with the following script:
We configured the Decision activity with a single outcome: "Done".
The script updates the two TextFields with the values provided by the {FormSubmission.Field:*} token. Note that we are using the new token syntax (#{}) and that these tokens are enclosed with quotation marks; the Decision activity will first tokenize the script, then execute.
The Sign In User activity does not need to be configured; it will sign in the workflow's current content item if that content item is a user. The Create User activity not only creates a user, but also sets the workflow's content item context to that user.
The rest of the workflow should be self-explanatory.
Great! We have seen how we can create a custom registration screen, now let's see how we can create a custom login screen.
We will take a similar approach: we design a form and setup a workflow to handle its submission.
Let's create a new Form content item that looks like this:
Remember to also configure the Form element by setting its Name and optionally enabling Client validation:
Now that we have a form, all we need to do is setup a workflow to handle its submission event.
When the Login form is submitted, we will want to:
Such a workflow would look like this:
The most interesting activity here us the Sign In User activity, which is configured as follows:
Once again, we are providing the required values using the all-awesome{FormSubmission.Field:*} token.
Note: the "Create Persistent Cookie" value must evaluate to a value that is non-empty, and not equal to "false", "no" and "off". All other values will be interpreted as "true".
And that's it!
Now, a more advanced scenario would enable you to require a user to activate his account using some activation link.
To do that, you would update the Registration workflow to not automatically approve and sign in the user, but by just sending the Welcome email and an activation link.
This activation link can be generated using the {Workflow.TriggerUrl:*} token, which generates a nonce based on the current content item ID and provided signal name.
When the user clicks this activation link, they would be directed back to the website, triggering the Signal activity. This activity could either be the starting activity of a separate workflow, or it could resume the workflow that also created the user.
Let's see how that works.
First of all, let's update our Registration workflow so that it does not approve and login the user. The updated workflow looks like this:
This looks almost exactly the same (we removed the Sign In User activity), but let's have a look at the updated activities.
This activity was updated to not automatically approve the user:
This activity now looks as follows:
Notice that we're using the {Workflow.TriggerUrl:*} token to generate the URL for the activation link and that we are specifying "ActivateAccount" as the signal name.
This token will generate a URL and a nonce querystring parameter that contains the content item ID and signal name, encrypted.
Because this value is encrypted, no one will be able to tamper with it - only the recipient of the email will be able to trigger the "ActivateAccount" signal for his user account (which ID is part of the nonce).
All that's left is setup the workflow to listen for the signal event.
As mentioned earlier, when the user clicks on the activation link, they are directed to some URL on the website that will trigger a Signal event.
We shall create a new workflow that specifically listens for this event. When this event is triggered, we want to perform the following actions:
Such a workflow would look like this:
The Signal activity is configured as follows:
Note that this is the same value as was used when generating the activation link ({Workflow.TriggerUrl:ActivateAccount}).
And there we have it! We have seen how we can create a custom Registration and Login form using the Dynamic Forms and Workflows modules without the need for a a custom module.
The two modules combined allow for a great amount of configuration and flexibility.
This article didn't show every step of the way as that would add a significant amount of images, so instead we created a screencast that demonstrates the construction of the various forms and workflows, as well as demonstrating how they look and function on the front end.
Enjoy!
Hi in new version (750a4079c167 at 2/24/2015) how we can binding form fields? Thank You
Form field bindings still work the same, however there's a bug where you first need to save your content item after having selected the content type on the form element before you see the Bindings tab on the field elements. Will be corrected.
Cool, already a tutorial on the new features! Have heard a lot about the upcoming Dynamic Forms, but did not know yet how to use it. Keep up the great tutorials Sipke!
Greets a fellow Dutchman
Hi How we can use workflow without Dynamic form? I want to use my views that I've written them in the View folder. Thank You
Hi. In login and register forms, keyboard has delay. Thank you
@Sander - Thanks!
@As - You can use workflows as-is - just drag & drop an event activity such as Content Published and go from there. If you write your own event activities, you'll have to trigger those events using the workflow manager API, typically done from a controller (like Dynamic Forms is indirectly doing in the FormController by invoking _formService.SubmitForm()).
Regarding your keyboard delay, I'm not sure I understand what you're saying. Do you mean that as you type away, the characters don't instantly appear in the text fields? Which browser is this, and can you reproduce this issue if you create another form with a single text field? Any repro steps would be helpful.
Thanks for the feedback.
Hi sipke. I want two login and register forms in my website, one for employees and one for customers. The number of my customers might be 40,000 people. Are there sufficient security methods that You have described?
Yes, when i type in login and register forms (in text field), keyboard has delay. my browsers are IE 11 and Goole Chrome. Thank you
I don't understand your question about if there are sufficient security methods that I have described. Is your question about whether the dynamic forms method of authenticating a user is secure enough? If so, it is just as secure as the default Login form as provided by Orchard.Users.
Regarding the delayed keyboard feedback, do you have client side validation enabled? If so, what happens if you disable that?
Hi In "commit 05faccd7226e" i can't bind and submit! why?
Thank you
Where can I get 1.9
@As: Not sure what you mean, but could you try with the latest 1.9 release? If you are still having issues, please create an issue on GitHub. Thanks!
@Kevin: 1.9 was released yesterday. :) You can get the bits here.
Great tutorial(s) Sipke ! This greatly helps open our minds to the power of Orchard :)
Hi,
I'm trying to follow your example to create a form with the new Dynamic Forms but it looks like I missed something...If I try to edit the properties of the form there is no settings (gear button) above the Layout canvas. Where can I find the settings of the form or how do I enable it?
To be clear I mean the gear button at 0:53 of this YouTube movie https://www.youtube.com/watch?v=TUVj6eyGOUM
Kind regards, Patrick
Hi, Sipke. I want to answer how to do, that my users cant login without activate their account from sent email. Now they can log in without activate and i want to disable this option. I want they can log in only after full activate account. Thanks a lot
Great tutorial but I can't see any figures on the page:) Please fix it. Thanks in advance.
Came across this post after doing much reasearch. Was getting close to gving up on what I thought should be a very simple way to create an Orchard CMS user registration and sign-up. Thanks for posting. As MW above states, the inline images are not displayed, are they able to be fixed?
If not, the video is the next step.
Many thanks again for your post, its very much appreciated by us new Orchard developers.
First of all great tutorial. I have a question about multiple registration workflows. What I want to do is use the default registration but than create another one that does not automaticaly log in the registerd user. So have two different registration workflows and use both(some users with specific rights will be able to register new users but I dont want them to automatically log in with created user after that..).
Could you please fix image issue. Thanks :)
Could you please fix image issue. Thanks :)
All the images are returning a 404. Great tutorial though.
Thanks.
Could you please fix image issue. Thanks :)
Hey, this article is promising but all of the images are broken and it relies on the images to gain a complete understanding as it says things like "The Form Element properties should look like this:" and then a broken image.
Could you find some time to fix this up please?
No Initial Form On Create New
The tutorial says when you create a form you start out with a Form and Button element but the Layout was empty for me.
It looks like as of v1.9.1 you need to add in an extra step saying drag the form element onto the layout canvas.
Some constructive feedback; this is my first few clicks of the new Layout module. It would help me to have a bit more handholding in the first few steps of this tutorial. Tell me exactly what to click in what order so I don't miss anything and build up confidence in the new tool.
No Bindings Tab Appearing
There is a known issue with the bindings tab not appearing in v1.9.1.
It has already been fixed in the dev branch but until then you can do the following:
Confirm Password Binding?
The tutorial doesn't say if I need to set a binding for the confirm password field. I'm guessing no at the moment.
Workflows - Extra Module Features Not Enabled By Default
I ground to a distracted halt yesterday when I went off looking for the reason why I wasn't seeing activities like "Approve User" and "Create User". Today I realised that not all elements of the Workflows module is enabled by default.
You need to go to the Modules admin screen, search for workflows and you will see extra activities features like
Users Workflows Activities
andEmail Workflows Activities
which need to be enabled separately in order to follow this tutorial.Dear Sipke Schoorstra, Thank you for this issue I dont know how to contact to you so could I ask you a question that is not relate to this issue
I would like to setup a workflow like your video https://www.youtube.com/watch?v=J9-46bT2D6w but I couldnt see any scrip of each activity such as Decision, Send email activity....could you please send to me all of scrips. My email is: nqsoft@gmail.com Thank you in advance
Great tutorial and very useful. Is there any way to create a Dynamic Form that deletes a Content?
Thanks! Not at the moment, no. I also wonder how this would look like? for example, would you let the user select a content item to be removed, using a dropdown list? If so, you could implement a custom form element and setup a workflow that deletes the selected content item when the form is submitted.
what am I missing ... thanks for your time. My 1.9.2 does, in Admin -> new, NOT show 'Form'! All prereqs for 'Dynamic form' are enabled (so is of course Dynamic Form). When downloading from Github 1.9.3 'Form' is showing! However I don't (yet) want to use 9.3 . ? what am I possibly missing ? thanks for any hints, ed
Hi Ed,
Please check out http://orchard.codeplex.com/discussions/649349. In summary, it is an issue with the 1.9.2 compiled distribution. It will be fixed with the 1.9.3 release. If you're not ready to upgrade to 1.9.3, then your best bet is to download the 1.9.2 source package and build the solution yourself. But I highly recommend considering upgrading to 1.9.3, as it will contain quite a few bugfixes.
Hi Sipke,firstly, thank you for your advise. I.e. all is working fine with the 'dynamic form' using 1.9.3. However, I ran into another issue (knowing: this is definitely NOT part of this forum !). But, your experience might help! Issue: The 1.9.3 Github download is obviously only available in source form. Although the Orchard.web project runs, it is to big to run deployed (1.5GB). My sites are average 0.17GB! Question: how do I extract a Web.Matrix version form the Source version? I'm using VS2015. The orchard doc contains an article: 'Building and deploying Orchard from a source code drop'. But I'm not succeding. I there a procedure / documentation to (reasonably) do that? Thanks again for your time and advise, ed
You're welcome, glad to hear you got it working. The easiest way to create a deployable version like the WebMatrix one is to do it from Visual Studio:
After a few minutes you'll find a version of Orchard that is suitable to be deployed to your webserver at the specified location.
Hope this helps.
wow, thanks a million for your support your orchard contributions and yes ... your time, ed
Now where all prereqs are ok I tried to implement your sample (user registration) well, I'm either to dumb or this description is out of date. I started by: updating the user ContentType with First + last name , ok When creating New --> Form to create 'Registration' Form: I only see the Submit Button, where are 'client validation', 'create content' etc) Thanks to get me on the right track and thanks again for your patiance, ed
Cheers Ed.
The Submit button is a Button element inside the Form element. Click the Edit icon (
</>
) to launch the form editor. There you should see all of the available options for the form element.oops, that's almost to easy! thanks again, ed
... to embarasse myself again. Under Workflows you quote: "We use the Verify User Unicity activity to validate the specified user name and email like this:" Also your picture shows 'Verify user Unicity'; how do I get to that 'Edit Activity' screen. It does not show in the Workflows elements?! What stupid thing do I miss (misinterpret) here again? thanks for your patience, ed
I probably should have mentioned that you need to enable a certain feature, something like "User Workflow Activities".
I probably don't see the forest for the trees! What is needed, with 'Dynamic Forms', to send a message like done in Orchard to test the email 'settings' (Admin --> settings --> email ) based on DynamicForms? I do NOT need/want to create a CI; ONLY send a e-mail based on the form!
I defined a Dynamic Form with fields: Subject, mytext, email In workflows I used: 'Dynamic Form Submitted': to start the process with my form. connected 'Send Mail': how can I move the content of the form 'Subject, mytext, email' into it ('binding'!?)
OR, am I on the wrong path altogether ? Thanks for your time and helping me to see the forest again, ed PS: your sample of the 'registration' business works fine, thanks!
tried to move my fields into workflow mail by using format below: {Content.Fields.ContactForm.mytext} When sending the form I get the msg I have defined BUT never see an e-mail. As said the Admin --> settings test works fine!
Hi Ed,
When you handle the Form Submitted event using Workflowsm you can access the submitted values via
{FormSubmission.Field:MyFieldName}
. Since you're not creating a content item using the dynamic form, you won;t be able to use the{Content.Fields...}
tokens.Hope this helps.
Sipke, Thanks on some detours Sipke suggested to NOT use the 'timer' in between 'Dynamic Form Submitted' and 'Send email'. That works. And, based on Sipke's suggestion I will open a Github issue reprting this case.
All works just fine - but there are always open questions! When doing the 'Dynamic Form' using the widget (eg 'aside second'). The 'Show Notification' msg shows up in the 'Main Zone'. ? Is it possible to show that msg also in 'aside second'? That could irritate in case of a 'full' web page! I tried 'alternates', however I have an issue with 'shape tracing' (perhaps a 1.10 issue)! Thanks for your ideas, ed
Hi Ed, I love the questions, keep'm coming. Regarding the notification, I'm afraid there is no way to control where they appear. They are always added to the Messages zone. However, this may be a very cool feature request you might want to create on GitHub, where we extend the notification API to include a target zone name for example. The Dynamic Forms module could then leverage this API and enable the user to specify where the notification should be displayed.
Thanks again for the prompt answer. Well, for now I defer this request due to my own priorities, but more important, due to your guys priorities (1.10 etc). I certainly can live with the design right now; but might come back when I have real need!
Thnaks! this is probably the best video of all times for any type of software, ultra fast, a real teaser but also pretty deep in its coverage. Instead of starting to code this it really showed the strength of orchard workflows. If you're like me comming from sharepoint, you will lve this. Once again, Thanks a LOT!
I know it's probably been mentioned before, but the images don't work for the login form section :(
Sorry Emma, it's still on the list to fix those.
Excellent article Sipke. I second fixing the image issues as the article is incomplete without them.
Thanks Mike, the image issues have been fixed. Hope this helps.
I added a FirstName field in the User content type How do i update it in the Decision activity?
Like this:
ContentItem.User.FirstName.Text = "#{FormSubmission.Field:FirstName}";
Keep in mind that whenever you add a field directly to a content type, Orchard actually creates an implicit part with the same name as the content type, "User" in this case.
Good day,
I am having the same problem as Ed Kaufmann above (02/01/2016) but with both v1.10.0 and v1.10.1. I installed from .zip out the box, go to Modules, enable all Dynamic Form related modules, but there's no "New" form option, nor can I drag a form element onto the canvas when creating a new page.
Am I missing something? Is this a known issue in v10? Should I try 1.9.3 instead?
Thanks
update: same with 1.9.3. Next I'll try building the code from Github because this isn't working in ANY of the zipped versions.
This was a know issue with the 1.9.3 as well as the 1.10 zip package, and seemlingly with 1.10.1 as well. I'll try it myself to see what's going one. In the meantime, you should have no problem building the source code.
I just tried the 1.10.1 zip file, and was not able to reproduce the issue. In other words, it just works. This is hwat I did:
Perhaps you could describe your steps in detail, or even better: create a screencast?
Ps. Let's take this issue to GitHub: https://github.com/OrchardCMS/Orchard/issues/6260
Hi Sipke
I'm having difficulties getting my UserPart to display either the UserName, Password or Email fields in the Bindings tab. I have followed your instructions to the letter, but to no avail. When clicking the bindings tab, all I get are the two that I added i.e. FirstName and LastName.
I'm using v.1.10.1.0 and feeling quite frustrated that it isnt' working as described, please advise.
Thank you.
Hi Sipke
I'm having difficulties getting my Workflow to kick in and perform the validation. I have entered duplicate values for UserName and Email but the Registration form still submits and displays the contents of the Show Notification field of the form. Strangely enough, the user isn't actually saved and no user details are listed in the list of users. I have followed your instructions to the letter, but to no avail.
I'm using v.1.10.1.0 and feeling quite frustrated that it isnt' working as described, please advise.
Thank you.
Hi, thanks for this article! So, how can i edit profile data?
Hi ExTiger,
Sorry to hear about the issues. It sounds like this could be a bug. Which Orchard version are you using?
Hi Alessandro,
Dynamic Forms does not yet support editing submitted data or content, but there is an open issue for this on GitHub: https://github.com/OrchardCMS/Orchard/issues/6163
Please check it out and feel free to join the discussion.
my colleague was searching for CMS 1490S several days ago and saw a website that has a searchable forms database . If others have been needing CMS 1490S as well , here's a "http://pdf.ac/839uAD"
If the images were fixed, they are broken now.
Hi Sipke, I added several fields to the User content type, How do i access them from my MVC controller.
Thanks.
Good article with batter information and tips. how can i edit profile data?
Very useful information thanks for updating me, i was seking some ides rtealting to user regsteration from loging, You help me a lot in way that i can install and configure user regersteration from myself.
Hey, Sipke, Great tutorial man. I just wanna know that how can I do multiple register form on a website? If it is possible or not. If it is possible then what should I do? Thanx in advance
It's a great tutorial . but it brings me 404 Error. LOL :)
Astonishing article Sipke. I second settling the picture issues as the article is inadequate without them.
I'm experiencing issues getting my UserPart to show either the UserName, Password or Email fields in the Bindings tab. I have taken after your guidelines to the letter, yet without much of any result. While tapping the ties tab, all I get are the two that I included i.e. FirstName and LastName.
I'm utilizing v.1.10.1.0 and feeling very baffled that it isnt' functioning as portrayed, please prompt.
Much obliged to you. Feel free to visit my site: Android Apps Download
Thanks for your great post!
informative keep it up
Astonishing article Sipke. I second settling the picture issues as the article is inadequate without them.
Great tutorial(s) Sipke ! This greatly helps open our minds to the power of Orchard
Hi Great Article..! Thanks for this problem solving blog ... keep it up ..
I'm encountering issues getting my UserPart to indicate either the UserName, Password or Email fields in the Bindings tab. I have taken after your rules to the letter, yet without a lot of any outcome. While tapping the ties tab, all I get are the two that I included i.e. FirstName and LastName.
I'm using v.1.10.1.0 and feeling exceptionally confused that it isnt' working as depicted, please speedy. Feel Free To Visit My Site: صيانة تلفزيونات سونى
Hello, Thanks for providing such a valuable information about Login,sign-ups and Forms registeration.However, the detailed infographics is interesting to see and quite informative. Thanks
Sipke, Thanks on some detours Sipke suggested to NOT use the 'timer' in between 'Dynamic Form Submitted' and 'Send email'. That works. And, based on Sipke's suggestion I will open a Github issue reprting this case.
hello, greate tutorial. i am searching for same, i find it thanks for sharing, log in section isn't working, helpful your article.
Thank you for sharing useful information. It really helped me to customize the user registration.
Hai,Sipke This is vandana Thank you for posting this article.I can learn lot of things in your posting article.
spike thanks for this article! So, how can i edit profile data?
Thank you so much Mr. Sipke Schoorstra for sharing this great article with us. This is very helpful guidance for me to customize the user registration. i'll follow your tips. Thanks again.
Using the second workflow example, you use #{FormSubmission.Field:Email} in the 'Create User' workflow activity to populate the User Name and Email fields. When I try this I get the Email field populated, but I never get a value in the 'User Name' field of the created user (yet the user gets created). Why can't I populate the User Name field?
In the decision avtivity the script assigns First Name and Last Name. I have debugged and using: ContentItem.User.LastName.Value = "#{FormSubmission.Field:FirstName}"; ContentItem.User.LastName.Value = "#{FormSubmission.Field:LastName}"; OR ContentItem.User.LastName.Value = "{FormSubmission.Field:FirstName}"; ContentItem.User.LastName.Value = "{FormSubmission.Field:LastName}"; I don't get the form field values passed in the ActivityContext, I get empty strings. Using a hard coded value such as: * ContentItem.User.LastName.Value = "Smith"; Works fine. In all cases the outcome is 'Done' and the activity completes. The rest of the Worflow is now OK and UserName, Password etc. all get assigned from the FormSubmission.Field values. Do you think this is an issue with the Content Part or Form Bindings?
Hello Sipke Schoorstra!
Thanks for this article! But i have same problem with Mel: i can't populate the use name field
Thnaks! this is probably the best video of all times for any type of software, ultra fast, a real teaser but also pretty deep in its coverage. Instead of starting to code this it really showed the strength of orchard workflows. If you're like me comming from sharepoint, you will lve this. Once again, Thanks a LOT
Hey, Sipke, Great tutorial man. I just wanna know that how can I do multiple register form on a website? If it is possible or not. If it is possible then what should I do? Thanx in advance
This was very helpful to me for handeling the customization of user registration. I specially love the follow of instruction it was great to understand.
Hello, Thanks for providing such a valuable information about Login,sign-ups and Forms registeration.However, the detailed infographics is interesting to see and quite informative. Thanks Keep in mind that whenever you add a field directly to a content type, Orchard actually creates an implicit part with the same name as the content type, "User" in this case. I'm utilizing v.1.10.1.0 and feeling very baffled that it isnt' functioning as portrayed, please prompt.
Cool,Have heard a lot about the upcoming Dynamic Forms, but did not know yet how to use it. Keep up the great tutorials Sipke!
Great! It is the perfect tutorial for Customizing User Registration and login form. It's clearly understood all activities that you describe in Workflows. Appreciate your work!!
I appreciate and thank you for sharing this article Mr. Spike! :)
Ohh sorry sorry..my mistake..wrong spelling..its Mr Sipke
Thank you for posting this article.I can learn lot of things in your posting article.
Thank you so much for this well explained article. Looking forward to the next article.
Wow! Greatand Helpful article. Thanks