Sprachunabhängige ContentItems

* AbstractObjectList: Anzeige korrigiert, sollte nun in Ordnung sein.

git-svn-id: https://svn.libreccm.org/ccm/trunk@1187 8810af33-2d31-482b-a856-94f89814c4df
master
quasi 2011-10-22 08:27:05 +00:00
parent 070b43f9fd
commit 85885a777e
2 changed files with 21 additions and 1 deletions

View File

@ -6,6 +6,23 @@ object type Navigation extends Application {
reference key (nav_app.application_id);
}
// Subquery for AbstractObjectList used as a filter
// to figure out which object have a match in the
// selected languages and don't have to match to a
// language independent content item
query getParentIDsOfMatchedItems {
BigDecimal parent;
do {
select parent_id
from cms_items
where version = 'live'
and language = :language
} map {
parent = parent_id;
}
}
query ItemsByCategory {
BigDecimal itemID;

View File

@ -101,7 +101,10 @@ public abstract class AbstractObjectList
FilterFactory ff = objects.getFilterFactory();
Filter filter = ff.or().
addFilter(ff.equals("language", com.arsdigita.globalization.GlobalizationHelper.getNegotiatedLocale().getLanguage())).
addFilter(ff.equals("language", GlobalizationHelper.LANG_INDEPENDENT));
addFilter(ff.and().
addFilter(ff.equals("language", GlobalizationHelper.LANG_INDEPENDENT)).
addFilter(ff.notIn("parent", "com.arsdigita.london.navigation.getParentIDsOfMatchedItems")
.set("language", com.arsdigita.globalization.GlobalizationHelper.getNegotiatedLocale().getLanguage())));
objects.addFilter(filter);
} else {
objects.addEqualsFilter("language", com.arsdigita.globalization.GlobalizationHelper.getNegotiatedLocale().getLanguage());