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 suggestions for setting up site structure

October 10, 2007 4:46pm

Subscribe [2]
  • #1 / Oct 10, 2007 4:46pm

    greygoose

    17 posts

    I’m looking for some suggestions in how to best setup EE in terms of weblogs, users, groups, and permissions. I’m moving an existing site (I’ll talk more about that in a minute) from a file-based system to EE, and need to rethink how to best accommodate my users who will have the ability to make changes to it. Instead of banging my head against the wall and wasting hours with trial and error, I was hoping the community here could share their knowledge, save me a few headaches, and give me some advice as to how best structure a new EE site based on our existing site.

    In a nutshell, we have a site which is fairly simple, updated only a few times per week, and not a blog (at least not in the traditional sense). It’s composed of a handful of departments and individual user pages. As super admin, I will control the home page which will have some static content (Welcome to our site…) as well as pull information from other areas of the site. I will also have a couple of other users who will need access to change some of the content on the home page. I have a group of users who will need access to specific departments in the site. For example, these users will need the ability to edit the content of administrative department pages but not the finance department pages. Finally I’ll have a few dozen users who will only need to edit their own ‘personal’ pages. I’d like to have an intuitive URL structure so that the URLs will be along the lines of http://www.example.com/administrative/ and www.example.com/finance/ for the departments, and http://www.example.com/people/abc/ where abc is the initials or name of the personal page for a user. Again, some users will have both personal pages and need the ability to work on the pages in the departmental areas. The entire site should have a consistent look, however we’re thinking of possibly giving the users the ability to select from different themes or styles although this is probably the lowest on the priority list.

    One point I’m getting stuck on is how users that only have personal pages will be able to structure their own areas. Aside from a “people” template group, would I want to create a new template every time any one of the users wanted to setup a special page, and wouldn’t that also make the template show up in all the other user’s URLs? For example, if a user wanted a special page to show conference photos at their personal URL http://www.example.com/people/abc/conference/ how would that be setup, and would it also show up for user xyz at http://www.example.com/people/xyz/conference/? Would the Pages tab be the answer? Is it better to setup EE with one generic user template so that when the URL of http://www.example.com/people/abc/ is passed EE knows to only pull data for user abc, and would some conditional coding be needed to lookup the user? Or, instead of one template group and a generic user template, is it better to create one template group per user? We don’t have a lot of user turnover so setting up individual user template groups wouldn’t be a management headache.

    My original thought for both users and departments was to maintain multiple weblogs, one for each department and user. I also was thinking of creating one user group for each user, that way I could have fine grained control over what each person does. Then after speaking with Lisa, she enlightened me in that this probably wouldn’t be the best way to use EE and that consolidating things would be better. I’m totally open to that; I’m just not sure how to best implement it. One thing I need help with is how to set up user groups to access weblogs so that the users only see their own areas, and in such a way that the data can be separated on the public side. For example, if user abc enters content for the administrative department into a single “department” weblog, and user xyz enters content for the finance department also into the “department” weblog, how is the data kept separate on the public side? Categories?

    What would be the best way to handle users that need access to managing departmental pages in addition to their own personal pages? Would a separate group need to be created for each department where a person that needed to manage it also needed to access their own personal pages? Using the example of an administrative and finance department, would I want to create two groups, one that had access to the administrative department weblog and the personal weblog, and another group that had access to the finance department and personal weblog?

    Lisa also mentioned that the users won’t need access to the templates area when they are editing their content. This makes sense since once I create the look of the site and define the templates the content will automatically get pulled in where needed. However, if a single weblog should be used for all the departments, how would I go about pulling out only the data for the finance department and display it at say, http://www.example.com/finance/. Again, if this is best solved by using categories, is there a way to prevent users from seeing categories that don’t pertain to them, or should one weblog per department be used (we only have about a dozen departments)?

    Finally, I would like to give the users the least amount of access as possible to prevent them from doing things they shouldn’t. Aside from having access to the control panel, which publish tabs should they have access to (Publish, Edit, Templates, Communicate, Modules, Admin). Would Publish and Edit be recommended? I would guess that the user groups would only need access to the “Can delete their own weblog entries” and whatever weblogs were select in the Weblog Assignment section. At this point we’re not planning on allowing or needing, comments on anything anyone publishes.

    Sorry for the long post.

  • #2 / Oct 11, 2007 1:09pm

    Robin Sowell

    13255 posts

    Ah- this is a daunting post- but let’s break out some bits and see what headway can be made.

    1.  I’m leaning toward departments being weblogs- sounds like that would work well with your access needs.  Other ways to handle that if it doesn’t make sense.

    2.  I definitely don’t like the idea of setting up a template for each member type thing- a giant pain to maintain.  So- say one weblog for ‘people’.  Folks assigned access can add/edit their own posts, can’t touch other folks posts.  Everybody (I assume) will have access to the ‘people’ weblog.  You can handle what shows in a couple of ways- if you want every entry in the ‘people’ weblog to show- you could use the weblog tag and a ‘http://expressionengine.com/docs/modules/weblog/parameters.html#par_username]username parameter[/url]- set up your links so that they have the username in a segment- pull that out and use it in the parameter.  Or- ‘people’ could be a category- one for each ‘person’ and use standard category navigation (I kinda like that if there aren’t a ton of people and they don’t change much).  And in truth- depending on the data, if you’ve got say a ‘bio’ page for everyone and some folks might have a photo gallery?  I might use two weblogs- people and photos- folks with photos upload each as an entry in ‘photos’ and use a relationship field to link it back to the ‘people’ weblog- selecting their bio.  Just depends on the different types of data that might be present how you’d handle that.

    3.  Lisa’s dead on re: not creating a member group for every member- it’s just a hassle.  Unfortunately, EE doesn’t let you assign folks to more than one ‘group’- but still- I’d probably have a group for each combination of department access- and everyone (all groups) would have access to the ‘people’ weblog.  This is simple if you don’t have a tone of departments and a ton of possible combinations.  Get’s to be a bit of a pain if you do have a ton of possible combos- but still better than a member group per member!

    So for me?  I’d probably go one weblog per department, one weblog for ‘people bios’, one template group per weblog- as that would give you the desired url structure.  (Because I’m lazy- if all of the department weblogs used the same look and same custom fields?  I’d probably go with a single template group to display them all- and pass the weblog shortname in the url.  But that gets you a slightly longer url.  Matter of preference- once it’s set up, 12 template groups isn’t really that bad.)

  • #3 / Oct 11, 2007 3:59pm

    greygoose

    17 posts

    Thanks for having a spare few hours to read my post. Making individual weblogs for the different departments seems like it should fit our needs. As for the average user and their personal pages, I had some questions. If I create a ‘people’ weblog, then I know that I can assign the user groups that have access to it so that folks can’t see or edit each others posts, and by using the username parameter of the weblog tag that I can display entries by a specific user. Great.  You talked about possibly using categories for people, with each person as their own category. Would that require that Joe User selects his category when publishing a new entry? If so then I think that if users had to pick “their” category when publishing, that the extra step would be prone to people forgetting or making mistakes. I think your first suggestion of using the URL segments to populate the username parameter might be easier for all unless I’m misunderstanding the category suggestion.

    Say I have a user who wants to create a page that none of my other users would be interested in using. Would I have to create a special template for this person or would he be able to create this one-off age himself by using the Pages tab when publishing an entry? My confusion here is trying to figure out how much I need to be involved when a user wants to just create a new page where an existing template doesn’t exist. The Pages option seems well suited for this, but my concern is that users would then be able to fabricate any URL they wanted. I’m guessing that if I wanted to make the Pages option prepend a path specific to the user then I would need to hack something so that Joe user can’t create http://www.example.com/joes_bad_habits/ but would end up with http://www.example.com/people/joe/joes_bad_habits/  thereby keeping the hierarchy intact.

    Finally, how would you recommend that file uploads (PDFs, video, images, etc.) be maintained since in my opinion having one big dumping ground for uploads will be prone to problems. Again I’m assuming some hacking is needed here, but is there anything that would allow users to upload files to their own upload folder so that folks don’t need to wade through an ever increasing list of files?

    Thanks!

  • #4 / Oct 15, 2007 11:41am

    greygoose

    17 posts

    Any advice?

  • #5 / Oct 15, 2007 12:11pm

    Robin Sowell

    13255 posts

    First paragraph- yes to all.  The category idea- you could likely write an extension that automatically sticks an entry in a category matching the name of the user submitting it or something.  But unless the category approach made you think ‘Aha!  This would be really handy in x,y,z ways, then it’s not worth it. 

    Say I have a user who wants to create a page that none of my other users would be interested in using. Would I have to create a special template for this person or would he be able to create this one-off age himself by using the Pages tab when publishing an entry?

    Depends- does the ‘page’ need an entirely different format?  Say you might have a mini-image gallery to show someone’s photos.  Some folks will have photos, others won’t.  The photo page has a totally different structure from the ‘text’ page.  Then I’d probably have a template for photos.  It wouldn’t be user or page specific- it would be for all photo entries.  I might even have a different ‘photo’ weblog for it.

    But if a person may post more than one entry- and all of the entries have the same fields and the same layout- no need to dink with an extra template, and really no need to dink with pages.  I wouldn’t- seems like something that might confuse folks.  Just have one weblog tag, limited by the username- it will show all the entries in by that user.  Show just the title- make them links- there’s your nav.  Everything posted by that user (or everything in a specific weblog by that user- however you want to set it up).  Then just feed the single entries into the main text area.  It will take some thought on your url structure- and maybe pulling segments out of the url and using them in parameters rather than just using the natural dynamic nature of the tags.  But easy to do.

    As to creating a folder for each person and having them upload just to it- I haven’t seen a plugin/module that does it, but that’s what it would take.  Or a lot of manually setup- and still likely some hacking, depending on whether you want to lock it down so a user only sees their own folder.

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

ExpressionEngine News!

#eecms, #events, #releases