Greetings and congrats to an outstanding development effort with Joomla 1.5.
Having much experience with multi-site framework we hope some of our lessons learned over the past 5 years working with DNN can inspire and save the pitfalls of trials and tribulation.
The multisite concept is called many things and comes in many flavors and takes time for people to fully comprehend and absorb what appears simple on the surface but is highly complex under the hood. Establishing some core syntax for these concepts helped us with our efforts because there are a distinct variations that made for confusing communications. We use the following syntax:
Host: Core codebase and single DB installed on a server and managed autonomously by a superadmin. Host controls all portals, modules and overall security of the system. Multiple hosts can run on a server... every Joomla installation is a Host.
Portal: A web site instance accessible by URL and managed by a Portal Admin. A portal belongs to a host installation and is limited to the rules established by the superadmin. Parent Portals are accessible by domain or sub domain (ie. mydomain.com or subdomainof.mydomain.com). Child portals are accessible as a subdirectory of a parent domain (parentdomain.com/childportal).
SubPortal: An instance of a web portal accessible by URL and managed by a subportal admin. Subportals share the same Portal ID but may render different content and themes for specific URL's limited to the rules established by the portal admin. (Typically a tightly controlled affiliated site sharing some content and allowing for personalization)
Now we've lost much hair and consumed many bottles of scotch dealing with these three simple concepts which have exponential combinations as you mix and match modules, components, themes and features.
Ultimately each portal was assigned an id which required each table to be extended with a portal id field. This allowed for seperate sites, users, themes, content etc. (This is at the core of DNN)
All Subportals share a common Portal ID and render distinct content per instance by insertion of their subportal ID. (This is our own mod and not part of the DNN core framework)
ie. Simple portals table:
Portal ID: SubPortal ID URL/Alias
1 1 Mysite.com
1 2 Mysite.com/child
1 3 beta.Mysite.com
2 1 NewSite.com
3 1 Mysite.com/autonomous
The addition of a simple portals table provided the necessary hooks opening up many possibilities including the ability to affiliate across Hosts and portals. All configuration settings are now in a DB tied to these id's and dynamically generated.
Subportals are key and missing in most open source CMS systems and is what most organizations desire. ie. Cafepress, salesforce.com, [spam] etc.
Portal Affiliation provides for decentralized site to site sign on without the need for single sign-on. A Straight through tunnel established at the portal admin level. ie. Communityzero and a new level of social networking on a site to site basis. Instead of users making the connections the admin can force and steer the affinity.
Joomla Affiliation Module Concept modeled after communityzero.com
--------------------------------------------------------------------------------
Concept Introduction
Individual Joomla sites can be linked together to create a network of communities. Links between these "affiliated" portals can be one way or bi-directional and allow custom access rights and permissions to be assigned to the members arriving through these links.
This would allow seperate Joomla installations to utilize existing organizational structures across any Joomla system. You could, for example, setup one community for an executive branch of a company, and one for each department. An individual need only join their respective department to gain access to the entire "virtual network".
Once setup, members can travel to other affiliated communities with the ease of one mouse click. No need to sign up or join the other portals. Decentralized collaboration
Basic Affiliate Setup
If you would like your members to access another Joomla site, The Joomla admin uses a form to setup such a relationship. You may edit the relationship after it is created to modify access restrictions based on roles.
For each of the affiliate links to be setup, a screen with two columns will be presented. On the left-hand side will be membership roles from the portal that is originating the affiliation.
Select which groups should be permitted to use this affiliate link (more links from the same portal for different groups can be setup later). For example, you could select just administrator to only allow the "management" of the other community to enter the destination community.
The right-hand column will list the membership groups for the destination portal. Select which groups the affiliate members will join if they choose the community. To have a high-level of control on permissions for the affiliate members, it is recommended you create a custom group just for those members.
Press the "Establish Relationship" button to create the affiliate relationship(s).
Edit Settings
To edit an existing relationship, click on a portal name in the Affiliate Portals page.
You will be presented with two columns if you have a reciprocal relationship. You can only edit the permissions for the relationship where their members access your community.
However, either type of link can be canceled at any time.
Canceling an Affiliate Link
To cancel one direction of a reciprocal relationship, first select the portal name on the Affiliate community page. The second screen will present you with two columns. Select "End Link" at the bottom of the column that represents the link you would like canceled.
To end an entire affiliate portal relationship, select the trash can icon next the appropriate row on the Affiliate community page.
Canceling an affiliate relationship does not cancel current affiliate memberships. You may remove these members manually by selecting the trash icon next to their entry in the member list.
Affiliate Members
Once you establish an affiliate community relationship where you accept another portal's members, you will begin to see "Affiliate Members" added to your user list. These are members who have actually entered your community thanks to your affiliate relationships.
Note that canceling an affiliate relationship does not cancel these memberships. You may remove these members manually by selecting the trash icon next to their entry in the member list.
Affiliate Relationship Setup
If you would like your members to access another portal, you must establish an affiliate relationship with the other portal's administrator.
To initiate the process, click on the "New Affiliate" link from the Affiliate community page.
Complete the form to request a relationship with the other portal. The request will be sent by e-mail to the Portal's Administrator. You will need to enter the portal's Web address (i.e.
http://www.cooljoomla.com.)
The administrator of the community will receive an e-mail containing your message and instructions on how to approve or decline your request. If accepted, a reciprocal link may be requested from you. Either way, you will be notified by e-mail as to the outcome of his/her decision.
Processing a Request for Affiliation
You may create affiliate relationship between portals you host and administer allowing your users to register in any portal and instantly jump over to your affiliated portals.
If you received an e-mail with a request for an affiliate relationship, it means the administrator of the indicated portal would like to give his/her members access to your portal.
If you approve this request, members of the requesting portal will be granted "affiliate memberships" if they choose to visit your community. During the approval process, you will be able set restrictions for these members if you do not wish to provide full access (for example, "view only" or whatever default role you set).
You may in turn choose to request a reciprocal link. If accepted, this will allow a flow of members between both your portals.
A master portal directory might need to be centralized allowing for public/private listing and possibly allowing for banner advertising throughout all registered sites. This linking concept could also be used to link sites optimizing search engine popularity.
Affiliated portals would be a Module loaded on a Joomla host updating the central directory periodically. Granular control to the portal level allowing relationships to be modified or terminated at any time. It could be a powerful concept... Call it Joomla-Borg... You will be assimilated into the Joomla collective...
To see a really nice model of this portal affiliation concept in action take a visit to
http://www.communityzero.com.
Aristocrat wrote:
That's right Amy!

and the other question is who has the authority to manage the content. In some organizations all content need to be approved by the upper management, and be managed by webmaster(s). In that case web profiles don't have to relate to the user table.
Otherwise, each web profile can have a one-to-one relation to user table records. I believe in that case we will be falling into a community builder application category, which is btw the other new project I am working on

as set of extensions based on the new framework for building online social networking sites. It will be released under GPL too.
