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-94f89814c4dfmaster
parent
070b43f9fd
commit
85885a777e
|
|
@ -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;
|
||||
|
||||
|
|
|
|||
|
|
@ -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());
|
||||
|
|
|
|||
Loading…
Reference in New Issue