This message is in MIME format. Since your mail reader does not understand
this format, some or all of this message may not be legible.

------_=_NextPart_001_01BFF559.5E91EF60
Content-Type: text/plain;
        charset="iso-8859-1"

How about instead of having a fuseaction with lots of fuseactions in it,
call it a fusewire?  That way you cannot get confused with
attributes.fuseaction and variables.fuseaction? You can then put
attributes.fuseaction = ListFirst(attributes.fusewire) and remove that
element to create the fusewire to pass on.  One variable passed, two
separate variables used. The fusewire can then be available at any point
with an easy and intuitive name. 

Home Fusebox

request.callerFuseaction:       BookStore.Cart.AddItem
fusewire:                               BookStore.Cart.AddItem
fuseaction:                             Bookstore

Bookstore Fusebox

request.callerFuseaction:       BookStore.Cart.AddItem
fusewire:                               Cart.AddItem
fuseaction:                             Cart

Cart Fusebox

request.callerFuseaction:       BookStore.Cart.AddItem
fusewire:                               AddItem
fuseaction:                             AddItem

Another possible way of doing it, is to call request.callerFuseaction the
fusewire and add a numerical variable at the end of it to say at which level
you're at so only using one variable for each of the three parts:

Get the fuseaction with (allowing for backwards compatibility with
non-fusewire apps)

