OH. MY. GAWD.
Ok so I got it working... I had to do a
structKeyExists(session,"rowStyle") at the top of the displayTeaser/
Page file, and if it didn't exist then cfset it. Then I do the normal
check of if the value is "off" set it to "on" and vice versa. The only
other odd thing is that I for some reason have to define it in
application.cfm and displayPageStandard (???)... Whatever... It's
working lol
On Dec 4, 11:22 am, tilespace <[EMAIL PROTECTED]> wrote:
> LOL
> I give up. I've tried Jeff's suggestion, using structInsert(), I've
> even tried just having a session variable called rowStyle that is
> updated and none of them work. Every single thing I've tried results
> in either the value always being "off" or more frequently "Element
> rowStyle is undefined in XXX". How is that possible? I mean especially
> with the session variables. I'm creating custom session variables in
> other places and they're working fine but trying to create
> session.rowStyle just ain't gonna happen. Makes no sense...
>
> On Dec 4, 11:08 am, tilespace <[EMAIL PROTECTED]> wrote:
>
>
>
> > Hey Jeff -
> > I tried your solution and while it did add rowStyle to stObj.stParam,
> > since I'm calling it on the displayTeaser/Page file before importing
> > the webskin, it's always set to "off". I'm back to my original problem
> > where since the rule is calling displayTeaser/Page individually and
> > not as a group, then there's no way to update the value... :/
>
> > On Dec 4, 10:36 am, tilespace <[EMAIL PROTECTED]> wrote:
>
> > > Ok for some reason all of this seems overly complicated to me. And
> > > while I see what Jake's doing, I built all of my rules according to
> > > the dev guide so there's no HTML in them whatsoever, just in the
> > > displayTeaser/Page files and I don't think going back and changing all
> > > of them now is a very viable option. I guess my question is why can't
> > > I just insert a new key into the stObj struct in the rules file? Using
> > > structInsert() or something like the following? I've tried
> > > structInsert() and the following to no avail (stObj.rowStyle does not
> > > exist error) and it's baffling me as to why...
>
> > > This is my execute function in my rules.cfc (no HTML whatsoever,
> > > follows the dev guide):
>
> > > <cffunction name="execute" hint="This is the execute function."
> > > output="false" returntype="void" access="public">
> > > <cfargument name="objectID" required="false" type="uuid" default="">
> > > <cfargument name="dsn" required="false" type="string"
> > > default="#application.dsn#">
> > > <cfargument name="dbowner" required="false" type="string"
> > > default="#application.dbowner#">
> > > <cfargument name="style" required="false" type="string" default="">
>
> > > <cfset var stObj = getData(arguments.objectid)>
> > > <cfset var qGet = "">
> > > <cfset var stInvoke = structNew()>
> > > <!--- get items that have status equal to current view mode --->
> > > <!--- Make sure to change the table name --->
> > > <cfquery datasource="#arguments.dsn#" name="qGet">
> > > SELECT *
> > > FROM #arguments.dbowner#chapels
> > > WHERE STATUS IN
> > > ('#ListChangeDelims(request.mode.lValidStatus,"','",",")#')
> > > </cfquery>
> > > <cfif len(trim(stObj.intro)) AND qGet.recordcount>
> > > <cfset arrayAppend(request.aInvocations,stObj.intro)>
> > > </cfif>
> > > <cfloop query="qGet">
> > > <cfset stInvoke = structNew()>
> > > <cfset stInvoke.objectID = qGet.objectID>
> > > <!--- Make sure to change the packagePath precursor --->
> > > <cfset stInvoke.typename =
> > > application.stCoapi.chapels.packagePath>
> > > <cfset stInvoke.method = stObj.displayMethod>
> > > <cfset arrayAppend(request.aInvocations,stInvoke)>
> > > </cfloop>
> > > </cffunction>
>
> > > It would seem to me that just making the following change should work:
>
> > > <cfset stObj.rowStyle = "off" />
> > > <cfloop query="qGet">
> > > <cfset stInvoke = structNew()>
> > > <cfset stInvoke.objectID = qGet.objectID>
> > > <!--- Make sure to change the packagePath precursor --->
> > > <cfset stInvoke.typename =
> > > application.stCoapi.chapels.packagePath>
> > > <cfset stInvoke.method = stObj.displayMethod>
> > > <cfset stInvoke.rowStyle = stObj.rowStyle> /* NOT SURE IF THIS IS
> > > EVEN NEEDED */
> > > <cfset arrayAppend(request.aInvocations,stInvoke)>
> > > <cfif stObj.rowStyle EQ "off">
> > > <cfset stObj.rowStyle = "on" />
> > > <cfelse>
> > > <cfset stObj.rowStyle = "on" />
> > > </cfif>
> > > </cfloop>
>
> > > Or am I overly simplifying something that isn't this simple? Why
> > > wouldn't it just be adding a key to the existing stObj struct?
>
> > > On Nov 20, 6:46 pm, Jeff Coughlin <[EMAIL PROTECTED]> wrote:
>
> > > > I do a similar thing as to what Blair suggests (btw Blair, is stParam,
> > > > (no "s")). However, I don't suggest talking directly to the arguments
> > > > scope from within a webskin file (reasons for which I hope are
> > > > obvious :) ).
>
> > > > I've been meaning to add a feature request to the bug tracker (a
> > > > simple one) where getView() methods will also return stObj.stParam.
> > > > This is a simple implementation by just adding the line <cfset
> > > > stObj.stParam = arguments.stParam /> before including the webskin
> > > > within the getView() method.
>
> > > > In the meantime, I have a workaround that you can use. It's a bit
> > > > nasty though because you have to put this at the top of every webskin
> > > > file that might use stParam.
>
> > > > <!--- Begin code --->
> > > > <cfparam name="arguments" default="#structNew()#" type="struct" />
> > > > <cfparam name="stParam" default="#structNew()#" type="struct" />
> > > > <cfif not structKeyExists(stObj, "stParam")>
> > > > <cfset stObj.stParam = duplicate(arguments.stParam) />
> > > > </cfif>
> > > > <!--- End code --->
>
> > > > After that I declare any special variables that might exist from the
> > > > stParam structure:
> > > > <cfparam name="stObj.stParam.myVar" default="" />
>
> > > > Hope that helps,
>
> > > > --
> > > > Jeff Coughlin
> > > > Web Application Developerhttp://jeffcoughlin.com
>
> > > > On Nov 20, 2007, at 5:45 PM, Blair McKenzie wrote:
>
> > > > > Depends on where you're using the teaser. But in general you can do
> > > > > this by passing extra variables into a template with the stParams
> > > > > struct argument on the skin:view tag or the getView function. From
> > > > > within the teaser you can access these variables via
> > > > > arguments.stParams.
>
> > > > > Blair
>
> > > > > On Nov 21, 2007 5:16 AM, tilespace wrote:
>
> > > > > Hello... Me again :)
> > > > > Has anyone been able to do alternaterowcolors for custom types using
> > > > > teaser pages?
>
> > > > > From what I can tell, the rule calls the teaser page for every item in
> > > > > the DB so it's just getting onerowat a time. I'm not going to be
> > > > > able to determine what thatrowcolor should be since they're not
> > > > > called at once, correct? Is there some way, or some hidden FC feature
> > > > > that I don't know about, to do this?
>
> > > > > Does that make sense what I'm trying to do?- Hide quoted text -
>
> > > > - Show quoted text -- Hide quoted text -
>
> > > - Show quoted text -- Hide quoted text -
>
> > - Show quoted text -- Hide quoted text -
>
> - Show quoted text -
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"farcry-dev" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at
http://groups.google.com/group/farcry-dev?hl=en
-~----------~----~----~----~------~----~------~--~---