Res: drop-down menu help

"Thiago Reis - InterFactory" <[email protected]>
Newsgroups gmane.comp.cms.jahia.template
Message-ID <000001c646c0$0a3098e0$320000ac@interdomain>
Hi Ghislain thanks for your support but I didn’t get it yet. When you
say add an action menu with API in the include/main_menu.inc like my
left_menu.inc  I sent to you an attachment file with my main_menu.inc.
Tried but no success.
 
 
Thanks a lot.
 
Thiago Reis
System Analyst
InterFactory
Phone: 55(11) 3868 3402 - ext: 15
 
-----Original Message-----
From: Ghislain CUSSONNEAU [mailto:[email protected]] 
Sent: sábado, 11 de março de 2006 00:00
To: [email protected]
Subject: Re: FW: drop-down menu help
 
Yes you can ! Just add an action menu with API in the
include/main_menu.inc file like in include/left_menu.inc like this
(extract from getPageSubTree method) :
JahiaContainerList  linksContainerList =
jData.containers().getAbsoluteContainerList( "linkContainer",
currentPageID );
...
Enumeration linksContainerEnum = linksContainerList.getContainers();
while (linksContainerEnum.hasMoreElements()) {
    JahiaContainer linksContainer = (JahiaContainer)
linksContainerEnum.nextElement();
    ..
    ContainerBean linksContainerBean = new
ContainerBean(linksContainer,jData.params());
    jData.gui().html().drawBeginActionMenu(linksContainerBean, null,
null, false, "", "jahiatemplates.Corporate_portal_templates", null,
out);
    ...
}
Regards,
Ghislain                    
  _____  

Hi,
 
I’m new on Jahia template development, and I’m facing some problems with
the drop-down menus. I read that they are created automatically when you
create a menu on a given page, for example, when you add left-nav menu
items, the drop-down menu will be populated. But my layout design
doesn’t support a left nav menus so I need my drop-down menus include
without the let-nav menus. I tried to look up at the site map and I was
allowed just to delete and update. Would be nice if I could create
drop-down menus in the sitemap or anyway without left-nav.
 
Thanks a lot,
Att,
 
Thiago Reis
System Analyst
InterFactory
Phone: 55(11) 3868 3402 - ext: 15
 
 
  _____
main_menu.inc (text/plain, 12.8 KB)
<content:declareContainerList name="topMenu"
    title="Top Menu"
    titleKey="topMenu"
    bundleKey="<%=resBundleID%>"
>
    <content:declareContainer>
        <content:declareField name="topLink"
            title="Top Link"
            titleKey="topLink"
            bundleKey="<%=resBundleID%>"
            type="Page"
        />
        <content:declareField name="colorSet"
            title="Color set"
            titleKey="colorSet"
            bundleKey="<%=resBundleID%>"
            type="SharedSmallText"
            value='<%="<jahia_multivalue[blue:green:orange:red]>" + defaultColorSet%>'
        />
    </content:declareContainer>