<!--- set fusewire to fuseaction if not set --->
<!--- (bear in mind that if fusewire is set, this won't be, and if it --->
<!--- isn't, then fuseaction will be --->
<cfparam name="attributes.fusewire" default="#attributes.fuseaction#">
<!--- if fusewire has more than 1 element, then it must have a number --->
<!--- and if it doesn't, add a 1 to the end --->
<cfif ListLen(attributes.fusewire,".") gt 1>
        <cfset variables.listnum = ListLast(attributes.fusewire,".")>
        <!--- check to see if not numeric, and add 1 if not --->
        <cfif NOT IsNumeric(variables.listnum)>
                <cfset attributes.fusewire = attributes.fusewire & ".1">
        </cfif>
<cfelse>
        <cfset variables.listnum = 1>
</cfif>
attributes.fuseaction = ListGetAt(attributes.fusewire,variables.listnum,".")

Home Fusebox

fusewire:               BookStore.Cart.AddItem.1
fuseaction:             Bookstore

Bookstore Fusebox

fusewire:               BookStore.Cart.AddItem.2
fuseaction:             Cart

Cart Fusebox

fusewire:               BookStore.Cart.AddItem.3
fuseaction:             AddItem

This has the advantage of being blind to the coder because all they have to
do is to put the fusewire in like BookStore.Cart.AddItem and the fusebox
will add the 1 at the end to begin with, and get the first fuseaction.
Every subsequent fusebox can then increment this end number to pass the
fusewire on.

Just a couple of thoughts.  Any good?

Paul

> -----Original Message-----
> From: BOROVOY Noam [mailto:[EMAIL PROTECTED]]
> Sent: 24 July 2000 09:39
> To: '[EMAIL PROTECTED]'
> Subject: RE: Nested Fuesbox apps
> 
> 
> Yes, that's the whole idea:
> Each fusebox will take it's fuseaction by using
> ListFirst(request.CallerFuseAction, ".")
> Then cut it off so the next fusebox down can also do the same.
> to use the same example of a three level nested fusebox:
> 
> Fusebox1(Home Fusebox)
> In
>     request.CallerFuseAction = ""
>     attributes.Fuseaction = BookStore.Cart.AddItem
>     Variables.Fuseaction = BookStore  (this will be used in 
> the CFSWITCH /
> CFCASE)
> Out:
>     request.CallerFuseAction = BookStore.Cart.AddItem
>     attributes.Fuseaction = Cart.AddItem
> 
> Fusebox2 (BookStore fusebox)
> In
>     request.CallerFuseAction = BookStore.Cart.AddItem
>     attributes.Fuseaction = Cart.AddItem
>     variables.Fuseaction = Cart
> Out:
>     request.CallerFuseAction = BookStore.Cart.AddItem
>     attributes.Fuseaction = AddItem
> 
> Fusebox3 (Cart Fusebox)
> In
>     request.CallerFuseAction = BookStore.Cart.AddItem
>     attributes.Fuseaction = AddItem
>     variables.Fuseaction = AddItem
> 
> In any display performed in any of the fuseboxes they can 
> keep the context
> so that the same parent fusebox will receive the call by using:
> 
> variables.ParentFuseaction = Left( request.CallerFuseAction,
> Len(request.CallerFuseAction) - Len(attributes.fuseaction) ).
> 
> and then:
> <A
> href="#CGI.ScriptName#?fuseaction=#variables.ParentFuseaction#
> ChildAction">
> 
> Again using the above example:
> If from the AddItem you want to go to ViewItems:
> variables.ParentFuseaction = "BookStore.Cart."
> <A 
> href="#CGI.ScriptName#?fuseaction=#variables.ParentFuseaction#
> ViewItems">
> which will become:
> <A href="index.cfm?fuseaction=BookStore.Cart.ViewItems">
> 
> Regards,
> Noam
> 
> 
> > ----------
> > From:       Hulsey, James Phillip[SMTP:[EMAIL PROTECTED]]
> > Reply To:   [EMAIL PROTECTED]
> > Sent:       Monday, 24 July 2000 1:26
> > To:         '[EMAIL PROTECTED]'
> > Subject:    RE: Nested Fuesbox apps
> > 
> > Noam,
> > Again. Great stuff.
> > So, given what you're stating, we would actually have an 
> n-tier fusebox
> > solution? We could keep building request.CallerFuseAction 
> by adding to it
> > as
> > it passes through each sub-app....couldn't we?
> > 
> > Sounds good to me! We need to standardize on this stuff as 
> this is a big
> > step toward portability and reuse :) Plug and play fusebox!
> > 
> > Phil
> > 
> > -----Original Message-----
> > From: BOROVOY Noam
> > To: '[EMAIL PROTECTED]'
> > Sent: 7/21/00 9:45 AM
> > Subject: RE: Nested Fuesbox apps (also RE: Other security 
> considerations a
> > nd fusebox methodologies...)
> > 
> > > How about refining the method to allow any fusebox to 
> nest any other
> > > fusebox
> > > and allow all links to be built automatically:
> > > 
> > > If the variable request.CallerFuseAction is defined then 
> all links can
> > be
> > > built using:
> > > 
> > > fuseaction for links:  request.CallerFuseAction 
> &".ChildFuseAction"
> > > Which then will be passed to the CGI.ScriptName which 
> will be the top
> > > level
> > > Index.cfm
> > > Such as: <A
> > >
> > 
> href="#CGI.ScriptName#?fuseaction=#request.CallerFuseAction#.C
> hildAction
> > "
> > > 
> > > So an example for a three level nesting:
> > > BookStore.Cart.AddItem
> > > The top level index.cfm has an action store which forwards to the
> > store
> > > sub
> > > directory index.cfm with the action:
> > > Cart.AddItem
> > > Which in turn forward to Cart sub directory index.cfm 
> with the action:
> > >  AddItem 
> > > 
> > > This way the top level index.cfm files each only have a 
> single case
> > > statement for each child fusebox and they append this 
> fuseaction to
> > the
> > > request.CallerFuseAction so that each included sub 
> fusebox knows how
> > to
> > > build the links properly without having to hard code them.
> > > 
> > > With this and RFA's (return fuseactions) you could easily reuse
> > modules at
> > > any level without needing to know the internals of what you are
> > including.
> > > 
> > > Let me know what you think,
> > > Noam
> > > 
> > 
> --------------------------------------------------------------
> ----------------
> To Unsubscribe visit 
> http://www.houseoffusion.com/index.cfm?sidebar=lists&body=list
s/fusebox or send a message to [EMAIL PROTECTED] with
'unsubscribe' in the body.

