Thanks for the verification...I figured it would
work that way.

And, yes, all my apps are customized and
relatively small at this point...no general
consumption apps.  Which is probably
why I haven't been terribly concerned with
framewords, OOP, etc., since I don't
reuse much code...

However, I am starting to develop "modules"
that I can plug into any site that I develop...
like announcments, calendar, email newsletter, etc.
That does help make site development a lot faster.
I still go through the modules and customize the
code for the site, however.

Rick

> -----Original Message-----
> From: S. Isaac Dealey [mailto:[EMAIL PROTECTED]
> Sent: Tuesday, March 07, 2006 12:14 PM
> To: CF-Talk
> Subject: RE: OOP, why me?
> 
> 
> > <cfif fileExists(ExpandPath(action & ".cfm"))>
> >     <cfinclude template="#action#.cfm">
> > </cfif>
> 
> > Nice idea, Isaac... So the above ExpandPath
> > function assumes my processing templates
> > are in the same directory as the display page?
> 
> > If so, what how would the code change if I put
> > my processing templates in directory called
> > "processing" and my display pages were in the
> > "html" directory?
> 
> > (Showing my ignorance about the ExpandPath
> > function...haven't used it...familiar with it, but
> > not in depth...)
> 
> I unfortunately don't find ExpandPath() to be terribly useful in my
> own development because it starts from the directory containing the
> base template (the one used in the browser's address bar -- I'm sure
> you already knew that :)  ... The way I work (with lots of
> subdirectories), the path of the base template is rarely (if ever)
> relevant, because cfinclude and cfmodule tags don't use the base
> template as their point of reference, they use the current template.
> So imo it would be _much_ more useful (that is to say -- it would be
> useful period) if ExpandPath() used the current template directory as
> its baseline. To give you an example why the implementation of
> ExpandPath() is patently bad, lets say you have a base template
> form.cfm inside form.cfm you're including another template called
> switch.cfm which includes code like I described above. Now lets say
> that you decide you want to move switch.cfm and all of its associated
> files into a subdirectory. Here's an illustration:
> 
> You're chaing this:
> 
> /form.cfm
> /switch.cfm
> /switch_x.cfm
> /switch_y.cfm
> 
> to this:
> 
> /form.cfm
> /switch/switch.cfm
> /switch/switch_x.cfm
> /switch/switch_y.cfm
> 
> Now... if you've used ExpandPath() to check for the existence of the
> file as in the code above, once you've moved these files your
> application won't include any of the switch_x.cfm or switch_y.cfm
> templates, even though the path to the included templates which is
> used in your <cfinclude> tag is correct and hasn't changed. The reason
> is because although you moved switch.cfm into a subdirectory,
> ExpandPath() still starts from the parent directory.
> 
> This can be fixed by changing the code to read ExpadnPath("switch/" &
> action & ".cfm"), however, then you have the name of the subdirectory
> in your code. What happens if you decide to change the name of the
> directory? Well... when you change the name of the directory you then
> suddenly have to change this block of code again, which shouldn't be
> necessary. It's understandable that you would need to change the path
> in form.cfm, but needing to change the code in a template because its
> _parent_ directory name changed imo is unacceptable.
> 
> Thus ExpandPath() will _always_ produce an undesirable dependancy on
> the base template directory of your application. So... I don't
> recommend that people use ExpandPath() as a rule...
> 
> I used it in my original example really because this explanation
> wasn't really necessary to explain the include concept, because you
> can write code that works with it (even if it's less maintainable),
> because I figured you'd appreciate the simplified explanation, and
> because I had the impression your applications are designed
> specifically for your clients (mine are for general consumption) and
> tend to be smaller anyway (didn't you say this in a previous post?) in
> which case, the maintenance hassle that ExpandPath() causes is less of
> an issue.
> 
> For your specific directory structure, this (or something very close
> to it) should work:
> 
> <cfif FileExists(ExpandPath("../processing/" & action & ".cfm"))>
>       <cfinclude template="../processing/#action#.cfm">
> </cfif>
> 
> I'm assuming that the "html" directory is synonymous with your web
> root directory. If the html directory is a subdirectory of your web
> root, then you would just drop ../ from those paths.
> 
> s. isaac dealey     434.293.6201
> new epoch : isn't it time for a change?
> 
> add features without fixtures with
> the onTap open source framework
> 
> http://www.fusiontap.com
> http://coldfusion.sys-con.com/author/4806Dealey.htm
> 
> 
> 

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~|
Message: http://www.houseoffusion.com/lists.cfm/link=i:4:234486
Archives: http://www.houseoffusion.com/cf_lists/threads.cfm/4
Subscription: http://www.houseoffusion.com/lists.cfm/link=s:4
Unsubscribe: 
http://www.houseoffusion.com/cf_lists/unsubscribe.cfm?user=11502.10531.4
Donations & Support: http://www.houseoffusion.com/tiny.cfm/54

Reply via email to