Multisite or Domain Access with CiviCRM?

Events happening in the community are now at Drupal community events on www.drupal.org.
BrightBold's picture

I have done a bunch of research but could use some advice on whether a multisite installation or the Domain Access module is more appropriate for my needs.

I am setting up two sites for a public school and the grassroots nonprofit that raises money to support the school. They will need the following capabilities: (My impression of whether this tips the scale one way or the other is in parentheses - feel free to correct me)

  • two domains
  • if needed could be one parent site (the school) with two children - the nonprofit (separate domain) and the PTA (subdomain of the school) - seems like that might make things easier with CiviCRM's multisite capabilities?
  • separate theme for each domain (if three sites, as above, the school and the PTA would share a theme)
  • users would only have to log in once to access both sites
  • users could have different roles/permissions on each site
  • would be nice to share some content across sites (needs Domain Access?)
  • sites need separate menu structure (harder with Domain Access? or was that pre-6.x.2.0 info?) but some navigation would lead back and forth between sites
  • CiviCRM individuals & organizations would be shared across both sites. However:
    • The nonprofit needs to see gifts that have been made directly to the school (through the PTA), but not count them towards their fundraising totals.
    • So these PTA gifts could be a different gift type, similar to a soft credit, or a separate fund that we could (ideally) exclude from reports by default
    • Critically, we need to be able to set permissions for the gifts so that authorized members of the nonprofit could see all gifts to both organizations, but the PTA fundraisers can only see the gifts made directly to the school.
  • single administrator for both sites
  • in addition, the school is bilingual so we will have i18n issues - I have not yet done any research into whether that complicates multisite/domain access setups
  • will we get in trouble with conflicting access issues if we also use OG? (Or is this not a problem if we use the Domain Access Advanced module?)

So, can anyone provide any insight into whether multisite or Domain Access is more appropriate for my needs, or point me to any documentation/discussions/etc. I may have missed that will help me make this decision? Or point out any other potential pitfalls you see that I should investigate. Any input you can provide would be greatly appreciated.

Thanks,
Kelley

Comments

Some thoughts

btopro's picture

Here's some thoughts on your requirements. Can't speak to all of them bc I'm def. in the "multi-site solves most problems" camp but here's what I've used to mitigate some of these using a multi-site setup

*Two domains - I point multiple domains at a multisite all the time, it's what it was made for

*separate theme - simple in a multisite

*users would only have to log in once to access both sites - look into the sso module http://drupal.org/project/sso

*users could have different roles/permissions on each site - sso or shared table base makes a lot of this stuff very easy with minor tweaks to the $db_prefix variable in the settings.php file of each site

*Content Sharing I've pulled off either with Feed API like modules, custom code, or (in the future) with the Services modules

*separate menu structure - separate sites, setup ur menus how ever you like then just make menu items that point directly to the "external" sites. I'll be doing this for a future project

*Single admin - share the users table on your main site with the other one. Then all your user accounts / ids are the same so logging into one as user 1 will be the same credentials as the other. Might even be able to get this functionality by modifying the $domain variable in the settings.php file and sharing the sessions table so you don't need the sso module (that's a guess tho)

*Shouldn't complicate things any, might be some issues with passing the user between sites seamlessly in their language but beyond my expertise

What you've just mentioned with organic groups is part of why I stay away from large, architecture shifting projects like domain access (and OG for that matter but that's just me). Here's why: If there are issues in core multisite functionality, that's a simple update to drupal core. If there's an issue with (essentially) faking the user into thinking there's a multisite via organic groups or domain access, you better hope an updated version doesn't add features or change functionality that you previously relied on. It's for this reason that even though those are great projects, I steer away from them at all costs as I had that very issue happen to me before. Also, if you start using one of them and decide not to later, decoupling is a hell of a lot harder because of the implications that both have on your content and how it's structured then just having them be in separate sites (that could be pulled together via feed api after the fact if you needed to do so).

Just rambling now but those are my justifications for (personally) always using multisites. CiviCRM stuff your asking for i'm not familiar with though so I could be speaking out of my element when it comes to needing to use those other projects in conjunction with Civi.

I would recommend Domain

zfactor's picture

I would recommend Domain Access for all of this. The module will allow you to run each site on a different URL, with different themes and different menu structure. I personally think it also becomes easier to manage down the line with module and core updates.

Domain Access limitations

earthday47's picture

btopro your comments were very useful. I think Domain Access is a fantastic module, but it has a few limitations that make managing a big site (with lots of content) a little tricky. And once I start implementing lots of hacks and tweaks to get a module working the way I want, I get really nervous.

I would say if there's a lot of shared content, or not that much content, and you're not too worried about URLs, then absolutely try out Domain Access. It is definitely easier to manage. BUT if your sites are quite different and there's only a limited amount of shared content, then use Multisite and share tables.

/for-what-its-worth

Separate contact lists with Domain Access

jday's picture

has anyone been able to segregate contacts by domain group using the domain module with a multisite set up of civicrm?

CiviCRM

Group organizers

Group notifications

This group offers an RSS feed. Or subscribe to these personalized, sitewide feeds: