Thanks, Jason! :o)

-----Original Message-----
From: Jason Fisher [mailto:ja...@wanax.com] 
Sent: Thursday, February 17, 2011 12:55 PM
To: cf-talk
Subject: re: Feedback on this approach to "many sites, one codebase" (MSOC)


Yeah, that works just fine, Rick.  Have used variations of that approach 
for quite a few years, both with and without a 'framework' in place, and in 
any case that code sits quite well in the Application.cfc as you've 
outlined.

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

From: "Rick Faircloth" <r...@whitestonemedia.com>
Sent: Thursday, February 17, 2011 12:29 PM
To: "cf-talk" <cf-talk@houseoffusion.com>
Subject: Feedback on this approach to "many sites, one codebase" (MSOC)

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:342398
Subscription: http://www.houseoffusion.com/groups/cf-talk/subscribe.cfm
Unsubscribe: http://www.houseoffusion.com/groups/cf-talk/unsubscribe.cfm

Reply via email to