There is a new HowTo on this topic and I'm wondering how this compares with domain? There is an unanswered comment on just this topic so I thought I would open a support request:
http://drupal.org/node/201673

Thanks, Stephen

Comments

agentrickard’s picture

For now, see http://groups.drupal.org/node/7725 for a longer discussion.

The basic answer comes down to use-case and flexibility. Each approach has its advantages and limitations.

edward.peters comment here is especially useful: http://groups.drupal.org/node/7725#comment-25357

From the DA point of view, the advantages are:

-- single installation
-- single settings file
-- dynamic table prefixing (through a UI)
-- affiliate workflow models

agentrickard’s picture

Title: Domain vs the HowTo » Domain as a multisite solution

I do not, by the way, see this as a "vs" or competitive situation. The purpose of the Domain Access module was to solve a specific business need in a way different from other solutions. If other people find the approach useful, great.

scedwar’s picture

Thanks for the links - a useful discussion. Apologies for perhaps pressing a political button, I was looking at the comparative rather than the competitive advantages. The article at least illustrates that my uncertainty is justified given the numerous possibilities. I think I need to look a little at TAC to fully understand the issues.

I've just read through the readme and Domain is a remarkable project. In my use case, Domain Access is almost certainly the best. However I'm hesitant due to the complexity and the pre-release status. The difficulties with OG_user_roles is also a stumbling block. The structure of my system is basically:

Portal site
-Event1 site
--List of teams (organic groups using og_user_roles to control publishing)
-Event2 site
--List of teams (organic groups etc)
-Event3 site
and so on.

The functionality required across the sites is similar but not identical.
Permissions required follow the same descending hierarchy - full control down the hierarchy but not up. (i.e. system admin -> event admin -> team admin -> user) so Domain is perfect.

I would therefore not want an organic groups solution for the individual sites.

The existing multisite solution is proving to be a hassle to administer (duplicate content, module configuration nightmares etc) even with only 2 event sites and a small amount of content. The number of sites in increasing so Domain looks like the perfect solution, certainly in the longer term.

Thanks for all your work on this.

agentrickard’s picture

I would expect the first stable release by end of month.

agentrickard’s picture

Status: Active » Closed (fixed)
scedwar’s picture

Version: 5.x-1.0rc4 » 5.x-1.0
Component: Documentation » Miscellaneous
Status: Closed (fixed) » Active

Thanks for all your hard work on domain. I'm as excited by domain as I am daunted by how to implement this for a site I'm developing for a charity in my spare time. The existing setup is a multisite install - domain would be ideal to make things easier when adding additional sites, if I can get the design right. I'd be grateful for your comments on how I might implement this using Domain, in particular the permissions and og.

-- ROLES --

Role: Anonymous - comments only (moderate) - Can View all content except private restricted content.

Role: Authenticated - comments (unmoderated), can join groups, revise some content (moderated), may be granted full edit control on some nodes. Can read all content except where restricted.

Role: GroupOwners - role that simply has the permission to create a new group that they own. They then acquire the permissions of a Group admin as follows.

Role: GroupAdmins (group owners and users promoted automatically by group owners through OG User Roles) full control of all posts in any group(s) they are admin, and may publish new allowed content within only their group(s) only (controlled by og_user_roles). Permitted group content types are all cck custom types (5 different types).

Role: SiteModerators - full control.

-- NOTES --

Users who join groups have no additional permissions above the Authenticated role, however they can receive updates from the group about new content. They are basically group supporters who can participate by commenting only on content created by the group admin.

I've heavily customised the organic group module through the use of a custom .po

This basic configuration will be used on each subsite (but not on the main site) but with some changes:
- the content types permitted within a group will differ slightly on each subsite.

ACCESS CONTROL

- The Content Access module controls general node permissions (granting edit privileges, making nodes private etc)
- OG User Roles gives the additional permissions to group admins in the scope of their group only to create content only within their groups.

ISSUES

1) I can not see how to get around my use of og_user_roles and make the design Domain compatible? I've read through the readme and the related discussions but this only gets me as far as thinking I can't use the module, but I'm stuck for an alternative design.

2) I would like to have private site content that may be viewed (and sometimes edited) only by those users who are a group owner or group admin to a group on the same subsite (but not on all sites). In effect, I want to take a peek at the group user role and allow that to extend outside the group to allow viewing. This could be solved by a private group for this content but this adds another layer to those users (they have to become a group admin and join the private group) and it will also be confusing as the custom .po for the group will change the terminology for a standard group which makes it unsuitable for generic purposes.

