From 2dcca10ec0f4f02d61dce8154728bf0c6e0d0898 Mon Sep 17 00:00:00 2001 From: jensp Date: Sat, 8 Oct 2011 14:29:58 +0000 Subject: [PATCH] =?UTF-8?q?PublicPersonalProfile:=20-=20Breadcrumbs=20werd?= =?UTF-8?q?en=20in=20den=20pers=C3=B6nlichen=20Profilen=20jetzt=20ausgegeb?= =?UTF-8?q?en=20-=20Die=20Anzeige=20des=20Links=20auf=20die=20Startseite?= =?UTF-8?q?=20in=20der=20Navigation=20eines=20Profils=20kann=20jetzt=20per?= =?UTF-8?q?=20Konfiguration=20deaktiviert=20werden?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit git-svn-id: https://svn.libreccm.org/ccm/trunk@1152 8810af33-2d31-482b-a856-94f89814c4df --- .../PublicPersonalProfileXmlUtil.java | 69 ++++++++++++------- .../PublicPersonalProfileConfig.java | 13 +++- ...PersonalProfileConfig_parameter.properties | 5 ++ 3 files changed, 63 insertions(+), 24 deletions(-) diff --git a/ccm-cms-publicpersonalprofile/src/com/arsdigita/cms/contenttypes/PublicPersonalProfileXmlUtil.java b/ccm-cms-publicpersonalprofile/src/com/arsdigita/cms/contenttypes/PublicPersonalProfileXmlUtil.java index dd0de681d..1e3f6efd9 100644 --- a/ccm-cms-publicpersonalprofile/src/com/arsdigita/cms/contenttypes/PublicPersonalProfileXmlUtil.java +++ b/ccm-cms-publicpersonalprofile/src/com/arsdigita/cms/contenttypes/PublicPersonalProfileXmlUtil.java @@ -17,7 +17,8 @@ import java.util.Map; public class PublicPersonalProfileXmlUtil { private final com.arsdigita.cms.publicpersonalprofile.PublicPersonalProfileConfig config = - PublicPersonalProfileConfig.getConfig(); + PublicPersonalProfileConfig. + getConfig(); public void createNavigation(final PublicPersonalProfile profile, final Element root, @@ -39,7 +40,7 @@ public class PublicPersonalProfileXmlUtil { continue; } } - + String appUrl = null; if (previewMode) { appUrl = String.format("%s/ccm%s/preview", prefix, appPath); @@ -71,28 +72,31 @@ public class PublicPersonalProfileXmlUtil { profile.getProfileUrl())); } - Element navHome = - navList.newChildElement("nav:category", - "http://ccm.redhat.com/london/navigation"); - navHome.addAttribute("AbstractTree", "AbstractTree"); - navHome.addAttribute("description", ""); - navHome.addAttribute("id", profile.getID().toString()); - if (navPath == null) { - navHome.addAttribute("isSelected", "true"); - } else { - navHome.addAttribute("isSelected", "false"); + if (config.getShowHomeNavEntry()) { + Element navHome = + navList.newChildElement("nav:category", + "http://ccm.redhat.com/london/navigation"); + navHome.addAttribute("AbstractTree", "AbstractTree"); + navHome.addAttribute("description", ""); + navHome.addAttribute("id", profile.getID().toString()); + if (navPath == null) { + navHome.addAttribute("isSelected", "true"); + } else { + navHome.addAttribute("isSelected", "false"); + } + navHome.addAttribute("sortKey", ""); + String homeLabel = homeLabels.get(DispatcherHelper. + getNegotiatedLocale(). + getLanguage()); + if (homeLabel == null) { + navHome.addAttribute("title", "Home"); + } else { + navHome.addAttribute("title", homeLabel); + } + navHome.addAttribute("url", String.format("%s/%s", + appUrl, + profile.getProfileUrl())); } - navHome.addAttribute("sortKey", ""); - String homeLabel = homeLabels.get(DispatcherHelper.getNegotiatedLocale(). - getLanguage()); - if (homeLabel == null) { - navHome.addAttribute("title", "Home"); - } else { - navHome.addAttribute("title", homeLabel); - } - navHome.addAttribute("url", String.format("%s/%s", - appUrl, - profile.getProfileUrl())); //Get the available Navigation items PublicPersonalProfileNavItemCollection navItems = @@ -107,6 +111,16 @@ public class PublicPersonalProfileXmlUtil { navItemMap.put(navItem.getKey(), navItem); } + final Element pathElem = + root.newChildElement("nav:categoryPath", + "http://ccm.redhat.com/london/navigation"); + final Element homeElem = + pathElem.newChildElement("nav:category", + "http://ccm.redhat.com/london/navigation"); + homeElem.addAttribute("url", String.format("%s/%s", + appUrl, + profile.getProfileUrl())); + //Get the related links of the profiles DataCollection links = RelatedLink.getRelatedLinks(profile, @@ -134,6 +148,15 @@ public class PublicPersonalProfileXmlUtil { //navHome.addAttribute("id", ""); if ((navPath != null) && navPath.equals(navLinkKey)) { navElem.addAttribute("isSelected", "true"); + final Element currentPathElem = + pathElem.newChildElement("nav:category", + "http://ccm.redhat.com/london/navigation"); + currentPathElem.addAttribute("title", navItem.getLabel()); + currentPathElem.addAttribute("url", + String.format("%s/%s/%s", + appUrl, + profile.getProfileUrl(), + navLinkKey)); } else { navElem.addAttribute("isSelected", "false"); } diff --git a/ccm-cms-publicpersonalprofile/src/com/arsdigita/cms/publicpersonalprofile/PublicPersonalProfileConfig.java b/ccm-cms-publicpersonalprofile/src/com/arsdigita/cms/publicpersonalprofile/PublicPersonalProfileConfig.java index 6547d366f..0be4978e1 100644 --- a/ccm-cms-publicpersonalprofile/src/com/arsdigita/cms/publicpersonalprofile/PublicPersonalProfileConfig.java +++ b/ccm-cms-publicpersonalprofile/src/com/arsdigita/cms/publicpersonalprofile/PublicPersonalProfileConfig.java @@ -15,6 +15,7 @@ public class PublicPersonalProfileConfig extends AbstractConfig { private final static PublicPersonalProfileConfig config = new PublicPersonalProfileConfig(); private final Parameter personType; private final Parameter embedded; + private final Parameter showHomeNavEntry; private final Parameter homeNavItemLabels; private final Parameter showPersonInfoEverywhere; // private final Parameter contactType; @@ -35,6 +36,11 @@ public class PublicPersonalProfileConfig extends AbstractConfig { Parameter.REQUIRED, false); + showHomeNavEntry = new BooleanParameter( + "com.arsdigita.cms.publicpersonalprofile.showHomeNavEntry", + Parameter.REQUIRED, + true); + homeNavItemLabels = new StringParameter( "com.arsdigita.cms.publicpersonalprofile.navitem.home.labels", Parameter.REQUIRED, @@ -50,9 +56,10 @@ public class PublicPersonalProfileConfig extends AbstractConfig { "com.arsdigita.cms.publicpersonalprofile.contactType", Parameter.REQUIRED, "commonContact");*/ - + register(personType); register(embedded); + register(showHomeNavEntry); register(homeNavItemLabels); register(showPersonInfoEverywhere); // register(contactType); @@ -68,6 +75,10 @@ public class PublicPersonalProfileConfig extends AbstractConfig { return (Boolean) get(embedded); } + public final boolean getShowHomeNavEntry() { + return (Boolean) get(showHomeNavEntry); + } + public final String getHomeNavItemLabels() { return (String) get(homeNavItemLabels); } diff --git a/ccm-cms-publicpersonalprofile/src/com/arsdigita/cms/publicpersonalprofile/PublicPersonalProfileConfig_parameter.properties b/ccm-cms-publicpersonalprofile/src/com/arsdigita/cms/publicpersonalprofile/PublicPersonalProfileConfig_parameter.properties index c8c4fc27d..ba25f1af6 100644 --- a/ccm-cms-publicpersonalprofile/src/com/arsdigita/cms/publicpersonalprofile/PublicPersonalProfileConfig_parameter.properties +++ b/ccm-cms-publicpersonalprofile/src/com/arsdigita/cms/publicpersonalprofile/PublicPersonalProfileConfig_parameter.properties @@ -8,6 +8,11 @@ com.arsdigita.cms.publicpersonalprofile.embedded.purpose = If set the true the p com.arsdigita.cms.publicpersonalprofile.embedded.example = false com.arsdigita.cms.publicpersonalprofile.embedded.format = [Boolean] +com.arsdigita.cms.publicpersonalprofile.showHomeNavEntry.title = Show home navigation entry +com.arsdigita.cms.publicpersonalprofile.showHomeNavEntry.purpose = Decides whether to show the home navigation entry. +com.arsdigita.cms.publicpersonalprofile.showHomeNavEntry.example = true +com.arsdigita.cms.publicpersonalprofile.showHomeNavEntry.format = [Boolean] + com.arsdigita.cms.publicpersonalprofile.navitem.home.labels.title = The labels for the home link of a profile com.arsdigita.cms.publicpersonalprofile.navitem.home.labels.purpose = The labels for the home link of a profile com.arsdigita.cms.publicpersonalprofile.navitem.home.labels.example = en:Home,de:Start