You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@cocoon.apache.org by bu...@apache.org on 2005/05/08 09:52:29 UTC

DO NOT REPLY [Bug 34802] New: - PageLabelLinkService genereate wrong url when using 3 layer tab combine showallnav.

DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG�
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
<http://issues.apache.org/bugzilla/show_bug.cgi?id=34802>.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND�
INSERTED IN THE BUG DATABASE.

http://issues.apache.org/bugzilla/show_bug.cgi?id=34802

           Summary: PageLabelLinkService genereate wrong url when using 3
                    layer tab combine showallnav.
           Product: Cocoon 2
           Version: Current SVN 2.1
          Platform: Other
        OS/Version: other
            Status: NEW
          Severity: normal
          Priority: P2
         Component: blocks
        AssignedTo: dev@cocoon.apache.org
        ReportedBy: roy_huang@nbmgroup.com


I want portal using Windows-like menu,follow define in cocoon.xconf,I have 
define 3 tab like:
			<layout 
class="org.apache.cocoon.portal.layout.impl.CompositeLayoutImpl" item-
class="org.apache.cocoon.portal.layout.NamedItem" name="tab">
				<renderers default="tab">
					<renderer name="tab" />
				</renderers>
			</layout>
			<layout 
class="org.apache.cocoon.portal.layout.impl.CompositeLayoutImpl" item-
class="org.apache.cocoon.portal.layout.NamedItem" name="tab2">
				<renderers default="tab2">
					<renderer name="tab2" />
				</renderers>
			</layout>
			<layout 
class="org.apache.cocoon.portal.layout.impl.CompositeLayoutImpl" item-
class="org.apache.cocoon.portal.layout.NamedItem" name="tab3">
				<renderers default="tab3">
					<renderer name="tab3" />
				</renderers>
			</layout>
and 
		<renderer 
class="org.apache.cocoon.portal.layout.renderer.impl.AspectRenderer" 
logger="portal" name="tab">
			<aspects>
				<aspect type="xslt">
					<parameter name="style" value="{portal-
skin:skin.basepath}/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" />
					<parameter name="child-tag-name" 
value="tab2-layout" />
				</aspect>
			</aspects>
		</renderer>
		<renderer 
class="org.apache.cocoon.portal.layout.renderer.impl.AspectRenderer" 
logger="portal" name="tab2">
			<aspects>
				<aspect type="xslt">
					<parameter name="style" value="{portal-
skin:skin.basepath}/styles/tab2.xsl"/>
					
				</aspect>
				<aspect type="parameter">
					<!--parameter name="tag-name" 
value="tab-layout"/-->
					<parameter name="tag-name" value="tab2-
layout" />
				</aspect>
				<aspect type="history" />
				<aspect type="tab-content">
					<parameter name="root-tag" 
value="false" />
					<parameter name="store" 
value="session" />
					<parameter name="child-tag-name" 
value="tab3-layout" />
				</aspect>
			</aspects>
		</renderer>
		<renderer 
class="org.apache.cocoon.portal.layout.renderer.impl.AspectRenderer" 
logger="portal" name="tab3">
			<aspects>
				<aspect type="xslt">
					<parameter name="style" value="{portal-
skin:skin.basepath}/styles/tab3.xsl"/>
				</aspect>
				<aspect type="parameter">
					<!--parameter name="tag-name" 
value="tab-layout"/-->
					<parameter name="tag-name" value="tab3-
layout" />
				</aspect>
				<aspect type="history" />
				<aspect type="tab-content">
					<parameter name="root-tag" 
value="false" />
					<parameter name="store" 
value="session" />
				</aspect>
			</aspects>
		</renderer>

I use 3 layer menu,like 
1 1.1 1.1.1 2 2.1 2.1.1 ...
If the first layer isn't selected,all's fine.
But if the first layer is selected,for example:
current selected tab is 2.1.1
then 2.1.2 is ok
but 2.2.1 is wrong,it's url is:
http://localhost:8080/v2/dev/portal?pageLabel=2.1
missing the first layer 2.
I studied the source PageLableLinkService.java in current SVN,line 166,change
    value.append(((NamedItem)item).getName());
to:
                    if(value.length()>0)
                    	value.append(((NamedItem)item).getName());
                    else{
                        StringBuffer key = new StringBuffer("");
                	getKey(item, key);
                	value.append(key.toString());
                    }
can solve this problem.Please check it out and find if there a better solution.

-- 
Configure bugmail: http://issues.apache.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.