</content:declareContainerList>
<%
boolean enablePopup = true;
if ("false".equals(pageContext.findAttribute("displayDropMenu"))) {
    enablePopup = false;
}
enablePopup = enablePopup && (! isNS4(request));
int menuCount = 0;
StringBuffer callJs = new StringBuffer("<script language=\"javascript\" type=\"text/JavaScript\"><!--\n");
StringBuffer div = new StringBuffer();
%>
<table width="<bean:write name="pageWidth" filter="false"/>" border="0" cellspacing="0" cellpadding="0" class="maintable">
<tr>
    <logic:present name="currentSite" property="homePage">
        <td id="menu0" class="topmenu<jahia:ifIsHomePage>on</jahia:ifIsHomePage><%=colorSet%>" <jahia:ifIsNotHomePage>onmouseover="javascript:topOn<%=colorSet%>('menu0');" onmouseout="javascript:topOff('menu0');"</jahia:ifIsNotHomePage>>

            <a href="<bean:write name='currentSite' property='homePage.url' ignore='true'/>"><bean:write name='currentSite' property='homePage.title' filter='false' ignore='true'/></a>
            <jahia:ifIsHomePage>
                <jahia:ifPagePropertiesRights>
                    <jahia:pagePropertiesButton title="<img src=\"images/update.gif\" width=\"11\" height=\"11\" border=\"0\" alt=\"Update Home\">"/>
                </jahia:ifPagePropertiesRights>
            </jahia:ifIsHomePage>
            <%
              // here we add a cross reference, because the home page will be displayed on all the pages that use this template.
              // and we want to make sure that the pages' HTML cache is flushed when the home page title changes.
              if (jData.gui().getContentHomePage().getID() != jData.params().getPageID()) {
                  org.jahia.content.ContentPageXRefManager.getInstance().setPageID(jData.gui().getContentHomePage().getID(), jData.params().getPageID());
              }
            %>
        </td>
    </logic:present>
    <content:absoluteContainerList name="topMenu" id="topMenu" pageLevel="1">
        <%
        String homePageTitle = TextHtml.text2html(jData.gui().getContentHomePage().getTitle(jData.params()));
        if (homePageTitle==null){
        	homePageTitle ="";
        }
        %>
        <content:container id="topMenuContainer">
            <content:pageField valueId="topLink" name="topLink"/>
            <content:sharedLangTextField valueId="myColorSet" name="colorSet" defaultValue="<%=colorSet%>" display="false"/>
            <logic:empty name="topLink">
                <logic:equal name="currentRequest" property="editMode" value="true">
                    <td id="menu<%=menuCount%>" class="topmenu<bean:write name="myColorSet"/>">
                        <span style="color:#ff0000;"><content:resourceBundle
                    	    resourceBundle="jahiatemplates.Corporate_portal_templates" resourceName="noPage"
                    	    defaultValue="No page"/></span>
                        <jahiaHtml:actionMenu name="topMenuContainer" namePostFix="" resourceBundle="jahiatemplates.Corporate_portal_templates" useFieldSet="false">
                        </jahiaHtml:actionMenu>
        			</td>
                </logic:equal>
            </logic:empty>
            <logic:notEmpty name="topLink">
                <logic:notEqual name="topLink" property="inCurrentPagePath" value="true">
                    <bean:define id="classpath" value="topmenu"/>
                </logic:notEqual>
                <logic:equal name="topLink" property="inCurrentPagePath" value="true">
                    <bean:define id="classpath" value="topmenuon"/>
                </logic:equal>
                <%
                PageBean topLinkBean = (PageBean) pageContext.findAttribute("topLink");
                JahiaPage topLink = topLinkBean.getJahiaPage();
                String myColorSet = (String) pageContext.findAttribute("myColorSet");
                %>
                <logic:notEmpty name="topLink" property="title">
                    <%
                    menuCount++;
                    String onmouseover = "";
                    String onmouseout = "";
                    if (enablePopup) {
                        onmouseover += "ypSlideOutMenu.showMenu('menu" + menuCount + "');";
                        onmouseout += "ypSlideOutMenu.hideMenu('menu" + menuCount + "');";
                    }
                    if ( ! jData.gui().isPageInPath(topLink.getID()) ){
                        onmouseover += "topOn" + myColorSet + "('menu" + menuCount + "');";
                        onmouseout += "topOff('menu" + menuCount + "');";
                    }
                    boolean isRemoteLink =
                        (topLinkBean.getType() == PageInfoInterface.TYPE_URL) ||
                        (topLinkBean.getType() == PageInfoInterface.TYPE_LINK );
        			%>
                    <td id="menu<%=menuCount%>" class="<bean:write name="classpath"/><bean:write name="myColorSet"/>">
                    	<a href="<bean:write name='topLink' property='url'/>"<%
                        	if (! "".equals(onmouseover)) {
                                %> onmouseover="<%=onmouseover%>"<%
                        	}
                        	if (! "".equals(onmouseout)) {
                                %> onmouseout="<%=onmouseout%>"<%
                        	}
                        	%>><%
                            if (isRemoteLink) {
                                %><img src="<%=theURL%>/images/<%=topLinkBean.getType() == PageInfoInterface.TYPE_URL ? "remote" : "local"%>.gif" border="0" width="9" height="9"/><%
                            }
                            %><bean:write name="topLink" property="title" filter="false"/>
                        	<logic:empty name="topLink" property="title"><span style="color:#ff0000;"><content:resourceBundle
                        	    resourceBundle="jahiatemplates.Corporate_portal_templates" resourceName="noTitle"
                        	    defaultValue="No title"/></span></logic:empty>
                        </a>
                        <jahiaHtml:actionMenu name="topMenuContainer" namePostFix="" resourceBundle="jahiatemplates.Corporate_portal_templates" useFieldSet="false">
                        </jahiaHtml:actionMenu>
        			</td>
                </logic:notEmpty>
                <logic:empty name="topLink" property="title">
                    <logic:equal name="currentRequest" property="editMode" value="true">
                        <%menuCount++;%>
                        <td id="menu<%=menuCount%>" class="topmenu<bean:write name="myColorSet"/>">
                            <a href="<bean:write name='topLink' property='url'/>" style="color:#ff0000;"><content:resourceBundle
                        	    resourceBundle="jahiatemplates.Corporate_portal_templates" resourceName="noTitle"
                        	    defaultValue="No title"/></a>
                            <jahiaHtml:actionMenu name="topMenuContainer" namePostFix="" resourceBundle="jahiatemplates.Corporate_portal_templates" useFieldSet="false">
                            </jahiaHtml:actionMenu>
            			</td>
                    </logic:equal>
                </logic:empty>
                    <%
                    if (enablePopup && topLink != null){
                        div.append("<div id=\"menu").append(menuCount).append("Container\">\n");
                        div.append("<table onmouseover=\"topOn" + myColorSet + "('menu" + menuCount + "');\" ");
                        div.append("onmouseout=\"topOff('menu" + menuCount + "');\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n");
                        div.append("<tr valign=\"top\">\n");
                        div.append("    <td nowrap=\"nowrap\">\n");
                        div.append("        <div id=\"menu").append(menuCount).append("Content\" class=\"menu" + myColorSet + "\">\n");
                        div.append("            <div class=\"options" + myColorSet + "\">\n");

                        int subMenuCount = 0;
                        int subMenuWidth = 0;
                        JahiaContainerList linkContainerList = jData.containers().getAbsoluteContainerList( "linkContainer", topLink.getID() );
                        if (linkContainerList != null) {
                            Enumeration myContainerList = linkContainerList.getContainers();
                            while (myContainerList.hasMoreElements()) {
                                JahiaContainer myContainer = (JahiaContainer) myContainerList.nextElement();
                                JahiaPage myLink = (JahiaPage) myContainer.getFieldObject( "link" );
                                if (myLink != null){
                                    subMenuCount++;
                                    boolean isRemoteLink =
                                        (myLink.getPageType() == PageInfoInterface.TYPE_URL) ||
                                        (myLink.getPageType() == PageInfoInterface.TYPE_LINK );
                                    div.append("                <a href=\"").append(myLink.getURL(jData.params())).append("\">");
                                    if (isRemoteLink) {
                                        String p = myLink.getPageType() == PageInfoInterface.TYPE_URL ? "remote" : "local";
                                        div.append("<span class='"+p+"'>");
                                    }
                                    div.append(myLink.getTitle());
                                    if (isRemoteLink) {
                                        div.append("</span>");
                                    }
                                    div.append("</a>\n");
                                    if (myLink.getTitle() != null) {
                                        int w = myLink.getTitle().length() * 6 + 30;
                                        if (w > subMenuWidth) {
                                            subMenuWidth = w;
                                        }
                                    }
                                }
                            }
                        }
                        div.append("            </div>\n");
                        div.append("        </div>\n");
                        div.append("    </td>\n");
                        div.append("</tr>\n");
                        div.append("</table>\n");
                        div.append("</div>\n");

                        callJs.append("new ypSlideOutMenu(\"menu").append(menuCount);
                        callJs.append("\", \"down\", ");
                        callJs.append( "getX('menu" + menuCount + "')" ); // left
                        callJs.append(", ");
                        callJs.append( "getY('menu" + menuCount + "')" ); // top
                        callJs.append(", " + subMenuWidth + ", ");  // width
                        callJs.append(subMenuCount * 50);  //heigh
                        callJs.append(");\n");

                    }
                    %>

            </logic:notEmpty>
        </content:container>



        <logic:equal name="topMenu" property="actionURIsEmpty" value="false">
            <td class="topmenubuttons">
                <jahiaHtml:actionMenu name="topMenu" namePostFix="" resourceBundle="jahiatemplates.Corporate_portal_templates"
                    useFieldSet="false" actionIcon='<%=theURL + "/images/add.gif"%>'>
                </jahiaHtml:actionMenu>
            </td>
        </logic:equal>


    </content:absoluteContainerList>

    <%
    if (! jData.gui().isLogged()){
        %><td width="100%" align="right"
              class="topmenubuttons"><a
              href="javascript:<%=jData.gui().html().drawLoginLauncher()%>"><jahia:resourceBundle
              resourceBundle="jahiatemplates.Corporate_portal_templates" resourceName="login" defaultValue="login"/></a><img
              src="<%=theURL%>/images/pix.gif" alt="" width="1" height="21"/>&nbsp;|&nbsp;<a
              href="<%=jData.gui().html().drawNewUserRegistrationLauncher()%>"><jahia:resourceBundle
              resourceBundle="jahiatemplates.Corporate_portal_templates" resourceName="register" defaultValue="register"/>&nbsp;</td><%
    } else {
        %><td width="100%" class="topmenubg"><img src="<%=theURL%>/images/pix.gif" alt="" width="1" height="21"/>&nbsp;</td><%
    }
    %>
</tr>
</table>
<%
callJs.append("\n-->\n</script>");
if (enablePopup){
    %>
    <%=callJs.toString()%>
    <%=div.toString()%>
    <%
}
%>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.