best implementation for user group display differences - wordpress

I am developing a site in Wordpress that offers functionality and content to companies.
Each company will have hundreds of users. All users of all companies get the same content.
However, the main header changes (it needs to include the companies own logo). They also will have their own sub-domain, at least fo the login page, preferably for all pages.
The content will change regularly, so I would prefer having only one copy of that.
So the requirements are:
Same content for all users at same relative url
Different header based on group of current user
Different base url per group
forwarding of user to the correct base url if they login under a wrong one
What is the best way to implement this?
Straight WP with a sub-theme that deals with the header. Mod-rewrite to deal with the urls
WP-MultiSite (how would the same content under different base urls work here?)
Several copies of the site and somehow sync the content (how would I do the sync?)
Use a different CMS
Which of these is the most future proof way to go, assuming I might have to deal with thousands of companies each with hundreds to thousands of users.
Also, If there is an easier way because I missed something in my research like an existing plugin, that would be great too.
Thanks for your help.

I would say that such a thing depends on a lot more than these requirements. For instance, how granular would you like to have your user management? And how much are the users allowed to do on the different groups? Is unique information allowed on the different domains, or is all the information shared?
Based on the information you are providing, I think youy would be best off using the multisite version of wordpress. You then could use a broadcast plugin to share the information on all sites, and create a template site from which to create new sites (using the NS cloner plugin for instance).
There are of course some problems with this approach, for instance search engine optimisation. You will get a lot of duplicate content that will hurt the google ranking of the individual sites.
It would also be possible to do this using a single site install, but then you'll run into problems with the multiple domain structure. It can be done, but the available caching plugins will not support it (at least not that I know off), whereas a multisite environment is supported out of the box. It is also more difficult to keep users from posting on different domains, as they are using a single install. A multisite environment also has as shared user base, but they can be added or removed from the different sites at will.
Using a multisite environment would also allow you greater flexibility template-wise.

Related

WP Multisite Not Linking Users Properly

Hi everyone… I’m trying to make a multi site (same site but different languages) and I need it to be available to all users, but when I make an account, it can only log in but has no access to any other content (ex. user dashboard)…
We checked the database and there is only one users field (I thought it might have made a different one).
How can I fix this?
P.S. I chose this option because the UI needs to be in the user defined language, and with translators plugins it translates the added content too, which needs to remain in the original language.

WordPress hosting posts on one domain and pages on a different domain

