ExpressionEngine CMS
Open, Free, Amazing

Thread

This is an archived forum and the content is probably no longer relevant, but is provided here for posterity.

The active forums are here.

Tricky Channel Restrictions.

February 10, 2012 3:38pm

Subscribe [4]
  • #1 / Feb 10, 2012 3:38pm

    Charming Nerd

    196 posts

    I am stumped on how to build something and need some advice. I tried to post in the community section and got a little bit of help, but I am not quite sure the suggestion will work or how it will work.

    I will restate my objective. I need to rebuild this section of my clients web site.

    http://67.199.23.35/tripresources/triplogs.cfm

    The colored bars are categories.
    Underneath are trip logs which are essentially simple blogs e.g. title, post, pictures etc.
    Each one is password protected with 1 username and password.
    This username and pass gets distributed to parents so they can read the trip logs.
    They can only log in to the one they are given access to.
    Each one needs it’s own RSS feed.


    The challenge:

    I need to build it in such a way that the client does not have to edit templates. Which means, I can’t use {if member_group} or {if member} logic. That would involve adding them to the template. Unless I could somehow populate the if code dynamically.

    Each trip log would ideally have one editor that was assigned to it. The trip leaders write these from remote locations. When they log in, I don’t want them to be able to post to OTHER trip logs accidentally. A username and pass will be created for them and they would be assigned specific channel privileges.


    Things I can do:

    Teach them how to create a channel.
    Teach them how to create a member.


    Things I don’t want them to have to do:

    Again, they shouldn’t have to choose which trip log it will be published in. Which probably rules out categories or relationship choices.


    Things that already exist.

    There is already a Trips channel. It is used to publish the details of what a particular trip entails. You can see them in the Find A Trip menu.

    There are categories set up for these Trips. They are the same ones you see on the page above e.g. Service Adventures, Language Adventures etc.

    Vague Ideas:

    It is clear that a username and password will have to be created for the parents. Can I make use of custom member fields some how? Each one of these trips actually has an internal use code which would be unique for every trip. Seems like that could be useful for displaying content based on the user logged in.

    What if I created a custom member field called Trip Code.

    They create a new Member with username and password to distribute to parents. In the custom member field they enter something like ‘africa-service-1’

    Now what if when the created a new channel I made them use that SAME code as the channel short name. Then it would be a matter of making the channel entries tag dynamic based on which member is logged in.  So the channel entries tag would look like this? I don’t even know if you can do this.

    {exp:member:custom_profile_data}
    
    
     {exp:channel:entries channel="{custom_member_field_trip_code}" limit="1" status="open|archived" disable="comments|trackbacks"}
          
     
     Entry output
     
     
     {/exp:channel:entries}
    
    
    {/exp:member:custom_profile_data}

    If that actually would work, then the only remaining issue would be how to build the Trip Logs index page I posted above. It might just have to be a static page that they edit manually.

    Any advice, ideas or alternatives would be very appreciated. The idea is to make it as simple for the client as possible.

     

     

     

  • #2 / Feb 11, 2012 11:15pm

    Dan Decker

    7338 posts

    Hi Charming Nerd,

    Let’s take a step back and get the big picture. You’ve got a lot of really solid ideas, but there are some things you can do to simplify things for you and your clients.

    You wouldn’t need to create new channels for every trip, only new entries in a trip log channel. You would assign your trip editors to a member group and assign the trip channel to that group. Trip editors can be restricted to their own entries. Using SafeCracker, you can even keep them from having to login to the Control Panel.

    Using the Expiration date for channel entries would keep old trips from showing, so only relevant data is presented.

    There are several add-ons available that will let you hand out registration codes, have a look on Devot:ee. There are also some useful add-ons that will allow your client to assign certain groups or individual members to certain entries.

    I hope I was able to give you some ideas!

    Cheers!

  • #3 / Feb 12, 2012 2:31pm

    Charming Nerd

    196 posts

    You wouldn’t need to create new channels for every trip, only new entries in a trip log channel. You would assign your trip editors to a member group and assign the trip channel to that group. Trip editors can be restricted to their own entries

     

    If there is only one channel, then I would have to use categories for each trip log. That means the author would need to choose the category and they could accidentally post to the wrong one.

    I also need an RSS feed for each trip log. But I guess there are ways to get RSS feeds for categories.


    Expiration could be useful, but I would also have to change the password so that last years parents can’t see this years entries. In a perfect scenario they could still go back and read those entries in years to come.

    I have seen that entry access plugin and it would just be too clumsy and error prone. The list of potential members and groups would be too long.

    It needs to be as simple as possible. Editors are sometimes in remote location with limited internet access. They need to be able to log in and make a post and have it go to the right place without thinking.

     

     

     

  • #4 / Feb 14, 2012 1:17pm

    Kyle Cotter

    730 posts

    Hey Charming Nerd,

    As Dan suggested, I’d go the 1 channel route as opposed to multiple channels.

    And yes, you can create an RSS feed based off the categories.

    Since you seem to have a general view of what you’re trying to do, are there any specific questions you’d like clarified?

    Let me know how we can help.

    Thanks.

  • #5 / Feb 14, 2012 1:23pm

    Charming Nerd

    196 posts

    Well, given the criteria I have set forth, I think it is impossible to use only 1 channel. i am up for suggestions.

  • #6 / Feb 15, 2012 5:40pm

    Dan Decker

    7338 posts

    Hi Charming Nerd,

    I think it will all boil down to trial and error for some things. Implementation can be a series of start and stops as you work out the specifics along the way.

    My main concern with multiple channels is how quickly that number can get to an unmanageable point, and the channel creation process can be a point of error for your client. If they get a single entry wrong, it’s much easier to edit and refine.

    In order to get you a broader audience, I’m going to move this into the Community Help forum. There should be lots of folks with plenty of ideas about how to implement your scenario.

    Cheers!

  • #7 / Feb 15, 2012 6:38pm

    Charming Nerd

    196 posts

    I totally agree about channels becoming unmanageable. That is kind of the whole reason for my post. As of yet, I have been unable to find a solution that works.

  • #8 / Feb 15, 2012 11:05pm

    If it were me, I’d rather rely on someone categorizing an entry correctly, rather than setting up a channel in the proper fashion. One’s a checkbox, the other’s a bit of work.

    The EE 1.x extension Category Rights allowed one to restrict an individual member’s ability to choose categories: http://devot-ee.com/add-ons/category-rights

    It hasn’t been converted, and I don’t know of any EE 2.x equivalent.

  • #9 / Feb 15, 2012 11:07pm

    Charming Nerd

    196 posts

    I think I came up with a pretty elegant solution about an hr ago. I will post it at some point for those that are curious.

    It isn’t perfect, so I would still love to hear any ideas.

.(JavaScript must be enabled to view this email address)

ExpressionEngine News!

#eecms, #events, #releases