OK, I'll take a look, see if I can figure it out. So is the intention to be able to use store="request" in the future?
Also, what about the back button? Clicking the back button breaks tab navigation. Is this a bug? Thanks, -Alex --- Carsten Ziegeler <[EMAIL PROTECTED]> wrote: > Ok, my fault, sorry - I was wrong, it doesn't work > this way :( > > I currently don't have the time to give you much > more details, but > I guess, you have to do it in a different way, like > this: > > Every change in the portal is notified by an event. > You can subscribe > for events and "listen" what is going on. > Now, you can register your own event listener for > tab changes. This > listener knows all your tabs and resets the state of > all sub tabs > if the main tab selection changes. > > If someone else has a better idea, let us know. > > HTH > Carsten > > > -----Original Message----- > > From: Alex Romayev [mailto:[EMAIL PROTECTED] > > Sent: Thursday, January 29, 2004 6:23 PM > > To: [EMAIL PROTECTED] > > Subject: RE: [portal] Tab navigation > > > > > > I also tried changing the "store" parameter in > "tab" > > configuration itself -- one word change, less room > for > > error. I then tested the sample portal -- it > still > > did not work. > > > > Hope this helps, > > -Alex > > > > --- Alex Romayev <[EMAIL PROTECTED]> wrote: > > > Hi Carsten, > > > > > > Unfortunately none of them worked :-( > > > > > > I first tried fixing the back button, which > seems > > > like > > > a simple change, however it still behaved the > same > > > way. Is there anything wrong with my syntax? > > > > > > With the tab I followed your steps, however it > > > appears > > > that they don't have any effect on the portal. > Any > > > other ideas? > > > > > > Thanks, > > > -Alex > > > > > > --- Carsten Ziegeler <[EMAIL PROTECTED]> > wrote: > > > > Alex Romayev wrote: > > > > > > > > > > Hi Carsten, > > > > > > > > > > I'm ready for the "portal configuration > hell", > > > if > > > > you > > > > > can lead me through it ;-) > > > > > > > > > To be honest, I don't know if it works, but > it's > > > > worth a try :) > > > > > > > > Ok, here is a brief description: > > > > Creating a different tab (stateless), means > > > creating > > > > a new renderer > > > > for a tab. You will find this somewhere in the > > > > cocoon.xconf: > > > > <renderer > > > > > > > > > > class="org.apache.cocoon.portal.layout.renderer.impl.AspectRenderer" > > > > logger="portal" name="tab"> > > > > <aspects> > > > > <aspect type="xslt"> > > > > <parameter name="style" > > > > value="{global:skin}styles/tab.xsl"/> > > > > </aspect> > > > > <aspect type="parameter"> > > > > <parameter name="tag-name" > > > > value="tab-layout"/> > > > > </aspect> > > > > <aspect type="history"/> > > > > <aspect type="tab-content"> > > > > <parameter name="root-tag" > > > > value="false"/> > > > > <parameter name="store" > > > > value="session"/> > > > > </aspect> > > > > </aspects> > > > > </renderer> > > > > Copy this and change the name "tab" in the > first > > > > line to whatever you want. > > > > Change the "store" configuration for the > > > > "tab-content" to "request". > > > > Now, you have to register this renderer in the > > > > layout factory: > > > > <layout > > > > > > > > > > class="org.apache.cocoon.portal.layout.impl.CompositeLayout" > > > > name="tab"> > > > > <renderers default="tab"> > > > > <renderer name="tab"/> > > > > </renderers> > > > > </layout> > > > > Add a new entry > > > > <renderer name="YOUR NEW TAB NAME"/> inside > the > > > > renderers section. > > > > > > > > Now, you have an alternative renderer for a > tab > > > > layout object. > > > > > > > > Last thing is to use this renderer. Go into > your > > > > layout.xml, to the > > > > stateless > > > > tab definition and configure the stateless tab > to > > > > use the new renderer: > > > > <composite-layout name="tab" id="stateless" > > > > default-renderer-name="YOUR NEW > > > > TAB NAME"> > > > > > > > > So, in theory, this is it - if I didn't forget > > > > anything. > > > > Now the basic idea is to say, the main tab > > > > (stateful) uses a session to > > > > store the > > > > state of a tab. The stateless instead uses the > > > > request (one req-res cycle) > > > > to store > > > > the state. > > > > If this doesn't work, well we have to find a > > > better > > > > solution :( > > > > > > > > > I think stateful + stateless tab solution > should > > > > work > > > > > for me. There is also another problem I'm > > > having, > > > > > which I hope will be fixed by this (but I'd > like > > > > to > > > > > check with you to make sure): > > > > > > > > > > On my "news" sub-tab I have "Latest News" > page > > > > with > > > > > callouts to news items, which open "News > Item" > > > > page, > > > > > by passing "news-item" coplet news-id: > > > > > > > > > > <cl:links> > > > > > "News" is the 4th tab on "maintab" > > > > > <cl:link layout="maintab" value="3" > > > > > path="aspectDatas/tab"/> > > > > > "News Item" page is the 3rd page on > "newstab" > > > > > <cl:link layout="newstab" value="2" > > > > > path="aspectDatas/tab"/> > > > > > <cl:link coplet="news-item-1" > value="[EMAIL PROTECTED]" > > > > > path="attributes/news-id"/> > > > > > <cl:content><xsl:value-of > > > > > select="title"/></cl:content> > > > > > </cl:links> > > > > > > > > > > This works correctly, however if I press > brower > > > > "Back" > > > > > button when on "News Item" page and click to > > > view > > > > > another news item on the "Latest News" page, > I > > > get > > > > the > > > > > same news item. However, if I navigate to > > > "Latest > > > > > News" page by clicking on tabs, everything > works > > > > > correctly. > > > > > > > > > No, this is a different issue :) The portal > has a > > > > built-in > > > > mechanism to "disable" the back button. By > this > > > the > > > > user > > > > can't get into an undefined state. > > > > This means, that if you use back and to any > > > action, > > > > this > > > > action is ignored. If you want to enabled the > > > > back-button > > > > you simple have to remove the > > > > <aspect type="action-counter"/> > > > > from the <event-aspects> configuration in the > > > > cocoon.xconf. > > > > > > > > HTH > > > > Carsten > > > > > > > > > > > > > ===== > > > Alex Romayev > > > Software Architect > > > http://www.romayev.com > > > [EMAIL PROTECTED] > > > > > > ===== > > Alex Romayev > > Software Architect > > http://www.romayev.com > > [EMAIL PROTECTED] > > ===== Alex Romayev Software Architect http://www.romayev.com [EMAIL PROTECTED]