3) I would also like the option to email all Group admins and group owners on a subsite.

I'd be very grateful for any advice on these. I'm aware that 2) and 3) aren't really domain issues, but it is part of the overall requirements that I need to work out when considering the overall design. Would TAC with a vocabulary containing a term for each group name be suitable for replacing og_user_roles?

Thanks in advance for any advice, Stephen

agentrickard’s picture

If I answer these, will you write up a case study for the handbooks?

In the meantime, this thread is interesting, as you may choose to go the OG route. http://groups.drupal.org/node/7725 and the relevant comment: http://groups.drupal.org/node/7725#comment-25357

scedwar’s picture

Case-study - yes, definitely.

I read that thread at the time, and since, but I'm still confused. My problem is analagous to
http://groups.drupal.org/node/4215
However, there is an additional layer of complexity in my use case, in that the 'bands' (or 'teams' in my use case) are grouped into events, with each event having it's own subsite (teams appear in only one event, they don't span across sites). Events can be repeated on the same site i.e. annual events, with new teams.

I agree that TAC is an inelegant way to segregate content across sites, but I can see the value in using it within a site (for example, restricting access to view static content to only teams of a certain year).

Anyway, back to your point, with your node access patch what are the exact issues with using og_user_roles as I described?

I'm reasonably comfortable with the single event/site solution and I'm plodding on with development as and when I can. However, I'm starting to feel as though I'm getting over my head on this and I've made a few approaches to see if I can bring in some paid help (the charity has a small budget for web development) to try and get a lot more functionality into the system, including the multidomain approach. It is only with an effective multisite (Domain style) implementation that the real power of the system will become clear, and that we can offer this as a system for use by other charities and events to 'plug in' to.

Thanks, Stephen

agentrickard’s picture

Well, I can't say exactly what will go wrong with og_user_roles, but I'm fairly certain the two modules are not compatible. That is because OGUR changes some fundamental behaviors by creating the 'access' hook for hook_nodeapi(). There has been much debate about this approach, but the summary is that OGUR would not allow Domain to assert its access grants -- unless you do not install the OGUR node_access patch.

The OGUR approach seems to be to write custom integration handlers for all other modules. (Content Access, ACL, TAC, OG). The Domain Access patch for node_access works in a fundamentally different manner. OGUR doesn't even implement hook_node_grants().

The way I read the OGUR code, the solution is to have OGUR write an implementation handler to integrate DA. I say that because -- the optional multiple_node_access patch aside -- DA is a traditional node access module (as defined by the core API) and OGUR is not.

Adding code to function og_user_roles_content_access_check() to handle DA might be the solution.

DA respects the node access rules written by other modules. OGUR makes special exceptions for them. That is a huge conceptual difference.

That aside, can you describe your requirements simply as requirements, without assuming which modules will be used?

http://groups.drupal.org/node/4215 is a good example of what I mean.

webweaver media’s picture

Component: Miscellaneous » Documentation
Assigned: Unassigned » webweaver media

Hi. I am new to Drupal and think it is better than sliced bread.

I am going to love Domain Access a lot. ... when I get two issues worked out. [I will put the other issue in another entry. Thanks.]

The first is the DNS subdomain settings... I have read through the main README.txt file and just need a clarification on this one item:

BEGIN QUOTE:
2.2 Server Configuration

For the module to work correctly, the DNS record of your server must accept
multiple DNS entries pointing at a single IP address that hosts your Drupal
installation.

The two basic methods for doing this are either to:

- Setup WildCard DNS, so that *.example.com resolves to your Drupal site.
- Setup VirtualHosts so that one.example.com, two.example.com, etc. all
resolve to your Drupal site.
END QUOTE

The text says, "your server must accept multiple DNS entries pointing at a single IP address"

Does this simply mean that your server must allow the creation of subdomains?

Or does it mean a Static IP?

And if it means the former, then should the subdomain forwarding be to the same URL as the main Drupal site?... at which point Domain Access would process the query based on the subdomain.

And if it means the latter, I will change my hosting account and go from there.

I hope this is clear.

Thank you so much. When this works, it will be awesome.

agentrickard’s picture

It's not really a question of subdomains -- though some shared hosting accounts are like that (mine is).

The documentation assumes that:

a) You have control over the configuration of your web server. (Typically by editing httpd.conf.)
b) You know how to edit and maintain the DNS for your web server.

Every domain (be it example.com, one.example.com, or myexample.com) must resolve to the same IP. Virtual Hosts is one way to do this and is what I use in my testing environment. The module does not require that each domain that you use share the same root domain.

That is, you can run the following sites from one installation of Domain Access.

