Jump to content

Employee Directory and Intranet: Suggestions?


Lance O.
 Share

Recommended Posts

I have a client that wants the following functionality for an intranet site:

  1. The intranet must be password protected. Each employee must have their own individual username and password. There may be a total of 100 employees who would have access to the site.
  2. A small group of employees need to have full admin rights to add, modify, and delete pages, posts, and images. They must also be able to add and delete non-admin employees.
  3. Admins and non-admin employees must be able to modify their personal profile on the site. Profile information may contain name, email, password, bio, photo(s), and links to external social media sites. The login and profile pages should *not* look like the PW admin.
  4. Employee profile pages should be available to other employees. In other words, the site should support an employee directory.
  5. Employees must be able to comment on existing pages and posts on the site. (Not sure how to implement this requirement.)
  6. Images that are uploaded should be viewable in a slideshow gallery format.

I've developed one site in PW so far, but nothing like the above requirements. I'm 90% confident that PW can handle these requirements, but thought I'd check with the PW community first before making a commitment to using PW.

I could build the site in WordPress, but it may be more work than to build it in PW. If someone else has built a similar site, I am interested in hearing about your experience.

Link to comment
Share on other sites

It's definitely doable with ProsessWire. I guess custom profile edit pages is what will require most of the efforts. Will admin users use PW's backend to edit pages and manage users? If so then it will be a breeze to build, otherwise it will require additional development. Comment module is already present in PW and I remember Ryan mentioned its rework is planned in the future.

  • Like 1
Link to comment
Share on other sites

Yep, definitely nice one to build with PW. As slkwrm said the most work will be on user profiles. It would be breeze to just extend the user template and allow "employee" -users to edit their profiles. There is ready functionality for that also - but since you especially don't want to use PW admin looks for that you are left to two options:

a) Use admin and profile editing there and create new admin theme to fit your design

b) Create "front-end" editing capabilities for user profiles.

I guess b is much more work, since admin themes are pretty easy and fast to do.

Link to comment
Share on other sites

Can a different template be used just for the profile editing? And then only give those employees guest and profile-edit permissions? Would this prevent me from having to create a new admin theme?

Link to comment
Share on other sites

Can a different template be used just for the profile editing?

You can edit the profile page directly and change the template that it uses. But it would need to be one that's doing the same thing as PW's admin template.

A much simpler thing you could do would be to edit the existing /site/templates/admin.php and set it to add some stylesheet or JS to change the look. For instance:

/site/templates/admin.php

<?php
if($page->name == 'profile') $config->styles->add($config->urls->templates . 'styles/profile.css'); 
require($config->paths->adminTemplates . 'controller.php');
And then only give those employees guest and profile-edit permissions?

You'd want to have a role called 'employee' that has page-view and profile-edit permissions, and nothing more. They will be able to edit their profile.

Link to comment
Share on other sites

I'd personally go for building the profile editing page yourself - your list of fields doesn't sound very hard to implement and you'd have more control over how it looks.

Link to comment
Share on other sites

Hi Lance,

I believe Tom Reno (renobird here in the forum) has done something pretty similar to your OP already. Try messaging "renobird" directly here on the forum if he hasn't posted in a little while and see what he comes up with.

Link to comment
Share on other sites

Hi Lance,

Steve is correct. One of the first things I built in order to learn PW, was a front-end profile editor.

What I have is fairly specific to a University environment, but I think I can strip it back to a more simplistic form and get a walk-through posted.

I'll report back soon.

  • Like 3
Link to comment
Share on other sites

Thank you all for the helpful information. I've started to create a theme for the admin just to see how much control I have over the design.

@ryan, thanks for the information regarding the admin template.

@renobird, I'm looking forward to reading your walk-through. Thank you!

Link to comment
Share on other sites

  • 2 years later...

Sorry, this project never got off the ground, but I do have a personal project planned where I would use similar functionality. I'll try to report my findings here when I find time to work on that project.

  • Like 1
Link to comment
Share on other sites

I guess it would be nice to open the topic up and find out what's possible... what I'd probably plan to do is setup a separate CMS of PW on a subdomain (intranet., for example) then try to build some sort of 'front-end profile editor'.

Link to comment
Share on other sites

Hi Richard,

Back when I initially commented on this I had a frontend system for users to edit their profiles. I went that route initially because I didn't want the majority of users to have access to the ProcessWire admin. I quickly abandoned that approach. I found it was easier to create a base level of access to the PW admin that is just for profile editing. Everything else (including the page tree) is hidden. From there I add back the page tree and other resources based on roles. We have 7-8 internal business applications that run on one install. It works really well actually. I can leverage all the power and simplicity of the admin to create things pretty quickly. It's definitely a lot more efficient that creating frontend versions of them.

If you really need something that is isolated from your regular PW install, then you could always do what you mentioned above. Setup a separate install and use it like an intranet. You could probably customize the admin theme to make it look/feel a lot like the front end of your site. You could pull in the profiles from one install to the other via services pages module, or some custom JSON. I think there is a relatively new pages to JSON module that looked pretty robust from what I remember.

The other option is the full scale frontend approach. It's not that complicated really. User pages are the same as any other page. I think there are some examples floating around the forums already. I'll dig around here and see if I can find the old frontend system I built. 

  • Like 3
Link to comment
Share on other sites

Thank you so much for the reply, @renobird. Really appreciated.

Normally I would opt for the customised admin theme and a separate PW instance for the intranet. This makes sense. But I think there's definite room and desire to have something that has some full scale front-end approach. Simple stuff like posts and profile editing, but enough to make it feel like PW is powering it all without having to access the admin. I did something similar with WP before, and it was a little complicated, but it worked out.

It would be great to know if any examples exist on the forums re the full scale front end approach... not really sure where I would start but thanks for all the help. It's nice to know there's a fallback (or better option depending!) if the front end approach can't really be done successfully enough.

Thanks again!

Link to comment
Share on other sites

  • 4 weeks later...

@renobird

Your approach sounds simpler than creating a front end system. I'm curious to know:

  1. Did you create a front end registration form that adds the user to PW, or did you add users manually?
  2. When a user has only page-view and profile-edit permissions, the landing page they are taken to once they log in is a blank page with a "Continue" link to the site's Home page. Did you somehow add another page to the admin?
  3. Did you create a new PW Admin theme?

I'd love to have more insight on your approach.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...