------_=_NextPart_001_01BFF559.5E91EF60
Content-Type: text/html;
        charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
<HEAD>
<META HTTP-EQUIV=3D"Content-Type" CONTENT=3D"text/html; =
charset=3Diso-8859-1">
<META NAME=3D"Generator" CONTENT=3D"MS Exchange Server version =
5.5.2650.12">
<TITLE>RE: Nested Fuesbox apps</TITLE>
</HEAD>
<BODY>

<P><FONT SIZE=3D2>How about instead of having a fuseaction with lots of =
fuseactions in it, call it a fusewire?&nbsp; That way you cannot get =
confused with attributes.fuseaction and variables.fuseaction? You can =
then put attributes.fuseaction =3D ListFirst(attributes.fusewire) and =
remove that element to create the fusewire to pass on.&nbsp; One =
variable passed, two separate variables used. The fusewire can then be =
available at any point with an easy and intuitive name. </FONT></P>

<P><FONT SIZE=3D2>Home Fusebox</FONT>
</P>

<P><FONT SIZE=3D2>request.callerFuseaction:&nbsp; =
&nbsp;&nbsp;&nbsp;&nbsp; BookStore.Cart.AddItem</FONT>
<BR><FONT SIZE=3D2>fusewire:&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; =
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
BookStore.Cart.AddItem</FONT>
<BR><FONT SIZE=3D2>fuseaction:&nbsp;&nbsp;&nbsp;&nbsp; =
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Bookstore</FONT>
</P>

<P><FONT SIZE=3D2>Bookstore Fusebox</FONT>
</P>

<P><FONT SIZE=3D2>request.callerFuseaction:&nbsp; =
&nbsp;&nbsp;&nbsp;&nbsp; BookStore.Cart.AddItem</FONT>
<BR><FONT SIZE=3D2>fusewire:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Cart.AddItem</FONT>
<BR><FONT SIZE=3D2>fuseaction:&nbsp;&nbsp;&nbsp;&nbsp; =
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Cart</FONT>
</P>

<P><FONT SIZE=3D2>Cart Fusebox</FONT>
</P>

<P><FONT SIZE=3D2>request.callerFuseaction:&nbsp; =
&nbsp;&nbsp;&nbsp;&nbsp; BookStore.Cart.AddItem</FONT>
<BR><FONT SIZE=3D2>fusewire:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; AddItem</FONT>
<BR><FONT SIZE=3D2>fuseaction:&nbsp;&nbsp;&nbsp;&nbsp; =
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; AddItem</FONT>
</P>

<P><FONT SIZE=3D2>Another possible way of doing it, is to call =
request.callerFuseaction the fusewire and add a numerical variable at =
the end of it to say at which level you're at so only using one =
variable for each of the three parts:</FONT></P>

<P><FONT SIZE=3D2>Get the fuseaction with (allowing for backwards =
compatibility with non-fusewire apps)</FONT>
</P>

