2

I'm using https://objectivehtml.com/safecracker-registration/. When users register on my site, the channel parameter is set different based on certain business rules. Is there a way for me to later on determine which Channel the current member was associated to?

One possible solution is to have a Channel field to store this particular information. Then I can use the Safecracker tag with Safecracker registration's edit_member="yes", access the Channel data, store it in a Stash, then use it for whatever I need it later on. Seems clunky.

Suggestions?

2
  • Are you placing members into different channels? Because normally, all the members get stored in a single channel. – nonprofit_tech Jan 11 '13 at 12:27
  • Yes, different Channels. The reason is that they have vastly different data with little overlap. Worst case scenario, I suppose I could lump all the Channel fields into 1 big Channel. Also seems clunky? – ExpressionEngineNewbie Jan 11 '13 at 12:31
2

I can't say whether or not your approach can successfully be handled by SafeCracker Registration or any of the manage members in channel options. Mainly, because they are typically set-up to assume you will be placing members in a single channel.

That said, I can think of two options:

  1. Use a single members channel, but different registration forms

  2. Match each members channel to membership group in EE's Membership Manager

For the first option, yes, you channel could end up with a lot of fields in the backend, but you can only have and display the fields associated to a particular member group to them on the front end. It also means that if you had any shared fields, say like capturing gender, or birthday, you could search specifically in one place, as opposed to having: gold_member_birthday, silver_member_birthday, platinum_member_birthday.

With the second option, if it's doable, you can probably get close to what you want if you match channel names to membership groups. So in EE's Membership Manager, where member groups and permissions are controlled, you have the member groups: gold, silver, platinum.

Then in channels your channels are called either: gold, silver, platinum or member-gold, member-silver, member-platinum.

That way, there member_group and related channel is part of the basic membership management.

View of Membership Manager: Member Search/List

The member_group would be visible in the list, and would match the designated channel.

Either way, I'd test, with just a small field set and SafeCracker Registration first. There maybe other issues with managing multiple member channels, but I'm not certain if anyone's has ever tried before, so it may work perfectly fine.

2

I have actually used Safecracker Registration to store members in different channels. The hardest part of this would be moving a member from 1 channel to the other. Safecracker has a number of limitations with this, and if your channels had different field groups that would impose another level of complexity. I have however used the same field group to give different members different access to various channels. But once a member was in a channel, they stayed there. (Even with unique fields as long as a member didn't move channels it should work. Although I might try to use Member Groups if possible.)

So if you need to move members to another channel, it may require an additional add-on. This is a limitation with Safecracker, so all the member modules using SC would all have issues too.

So... to figure out what channel a member belong to, I would just try to use the {channel_id} variable inside a Channel Entries loop. There are a number of ways to do it. I am somewhat confused as to why you would need the edit_member parameter just to determine to which channel a member belongs. So I am not sure where you a running into the "overkill" stuff with Stash. Stash is just used to workout limitations imposed by EE. It shouldn't be adding any bloat to your page.

1
  • I don't need to move Members from one channel to another. Once they are assigned a Channel, I'm happy to keep them there. Assigning a member to a particular Channel is a breeze with your add-on. What I am trying to figure out is which Channel they were assigned to (say, when they are logged in). I can't use {channel_id} since I'm not looping over the Channel Entries (as I do not know what the Channel is). As for my Stash problems - I'm just still confused with parse order, Stash options, templating in EE, and trying to do thing Smarty-style (I'm very DRY in Smarty). – ExpressionEngineNewbie Jan 11 '13 at 16:04

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.