It is now possible to enable language independent items for specific objects lists
git-svn-id: https://svn.libreccm.org/ccm/trunk@4478 8810af33-2d31-482b-a856-94f89814c4dfmaster
parent
bdc3b33151
commit
0004054b52
|
|
@ -186,7 +186,7 @@ public class SimpleXMLGenerator implements XMLGenerator {
|
|||
|
||||
for(String language : languages) {
|
||||
final Element langElem = availableLangsElem.newChildElement("language");
|
||||
langElem.setText(language);
|
||||
langElem.addAttribute("locale", language);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -20,6 +20,7 @@ package com.arsdigita.navigation;
|
|||
import com.arsdigita.bebop.PageState;
|
||||
import com.arsdigita.categorization.Categorization;
|
||||
import com.arsdigita.categorization.Category;
|
||||
import com.arsdigita.cms.ContentBundle;
|
||||
import com.arsdigita.cms.ContentItem;
|
||||
import com.arsdigita.cms.dispatcher.ItemResolver;
|
||||
import com.arsdigita.cms.dispatcher.SimpleXMLGenerator;
|
||||
|
|
@ -30,6 +31,7 @@ import com.arsdigita.kernel.Party;
|
|||
import com.arsdigita.kernel.permissions.PermissionDescriptor;
|
||||
import com.arsdigita.kernel.permissions.PermissionService;
|
||||
import com.arsdigita.kernel.permissions.PrivilegeDescriptor;
|
||||
import com.arsdigita.globalization.GlobalizationHelper;
|
||||
import com.arsdigita.persistence.DataAssociation;
|
||||
import com.arsdigita.persistence.DataAssociationCursor;
|
||||
import com.arsdigita.persistence.DataCollection;
|
||||
|
|
@ -46,6 +48,7 @@ import com.arsdigita.xml.Element;
|
|||
import java.text.DateFormat;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Calendar;
|
||||
import java.util.Collection;
|
||||
import java.util.Date;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
|
|
@ -302,6 +305,7 @@ public class DataCollectionRenderer extends LockableImpl {
|
|||
|
||||
protected String getStableURL(final DataObject dobj, final ACSObject obj) {
|
||||
final OID oid = new OID((String) dobj.get(ACSObject.OBJECT_TYPE), dobj.get(ACSObject.ID));
|
||||
|
||||
return Navigation.redirectURL(oid);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -36,6 +36,8 @@ import com.arsdigita.navigation.Navigation;
|
|||
import com.arsdigita.persistence.DataObject;
|
||||
import com.arsdigita.persistence.OID;
|
||||
import com.arsdigita.xml.Element;
|
||||
import com.arsdigita.web.ParameterMap;
|
||||
import com.arsdigita.globalization.GlobalizationHelper;
|
||||
|
||||
public class CMSDataCollectionRenderer extends DataCollectionRenderer {
|
||||
|
||||
|
|
@ -60,6 +62,18 @@ public class CMSDataCollectionRenderer extends DataCollectionRenderer {
|
|||
}
|
||||
if (obj instanceof ContentItem) {
|
||||
OID oid = ((ContentItem) obj).getDraftVersion().getOID();
|
||||
|
||||
/*final String language = (String) ((ContentItem)obj).get("language");
|
||||
if (!Kernel.getConfig().languageIndependentItems()
|
||||
&& !language.equals(GlobalizationHelper.getNegotiatedLocale().toString())) {
|
||||
final ParameterMap parameters = new ParameterMap();
|
||||
parameters.setParameter("lang", language);
|
||||
|
||||
return Navigation.redirectURL(oid, parameters);
|
||||
}*/
|
||||
|
||||
|
||||
|
||||
return Navigation.redirectURL(oid);
|
||||
}
|
||||
return super.getStableURL(dobj, obj);
|
||||
|
|
|
|||
|
|
@ -41,6 +41,7 @@ public abstract class AbstractObjectList
|
|||
|
||||
private DataCollectionRenderer m_renderer = new DataCollectionRenderer();
|
||||
private DataCollectionDefinition m_definition = new DataCollectionDefinition();
|
||||
private boolean m_languageIndependent = false;
|
||||
|
||||
public final void setDefinition(DataCollectionDefinition definition) {
|
||||
Assert.isUnlocked(this);
|
||||
|
|
@ -52,6 +53,10 @@ public abstract class AbstractObjectList
|
|||
m_renderer = renderer;
|
||||
}
|
||||
|
||||
public final void setLanguageIndependent(final boolean value) {
|
||||
m_languageIndependent = value;
|
||||
}
|
||||
|
||||
public final DataCollectionDefinition getDefinition() {
|
||||
return m_definition;
|
||||
}
|
||||
|
|
@ -60,6 +65,10 @@ public abstract class AbstractObjectList
|
|||
return m_renderer;
|
||||
}
|
||||
|
||||
public final boolean isLanguageIndependent() {
|
||||
return m_languageIndependent;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get a list of objects from the database which meet a set criteria or
|
||||
* null if the requested object type is invalid
|
||||
|
|
@ -113,7 +122,8 @@ public abstract class AbstractObjectList
|
|||
// Quasimodo: Begin
|
||||
// Limit list to objects in the negotiated language and language invariant items
|
||||
if (objects != null && objects.size() > 0) {
|
||||
if (Kernel.getConfig().languageIndependentItems()) {
|
||||
if (Kernel.getConfig().languageIndependentItems()
|
||||
|| m_languageIndependent) {
|
||||
FilterFactory ff = objects.getFilterFactory();
|
||||
Filter filter = ff.or().
|
||||
addFilter(ff.equals("language", com.arsdigita.globalization.GlobalizationHelper.
|
||||
|
|
|
|||
|
|
@ -134,7 +134,7 @@ public class GreetingItem extends AbstractComponent {
|
|||
final Element availableLangsElem = content.newChildElement("availableLanguages");
|
||||
for(String language : languages) {
|
||||
final Element langElem = availableLangsElem.newChildElement("language");
|
||||
langElem.setText(language);
|
||||
langElem.addAttribute("locale", language);
|
||||
}
|
||||
|
||||
if (baseItem instanceof XMLGenerator) {
|
||||
|
|
|
|||
Loading…
Reference in New Issue