<P><FONT SIZE=3D2>&lt;!--- set fusewire to fuseaction if not set =
---&gt;</FONT>
<BR><FONT SIZE=3D2>&lt;!--- (bear in mind that if fusewire is set, this =
won't be, and if it ---&gt;</FONT>
<BR><FONT SIZE=3D2>&lt;!--- isn't, then fuseaction will be =
---&gt;</FONT>
<BR><FONT SIZE=3D2>&lt;cfparam name=3D&quot;attributes.fusewire&quot; =
default=3D&quot;#attributes.fuseaction#&quot;&gt;</FONT>
<BR><FONT SIZE=3D2>&lt;!--- if fusewire has more than 1 element, then =
it must have a number ---&gt;</FONT>
<BR><FONT SIZE=3D2>&lt;!--- and if it doesn't, add a 1 to the end =
---&gt;</FONT>
<BR><FONT SIZE=3D2>&lt;cfif ListLen(attributes.fusewire,&quot;.&quot;) =
gt 1&gt;</FONT>
<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <FONT SIZE=3D2>&lt;cfset =
variables.listnum =3D =
ListLast(attributes.fusewire,&quot;.&quot;)&gt;</FONT>
<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <FONT SIZE=3D2>&lt;!--- =
check to see if not numeric, and add 1 if not ---&gt;</FONT>
<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <FONT SIZE=3D2>&lt;cfif =
NOT IsNumeric(variables.listnum)&gt;</FONT>
<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <FONT SIZE=3D2>&lt;cfset =
attributes.fusewire =3D attributes.fusewire &amp; =
&quot;.1&quot;&gt;</FONT>
<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <FONT =
SIZE=3D2>&lt;/cfif&gt;</FONT>
<BR><FONT SIZE=3D2>&lt;cfelse&gt;</FONT>
<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <FONT SIZE=3D2>&lt;cfset =
variables.listnum =3D 1&gt;</FONT>
<BR><FONT SIZE=3D2>&lt;/cfif&gt;</FONT>
<BR><FONT SIZE=3D2>attributes.fuseaction =3D =
ListGetAt(attributes.fusewire,variables.listnum,&quot;.&quot;)</FONT>
</P>

<P><FONT SIZE=3D2>Home Fusebox</FONT>
</P>

<P><FONT SIZE=3D2>fusewire:&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; =
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
BookStore.Cart.AddItem.1</FONT>
<BR><FONT SIZE=3D2>fuseaction:&nbsp;&nbsp;&nbsp;&nbsp; =
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Bookstore</FONT>
</P>

<P><FONT SIZE=3D2>Bookstore Fusebox</FONT>
</P>

<P><FONT SIZE=3D2>fusewire:&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; =
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
BookStore.Cart.AddItem.2</FONT>
<BR><FONT SIZE=3D2>fuseaction:&nbsp;&nbsp;&nbsp;&nbsp; =
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Cart</FONT>
</P>

<P><FONT SIZE=3D2>Cart Fusebox</FONT>
</P>

<P><FONT SIZE=3D2>fusewire:&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; =
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
BookStore.Cart.AddItem.3</FONT>
<BR><FONT SIZE=3D2>fuseaction:&nbsp;&nbsp;&nbsp;&nbsp; =
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; AddItem</FONT>
</P>

<P><FONT SIZE=3D2>This has the advantage of being blind to the coder =
because all they have to do is to put the fusewire in like =
BookStore.Cart.AddItem and the fusebox will add the 1 at the end to =
begin with, and get the first fuseaction.&nbsp; Every subsequent =
fusebox can then increment this end number to pass the fusewire =
on.</FONT></P>

<P><FONT SIZE=3D2>Just a couple of thoughts.&nbsp; Any good?</FONT>
</P>

<P><FONT SIZE=3D2>Paul</FONT>
</P>

<P><FONT SIZE=3D2>&gt; -----Original Message-----</FONT>
<BR><FONT SIZE=3D2>&gt; From: BOROVOY Noam [<A =
HREF=3D"mailto:[EMAIL PROTECTED]">mailto:[EMAIL PROTECTED]=
</A>]</FONT>
<BR><FONT SIZE=3D2>&gt; Sent: 24 July 2000 09:39</FONT>
<BR><FONT SIZE=3D2>&gt; To: '[EMAIL PROTECTED]'</FONT>
<BR><FONT SIZE=3D2>&gt; Subject: RE: Nested Fuesbox apps</FONT>
<BR><FONT SIZE=3D2>&gt; </FONT>
<BR><FONT SIZE=3D2>&gt; </FONT>
<BR><FONT SIZE=3D2>&gt; Yes, that's the whole idea:</FONT>
<BR><FONT SIZE=3D2>&gt; Each fusebox will take it's fuseaction by =
using</FONT>
<BR><FONT SIZE=3D2>&gt; ListFirst(request.CallerFuseAction, =
&quot;.&quot;)</FONT>
<BR><FONT SIZE=3D2>&gt; Then cut it off so the next fusebox down can =
also do the same.</FONT>
<BR><FONT SIZE=3D2>&gt; to use the same example of a three level nested =
fusebox:</FONT>
<BR><FONT SIZE=3D2>&gt; </FONT>
<BR><FONT SIZE=3D2>&gt; Fusebox1(Home Fusebox)</FONT>
<BR><FONT SIZE=3D2>&gt; In</FONT>
<BR><FONT SIZE=3D2>&gt;&nbsp;&nbsp;&nbsp;&nbsp; =
request.CallerFuseAction =3D &quot;&quot;</FONT>
<BR><FONT SIZE=3D2>&gt;&nbsp;&nbsp;&nbsp;&nbsp; attributes.Fuseaction =
=3D BookStore.Cart.AddItem</FONT>
<BR><FONT SIZE=3D2>&gt;&nbsp;&nbsp;&nbsp;&nbsp; Variables.Fuseaction =
=3D BookStore&nbsp; (this will be used in </FONT>
<BR><FONT SIZE=3D2>&gt; the CFSWITCH /</FONT>
<BR><FONT SIZE=3D2>&gt; CFCASE)</FONT>
<BR><FONT SIZE=3D2>&gt; Out:</FONT>
<BR><FONT SIZE=3D2>&gt;&nbsp;&nbsp;&nbsp;&nbsp; =
request.CallerFuseAction =3D BookStore.Cart.AddItem</FONT>
<BR><FONT SIZE=3D2>&gt;&nbsp;&nbsp;&nbsp;&nbsp; attributes.Fuseaction =
=3D Cart.AddItem</FONT>
<BR><FONT SIZE=3D2>&gt; </FONT>
<BR><FONT SIZE=3D2>&gt; Fusebox2 (BookStore fusebox)</FONT>
<BR><FONT SIZE=3D2>&gt; In</FONT>
<BR><FONT SIZE=3D2>&gt;&nbsp;&nbsp;&nbsp;&nbsp; =
request.CallerFuseAction =3D BookStore.Cart.AddItem</FONT>
<BR><FONT SIZE=3D2>&gt;&nbsp;&nbsp;&nbsp;&nbsp; attributes.Fuseaction =
=3D Cart.AddItem</FONT>
<BR><FONT SIZE=3D2>&gt;&nbsp;&nbsp;&nbsp;&nbsp; variables.Fuseaction =
=3D Cart</FONT>
<BR><FONT SIZE=3D2>&gt; Out:</FONT>
<BR><FONT SIZE=3D2>&gt;&nbsp;&nbsp;&nbsp;&nbsp; =
request.CallerFuseAction =3D BookStore.Cart.AddItem</FONT>
<BR><FONT SIZE=3D2>&gt;&nbsp;&nbsp;&nbsp;&nbsp; attributes.Fuseaction =
=3D AddItem</FONT>
<BR><FONT SIZE=3D2>&gt; </FONT>
<BR><FONT SIZE=3D2>&gt; Fusebox3 (Cart Fusebox)</FONT>
<BR><FONT SIZE=3D2>&gt; In</FONT>
<BR><FONT SIZE=3D2>&gt;&nbsp;&nbsp;&nbsp;&nbsp; =
request.CallerFuseAction =3D BookStore.Cart.AddItem</FONT>
<BR><FONT SIZE=3D2>&gt;&nbsp;&nbsp;&nbsp;&nbsp; attributes.Fuseaction =
=3D AddItem</FONT>
<BR><FONT SIZE=3D2>&gt;&nbsp;&nbsp;&nbsp;&nbsp; variables.Fuseaction =
=3D AddItem</FONT>
<BR><FONT SIZE=3D2>&gt; </FONT>
<BR><FONT SIZE=3D2>&gt; In any display performed in any of the =
fuseboxes they can </FONT>
<BR><FONT SIZE=3D2>&gt; keep the context</FONT>
<BR><FONT SIZE=3D2>&gt; so that the same parent fusebox will receive =
the call by using:</FONT>
<BR><FONT SIZE=3D2>&gt; </FONT>
<BR><FONT SIZE=3D2>&gt; variables.ParentFuseaction =3D Left( =
request.CallerFuseAction,</FONT>
<BR><FONT SIZE=3D2>&gt; Len(request.CallerFuseAction) - =
Len(attributes.fuseaction) ).</FONT>
<BR><FONT SIZE=3D2>&gt; </FONT>
<BR><FONT SIZE=3D2>&gt; and then:</FONT>
<BR><FONT SIZE=3D2>&gt; &lt;A</FONT>
<BR><FONT SIZE=3D2>&gt; =
href=3D&quot;#CGI.ScriptName#?fuseaction=3D#variables.ParentFuseaction#<=
/FONT>
<BR><FONT SIZE=3D2>&gt; ChildAction&quot;&gt;</FONT>
<BR><FONT SIZE=3D2>&gt; </FONT>
<BR><FONT SIZE=3D2>&gt; Again using the above example:</FONT>
<BR><FONT SIZE=3D2>&gt; If from the AddItem you want to go to =
ViewItems:</FONT>
<BR><FONT SIZE=3D2>&gt; variables.ParentFuseaction =3D =
&quot;BookStore.Cart.&quot;</FONT>
<BR><FONT SIZE=3D2>&gt; &lt;A </FONT>
<BR><FONT SIZE=3D2>&gt; =
href=3D&quot;#CGI.ScriptName#?fuseaction=3D#variables.ParentFuseaction#<=
/FONT>
<BR><FONT SIZE=3D2>&gt; ViewItems&quot;&gt;</FONT>
<BR><FONT SIZE=3D2>&gt; which will become:</FONT>
<BR><FONT SIZE=3D2>&gt; &lt;A =
href=3D&quot;index.cfm?fuseaction=3DBookStore.Cart.ViewItems&quot;&gt;</=
FONT>
<BR><FONT SIZE=3D2>&gt; </FONT>
<BR><FONT SIZE=3D2>&gt; Regards,</FONT>
<BR><FONT SIZE=3D2>&gt; Noam</FONT>
<BR><FONT SIZE=3D2>&gt; </FONT>
<BR><FONT SIZE=3D2>&gt; </FONT>
<BR><FONT SIZE=3D2>&gt; &gt; ----------</FONT>
<BR><FONT SIZE=3D2>&gt; &gt; From: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
Hulsey, James Phillip[SMTP:[EMAIL PROTECTED]]</FONT>
<BR><FONT SIZE=3D2>&gt; &gt; Reply To: &nbsp; =
[EMAIL PROTECTED]</FONT>
<BR><FONT SIZE=3D2>&gt; &gt; Sent: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
Monday, 24 July 2000 1:26</FONT>
<BR><FONT SIZE=3D2>&gt; &gt; To: =
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
'[EMAIL PROTECTED]'</FONT>
<BR><FONT SIZE=3D2>&gt; &gt; Subject: &nbsp;&nbsp; RE: Nested Fuesbox =
apps</FONT>
<BR><FONT SIZE=3D2>&gt; &gt; </FONT>
<BR><FONT SIZE=3D2>&gt; &gt; Noam,</FONT>
<BR><FONT SIZE=3D2>&gt; &gt; Again. Great stuff.</FONT>
<BR><FONT SIZE=3D2>&gt; &gt; So, given what you're stating, we would =
actually have an </FONT>
<BR><FONT SIZE=3D2>&gt; n-tier fusebox</FONT>
<BR><FONT SIZE=3D2>&gt; &gt; solution? We could keep building =
request.CallerFuseAction </FONT>
<BR><FONT SIZE=3D2>&gt; by adding to it</FONT>
<BR><FONT SIZE=3D2>&gt; &gt; as</FONT>
<BR><FONT SIZE=3D2>&gt; &gt; it passes through each sub-app....couldn't =
we?</FONT>
<BR><FONT SIZE=3D2>&gt; &gt; </FONT>
<BR><FONT SIZE=3D2>&gt; &gt; Sounds good to me! We need to standardize =
on this stuff as </FONT>
<BR><FONT SIZE=3D2>&gt; this is a big</FONT>
<BR><FONT SIZE=3D2>&gt; &gt; step toward portability and reuse :) Plug =
and play fusebox!</FONT>
<BR><FONT SIZE=3D2>&gt; &gt; </FONT>
<BR><FONT SIZE=3D2>&gt; &gt; Phil</FONT>
<BR><FONT SIZE=3D2>&gt; &gt; </FONT>
<BR><FONT SIZE=3D2>&gt; &gt; -----Original Message-----</FONT>
<BR><FONT SIZE=3D2>&gt; &gt; From: BOROVOY Noam</FONT>
<BR><FONT SIZE=3D2>&gt; &gt; To: '[EMAIL PROTECTED]'</FONT>
<BR><FONT SIZE=3D2>&gt; &gt; Sent: 7/21/00 9:45 AM</FONT>
<BR><FONT SIZE=3D2>&gt; &gt; Subject: RE: Nested Fuesbox apps (also RE: =
Other security </FONT>
<BR><FONT SIZE=3D2>&gt; considerations a</FONT>
<BR><FONT SIZE=3D2>&gt; &gt; nd fusebox methodologies...)</FONT>
<BR><FONT SIZE=3D2>&gt; &gt; </FONT>
<BR><FONT SIZE=3D2>&gt; &gt; &gt; How about refining the method to =
allow any fusebox to </FONT>
<BR><FONT SIZE=3D2>&gt; nest any other</FONT>
<BR><FONT SIZE=3D2>&gt; &gt; &gt; fusebox</FONT>
<BR><FONT SIZE=3D2>&gt; &gt; &gt; and allow all links to be built =
automatically:</FONT>
<BR><FONT SIZE=3D2>&gt; &gt; &gt; </FONT>
<BR><FONT SIZE=3D2>&gt; &gt; &gt; If the variable =
request.CallerFuseAction is defined then </FONT>
<BR><FONT SIZE=3D2>&gt; all links can</FONT>
<BR><FONT SIZE=3D2>&gt; &gt; be</FONT>
<BR><FONT SIZE=3D2>&gt; &gt; &gt; built using:</FONT>
<BR><FONT SIZE=3D2>&gt; &gt; &gt; </FONT>
<BR><FONT SIZE=3D2>&gt; &gt; &gt; fuseaction for links:&nbsp; =
request.CallerFuseAction </FONT>
<BR><FONT SIZE=3D2>&gt; &amp;&quot;.ChildFuseAction&quot;</FONT>
<BR><FONT SIZE=3D2>&gt; &gt; &gt; Which then will be passed to the =
CGI.ScriptName which </FONT>
<BR><FONT SIZE=3D2>&gt; will be the top</FONT>
<BR><FONT SIZE=3D2>&gt; &gt; &gt; level</FONT>
<BR><FONT SIZE=3D2>&gt; &gt; &gt; Index.cfm</FONT>
<BR><FONT SIZE=3D2>&gt; &gt; &gt; Such as: &lt;A</FONT>
<BR><FONT SIZE=3D2>&gt; &gt; &gt;</FONT>
<BR><FONT SIZE=3D2>&gt; &gt; </FONT>
<BR><FONT SIZE=3D2>&gt; =
href=3D&quot;#CGI.ScriptName#?fuseaction=3D#request.CallerFuseAction#.C<=
/FONT>
<BR><FONT SIZE=3D2>&gt; hildAction</FONT>
<BR><FONT SIZE=3D2>&gt; &gt; &quot;</FONT>
<BR><FONT SIZE=3D2>&gt; &gt; &gt; </FONT>
<BR><FONT SIZE=3D2>&gt; &gt; &gt; So an example for a three level =
nesting:</FONT>
<BR><FONT SIZE=3D2>&gt; &gt; &gt; BookStore.Cart.AddItem</FONT>
<BR><FONT SIZE=3D2>&gt; &gt; &gt; The top level index.cfm has an action =
store which forwards to the</FONT>
<BR><FONT SIZE=3D2>&gt; &gt; store</FONT>
<BR><FONT SIZE=3D2>&gt; &gt; &gt; sub</FONT>
<BR><FONT SIZE=3D2>&gt; &gt; &gt; directory index.cfm with the =
action:</FONT>
<BR><FONT SIZE=3D2>&gt; &gt; &gt; Cart.AddItem</FONT>
<BR><FONT SIZE=3D2>&gt; &gt; &gt; Which in turn forward to Cart sub =
directory index.cfm </FONT>
<BR><FONT SIZE=3D2>&gt; with the action:</FONT>
<BR><FONT SIZE=3D2>&gt; &gt; &gt;&nbsp; AddItem </FONT>
<BR><FONT SIZE=3D2>&gt; &gt; &gt; </FONT>
<BR><FONT SIZE=3D2>&gt; &gt; &gt; This way the top level index.cfm =
files each only have a </FONT>
<BR><FONT SIZE=3D2>&gt; single case</FONT>
<BR><FONT SIZE=3D2>&gt; &gt; &gt; statement for each child fusebox and =
they append this </FONT>
<BR><FONT SIZE=3D2>&gt; fuseaction to</FONT>
<BR><FONT SIZE=3D2>&gt; &gt; the</FONT>
<BR><FONT SIZE=3D2>&gt; &gt; &gt; request.CallerFuseAction so that each =
included sub </FONT>
<BR><FONT SIZE=3D2>&gt; fusebox knows how</FONT>
<BR><FONT SIZE=3D2>&gt; &gt; to</FONT>
<BR><FONT SIZE=3D2>&gt; &gt; &gt; build the links properly without =
having to hard code them.</FONT>
<BR><FONT SIZE=3D2>&gt; &gt; &gt; </FONT>
<BR><FONT SIZE=3D2>&gt; &gt; &gt; With this and RFA's (return =
fuseactions) you could easily reuse</FONT>
<BR><FONT SIZE=3D2>&gt; &gt; modules at</FONT>
<BR><FONT SIZE=3D2>&gt; &gt; &gt; any level without needing to know the =
internals of what you are</FONT>
<BR><FONT SIZE=3D2>&gt; &gt; including.</FONT>
<BR><FONT SIZE=3D2>&gt; &gt; &gt; </FONT>
<BR><FONT SIZE=3D2>&gt; &gt; &gt; Let me know what you think,</FONT>
<BR><FONT SIZE=3D2>&gt; &gt; &gt; Noam</FONT>
<BR><FONT SIZE=3D2>&gt; &gt; &gt; </FONT>
<BR><FONT SIZE=3D2>&gt; &gt; </FONT>
<BR><FONT SIZE=3D2>&gt; =
--------------------------------------------------------------</FONT>
<BR><FONT SIZE=3D2>&gt; ----------------</FONT>
<BR><FONT SIZE=3D2>&gt; To Unsubscribe visit </FONT>
<BR><FONT SIZE=3D2>&gt; <A =
HREF=3D"http://www.houseoffusion.com/index.cfm?sidebar=3Dlists&body=3Dli=
st" =
TARGET=3D"_blank">http://www.houseoffusion.com/index.cfm?sidebar=3Dlists=
&body=3Dlist</A></FONT>
<BR><FONT SIZE=3D2>s/fusebox or send a message to =
[EMAIL PROTECTED] with 'unsubscribe' in the =
body.</FONT>
</P>

</BODY>
</HTML>
------_=_NextPart_001_01BFF559.5E91EF60--
------------------------------------------------------------------------------
To Unsubscribe visit 
http://www.houseoffusion.com/index.cfm?sidebar=lists&body=lists/fusebox or send a 
message to [EMAIL PROTECTED] with 'unsubscribe' in the body.

Reply via email to