I usually use CFSWITCH and assign my own app names, which allows me to use 
the built-in list nature of CFCASE values:


<cfswitch expresssion="#cgi.server_name#">
<cfcase value="domain.com,www.domain.com">
        <cfset appName = "domain" />
</cfcase>
<cfcase value="mydomain.com,www.mydomain.com">
        <cfset appName = "mydomain" />
</cfcase>
<cfcase value="blog.domain.com">
        <cfset appName = "domainBlog" />
</cfcase>
</cfswitch>


etc etc ... that way my onApplicationStart is basically mapping 1-to-1 with 
my application config table, but I can throw as many domain variations at 
it as I want to.



----------------------------------------

From: "Mark A. Kruger" <mkru...@cfwebtools.com>
Sent: Thursday, February 17, 2011 12:59 PM
To: "cf-talk" <cf-talk@houseoffusion.com>
Subject: RE: Feedback on this approach to "many sites, one codebase" 
(MSOC)

Ooh... good point Russ. I usually strip off the "www" and replace the
periods with underscores as well. That way I have only 1 app name per
domain.  So www.coldfusionmuse.com would be coldfusionmuse_com (don't like
those periods in variable names).

-Mark

-----Original Message-----
From: Russ Michaels [mailto:r...@michaels.me.uk] 
Sent: Thursday, February 17, 2011 11:45 AM
To: cf-talk
Subject: Re: Feedback on this approach to "many sites, one codebase" 
(MSOC)

For a primae example of how this is best done you can look at many of the
major frameworks which support this type of setup.
MACH-II for example allows you to have a single core install of the
framework which is used by all your apps via a simple mapping.

If you plan to use the domain name to create the application name and 
track
sessions and users and what not, then you also need to allow for the fact
that the site may be accessed via multiple domains (domain.com,
www.domain.com and aliases) or build in automatic redirection so that this
doesn't happen.

Russ
On Thu, Feb 17, 2011 at 5:28 PM, Rick Faircloth
<r...@whitestonemedia.com>wrote:

>
> Hi, all...
>
> I've been tinkering around the edges with
> "many sites, one codebase" (MSOC) for awhile and
> was interested in getting some feedback on an
> approach I'm taking.
>
> The most basic part is that I use the domain name
> to determine variable values for a site.
>
> I'll start with that.
>
> I use application.cfc to set up the following:
>
> <cfset this.name = "#cgi.server_name#">
>
> Any issues with that?
>
> Then I have use the onApplicationStart cffunction to
> clear session and application variables.
>
> Then I use the cgi.server_name, determined from the
> URL visited by a user, of course, and run this query to get needed
> values for site variables from a database:
>
> <cfquery name = "qGetApplicationVariables" 
datasource="globalSiteManager">
>
>        select  *
>        from            siteApplicationSettings
>        where           (select strcmp(siteName, '#cgi.server_name#')) = 
-1
>
> </cfquery>
>
> Then, I set site variables as follows:
>
> <cfset application.dsn  =
> "#qGetApplicationVariables.applicationDSN#'>
> etc...
>
> At this point, I'm entering all a site's variables into a database
> manually,
> although if I continue with this approach, I'll develop an automated
> solution.
>
> The site menu is determined also by values in a database for the site
> by using code such as the following:
>
> <cfset application.calendar     =
> '#qGetApplicationVariables.applicationCalendar#'>
>
> If the qGetApplicationVariables.applicationCalendar value is 'yes', then
> the
> menu item is shown, if it's 'no', then the menu choice is not shown.
>
> The last piece of this approach is setting path variables, etc, for 
image
> and
> document uploads, image paths, etc, with this type of code:
>
> <cfset application.userImagesPathAbsolute =
> '#qGetApplicationVariables.applicationUserImagesPathAbsolute#'>
> etc.
>
> This seems to be working fine so far... speed is good, etc.,
> but I'd like to know, from those of you who have been down this road
> before,
> if I'm heading for a show-stopping issue, or if this is a workable
> solution.
>
> And, I'm really not interested in frameworks...not at this point.
>
> Thanks for taking the time to read this and offer any feedback.
> I'm just ready to develop some applications that I can sell *more than
> once*!!
> "Work smarter, not harder" approach. Watching people getting rich 
selling
> apps for $.99, such as "Angry Birds", is just killing me.  I thought,
> surely
> there has got to be a better way to be a freelancer than "one-off"
> projects!
>
> Rick
>
>
>
> 



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~|
Order the Adobe Coldfusion Anthology now!
http://www.amazon.com/Adobe-Coldfusion-Anthology/dp/1430272155/?tag=houseoffusion
Archive: 
http://www.houseoffusion.com/groups/cf-talk/message.cfm/messageid:342395
Subscription: http://www.houseoffusion.com/groups/cf-talk/subscribe.cfm
Unsubscribe: http://www.houseoffusion.com/groups/cf-talk/unsubscribe.cfm

Reply via email to