The XML of ContentPanel and GreetingItem now includes the languages in which an content item is available

git-svn-id: https://svn.libreccm.org/ccm/trunk@4474 8810af33-2d31-482b-a856-94f89814c4df
master
jensp 2016-12-14 10:33:23 +00:00
parent 31376f323d
commit c7f8494b90
2 changed files with 38 additions and 12 deletions

View File

@ -18,9 +18,11 @@
*/ */
package com.arsdigita.cms.dispatcher; package com.arsdigita.cms.dispatcher;
import com.arsdigita.bebop.PageState; import com.arsdigita.bebop.PageState;
import com.arsdigita.cms.CMS; import com.arsdigita.cms.CMS;
import com.arsdigita.cms.CMSConfig; import com.arsdigita.cms.CMSConfig;
import com.arsdigita.cms.ContentBundle;
import com.arsdigita.cms.ContentItem; import com.arsdigita.cms.ContentItem;
import com.arsdigita.cms.ContentItemXMLRenderer; import com.arsdigita.cms.ContentItemXMLRenderer;
import com.arsdigita.cms.ExtraXMLGenerator; import com.arsdigita.cms.ExtraXMLGenerator;
@ -32,6 +34,7 @@ import com.arsdigita.domain.DataObjectNotFoundException;
import com.arsdigita.domain.DomainObjectFactory; import com.arsdigita.domain.DomainObjectFactory;
import com.arsdigita.domain.DomainObjectTraversal; import com.arsdigita.domain.DomainObjectTraversal;
import com.arsdigita.domain.SimpleDomainObjectTraversalAdapter; import com.arsdigita.domain.SimpleDomainObjectTraversalAdapter;
import com.arsdigita.kernel.ACSObject;
import com.arsdigita.kernel.Kernel; import com.arsdigita.kernel.Kernel;
import com.arsdigita.kernel.Party; import com.arsdigita.kernel.Party;
import com.arsdigita.kernel.permissions.PermissionDescriptor; import com.arsdigita.kernel.permissions.PermissionDescriptor;
@ -43,6 +46,7 @@ import com.arsdigita.persistence.metadata.Property;
import com.arsdigita.util.UncheckedWrapperException; import com.arsdigita.util.UncheckedWrapperException;
import com.arsdigita.xml.Element; import com.arsdigita.xml.Element;
import org.apache.log4j.Logger; import org.apache.log4j.Logger;
import java.util.Collection;
import java.util.Iterator; import java.util.Iterator;
import java.util.LinkedHashMap; import java.util.LinkedHashMap;
import java.util.Map; import java.util.Map;
@ -173,6 +177,21 @@ public class SimpleXMLGenerator implements XMLGenerator {
} }
} }
final ACSObject parentObj = item.getParent();
if (parentObj instanceof ContentBundle) {
final ContentBundle bundle = (ContentBundle) parentObj;
final Collection<String> languages = bundle.getLanguages();
final Element availableLangsElem = parent.newChildElement("availableLanguages");
for(String language : languages) {
final Element langElem = availableLangsElem.newChildElement("language");
langElem.setText(language);
}
}
// Implementing XMLGenerator directly is now deprecated // Implementing XMLGenerator directly is now deprecated
if (item instanceof XMLGenerator) { if (item instanceof XMLGenerator) {
s_log.info("Item implements XMLGenerator interface"); s_log.info("Item implements XMLGenerator interface");

View File

@ -18,6 +18,7 @@
package com.arsdigita.navigation.ui; package com.arsdigita.navigation.ui;
import com.arsdigita.bebop.PageState; import com.arsdigita.bebop.PageState;
import java.util.Collection;
import javax.servlet.ServletException; import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
@ -129,6 +130,12 @@ public class GreetingItem extends AbstractComponent {
baseItem = bundle.getPrimaryInstance(); baseItem = bundle.getPrimaryInstance();
} }
final Collection<String> languages = bundle.getLanguages();
final Element availableLangsElem = content.newChildElement("availableLanguages");
for(String language : languages) {
final Element langElem = availableLangsElem.newChildElement("language");
langElem.setText(language);
}
if (baseItem instanceof XMLGenerator) { if (baseItem instanceof XMLGenerator) {
final XMLGenerator generator = (XMLGenerator) baseItem; final XMLGenerator generator = (XMLGenerator) baseItem;