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.

Need some structural advice

May 22, 2011 1:49pm

Subscribe [2]
  • #1 / May 22, 2011 1:49pm

    Dane C

    23 posts

    I need to build a few sites, and each have the same structure even though they focus on different things.  I point that out first, because I’ll be using MSM and whatever I do needs to be compatible for multiple sites.

    Let’s go with the artist one.  This will be something like a directory for artists on steroids.  On the front page there will be links to all of the artists (possibly categorized by type of artist).  When you click on an artist, you will be taken to a page (/artists/artist_name) that will have some information about that artist, the artist’s latest photos if they have any (with a link to their full gallery), latest videos if they have any (with a link to their full video gallery), latest news posts, and the artist’s upcoming events.

    The front page will simply aggregate all this content.  The latest photos, latest videos, upcoming events, etc, from all artists.


    I thought about using channels for news, videos, photos (using either Matrix or Channel Images), and events, then categorizing each… but besides the issue of how to link the categories together, category urls are a bit too long.  I want /artists/artist_name (or maybe artists/painters/artist_name).

    So then I thought maybe every artist gets his/her own template or template group.  Then I can pull content to that person’s page using the channel and category (by making a category for each artist in each channel).

    The difficulty there is that, ideally, I’d like on one of the projects to be able to give the artist access to edit his/her own news, photos, videos, etc, without being able to see/edit other artists’ content - and it seems that this kind of access can only be controlled using channels… so if I gave access to the “news” channel, they could edit anybody’s news.

    So, looking for advice!  I hope this was all clear… I worded it as clearly and concisely as I could.

    Moved to Community Help forum by Moderator

  • #2 / May 22, 2011 3:12pm

    Dane C

    23 posts

    I was just thinking about this, and please disregard the word “directory” when reading what I posted above.  I think that word confuses it.  Just think of each artist having their own “section” with their own news, photos, videos, etc.  Then aggregated content on the front.

  • #3 / May 22, 2011 6:37pm

    Rob Allen

    3114 posts

    Welcome to the Forums!

    All this is do-able, it just needs a bit of preplanning how you set everything up. The clue is in using the Safecracker addon that will allow members to add new content but also only edit their own content.

    Then the Channel Entries tag allows you to display only entries that have been authored by a particular member which is perfect for doing things like showing Artist XYS’s news items, or of course you could use the same tag for displaying content by everyone etc.

  • #4 / May 23, 2011 12:27am

    Dane C

    23 posts

    I appreciate the help!

    A couple of clarifications:

    I can’t sort the content by author, because in most cases I or another super-admin will be doing the updating across all the pages.  But if an artists were to come to me and ask for a login to edit his/her own content, I’d like the option - without them being able to edit other people’s stuff in the same channel.  It occurred to me that, worst case, I can use Safecracker to let them post, but it goes to pending and I have to approve it, so I manually make sure nobody posts in another person’s page.  Still, limiting them to just their company’s category (or however it’s divided) would be a perfect-world scenario.

    So given that, what I need is to figure out the best way to structure the channels and such.  The best way I can think (since doing it by author won’t work) is to make a template for every company, and then on each template specify the channel with perhaps a category specification (creating categories for every company inside of each channel), so it would be called like this: {exp:channel:entries channel="news" category="4"} and {exp:channel:entries channel="events" category="4"} and so on, with category 4 corresponding to that artist.

    But maybe making a template, a news category, a photo category, a video category, and an events category for every company isn’t the most efficient or effective way to do it.

  • #5 / May 23, 2011 12:37am

    Cheif

    626 posts

    Sounds liek your still trying to figure out some of the rudimentary stuff but I’ll chime in with this lil nugget.

    If your admins will have a hand in setting up the lions share of the bits then I’d suggest what we’re doing with a community site where a member can be responsible for one or many business and then edit said business(s) they need to be the author so we used Solspaces USER module.

    This plugin is well wicked for many reasons but in our case we used the “assign author” function. So we have 100 members, we create a new entry for a business and search all members for the corresponding member (or multiple) and add them to the entry .

    Then on the SAFECRACKER form we call the USER module to see if logged in user is assigned author and allow editing! Keeps all “businesses” in one channel with one template for listing, one for single view and another for editing.

    Simple 😊

  • #6 / May 23, 2011 4:12am

    Rob Allen

    3114 posts

    Also if you publish something on behalf of one of your members you can assign the correct “author” on the publish page in the Control panel - this will mean the person would still be able to access and edit that content because it “belongs” to them, even though you posted it.

  • #7 / May 23, 2011 7:50am

    Sue Crocker

    26054 posts

    Thanks for the assist, Rob and Cheif.

    Dane, you can use author_only=“yes” to your SafeCracker form and that will disallow editing others’ entries.

    You can also set the individual member groups to only allow you to edit your own entries, and not those of others.

    See an example in the attached image.

    Does that help?

  • #8 / May 23, 2011 2:08pm

    Dane C

    23 posts

    I’m very appreciative of the replies.  I think I have this about figured out.

    One thing I think that got lost in here is that my primary concern was with how to create my channels, templates, and such so that the site is divided into those individual sections - you go to an artist’s page, and you see that person’s (or group’s) latest content from each channel.  Being able to give them access to do some updating themselves is secondary, but would be nice as well.

    Having said that, tell me if this sounds like I’m understanding your suggestions:

    I create channels labeled news, photos, videos, and events.  Then I create user groups for every artist or group (some may have multiple artists together).  Then I create a template for every artist or group, and on that template, I call the channels using parameters to only pull from that user group (I have to look up if I can call it by user group rather than user, but if it has to be by user, then I believe I can do user1|user2)...

    Assuming I can pull from multiple users or the user group, this should work perfectly.

  • #9 / May 23, 2011 2:15pm

    Dane C

    23 posts

    edit: I looked it up, and it looks like I can either call content by defining multiple users separated by a pipe, or I can define a user group.  So this should work perfectly.

    I’m not sure having to change the author every time I post is ideal, but it works.

  • #10 / May 23, 2011 2:46pm

    Dane C

    23 posts

    You know, this works for that site, but it just occurred to me that one of the other projects, although I said it was the same in structure, is a bit different in terms of being able to change the author.  This one is more like an online magazine that covers a number of annual events put together by companies Each company will get its own page (or section) and have its events featured.  We’ll be going to these events, and we want to make sure the personalities and social aspects are a major feature of it.  So if I (or one of the team) make a post related to someone else’s event, it needs to be attributed to me or that member of the team… the idea is for us to become known at these events.

    So structurally the site would be the same: The front page is aggregate content, and when you click on one of the companies, it shows that company’s next upcoming events, latest news, articles, photos, videos, and so on.  But we’re going to have a team of people doing the posts.  We had talked about giving event organizers logins so they could edit stuff related to their own company, but on this project that’s even more secondary (not a big deal if we can’t do that).

    So how would you, if you were building that, go about building the channels and such?

    Again, you have:

    Main Page: Upcoming events, latest news, latest photos & videos from all events.  Somewhere is a list of companies and their events.  You click one, and you go to that company’s page/section, which has only the latest news, photos, etc related to them.

    I even thought about using statuses - create a status for every company, so let’s say Acme Inc is a status… and then on Acme’s page, I pull channels using channel=news status=“acme”.  But that might convolute things if I want to use statuses for their intended purpose and create ones with “pending,” “featured,” etc.

    I hope I’m making sense and not coming across as completely dense.  I know Cheif called this rudimentary, but I can build a web site or blog in EE - it’s the separation into sections for each company or artist that’s tricky, partly because there seem to be several ways I could go about it, each with pros and cons.

  • #11 / May 23, 2011 4:01pm

    Sue Crocker

    26054 posts

    Hi, Dane. There are so many ways you can do this.

    A company can be a category, where you can use the category in various channels.

    So you’d have Events, news, photos and videos channels, and you’d break them down using categories.

    Or you can use each event as it’s own single entry, and use something like Matrix to add content from other entries.

    I wouldn’t mess with statuses the way you specified.

    Does that help?

    At this point, this is more of a Howto or How do I kind of question, so moving to the Community Help forum for additional community support.

    Cheif and Rob - anyone else, feel free to add your thoughts to this.

  • #12 / May 23, 2011 4:43pm

    Dane C

    23 posts

    The category thing was my original idea.  If I do it that way, then every time I add a company or artist, I’d have to create a template for their page and a category within each channel, then on their template pull the channel with their category.  It’s a bit of setup for each one, but that’s not too bad - once they’re all added, I probably won’t be adding many very quickly… just keeping up with the ones that are already listed, mostly.

    Just to confirm, there’s absolutely no way to make it so users can post to a certain category within a channel, correct?

  • #13 / May 23, 2011 9:44pm

    Rob Allen

    3114 posts

    You can let users post content using Safecracker and have a category select in the entry form. You can allow the user to choose 1 or more categories, restrict which categories they can choose or even use a hidden field to force all entries into a certain category of your choosing, this is all done by the categories tag within Safecracker - see the Docs that come with teh Safecracker addon download.

    Depending on your setup you might not need to create separate templates for each category, if the page information is broadly similar for each category normally one templte will do the job.

  • #14 / May 23, 2011 11:14pm

    Dane C

    23 posts

    That sounds perfect.

    Only question is: How would I go about not having to create templates?  Let’s say I have two companies listed, acme and a1.  I’d have a channel for events, with those two categories: acme and a1.  Then I’d have a channel for news with the exact same two categories - acme and a1.  And the same with the photos channel and video channel - all identically named categories.  But I need a page to pull that content together, unless there’s some way to just pass a variable to the template.  Unless…

    Ok, I think I’ve got it.  I create another channel for the pages themselves, and then make a post for each company, using the post to pass the category variable to the single template.  Is that what you were thinking?

    I’m almost there!  😊

    On a side note, I think I’ll be building just about every site I make in EE from now on.  Other than this initial learning curve for more complex site layouts, I realize more every day just how much potential and flexibility there is.  I built sites by hand for over a decade before I finally started using CMS systems, and since then it’s been pretty much just ModX and Wordpress (depending on the project), both of which I’ve fairly mastered.  But this is a new world of functionality here.

  • #15 / May 24, 2011 5:30pm

    Dane C

    23 posts

    Ok, I get it now, and I got this.  This is actually a lot simpler than I was making it.  Thanks for the help!

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

ExpressionEngine News!

#eecms, #events, #releases