What I want to do is have a seamless website using two domains. One domain for the homepage and internal pages, contact etc. One domain strictly for posts. Such as
http://wp-pages.c0m (for home/pages)
http://wp-posts.c0m (Only for posts)
My permalink structure is like this for a post:
http://wp-posts.c0m/this-is-some-post/
And like this for a page:
http://wp-pages.c0m/this-is-some-page/
Basically identical when it comes to permalinks. But I'd like to host pages on http://wp-pages.c0m and posts on http://wp-posts.c0m
I'm looking for the most efficient seamless way to do this with two different servers, domain resolving to a different IP for my testing purposes. Ideally creating posts and pages from http://wp-pages.c0m and it pushing the posts to http://wp-posts.c0m while retaining the pages being created.
There isn't a single reason for doing this it's a multitude of reasons such as for seo testing purposes etc. I'm not here to go back and forth questioning why this would be needed or why someone would want to do this.
A very specific and even technical answer would be appreciated, I'm comfortable around basic server setup.
Any help would be really appreciated.
This isn't possible, without having two seperate Wordpress installations on said different subdomains.
UPDATE: Or, thinking about it you might be able to achieve something like this using Wordpress Multisite (https://codex.wordpress.org/Create_A_Network).
You then may be able to use subdomains to have what are essentially separate sites, but link them together. E.g.
blog.domain.com - for your blog posts
page.domain.com - for your pages
(I don't fully know how Multisite works, but I believe it allows you to control content for multiple sites within one WP Admin interface).
This could be a viable option.

How to manage users on many sites under one Drupal Installation?

I work for a government organization and we are trying to move to Drupal. My job right now is to figure out the best way to limit access to content based on a user and their roles.
The big issue I have not yet figured out is this:
If we want to have many different sites for many different departments each with their own users. Can we limit access to content and taxonomy terms (and really anything at all that one department should or should not see) all on the same site? In my research it seems like this is possible but it involves the creation of many, many different content types and roles and basically making one massive Drupal site.
Is this the best way to go? Is it better to have one site with many nodes or many sites? If many sites is the way to go will they all still have the same domain? (ie: www.government.com/parks , www.government.com/police, etc...)
If anyone has some insight or resources about this issue I would be very appreciative. I am willing to buy books or other resources (within reason) if they are worthwhile resources.
You can go with having different subdomains for different departments. Domain Access module would be helpful in that case. In this case, the code base would be same for all subdomains (as there would be only one drupal installation) but the users are considered different. This is because each domain is given a unique domain id and that differentiates.
Video on Domain Access Module
Go through the project page of the module and you can get more details. Hope this helps you.

Wordpress Multisite - Is this a good idea?

I'm being tasked at my company to work out a plan to handle 50 new clients that we're about to bring in. Each client is directly related and under an "umbrella" company that owns them all. All 50 sites will be pretty similar, each is for a different company so the themes may vary across them all.
We're planning to give them 10 themes to pick from for all 50 sites. So some of them will be very similar, some won't be at all.
Is Wordpress the best path? I'm very familiar with Wordpress. I've worked with Expression Engine before but am not as savvy as I am with Wordpress and I understand Expression Engine also has a multi site functionality.
So my question, is Wordpress Multi Site the best path for this? What would you do in my situation?
Also, if we wanted to create a user that has access to 10 of the 50 sites, is that possible? We'll need to narrow permissions.
Also, each site will need its own domain name. Is that possible?
Thanks guys!
Yes, Multisite can handle this easily.
To run Mapped Domains, using the MU Domain Mapping plugin cited by #Calle, you need to set up the network as sub-domains (opposed to a directories set up). And the mapped domains must be set as Parked Domains pointing to the directory of the WordPress Multisite installation.
Multisite user management can be a little tricky.
If some site of the network has really special requirements for its user's management, maybe you'll have a hard time.
All users of the network are given Subscriber status in all sites (this can be masked). You can easily assign one user as Administrator of 10 sites, give Super Admin access to others, use a network role management, etc.
You can have a couple of parent themes with the corporate identity and create child themes to accomodate specific needs.
Useful info:
Multisite 101, introduction to MS by one of its wizards, don't forget the tip jar if it's useful to you ;)
This ebook strives to pull it all together, explain you what skills you need to get started, and move you to the next step: running your own Network. Think of it as a basic tutorial in running your own Multisite.
Multisite Rationale, real case study for implementation of a MS Network, if you can find a document like this for Expression Engine, then you can make your choice pretty fast.
Wordpress Multisite can either be path based (www.domain.com/site1, www.domain.com/site2), or domain-based (www.site1.domain.com, www.site2.domain.com). I believe each of these sites have separate users; I'm not sure about your question about setting up a user that only has access to a certain number of the sites, but you can set up a "master user" that has access to all the sites on the network. If you use a domain based network for MS, you can then go into each of your domains you have bought for your 50 sites and forward them using DNS/.htaccess to the individual Wordpress Multisites.
I hope that makes sense :)

Architecture ideas to allow customers to build their own site, based off external site's data?

I'm not entirely sure how to properly ask this, so please bear with me.
I have an idea for a site I would like to build, which would basically be a site for members to create some data and have it housed in my database. I would like to offer a value-add to the site which would allow people to spin off their own website via my own "website builder" tool (probably some sort of CMS). Their website would be able to communicate with my master database to display their data.
Getting down to the crux of the topic, I'm looking for architectural advice/ideas/etc. regarding what services I could use to do this. I'm not looking a 100% automated solution, but something along these lines (which may not be completely correct, I admit):
Customer puts in an order to create their own site, using my tools.
I setup a separate domain for them, roll out the CMS foundation to the site, and the customer has full editing control of the CMS to design it however they would like.
The CMS would have some customizations so that it includes functionality to call APIs located on the master site, which would return the relevant data.
In the research I have done on SO, I've seen a lot of mentions of Umbraco which honestly looks like a good start. I'm just worried that when I go to upgrade a version, I have to deal with overwriting my custom API functionality. I'm guessing this is the nature of the beast, and requires me to accept/plan for it.
Does anyone have any thoughts about this? Some high-level starting points? Thanks!
I've been thinking about this same issue for my customers.
It is not hard to automatically roll out a stock cms such as Wordpress or Joomla. This sort of thing is done all the time by "1 click installers" that DreamHost and others have.
Including custom widgets or plugins for the CMS that can connect to your main app is also not hard.
For dns, you can use Amazon Route 53 or other DNS services that include a good api at the dns management level.
I suggest that you focus on using a CMS that is very popular (eg Wordpress or Joomla) rather than something less well known such as Umbraco. Using a more popular system will drastically reduce your training costs--remember that if you supply the CMS to your customers, then they'll also expect you to supply the support for it...

Resources