Some of my recent posts and ramblings.
I’m not sure if this functionality is already in mura, but I couldn’t find anything after browsing the forums. All I found was ability to add to mailing list from a custom form with 2 hidden fields, mlid = {mailing list ID} and doaction = ‘subscribe’, but on the signup form, doaction already has a value ‘createprofile’.
There is an way to add a user to a group at sign up but nothing about mailing list, which is weird since it is a common feature on most sign up pages, a checkbox at the end saying ‘Sign up for our newsletter’.
So, anyway it doesn’t really matter, it was pretty easy to add that functionality anyway. It requires 2 edits,
{theme_directory}/display_objects/dsp_edit_profile.cfm
You can copy this file from {siteroot}/default/includes/ if it’s not there already.
add this in the form where you want the checkbox to show up.
<cfif not session.mura.isLoggedIn>
<fieldset>
<ul>
<li>
<div style="margin-top:20px;">
<input type="checkbox" id="signupnewsletter" name="mlid" value="334FA4F6-AC74-$#B2-9BB871B2438EED44"/>
<label for="signupnewsletter" style="float:none;">Sign up for our newsletter</label>
</div>
</li>
</ul>
</fieldset>
</cfif>
includes/eventHandler.cfc
This code checks if the mlid input was checked, if it is, it creates a struct with data required for adding to the mailing list and submits it to the createmember method in the mailingListManager.
<cffunction name="onBeforeUserCreate" output="true">
<cfargument name="$">
<cfset uu.userEmail = $.event("userBean").getemail()>
<cfset uu.username = $.event("userBean").getusername()>
<cfif $.event().valueExists("mlid")>
<cfset maillistdata = structNew()>
<cfset maillistdata.email = uu.userEmail>
<cfset maillistdata.siteid = $.event('siteid')>
<cfset maillistdata.mlid = $.event().getValue("mlid")>
<cftry>
<cfset $.getBean("mailingListManager").createMember(maillistdata)>
<cfcatch type="any"></cfcatch>
</cftry>
</cfif>
</cffunction>
If there is something already built in, I would love to know. Please let me know in the comments. I hope you find it useful.