-- example.com
-- myexample.com
-- one.example.com
-- some-blufish.com

All that matters is that the DNS records for all those domain names point to a single IP, which is the location of your Drupal installation.

So it means: one static IP with multiple DNS entries routed to that IP.

Beyond that, I am not a DNS expert and cannot give more specific advice. (To contradict my email answer, the configuration of DNS _is_ a good question for the general forum.

Also see:

http://drupal.org/node/213278
http://drupal.org/node/203507

Which are similar.

agentrickard’s picture

Assigned: webweaver media » Unassigned

Oh, and you only assign issues to yourself if you are taking responsibility for fixing a bug or performing a specific task. it is designed to let people know which issues are being worked on, not who created the question.

webweaver media’s picture

Thank you... I was going to ask what the protocol was for the "Assigned" field.

I so appreciate the information...

It's mostly working... and I am moving it forward.

Thank you.

webweaver media’s picture

Static IP.... that's the key to the next solution... thank you.

1kenthomas’s picture

I see multisite (where there may very good reason for non-shared dbs) as very different than domain access (which, to me, is a shared db solution a heck of a lot easier to swallow than working our your own prefixes/ shared&unshared tables).

In multisite, the presence of separate dbs means the sites are truly separate and you can easily migrate them anywhere you need. In any shared db solution, the sites stay together (and influence each others performance) unless you do something to pull them apart in the db.

FWIW YMMV.

agentrickard’s picture

Status: Active » Closed (fixed)

Yes. I think this issue is done.

socialnicheguru’s picture

subscribing

socialnicheguru’s picture

Hi you mentioned this

"The functionality required across the sites is similar but not identical.
Permissions required follow the same descending hierarchy - full control down the hierarchy but not up. (i.e. system admin -> event admin -> team admin -> user) so Domain is perfect."

Why can't organic groups handle the hierarchy dependency.
And can't you specify by OG role per group if a certain function or group of functions is available?

Chris

scedwar’s picture

The quote you've used from me essentially answers the question. The OG functionality handles the team metaphor, the Domain functionality handles the event metaphor. In fact, I am looking for OG subgroups to handle the concept of an instance of an Event, e.g. Domain= Football League 1, OG Parent=Football League 1 in 2008, OG subgroups = each team.

Either way, OG subgroups is not really ready for this functionality quite yet see: http://drupal.org/node/234474

Multisite approaches are complex and you have to evaluate your own particular requirements. Domain doesn't handle every situation (and isn't designed to), neither does OG, neither does table prefixing. Combining them all in the right way can, IMHO, solve pretty much anything you have. Domain is an incredibly powerful module that takes Drupal multisite config to whole different level.

This quote above (http://drupal.org/node/212915#comment-753087) illustrates where domain isn't so useful:
"In multisite, the presence of separate dbs means the sites are truly separate and you can easily migrate them anywhere you need"

As a quick and dirty rule, if you're ever looking to share data across multiple sites, Domain is probably the answer, if you're just looking to reuse code and functionality across unrelated (but functionally similar sites) you want old style multisite with prefixed databases.

When we've finished our particular implementation I'll try and do a write up to illustrate.

scedwar’s picture

We've finally launched our site to the public. There is an awful lot more to do, but you can see Domain and OG working together:

http://www.charityrallies.org/

Pages like:
http://www.charityrallies.org/en/teams/all
http://www.charityrallies.org/en/rallies
take nodes from all domains.

These then link out to the subsites where og manages each team, and taxonomy (sort of) handles each event.
http://mongolia.charityrallies.org/en/teams

Og groups together pages from a team and also gives them a team area to enter details.

We've customised the user profiles with Advanced Profile and we've started playing with Panels (but much still to do).

A big thank you to Ken for putting together such an amazing module and providing such good support.

I'll try and do a longer write up when we've got more of the functionality in place.

nonsie’s picture

Thanks for letting us know about this site! However I have a few questions:
1. what other modules did you use and were there any conflicts with DA?
2. I noticed your left side nav is different on subdomains. How did you achieve this? Did you use table prefixing, domain menu, taxonomy or some kind of combination?

scedwar’s picture

1. Modules: far too many. the site is heavily loaded with contrib modules. All the usual culprits...
2.Put conditional code in the block visibility like:

<?php
global $_domain;
if ($_domain['domain_id'] == 5)
    return true;  // Display on domain id #5 (Pyramid only)
?>
scedwar’s picture

Sorry, conflicts with DA - yes, there are some but we've either solved them or are working around them. Gmap is an issue - see the issue queue.