Verbessern Doku zu Struktur Installationsverzeichnis des Bundles.

git-svn-id: https://svn.libreccm.org/ccm/trunk@1632 8810af33-2d31-482b-a856-94f89814c4df
master
pb 2012-05-01 23:11:28 +00:00
parent d2b6b72f01
commit 763b831ba3
61 changed files with 1702 additions and 1479 deletions

View File

@ -1,4 +1,4 @@
# Devel bundle integration.properties
# APLAWS+ devel bundle integration.properties
#
waf.bebop.base_page=com.arsdigita.aplaws.ui.SimplePage
#
@ -14,7 +14,7 @@ waf.dispatcher.default_expiry=3600
;
waf.kernel.data_permission_check_enabled=false
waf.kernel.primary_user_identifier=email
; if you activate screen_name, forum loader doesn't work.
; if you activate screen_name, forum loader does not work.
; waf.kernel.primary_user_identifier=screen_name
waf.kernel.supported_languages=de,en
waf.kernel.language_independent_items=true
@ -39,6 +39,9 @@ waf.xml.xsl_transformer=xalan
waf.xml.activate_full_date_formatter=true
# ccm-cms parameters
# In order to create several content-section uncomment the line below and
# list the desired content section names
#com.arsdigita.cms.loader.section_names=generic,openccm,homepages
com.arsdigita.cms.category_authoring_add_form=com.arsdigita.aplaws.ui.ItemCategoryPicker
@ -70,6 +73,8 @@ com.arsdigita.cms.hide_udct_ui=true
com.arsdigita.cms.use_section_categories=false
com.arsdigita.cms.use_streamlined_creation=true
com.arsdigita.cms.image_browser.thumbnail_max_width=200
com.arsdigita.cms.image_browser.thumbnail_max_height=150
# ccm-cms-types-event parameters
com.arsdigita.cms.contenttypes.event.hide_cost=true
@ -106,11 +111,12 @@ com.arsdigita.navigation.category_menu_show_grand_children=false
; com.arsdigita.navigation.category_menu_show_nephews=false
com.arsdigita.navigation.default_cat_root_path=/navigation/
com.arsdigita.navigation.default_template=/templates/ccm-navigation/navigation/nav-default.jsp
com.arsdigita.navigation.templates_file=bundle/navigation/templates.txt
# ccm-ldn-search application
com.arsdigita.london.search.show_sponsored_links=true
; Comment this out or increase the num_of_threads iv you really use remote search
; Comment this out or increase the num_of_threads if you really use remote search
com.arsdigita.london.search.num_threads=0

View File

@ -39,9 +39,10 @@
<ccm:application name="ccm-cms-types-article"/>
<!-- Applications -->
<ccm:application name="ccm-atoz"/>
<ccm:application name="ccm-atoz"/> <!-- part of (default) theme -->
<ccm:application name="ccm-navigation"/>
<!-- ccm-portalworkspace depends on ccm-subsite -->
<!-- ccm-portalworkspace depends on ccm-subsite -
in class ui.PortletTypeForm -->
<ccm:application name="ccm-portalworkspace"/>
<ccm:application name="ccm-portalworkspace-homepage"/>
<ccm:application name="ccm-rssfeed"/>
@ -109,7 +110,6 @@
<ccm:application name="ccm-cms-types-organization"/>
<ccm:application name="ccm-cms-types-service"/>
<ccm:application name="ccm-cms-types-simpleaddress"/>
<!-- CHECK: Really part of extended? -->
<ccm:application name="ccm-cms-types-siteproxy"/>
<!-- Current code does not include any xsl templates,
neither it does not appear in content center -->

View File

@ -1,3 +1,3 @@
Subdirectory <cat> may optionally contain one or more local site specific
Subdirectory <categories> may optionally contain one or more local site specific
import xml files for Terms domain categories.

View File

@ -0,0 +1,4 @@
Subdirectory <navigation> may optionally contain a local site specific
text files describing additional jsp templates for navigation.
The template jsp files are stored in templates/ccm-navigation/navigation

View File

@ -1,9 +0,0 @@
ScientificCMS Default Items Page,Sci Default Navigation Index Page ordering items in ascending order,/templates/ccm-ldn-navigation/navigation/sci-default.jsp
ScientificCMS Recent Items Page,Sci List of items ordered with most recent first,/templates/ccm-ldn-navigation/navigation/sci-recent.jsp
ScientificCMS A-Z Items,Sci List of items paginated as A-Z,/templates/ccm-ldn-navigation/navigation/sci-atoz.jsp
ScientificCMS Events Page,Sci Events Page ordering events in ??? order,/templates/ccm-ldn-navigation/navigation/sci-events.jsp
ScientificCMS Portal Page,Sci Portal Page for embedding a portal page as navigation leaves page,/templates/ccm-ldn-navigation/navigation/sci-portal.jsp
ScientificCMS Portal Welcome Page,Sci Portal page meant as site welcome page,/templates/ccm-ldn-navigation/navigation/sci-portal-welcome.jsp
ScientificCMS Navigation Welcome Page,Sci site welcome page created by navigation root term,/templates/ccm-ldn-navigation/navigation/sci-welcome.jsp
ScientificCMS Specializing Items List,Sci Specialising List item page,/templates/ccm-ldn-navigation/navigation/SpecializingList.jsp
ScientificCMS Publications List,Sci publications listing page,/templates/ccm-ldn-navigation/navigation/SciPublicationList.jsp

View File

@ -1,3 +1,7 @@
Subdirectory <cat> may optionally contain one or more local site specific
import xml files for Terms domain categories.
Directory <res> will be available during installation by classloader. All
content has to be placed in a subdirectory, typically bundle. It can be
addressed as /bundle/[fileName|dirName]
EXAMPLE:
com.arsdigita.navigation.templates_file=bundle/navigation/templates.txt

View File

@ -1,3 +1,6 @@
The installation program copies all sub-directories and files in this directory
into the applications webapps subdirectory templates.
Subdirectory <navigation> may optionally contain navigation item templates for
navigation index pages which either overwrite or ammend those templates
which are default for ccm-ldn-aplaws and stored in
@ -9,4 +12,5 @@ to the default template files. In the later case a developer must
provide a customised template.txt file replacing the default file
/src/WEB-INF/navigation/templates.txt
This file must be specified in parameter
com.arsdigita.navigation.templates_file
com.arsdigita.navigation.templates_file
It usually stored in res/bundle/navigation

View File

@ -10,4 +10,4 @@ directory in its document (context) root.
It is the responsibility of developer / system integrator to ensure all files
are copied to the right location and the theme works with the modification. No
functionality or consistency check is perfordmed!
functionality or consistency check is performed!

View File

@ -19,14 +19,14 @@
package com.arsdigita.aplaws;
import com.arsdigita.categorization.Categorization;
import com.arsdigita.london.terms.TermCategoryListener;
import com.arsdigita.runtime.CompoundInitializer;
import com.arsdigita.runtime.ContextCloseEvent;
import com.arsdigita.runtime.DataInitEvent;
import com.arsdigita.runtime.DomainInitEvent;
import com.arsdigita.templating.PatternStylesheetResolver;
import com.arsdigita.london.terms.TermCategoryListener;
import org.apache.log4j.Logger;
import com.arsdigita.templating.PatternStylesheetResolver;
/**
* The APLAWS initializer.
@ -40,12 +40,7 @@ public class Initializer extends CompoundInitializer {
/**
* An empty implementation of {@link Initializer#init(DataInitEvent)}.
*/
@Override
public void init(DataInitEvent evt) {}
/**
* Package Implementation of {@link Initializer#init(DomainInitEvent)}.
*
* @param evt
*/
@ -60,12 +55,4 @@ public class Initializer extends CompoundInitializer {
new WebAppPatternGenerator()
);
}
/**
* An empty implementation of {@link Initializer#close()}.
*/
@Override
public void close(ContextCloseEvent evt) {}
}

View File

@ -276,21 +276,6 @@ public class Loader extends PackageLoader {
registerDomain(customNavKey, '/'+customNavPath+'/', null);
registerDomain(customNavKey, "/content/", customNavUseContext);
// Switch /portal/ to use 1 column layout for funky aplaws stuff.
// pboy: This will have no effect at all. A portal page created at
// url /portal/ (and beneath) will always use the homepage jsp's which
// are hardcoded to create a three column design and ignore any
// column configuration. All portal pages at other urls are not
// affect by this setting which touches only the one application (portal)
// at url /portal/. Portal pages at other urls use the corresponding
// configuration parameter for its initial value and number of columns
// may be modified at any time using configuration ui.
/*
Workspace portal = (Workspace)Application
.retrieveApplicationForPath("/portal/");
portal.setDefaultLayout(PageLayout
.findLayoutByFormat(PageLayout.FORMAT_ONE_COLUMN));
*/
}
public void registerServicesTemplate(String appURL) {
@ -330,9 +315,8 @@ public class Loader extends PackageLoader {
String appURL,
String context) {
if (s_log.isDebugEnabled()) {
s_log.debug("Mapping domain " + domainKey +
" to app " + appURL +
" in context " + context);
s_log.debug("Mapping domain " + domainKey + " to app " + appURL
+ " in context " + context);
}
/* Determine Domain and Application objects, both MUST exist! */

View File

@ -1,290 +0,0 @@
/*
* Copyright (C) 2001-2004 Red Hat Inc. All Rights Reserved.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public License
* as published by the Free Software Foundation; either version 2.1 of
* the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
package com.arsdigita.aplaws.ui;
import com.arsdigita.aplaws.Aplaws;
import com.arsdigita.bebop.SimpleContainer;
import com.arsdigita.bebop.PageState;
import com.arsdigita.bebop.parameters.StringParameter;
import com.arsdigita.bebop.parameters.BigDecimalParameter;
import com.arsdigita.bebop.event.ActionEvent;
import com.arsdigita.bebop.event.ActionListener;
// import com.arsdigita.bebop.form.Widget;
import com.arsdigita.persistence.SessionManager;
import com.arsdigita.persistence.DataCollection;
import com.arsdigita.domain.DomainCollection;
import com.arsdigita.domain.DomainObjectFactory;
import com.arsdigita.kernel.ACSObject;
import com.arsdigita.london.terms.Term;
import com.arsdigita.london.terms.Domain;
import com.arsdigita.categorization.ui.ACSObjectCategoryForm;
// unused imports
// import com.arsdigita.cms.ContentItem;
// import com.arsdigita.cms.CMS;
// import com.arsdigita.cms.ui.authoring.ItemCategoryForm;
import java.util.Collection;
import java.util.List;
import java.util.LinkedList;
import java.util.Iterator;
import org.apache.log4j.Logger;
// /////////////////////////////////////////////////////////////////////////////
// Has to be refactored to extend
// com.arsdigita.london.terms.ui.ACSObjectCategoryPicker and to
// overwrite the method lgclSelected(Domain domain, ACSObject object)
// to add the lgl / ANav stuff
// (which is not included in the c.ad.ldn.terms.ui version)
//
// Then ItemCategoryPicker should use this aplaws version.
// /////////////////////////////////////////////////////////////////////////////
/**
* abstracted from original version of ItemCategoryPicker r1297
* chris gilbert
*/
public abstract class ACSObjectCategoryPicker extends SimpleContainer {
private static final Logger s_log = Logger.getLogger(ACSObjectCategoryPicker.class);
private ACSObjectCategoryForm m_form;
private BigDecimalParameter m_root;
public ACSObjectCategoryPicker(BigDecimalParameter root,
StringParameter mode) {
m_form = getForm(root, mode);
m_root = root;
add(m_form);
m_form.addCompletionListener(new ItemCategoryFormCompletion());
}
protected abstract ACSObjectCategoryForm getForm(BigDecimalParameter root, StringParameter mode);
protected abstract ACSObject getObject(PageState state);
private class ItemCategoryFormCompletion implements ActionListener {
public void actionPerformed(ActionEvent ev) {
PageState state = ev.getPageState();
Domain domain = getDomain(state);
String domainKey = domain.getKey();
if (s_log.isDebugEnabled()) {
s_log.debug("Saving categories in: " + domainKey);
}
ACSObject object = getObject(state);
if ("LGCL".equals(domainKey)) {
lgclSelected(domain, object);
}
else if ("LGDL".equals(domainKey)) {
lgdlSelected(domain, object);
}
fireCompletionEvent(state);
}
private void lgclSelected(Domain domain, ACSObject object) {
List lgclTerms = getCurrentCategories(domain, object);
Domain gcl = Domain.retrieve("GCL");
Collection gclTerms = getRelatedTerms(lgclTerms, gcl);
clearTerms(gcl, object);
assignTerms(gclTerms, object);
// The assignment below is removed to satisfy requirement 4.1,
// use case 1 of the document "Metadata Improvements" version 1
// by Camden, dated 23/01/05.
//Domain lgsl = Domain.retrieve("LGSL");
//Collection lgslTerms = getRelatedTerms(lgclTerms, lgsl);
//clearTerms(lgsl, object);
//assignTerms(lgslTerms, object);
// adding processing or mapping from LGCL to APLAWS-NAV too
boolean lgclOverrideAnav = Aplaws.getAplawsConfig().getOverrideAnavFromLGCLMappings().booleanValue();
if (lgclOverrideAnav) {
Domain aplawsNav = Domain.retrieve("APLAWS-NAV");
Collection aplawsNavTerms = getRelatedTerms(lgclTerms, aplawsNav);
clearTerms(aplawsNav, object);
assignTerms(aplawsNavTerms, object);
}
}
// User has selected a term in the LGDL hierarchy, which includes
// terms from the LGSL. We're only interested in LGSL terms here.
private void lgdlSelected(Domain domain, ACSObject object) {
Domain lgsl = Domain.retrieve("LGSL");
Domain gcl = Domain.retrieve("GCL");
Domain lgcl = Domain.retrieve("LGCL");
// We have a mapping LGSL -> LGCL based on the reverse of a
// published mapping. We don't have a mapping LGSL -> GCL, so we
// do LGSL -> LGCL -> GCL instead.
List lgslTerms = getCurrentCategories(lgsl, object);
Collection lgclTerms = getRelatedTerms(lgslTerms, lgcl);
LinkedList lgclIDs = new LinkedList();
Iterator i = lgclTerms.iterator();
while (i.hasNext()) {
Term term = (Term) i.next();
lgclIDs.add(term.getModel().getID());
}
Collection gclTerms = getRelatedTerms(lgclIDs, gcl);
clearTerms(lgcl, object);
assignTerms(lgclTerms, object);
clearTerms(gcl, object);
assignTerms(gclTerms, object);
}
}
protected List getCurrentCategories(Domain domain,
ACSObject object) {
if (s_log.isDebugEnabled()) {
s_log.debug("Getting terms from " + domain + " to " + object);
}
DomainCollection terms = domain.getTerms();
terms.addEqualsFilter("model.childObjects.id", object.getID());
terms.addPath("model.id");
List current = new LinkedList();
while (terms.next()) {
if (s_log.isDebugEnabled()) {
s_log.debug("Got term " + terms.get("model.id"));
}
current.add(terms.get("model.id"));
}
return current;
}
// TODO move out of UI code
public static Collection getCurrentTerms(Domain domain,
ACSObject object) {
if (s_log.isDebugEnabled()) {
s_log.debug("Getting terms from " + domain + " to " + object);
}
Collection current = new LinkedList();
DomainCollection terms = domain.getTerms();
terms.addEqualsFilter("model.childObjects.id", object.getID());
terms.addPath("model.id");
while (terms.next()) {
if (s_log.isDebugEnabled()) {
s_log.debug("Got term " + terms.get("model.id"));
}
current.add(terms.getDomainObject());
}
return current;
}
// TODO move out of UI code
public static Collection getRelatedTerms(Collection src,
Domain domain) {
if (s_log.isDebugEnabled()) {
s_log.debug("Getting related terms to " + domain);
}
if (src.isEmpty()) {
// this is a hack, it would be better not to use a completion event listener as
// this is called even when the form is cancelled...
return new LinkedList();
}
DomainCollection terms = domain.getTerms();
// these next two lines build the query
terms.addEqualsFilter("model.parents.link.relationType", "related");
terms.addFilter("model.parents.id in :ids").set("ids", src);
Collection related = new LinkedList();
while (terms.next()) {
if (s_log.isDebugEnabled()) {
s_log.debug("Got term " + terms.getDomainObject());
}
related.add(terms.getDomainObject());
}
return related;
}
protected void clearTerms(Domain domain,
ACSObject object) {
if (s_log.isDebugEnabled()) {
s_log.debug("Removing terms from " + domain + " to " + object);
}
Iterator terms = getCurrentTerms(domain, object).iterator();
while (terms.hasNext()) {
Term term = (Term)terms.next();
if (s_log.isDebugEnabled()) {
s_log.debug("Removing term " + term + " from " + object);
}
term.removeObject(object);
}
}
// TODO move out of UI code
public static void assignTerms(Collection terms,
ACSObject object) {
if (s_log.isDebugEnabled()) {
s_log.debug("Assigning terms to " + object);
}
Iterator i = terms.iterator();
while (i.hasNext()) {
Term term = (Term)i.next();
if (s_log.isDebugEnabled()) {
s_log.debug("Assigning term " + term + " to " + object);
}
term.addObject(object);
}
}
protected Domain getDomain(PageState state) {
if (s_log.isDebugEnabled()) {
s_log.debug("Getting domain for " + state.getValue(m_root));
}
DataCollection domains = SessionManager.getSession()
.retrieve(Domain.BASE_DATA_OBJECT_TYPE);
domains.addEqualsFilter("model.id",
state.getValue(m_root));
if (domains.next()) {
Domain domain = (Domain)DomainObjectFactory
.newInstance(domains.getDataObject());
if (s_log.isDebugEnabled()) {
s_log.debug("Got domain " + domain);
}
domains.close();
return domain;
}
if (s_log.isDebugEnabled()) {
s_log.debug("No domain found");
}
return null;
}
}

View File

@ -16,7 +16,7 @@
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
package com.arsdigita.aplaws.ui;
package com.arsdigita.bundle.ui;
import com.arsdigita.bebop.PageState;
import com.arsdigita.cms.CMS;
@ -24,7 +24,7 @@ import com.arsdigita.cms.ContentBundle;
import com.arsdigita.cms.ContentItem;
import com.arsdigita.cms.ContentPage;
import com.arsdigita.kernel.ACSObject;
import com.arsdigita.navigation.Navigation;
import com.arsdigita.london.navigation.Navigation;
import com.arsdigita.london.terms.ui.AbstractAssignedTerms;
import org.apache.log4j.Logger;

View File

@ -23,6 +23,12 @@ import com.arsdigita.cms.CMS;
import com.arsdigita.kernel.ACSObject;
import com.arsdigita.london.terms.ui.AbstractAssignedTerms;
/**
*
* Invoked by jsp
* (e.g. templates/ccm-cms/content-section/default/aplaws-item.jsp
* previously: packages/content-section/templates/default/aplaws-item.jsp)
*/
public class AssignedItemTerms extends AbstractAssignedTerms {
protected ACSObject getObject(PageState state) {

View File

@ -1,51 +0,0 @@
package com.arsdigita.aplaws.ui;
import java.math.BigDecimal;
// import java.util.Iterator;
// import java.util.Map;
import org.apache.commons.lang.StringUtils;
import org.apache.log4j.Logger;
import com.arsdigita.bebop.Page;
import com.arsdigita.bebop.PageState;
import com.arsdigita.bebop.SimpleComponent;
// import com.arsdigita.bebop.parameters.BigDecimalParameter;
// import com.arsdigita.bebop.parameters.IntegerParameter;
import com.arsdigita.bebop.parameters.StringParameter;
import com.arsdigita.categorization.Category;
import com.arsdigita.domain.DomainObjectFactory;
import com.arsdigita.persistence.OID;
import com.arsdigita.xml.Element;
/**
* Generate part of the category tree. Used by Assign Category authoring step.
*
* @author Alan Pevec
* @deprecated use com.arsdigita.london.terms.ui.CategorySubtree instead.
*/
public class CategorySubtree extends SimpleComponent {
StringParameter nodeIDparam = new StringParameter("nodeID");
private static Logger s_log = Logger.getLogger(CategorySubtree.class);
public void register(Page p) {
super.register(p);
p.addGlobalStateParam(nodeIDparam);
}
public void generateXML(PageState state, Element p) {
String node = (String)state.getValue(nodeIDparam);
s_log.debug("selected node = " + node);
String[] pathElements = StringUtils.split(node, "-");
Category root = (Category) DomainObjectFactory.newInstance(new OID(
Category.BASE_DATA_OBJECT_TYPE, new BigDecimal(pathElements[pathElements.length - 1])));
s_log.debug("generating subtree for cat " + root.getID());
TermWidget.generateSubtree(p, root);
}
}

View File

@ -16,13 +16,13 @@
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
package com.arsdigita.aplaws.ui;
package com.arsdigita.bundle.ui;
import com.arsdigita.london.terms.Term;
import com.arsdigita.london.terms.ui.AbstractTermDetails;
import com.arsdigita.persistence.DataCollection;
import com.arsdigita.persistence.SessionManager;
import com.arsdigita.navigation.Navigation;
import com.arsdigita.london.navigation.Navigation;
import com.arsdigita.categorization.Category;
import com.arsdigita.bebop.PageState;
import com.arsdigita.domain.DomainObjectFactory;

View File

@ -0,0 +1,96 @@
package com.arsdigita.bundle.ui;
import com.arsdigita.bebop.Page;
import com.arsdigita.bebop.PageState;
import com.arsdigita.cms.CMS;
import com.arsdigita.cms.contenttypes.GenericOrganizationalUnit;
import com.arsdigita.cms.contenttypes.ui.GenericOrgaUnitTab;
import com.arsdigita.dispatcher.DispatcherHelper;
import com.arsdigita.domain.DomainObjectFactory;
import com.arsdigita.globalization.GlobalizationHelper;
import com.arsdigita.navigation.ui.AbstractComponent;
import com.arsdigita.persistence.OID;
import com.arsdigita.util.UncheckedWrapperException;
import com.arsdigita.xml.Element;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* A wrapper around {@link GenericOrgaUnitTab} which allows it to use the
* output of an implementation of {@link GenericOrgaUnitTab} independently from
* a {@link GenericOrganizationalUnit} item. This allows it to create an
* special JSP and the show a tab as a navigation point.
*
* @author Jens Pelzetter
* @version $Id: GenericOrgaUnitTabComponent.java 1430 2012-01-06 07:04:27Z jensp $
*/
public class GenericOrgaUnitTabComponent extends AbstractComponent {
private Page page;
private OID orgaunitOid;
private GenericOrgaUnitTab tab;
public void setPage(final Page page) {
this.page = page;
}
/**
* The OID of the orga unit to use. Use the OID of the master version (can
* be found in the overview tab in the content-center in the stable link)
* here
* @param oid
*/
public void setOrgaUnit(final String oid) {
this.orgaunitOid = OID.valueOf(oid);
}
public void setOrgaUnitTab(final GenericOrgaUnitTab tab) {
this.tab = tab;
}
public Element generateXML(final HttpServletRequest request,
final HttpServletResponse response) {
final PageState state;
try {
state = new PageState(page, request, response);
} catch (ServletException ex) {
throw new UncheckedWrapperException(ex);
}
GenericOrganizationalUnit orgaunit =
(GenericOrganizationalUnit) DomainObjectFactory.
newInstance(orgaunitOid);
if (!(orgaunit.getLanguage().equals(GlobalizationHelper.
getNegotiatedLocale().getLanguage()))) {
orgaunit = (GenericOrganizationalUnit) orgaunit.getContentBundle().
getInstance(GlobalizationHelper.getNegotiatedLocale());
}
if ((DispatcherHelper.getDispatcherPrefix(request) == null)
|| !DispatcherHelper.getDispatcherPrefix(request).equals("preview")) {
orgaunit = (GenericOrganizationalUnit) orgaunit.getLiveVersion();
}
final Element contentPanelElem = new Element("cms:contentPanel",
CMS.CMS_XML_NS);
final Element cmsItemElem =
contentPanelElem.newChildElement("cms:item",
CMS.CMS_XML_NS);
cmsItemElem.addAttribute("oid", orgaunitOid.toString());
final Element objTypeElem = cmsItemElem.newChildElement("objectType");
objTypeElem.setText(orgaunit.getClass().getName());
final Element tabsElem =
contentPanelElem.newChildElement("orgaUnitTabs");//new Element("orgaUnitTabs");
final Element selectedTabElem = tabsElem.newChildElement("selectedTab");
if (orgaunit != null) {
tab.generateXml(orgaunit, selectedTabElem, state);
}
//return tabsElem;
return contentPanelElem;
}
}

View File

@ -26,7 +26,7 @@ import com.arsdigita.bebop.parameters.StringParameter;
import com.arsdigita.categorization.ui.ACSObjectCategoryForm;
import com.arsdigita.cms.CMS;
import com.arsdigita.cms.ContentItem;
import com.arsdigita.cms.ui.authoring.*;
import com.arsdigita.cms.ui.authoring.ItemCategoryForm;
import com.arsdigita.kernel.ACSObject;
import com.arsdigita.london.terms.ui.ACSObjectCategoryPicker;
import com.arsdigita.london.terms.ui.TermWidget;

View File

@ -1,336 +0,0 @@
/*
* Copyright (C) 2004 Red Hat Inc. All Rights Reserved.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public License
* as published by the Free Software Foundation; either version 2.1 of
* the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
*/
package com.arsdigita.aplaws.ui;
import java.math.BigDecimal;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
import java.util.Set;
import com.arsdigita.aplaws.Aplaws;
import com.arsdigita.bebop.PageState;
import com.arsdigita.bebop.form.Widget;
import com.arsdigita.bebop.parameters.ArrayParameter;
import com.arsdigita.bebop.parameters.BigDecimalParameter;
import com.arsdigita.bebop.parameters.StringParameter;
import com.arsdigita.categorization.Category;
import com.arsdigita.cms.CMS;
import com.arsdigita.cms.ContentItem;
import com.arsdigita.cms.ContentSection;
import com.arsdigita.domain.DomainCollection;
import com.arsdigita.domain.DomainObjectFactory;
import com.arsdigita.london.terms.Domain;
import com.arsdigita.london.terms.Term;
import com.arsdigita.london.terms.indexing.Indexer;
import com.arsdigita.london.terms.indexing.RankedTerm;
import com.arsdigita.persistence.DataCollection;
import com.arsdigita.persistence.SessionManager;
import com.arsdigita.xml.Element;
import com.arsdigita.xml.XML;
/**
* A Widget for selecting Terms. Based heavily on CategoryWidget.
*
* @author mbooth@redhat.com
*
* Chris Gilbert - updated to identify each node uniquely (correct behaviour
* for polyhierarchical trees) - also, allow ajax update on all branches or
* just top level branch
*
* nb - widget applies to allocation of categories to any ACSObject hence
* xml prefix should be more generic eg bebop rather than cms. cms retained
* for compatibility with existing stylesheets
*
* @deprecated Use c.ad.london.terms.ui.TermWidget instead!
*/
public class TermWidget extends Widget {
private StringParameter m_mode;
private ACSObjectCategoryPicker m_picker;
public TermWidget(StringParameter mode, ACSObjectCategoryPicker picker) {
super(new ArrayParameter(new BigDecimalParameter("category")));
m_mode = mode;
m_picker = picker;
}
protected String getType() {
return "category";
}
public boolean isCompound() {
return false;
}
protected void generateWidget(PageState state,
Element parent) {
Domain domain = m_picker.getDomain(state);
Element widget = parent.newChildElement("cms:categoryWidget",
CMS.CMS_XML_NS);
exportAttributes(widget);
widget.addAttribute("mode", (String)state.getValue(m_mode));
widget.addAttribute("name", getName());
Set ids = new HashSet();
BigDecimal[] values = (BigDecimal[])getValue(state);
if (values != null) {
for (int i = 0 ; i < values.length ; i++) {
ids.add(values[i]);
}
}
// only root terms at first, the rest is loaded on-demand via AJAX
DomainCollection terms = domain.getRootTerms();
terms.addPath("model.parents.link.sortKey");
terms.addPath("model.parents.id");
terms.addPath("domain.key");
// Pull out everything related to the category, otherwise
// another query per row is executed when doing term.getModel();
terms.addPath("model.objectType");
terms.addPath("model.displayName");
terms.addPath("model.defaultDomainClass");
terms.addPath("model.name");
terms.addPath("model.description");
terms.addPath("model.url");
terms.addPath("model.isEnabled");
terms.addPath("model.isAbstract");
terms.addPath("model.defaultAncestors");
List roots = new LinkedList();
while (terms.next()) {
Term term = (Term) terms.getDomainObject();
roots.add(new TermSortKeyPair
(term,(BigDecimal)terms.get("model.parents.link.sortKey")));
}
Element el = generateCategory(widget, domain.getModel(), ids, null);
/**
* Used by kea based keyphrase extraction facility.
* (Added r1885)
*
* @Author: terry_permeance
*/
Indexer indexer = Indexer.retrieve(domain);
if (indexer != null) {
ContentItem item = CMS.getContext().getContentItem();
List<RankedTerm> autoTerms = indexer.index(item, 16);
Element autoCategories = widget.newChildElement("cms:autoCategories", CMS.CMS_XML_NS);
for (Iterator<RankedTerm> i = autoTerms.iterator(); i.hasNext(); ) {
RankedTerm nextRankedTerm = i.next();
Category cat = nextRankedTerm.getTerm().getModel();
if (!ids.contains(cat.getID())) {
String fullname = cat.getQualifiedName(" > ", false);
if (fullname != null) {
Element catEl = autoCategories.newChildElement("cms:category", CMS.CMS_XML_NS);
catEl.addAttribute("id", XML.format(cat.getID()));
catEl.addAttribute("name", cat.getName());
catEl.addAttribute("description", cat.getDescription());
catEl.addAttribute("isAbstract", cat.isAbstract() ? "1" : "0");
catEl.addAttribute("isEnabled", cat.isEnabled() ? "1" : "0");
catEl.addAttribute("sortKey", nextRankedTerm.getRanking().toString());
catEl.addAttribute("fullname", fullname);
}
}
}
}
if (Aplaws.getAplawsConfig().ajaxExpandAllBranches()) {
// add attribute to the parent node, so that in stylesheet
// we can look for any ancestor with this attribute (can't
// add attribute to categoryWidget element as that is not
// visible when subbranches are transformed)
el.addAttribute("expand", "all" );
}
for (Iterator i=roots.iterator(); i.hasNext(); ) {
TermSortKeyPair pair = (TermSortKeyPair) i.next();
Term term = pair.getTerm();
BigDecimal sortKey = pair.getSortKey();
generateRootTerm(el, term, ids, sortKey);
}
}
public static Element generateCategory(Element parent,
Category cat,
Set selected,
BigDecimal sortKey) {
Element el = parent.newChildElement("cms:category", CMS.CMS_XML_NS);
el.addAttribute("id", XML.format(cat.getID()));
el.addAttribute("name", cat.getName());
el.addAttribute("description", cat.getDescription());
el.addAttribute("isSelected", selected.contains(cat.getID()) ? "1" : "0");
el.addAttribute("isAbstract", cat.isAbstract() ? "1" : "0");
el.addAttribute("isEnabled", cat.isEnabled() ? "1" : "0");
if (sortKey != null) {
el.addAttribute("sortKey", sortKey.toString());
}
// sort order attribute added to every node so that we can
// correctly transform xml fragments returned by ajax
el.addAttribute("order", ContentSection.getConfig().getCategoryTreeOrder());
StringBuffer path = new StringBuffer(parent.getAttribute("fullname"));
if (path.length() > 0) path.append(" > ");
path.append(cat.getName());
el.addAttribute("fullname", path.toString());
// need to uniquely identify each node in polyhierarchical trees
// so that expand/contract is applied to the correct node by
// javascript getElementByID function
StringBuffer nodeID = new StringBuffer(parent.getAttribute("node-id"));
if (nodeID.length() > 0) nodeID.append("-");
nodeID.append(cat.getID());
el.addAttribute("node-id", nodeID.toString());
return el;
}
public static Element generateTerm(Element parent,
Term term,
Set selected,
BigDecimal sortKey) {
Category cat = term.getModel();
Element el = generateCategory(parent, cat, selected, sortKey);
el.addAttribute("pid", term.getUniqueID().toString());
el.addAttribute("domain", term.getDomain().getKey());
return el;
}
private static void generateRootTerm(Element parent,
Term term,
Set selected,
BigDecimal sortKey) {
Element el = generateTerm(parent, term, selected, sortKey);
el.addAttribute("root","1");
}
public static void generateSubtree(Element parent, Category root) {
DataCollection terms = SessionManager.getSession().retrieve(
Term.BASE_DATA_OBJECT_TYPE);
terms.addEqualsFilter("model.roTransParents.id", root.getID());
terms.addEqualsFilter("model.parents.link.relationType", "child");
Map children = new HashMap();
while (terms.next()) {
Term term = (Term) DomainObjectFactory.newInstance(terms
.getDataObject());
BigDecimal parentID = (BigDecimal) terms.get("model.parents.id");
List childList = (List) children.get(parentID);
if (childList == null) {
childList = new LinkedList();
children.put(parentID, childList);
}
childList.add(new TermSortKeyPair(term, (BigDecimal) terms
.get("model.parents.link.sortKey")));
}
// XXX for isSelected
Set ids = new HashSet();
Element el = generateCategory(parent, root, ids, null);
el.addAttribute("fullname", root.getName());
el.addAttribute("node-id", root.getID().toString());
el.addAttribute("order", ContentSection.getConfig().getCategoryTreeOrder());
if (Aplaws.getAplawsConfig().ajaxExpandAllBranches()) {
// recognisable attribute has to be in the XML for each snippet that is transformed,
// hence add it to the parent
el.addAttribute("expand", "all" );
}
List roots = (List) children.get(root.getID());
if (null != roots) {
Iterator i = roots.iterator();
while (i.hasNext()) {
TermSortKeyPair pair = (TermSortKeyPair) i.next();
Term term = pair.getTerm();
BigDecimal sortKey = pair.getSortKey();
generateTermWithChildren(el, term, ids, sortKey, children);
}
}
}
private static void generateTermWithChildren(Element parent,
Term term,
Set selected,
BigDecimal sortKey,
Map children) {
Category cat = term.getModel();
Element el = generateCategory(parent, cat, selected, sortKey);
el.addAttribute("pid", term.getUniqueID().toString());
el.addAttribute("domain", term.getDomain().getKey());
List c = (List) children.get(cat.getID());
if (c != null) {
Iterator i = c.iterator();
while (i.hasNext()) {
TermSortKeyPair pair = (TermSortKeyPair) i.next();
Term child = pair.getTerm();
BigDecimal childSortKey = pair.getSortKey();
// either generate next level down, or get all levels below current
if (Aplaws.getAplawsConfig().ajaxExpandAllBranches()) {
generateTerm(el, child, selected, childSortKey);
} else {
generateTermWithChildren(el, child, selected, childSortKey,
children);
}
}
}
}
private static class TermSortKeyPair {
private Term m_term;
private BigDecimal m_sortKey;
public TermSortKeyPair(Term term, BigDecimal sortKey) {
m_term = term;
m_sortKey = sortKey;
}
public Term getTerm() {
return m_term;
}
public BigDecimal getSortKey() {
return m_sortKey;
}
}
}

View File

@ -1,6 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
version="2.4">
</web-app>

View File

@ -1,621 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
version="2.4">
<display-name>CCM</display-name>
<description>Content and Collaboration Management</description>
<!-- path and filename of the log4j user accessible config file
WEB-INF/conf/log4j.properties is the built-in default value -->
<context-param>
<param-name>log4j-conf-file</param-name>
<param-value>WEB-INF/conf/log4j.properties</param-value>
</context-param>
<!-- Require secure connection by redirect to host-port part
of parameter waf.web.secure_server
<filter>
<filter-name>secured</filter-name>
<filter-class>com.arsdigita.web.SecureFilter</filter-class>
</filter>
-->
<!-- Initialize Profiler timers
NOT USED with standard / production
<filter>
<filter-name>profiler</filter-name>
<filter-class>com.arsdigita.profiler.ProfilerFilter</filter-class>
</filter>
-->
<filter>
<filter-name>shortcuts</filter-name>
<filter-class>com.arsdigita.shortcuts.ShortcutFilter</filter-class>
</filter>
<filter>
<filter-name>subsite</filter-name>
<filter-class>com.arsdigita.subsite.SubsiteFilter</filter-class>
</filter>
<!-- NOT USED HERE
<filter-mapping>
<filter-name>secured</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>profiler</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
-->
<filter-mapping>
<filter-name>subsite</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>shortcuts</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Context Listener
required and used to initialize the runtime environment before any other
task is performed or any servlet initialized.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<listener>
<listener-class>com.arsdigita.web.CCMApplicationContextListener</listener-class>
</listener>
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
BASE SERVLET DECLARATIONS SECTION
basically requirred by ccm-core
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<servlet>
<servlet-name>reg</servlet-name>
<servlet-class>com.arsdigita.web.ContextRegistrationServlet</servlet-class>
<init-param>
<param-name>uri</param-name>
<param-value>/</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet>
<servlet-name>legacy-dispatcher</servlet-name>
<servlet-class>com.arsdigita.sitenode.SiteNodeDispatcher</servlet-class>
<load-on-startup>3</load-on-startup>
</servlet>
<servlet>
<servlet-name>ccm-dispatcher</servlet-name>
<servlet-class>com.arsdigita.web.DispatcherServlet</servlet-class>
<init-param>
<param-name>fallback-servlet</param-name>
<param-value>legacy-dispatcher</param-value>
</init-param>
<load-on-startup>2</load-on-startup>
</servlet>
<servlet>
<servlet-name>legacy-adapter</servlet-name>
<servlet-class>com.arsdigita.web.LegacyAdapterServlet</servlet-class>
</servlet>
<servlet>
<servlet-name>cache-manager</servlet-name>
<servlet-class>com.arsdigita.caching.CacheServlet</servlet-class>
</servlet>
<servlet>
<servlet-name>db-test</servlet-name>
<servlet-class>com.arsdigita.web.monitoring.DBTestServlet</servlet-class>
</servlet>
<servlet>
<servlet-name>versioning-log</servlet-name>
<servlet-class>com.arsdigita.versioning.VersioningServlet</servlet-class>
</servlet>
<servlet>
<servlet-name>login</servlet-name>
<servlet-class>com.arsdigita.ui.login.LoginServlet</servlet-class>
</servlet>
<servlet>
<servlet-name>webadmin</servlet-name>
<servlet-class>com.arsdigita.ui.admin.AdminServlet</servlet-class>
</servlet>
<servlet>
<servlet-name>webadmin-sitemap</servlet-name>
<servlet-class>com.arsdigita.ui.sitemap.SiteMapServlet</servlet-class>
</servlet>
<servlet>
<servlet-name>webadmin-permissions</servlet-name>
<servlet-class>com.arsdigita.ui.permissions.PermissionsServlet</servlet-class>
</servlet>
<servlet>
<servlet-name>webdevsupport</servlet-name>
<servlet-class>com.arsdigita.webdevsupport.WebDevSupportServlet</servlet-class>
</servlet>
<servlet>
<servlet-name>oid-redirect</servlet-name>
<servlet-class>com.arsdigita.web.OIDRedirectServlet</servlet-class>
</servlet>
<servlet>
<servlet-name>resource-resolver</servlet-name>
<servlet-class>com.arsdigita.web.ResourceServlet</servlet-class>
</servlet>
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ADDITIONAL SERVLET DECLARATIONS SECTION
basically requirred by ccm-cms
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<servlet>
<servlet-name>content-center</servlet-name>
<servlet-class>com.arsdigita.cms.WorkspaceServlet</servlet-class>
</servlet>
<servlet>
<servlet-name>content-section</servlet-name>
<servlet-class>com.arsdigita.cms.ContentSectionServlet</servlet-class>
</servlet>
<servlet>
<servlet-name>cms-service</servlet-name>
<servlet-class>com.arsdigita.cms.ServiceServlet</servlet-class>
</servlet>
<servlet>
<servlet-name>content-type-xsl</servlet-name>
<servlet-class>com.arsdigita.cms.dispatcher.ContentTypeXSLServlet</servlet-class>
</servlet>
<servlet>
<servlet-name>content-item-xsl</servlet-name>
<servlet-class>com.arsdigita.cms.dispatcher.ContentItemXSLServlet</servlet-class>
</servlet>
<servlet>
<servlet-name>template-xsl</servlet-name>
<servlet-class>com.arsdigita.cms.dispatcher.TemplateXSLServlet</servlet-class>
</servlet>
<servlet>
<servlet-name>TextOnlyServlet</servlet-name>
<display-name>Text Only Servlet</display-name>
<servlet-class>
com.arsdigita.web.InternalPrefixerServlet
</servlet-class>
<init-param>
<param-name>prefix</param-name>
<param-value>/text</param-value>
</init-param>
</servlet>
<servlet>
<servlet-name>PrintFriendlyServlet</servlet-name>
<display-name>Printer Friendly Output Servlet</display-name>
<servlet-class>
com.arsdigita.web.InternalPrefixerServlet
</servlet-class>
<init-param>
<param-name>prefix</param-name>
<param-value>/print</param-value>
</init-param>
</servlet>
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
MODULES SERVLET DECLARATIONS SECTION
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<!-- module ccm-ldn-atoz - servlet definitions BEGIN -->
<servlet>
<servlet-name>atoz-files</servlet-name>
<servlet-class>com.arsdigita.web.ApplicationFileServlet</servlet-class>
<init-param>
<param-name>template-path</param-name>
<param-value>/templates/ccm-ldn-atoz</param-value>
</init-param>
</servlet>
<!-- module ccm-ldn-atoz - servlet definitions END -->
<!-- module ccm-forum - servlet declarations BEGIN -->
<servlet>
<servlet-name>forum-main</servlet-name>
<servlet-class>com.arsdigita.forum.ForumServlet</servlet-class>
</servlet>
<!-- module ccm-forum - servlet declarations END -->
<servlet>
<servlet-name>portalworkspace-files</servlet-name>
<servlet-class>com.arsdigita.web.ApplicationFileServlet</servlet-class>
<init-param>
<param-name>template-path</param-name>
<param-value>/templates/ccm-portalworkspace</param-value>
</init-param>
</servlet>
<servlet>
<servlet-name>navigation-files</servlet-name>
<servlet-class>com.arsdigita.web.ApplicationFileServlet</servlet-class>
<init-param>
<param-name>template-path</param-name>
<param-value>/templates/ccm-navigation</param-value>
</init-param>
<init-param>
<param-name>file-resolver</param-name>
<param-value>com.arsdigita.navigation.NavigationFileResolver</param-value>
</init-param>
</servlet>
<servlet>
<servlet-name>portlet-type-xsl</servlet-name>
<servlet-class>com.arsdigita.dispatcher.PortletTypeXSLServlet</servlet-class>
</servlet>
<!-- module ccm-rssfeed - servlet declaration BEGIN -->
<servlet>
<servlet-name>rssfeed-files</servlet-name>
<servlet-class>com.arsdigita.web.ApplicationFileServlet</servlet-class>
<init-param>
<param-name>template-path</param-name>
<param-value>/templates/ccm-rssfeed</param-value>
</init-param>
<init-param>
<param-name>file-resolver</param-name>
<param-value>com.arsdigita.rssfeed.RSSFileResolver</param-value>
</init-param>
</servlet>
<!-- module ccm-rssfeed - servlet declaration END -->
<!-- module ccm-ldn-search - servlet declarations BEGIN -->
<servlet>
<servlet-name>search-files</servlet-name>
<servlet-class>com.arsdigita.web.ApplicationFileServlet</servlet-class>
<init-param>
<param-name>template-path</param-name>
<param-value>/templates/ccm-ldn-search</param-value>
</init-param>
</servlet>
<servlet>
<servlet-name>AxisServlet</servlet-name>
<display-name>Apache-Axis Servlet</display-name>
<servlet-class>
org.apache.axis.transport.http.AxisServlet
</servlet-class>
</servlet>
<!-- module ccm-ldn-search - servlet declarations END -->
<!-- module ccm-shortcuts - servlet definitions -->
<servlet>
<servlet-name>shortcuts-files</servlet-name>
<servlet-class>com.arsdigita.web.ApplicationFileServlet</servlet-class>
<init-param>
<param-name>template-path</param-name>
<param-value>/templates/ccm-shortcuts</param-value>
</init-param>
</servlet>
<!-- module ccm-subsite - servlet declarations BEGIN -->
<servlet>
<servlet-name>subsite-files</servlet-name>
<servlet-class>com.arsdigita.web.ApplicationFileServlet</servlet-class>
<init-param>
<param-name>template-path</param-name>
<param-value>/templates/ccm-subsite</param-value>
</init-param>
</servlet>
<!-- module ccm-subsite - servlet declarations END -->
<!-- module ccm-ldn-terms - servlet declarations BEGIN -->
<servlet>
<servlet-name>terms-files</servlet-name>
<servlet-class>com.arsdigita.web.ApplicationFileServlet</servlet-class>
<init-param>
<param-name>template-path</param-name>
<param-value>/templates/ccm-ldn-terms</param-value>
</init-param>
</servlet>
<!-- module ccm-ldn-terms - servlet declarations END -->
<!-- module ccm-themedirector - servlet declarations BEGIN -->
<servlet>
<servlet-name>theme-files</servlet-name>
<servlet-class>com.arsdigita.web.ApplicationFileServlet</servlet-class>
<init-param>
<param-name>template-path</param-name>
<param-value>/templates/ccm-themedirector</param-value>
</init-param>
</servlet>
<servlet>
<servlet-name>ThemeDownload</servlet-name>
<servlet-class>com.arsdigita.themedirector.dispatcher.ThemeDownloadServlet</servlet-class>
</servlet>
<servlet>
<servlet-name>ThemePreviewServlet</servlet-name>
<display-name>Servlet to allow admins to preview look/feel</display-name>
<servlet-class>
com.arsdigita.themedirector.dispatcher.InternalThemePrefixerServlet
</servlet-class>
<init-param>
<param-name>prefix</param-name>
<param-value>/theme</param-value>
</init-param>
</servlet>
<!-- module ccm-themedirector - servlet declarations END -->
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
MODULES SERVLET MAPPINGS SECTION
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<!-- module ccm-ldn-atoz - servlet mappings BEGIN -->
<servlet-mapping>
<servlet-name>atoz-files</servlet-name>
<url-pattern>/ccm-ldn-atoz/files/*</url-pattern>
</servlet-mapping>
<!-- module ccm-ldn-atoz - servlet mappings END -->
<!-- module ccm-forum - servlet mappings BEGIN -->
<servlet-mapping>
<servlet-name>forum-main</servlet-name>
<url-pattern>/forum-main/main/*</url-pattern>
</servlet-mapping>
<!-- module ccm-forum - servlet mappings END -->
<servlet-mapping>
<servlet-name>portlet-type-xsl</servlet-name>
<url-pattern>/themes/servlet/portlet-type/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>portalworkspace-files</servlet-name>
<url-pattern>/ccm-portalworkspace/files/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>navigation-files</servlet-name>
<url-pattern>/ccm-navigation/files/*</url-pattern>
</servlet-mapping>
<!-- module ccm-rssfeed - servlet mappings BEGIN -->
<servlet-mapping>
<servlet-name>rssfeed-files</servlet-name>
<url-pattern>/ccm-rssfeed/files/*</url-pattern>
</servlet-mapping>
<!-- module ccm-rssfeed - servlet mappings END -->
<!-- module ccm-ldn-search - servlet mappings BEGIN -->
<servlet-mapping>
<servlet-name>search-files</servlet-name>
<url-pattern>/ccm-ldn-search/files/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>AxisServlet</servlet-name>
<url-pattern>/services/*</url-pattern>
</servlet-mapping>
<!-- module ccm-ldn-search - servlet mappings END -->
<!-- module ccm-shortcuts - servlet mappings -->
<servlet-mapping>
<servlet-name>shortcuts-files</servlet-name>
<url-pattern>/ccm-shortcuts/files/*</url-pattern>
</servlet-mapping>
<!-- module ccm-subsite - servlet mappings BEGIN -->
<servlet-mapping>
<servlet-name>subsite-files</servlet-name>
<url-pattern>/ccm-subsite/files/*</url-pattern>
</servlet-mapping>
<!-- module ccm-subsite - servlet mappings END -->
<!-- module ccm-ldn-terms - servlet mappings BEGIN -->
<servlet-mapping>
<servlet-name>terms-files</servlet-name>
<url-pattern>/ccm-ldn-terms/files/*</url-pattern>
</servlet-mapping>
<!-- module ccm-ldn-terms - servlet mappings END -->
<!-- module ccm-themedirector - servlet mappings BEGIN -->
<servlet-mapping>
<servlet-name>theme-files</servlet-name>
<url-pattern>/theme-files/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>ThemeDownload</servlet-name>
<url-pattern>/theme-files/download/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>ThemePreviewServlet</servlet-name>
<url-pattern>/theme/*</url-pattern>
</servlet-mapping>
<!-- module ccm-themedirector - servlet mappings END -->
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
BASE SERVLET MAPPINGS SECTION
basically requirred by ccm-core
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<servlet-mapping>
<servlet-name>reg</servlet-name>
<url-pattern>/themes/null/reg/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>ccm-dispatcher</servlet-name>
<url-pattern>/ccm/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>legacy-adapter</servlet-name>
<url-pattern>/templates/servlet/legacy-adapter/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>cache-manager</servlet-name>
<url-pattern>/expireCache/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>db-test</servlet-name>
<url-pattern>/dbtest</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>versioning-log</servlet-name>
<url-pattern>/versioning/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>login</servlet-name>
<url-pattern>/login/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>webadmin</servlet-name>
<url-pattern>/admin/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>webadmin-sitemap</servlet-name>
<url-pattern>/admin-sitemap/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>webadmin-permissions</servlet-name>
<url-pattern>/admin-permissions/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>webdevsupport</servlet-name>
<url-pattern>/webdevsupport/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>oid-redirect</servlet-name>
<url-pattern>/redirect/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>resource-resolver</servlet-name>
<url-pattern>/resource/*</url-pattern>
</servlet-mapping>
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ADDITIONAL SERVLET MAPPINGS SECTION
basically requirred by ccm-cms
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<servlet-mapping>
<servlet-name>content-center</servlet-name>
<url-pattern>/templates/servlet/content-center/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>content-section</servlet-name>
<url-pattern>/templates/servlet/content-section/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>cms-service</servlet-name>
<url-pattern>/templates/servlet/cms-service/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>content-item-xsl</servlet-name>
<url-pattern>/templates/servlet/content-item/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>content-type-xsl</servlet-name>
<url-pattern>/themes/servlet/content-type/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>template-xsl</servlet-name>
<url-pattern>/themes/servlet/template/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>TextOnlyServlet</servlet-name>
<url-pattern>/text/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>PrintFriendlyServlet</servlet-name>
<url-pattern>/print/*</url-pattern>
</servlet-mapping>
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ERROR PAGES
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<error-page>
<exception-type>com.arsdigita.dispatcher.AccessDeniedException</exception-type>
<location>/error/access-denied.jsp</location>
</error-page>
<error-page>
<exception-type>com.arsdigita.dispatcher.ObjectNotFoundException</exception-type>
<location>/error/object-not-found.jsp</location>
</error-page>
<error-page>
<exception-type>com.arsdigita.kernel.permissions.PermissionException</exception-type>
<location>/error/permission-denied.jsp</location>
</error-page>
<error-page>
<exception-type>com.arsdigita.persistence.DbNotAvailableException</exception-type>
<location>/error/db-not-available.jsp</location>
</error-page>
<error-page>
<exception-type>com.arsdigita.db.DbNotAvailableException</exception-type>
<location>/error/db-not-available.jsp</location>
</error-page>
<error-page>
<exception-type>java.lang.Exception</exception-type>
<location>/error/general.jsp</location>
</error-page>
<error-page>
<exception-type>java.lang.Error</exception-type>
<location>/error/general.jsp</location>
</error-page>
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
TAG LIBS
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<taglib>
<taglib-uri>/WEB-INF/bebop-show.tld</taglib-uri>
<taglib-location>/WEB-INF/bebop-show.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>/WEB-INF/bebop-define.tld</taglib-uri>
<taglib-location>/WEB-INF/bebop-define.tld</taglib-location>
</taglib>
</web-app>

View File

@ -1,7 +1,7 @@
<jsp:root xmlns:jsp="http://java.sun.com/JSP/Page"
xmlns:define="/WEB-INF/bebop-define.tld"
xmlns:show="/WEB-INF/bebop-show.tld"
version="1.2">
xmlns:define="/WEB-INF/bebop-define.tld"
xmlns:show="/WEB-INF/bebop-show.tld"
version="1.2">
<jsp:directive.page import="com.arsdigita.dispatcher.DispatcherHelper"/>

View File

@ -1,3 +1,3 @@
Subdirectory <cat> may optionally contain one or more local site specific
Subdirectory <categories> may optionally contain one or more local site specific
import xml files for Terms domain categories.

View File

@ -0,0 +1,4 @@
Subdirectory <navigation> may optionally contain a local site specific
text files describing additional jsp templates for navigation.
The template jsp files are stored in templates/ccm-navigation/navigation

View File

@ -1,3 +1,6 @@
Subdirectory <cat> may optionally contain one or more local site specific
import xml files for Terms domain categories.
Directory <res> will be available during installation by classloader. All
content has to be placed in a subdirectory, typically bundle. It can be
addressed as /bundle/[fileName|dirName]
EXAMPLE:
com.arsdigita.navigation.templates_file=bundle/navigation/templates.txt

View File

@ -1,4 +1,7 @@
Subdirectory <nav> may optionally contain navigation item templates for
The installation program copies all sub-directories and files in this directory
into the applications webapps subdirectory templates.
Subdirectory <navigation> may optionally contain navigation item templates for
navigation index pages which either overwrite or ammend those templates
which are default for ccm-sci-bundle and stored in
/web/templates/ccm-navigation/navigation
@ -7,6 +10,7 @@ Templates of the same name in this subdirectory just overwrite the
default files. Templates of different names are stored in addition
to the default template files. In the later case a developer must
provide a customised template.txt file replacing the default file
/src/WEB-INF/navigation/sci-templates.txt
/src/WEB-INF/navigation/templates.txt
This file must be specified in parameter
com.arsdigita.navigation.templates_file
com.arsdigita.navigation.templates_file
It usually stored in res/bundle/navigation

View File

@ -1,12 +1,13 @@
Subdirectory <nav> may optionally contain navigation item templates for
navigation index pages which either overwrite or ammend those templates
which are default for ccm-sci-bundle and stored in
/web/templates/ccm-navigation/navigation
Bundle subdir themes
Templates of the same name in this subdirectory just overwrite the
default files. Templates of different names are stored in addition
to the default template files. In the later case a developer must
provide a customised template.txt file replacing the default file
/src/WEB-INF/navigation/sci-templates.txt
This file must be specified in parameter
com.arsdigita.navigation.templates_file
Purpose:
This subdir may optionally contain theme files which either replace part of the
theme or add files to the theme provided as default for APLAWS+ and this
way adopt the theme for site specific design.
All files and subdirectories all copied asis to the applications ~/themes
directory in its document (context) root.
It is the responsibility of developer / system integrator to ensure all files
are copied to the right location and the theme works with the modification. No
functionality or consistency check is performed!

View File

@ -1,3 +1,3 @@
Subdirectory <cat> may optionally contain one or more local site specific
Subdirectory <categories> may optionally contain one or more local site specific
import xml files for Terms domain categories.

View File

@ -0,0 +1,4 @@
Subdirectory <navigation> may optionally contain a local site specific
text files describing additional jsp templates for navigation.
The template jsp files are stored in templates/ccm-navigation/navigation

View File

@ -1,3 +1,6 @@
Subdirectory <cat> may optionally contain one or more local site specific
import xml files for Terms domain categories.
Directory <res> will be available during installation by classloader. All
content has to be placed in a subdirectory, typically bundle. It can be
addressed as /bundle/[fileName|dirName]
EXAMPLE:
com.arsdigita.navigation.templates_file=bundle/navigation/templates.txt

View File

@ -1,4 +1,7 @@
Subdirectory <nav> may optionally contain navigation item templates for
The installation program copies all sub-directories and files in this directory
into the applications webapps subdirectory templates.
Subdirectory <navigation> may optionally contain navigation item templates for
navigation index pages which either overwrite or ammend those templates
which are default for ccm-sci-bundle and stored in
/web/templates/ccm-navigation/navigation
@ -7,6 +10,7 @@ Templates of the same name in this subdirectory just overwrite the
default files. Templates of different names are stored in addition
to the default template files. In the later case a developer must
provide a customised template.txt file replacing the default file
/src/WEB-INF/navigation/sci-templates.txt
/src/WEB-INF/navigation/templates.txt
This file must be specified in parameter
com.arsdigita.navigation.templates_file
com.arsdigita.navigation.templates_file
It usually stored in res/bundle/navigation

View File

@ -1,13 +0,0 @@
Bundle subdir themes
Purpose:
This subdir may optionally contain theme files which either replace part of the
theme or add files to the theme provided as default for ScientificCMS and this
way adopt the theme for site specific design.
All files and subdirectories all copied asis to the applications ~/themes
directory in its document (context) root.
It is the responsibility of developer / system integrator to ensure all files
are copied to the right location and the theme works with the modification. No
functionality or consistency check is perfordmed!

View File

@ -1,12 +1,13 @@
Subdirectory <nav> may optionally contain navigation item templates for
navigation index pages which either overwrite or ammend those templates
which are default for ccm-sci-bundle and stored in
/web/templates/ccm-navigation/navigation
Bundle subdir themes
Templates of the same name in this subdirectory just overwrite the
default files. Templates of different names are stored in addition
to the default template files. In the later case a developer must
provide a customised template.txt file replacing the default file
/src/WEB-INF/navigation/sci-templates.txt
This file must be specified in parameter
com.arsdigita.navigation.templates_file
Purpose:
This subdir may optionally contain theme files which either replace part of the
theme or add files to the theme provided as default for APLAWS+ and this
way adopt the theme for site specific design.
All files and subdirectories all copied asis to the applications ~/themes
directory in its document (context) root.
It is the responsibility of developer / system integrator to ensure all files
are copied to the right location and the theme works with the modification. No
functionality or consistency check is performed!

View File

@ -1,3 +1,3 @@
Subdirectory <cat> may optionally contain one or more local site specific
Subdirectory <categories> may optionally contain one or more local site specific
import xml files for Terms domain categories.

View File

@ -0,0 +1,4 @@
Subdirectory <navigation> may optionally contain a local site specific
text files describing additional jsp templates for navigation.
The template jsp files are stored in templates/ccm-navigation/navigation

View File

@ -1,3 +1,6 @@
Subdirectory <cat> may optionally contain one or more local site specific
import xml files for Terms domain categories.
Directory <res> will be available during installation by classloader. All
content has to be placed in a subdirectory, typically bundle. It can be
addressed as /bundle/[fileName|dirName]
EXAMPLE:
com.arsdigita.navigation.templates_file=bundle/navigation/templates.txt

View File

@ -1,4 +1,7 @@
Subdirectory <nav> may optionally contain navigation item templates for
The installation program copies all sub-directories and files in this directory
into the applications webapps subdirectory templates.
Subdirectory <navigation> may optionally contain navigation item templates for
navigation index pages which either overwrite or ammend those templates
which are default for ccm-sci-bundle and stored in
/web/templates/ccm-navigation/navigation
@ -7,6 +10,7 @@ Templates of the same name in this subdirectory just overwrite the
default files. Templates of different names are stored in addition
to the default template files. In the later case a developer must
provide a customised template.txt file replacing the default file
/src/WEB-INF/navigation/sci-templates.txt
/src/WEB-INF/navigation/templates.txt
This file must be specified in parameter
com.arsdigita.navigation.templates_file
com.arsdigita.navigation.templates_file
It usually stored in res/bundle/navigation

View File

@ -1,13 +0,0 @@
Bundle subdir themes
Purpose:
This subdir may optionally contain theme files which either replace part of the
theme or add files to the theme provided as default for ScientificCMS and this
way adopt the theme for site specific design.
All files and subdirectories all copied asis to the applications ~/themes
directory in its document (context) root.
It is the responsibility of developer / system integrator to ensure all files
are copied to the right location and the theme works with the modification. No
functionality or consistency check is perfordmed!

View File

@ -1,12 +1,13 @@
Subdirectory <nav> may optionally contain navigation item templates for
navigation index pages which either overwrite or ammend those templates
which are default for ccm-sci-bundle and stored in
/web/templates/ccm-navigation/navigation
Bundle subdir themes
Templates of the same name in this subdirectory just overwrite the
default files. Templates of different names are stored in addition
to the default template files. In the later case a developer must
provide a customised template.txt file replacing the default file
/src/WEB-INF/navigation/sci-templates.txt
This file must be specified in parameter
com.arsdigita.navigation.templates_file
Purpose:
This subdir may optionally contain theme files which either replace part of the
theme or add files to the theme provided as default for APLAWS+ and this
way adopt the theme for site specific design.
All files and subdirectories all copied asis to the applications ~/themes
directory in its document (context) root.
It is the responsibility of developer / system integrator to ensure all files
are copied to the right location and the theme works with the modification. No
functionality or consistency check is performed!

View File

@ -0,0 +1,3 @@
Subdirectory <categories> may optionally contain one or more local site specific
import xml files for Terms domain categories.

View File

@ -0,0 +1,151 @@
<?xml version="1.0"?>
<terms:domain xmlns:terms="http://xmlns.redhat.com/london/terms/1.0"
about="http://www.aplaws.org.uk/standards/nav/1.03/termslist.xml"
key="APLAWS-NAV"
title="APLAWS Navigation List"
version="1.03" released="2004-03-24">
<terms:term id="1" name="Business" inAtoZ="false"/>
<terms:term id="1007" name="Jobs and careers" inAtoZ="false"/>
<terms:term id="1021" name="Legal services" inAtoZ="false"/>
<terms:term id="1039" name="Leisure and culture" inAtoZ="false"/>
<terms:term id="1286" name="Policing and public safety" inAtoZ="false"/>
<terms:term id="1325" name="Social issues" inAtoZ="false"/>
<terms:term id="1337" name="Transport and streets" inAtoZ="false"/>
<terms:term id="204" name="Education and learning" inAtoZ="false"/>
<terms:term id="281" name="Environment" inAtoZ="false"/>
<terms:term id="3088" name="Council, government and democracy" inAtoZ="false"/>
<terms:term id="3168" name="Obsolete terms" inAtoZ="false"/>
<terms:term id="596" name="Health and social care" inAtoZ="false"/>
<terms:term id="93" name="Community and living" inAtoZ="false"/>
<terms:term id="946" name="Housing" inAtoZ="false"/>
<terms:term id="11" name="Business promotion" inAtoZ="false"/>
<terms:term id="15" name="Business property" inAtoZ="false"/>
<terms:term id="1523" name="Business procurement" inAtoZ="false"/>
<terms:term id="21" name="Business sectors and services" inAtoZ="false"/>
<terms:term id="3100" name="Workers' co-operatives" inAtoZ="false"/>
<terms:term id="3300" name="Business and street trading licences" inAtoZ="false"/>
<terms:term id="3323" name="Business support and advice" inAtoZ="false"/>
<terms:term id="3329" name="Imports and exports" inAtoZ="false"/>
<terms:term id="5" name="Business finance" inAtoZ="false"/>
<terms:term id="59" name="Economic development" inAtoZ="false"/>
<terms:term id="62" name="Employing people" inAtoZ="false"/>
<terms:term id="66" name="Health and safety" inAtoZ="false"/>
<terms:term id="70" name="Trading standards" inAtoZ="false"/>
<terms:term id="8" name="Business opportunities" inAtoZ="false"/>
<terms:term id="1008" name="Finding work" inAtoZ="false"/>
<terms:term id="1017" name="Retirement" inAtoZ="false"/>
<terms:term id="1026" name="Legal advice" inAtoZ="false"/>
<terms:term id="1029" name="Courts" inAtoZ="false"/>
<terms:term id="1037" name="Probation" inAtoZ="false"/>
<terms:term id="1308" name="Police" inAtoZ="false"/>
<terms:term id="1309" name="Prisons" inAtoZ="false"/>
<terms:term id="1326" name="Equal opportunities" inAtoZ="false"/>
<terms:term id="2083" name="Legislation" inAtoZ="false"/>
<terms:term id="3025" name="Civil and human rights" inAtoZ="false"/>
<terms:term id="3441" name="Legal professions" inAtoZ="false"/>
<terms:term id="3442" name="Young offending" inAtoZ="false"/>
<terms:term id="1041" name="Arts and entertainment" inAtoZ="false"/>
<terms:term id="1098" name="Children's activities" inAtoZ="false"/>
<terms:term id="1102" name="Libraries" inAtoZ="false"/>
<terms:term id="1106" name="Local history and heritage" inAtoZ="false"/>
<terms:term id="1113" name="Hobbies and interests" inAtoZ="false"/>
<terms:term id="1132" name="Parks and recreation" inAtoZ="false"/>
<terms:term id="1164" name="Social clubs" inAtoZ="false"/>
<terms:term id="1165" name="Sports" inAtoZ="false"/>
<terms:term id="1248" name="Tourism and travel" inAtoZ="false"/>
<terms:term id="1258" name="Uniformed groups" inAtoZ="false"/>
<terms:term id="1261" name="Young people's activities" inAtoZ="false"/>
<terms:term id="1482" name="Museums and galleries" inAtoZ="false"/>
<terms:term id="1287" name="Accidents, emergencies and safety" inAtoZ="false"/>
<terms:term id="1298" name="Coastguard" inAtoZ="false"/>
<terms:term id="1299" name="Crime and law enforcement" inAtoZ="false"/>
<terms:term id="1310" name="Victim support" inAtoZ="false"/>
<terms:term id="1311" name="Discrimination or harassment" inAtoZ="false"/>
<terms:term id="3454" name="Fire fighting and rescue services" inAtoZ="false"/>
<!-- bug: this appears twice (look up a bit)
<terms:term id="1326" name="Equal opportunities" inAtoZ="false"/>
-->
<terms:term id="1327" name="Identity cards" inAtoZ="false"/>
<terms:term id="1328" name="Immigration and nationality" inAtoZ="false"/>
<terms:term id="1329" name="Sexual orientation" inAtoZ="false"/>
<terms:term id="1331" name="Firearms" inAtoZ="false"/>
<terms:term id="1332" name="Population and migration" inAtoZ="false"/>
<terms:term id="1333" name="Privacy and data protection" inAtoZ="false"/>
<terms:term id="1335" name="Rural communities" inAtoZ="false"/>
<terms:term id="1336" name="Social inclusion" inAtoZ="false"/>
<terms:term id="697" name="Family planning" inAtoZ="false"/>
<terms:term id="1352" name="Public rights of way" inAtoZ="false"/>
<terms:term id="1353" name="Motor vehicles, roads and parking" inAtoZ="false"/>
<terms:term id="1388" name="Public transport" inAtoZ="false"/>
<terms:term id="1402" name="Road and pathway maintenance" inAtoZ="false"/>
<terms:term id="1424" name="Transport planning" inAtoZ="false"/>
<terms:term id="3457" name="Ports and harbours" inAtoZ="false"/>
<terms:term id="3459" name="Waterways" inAtoZ="false"/>
<terms:term id="3461" name="Reservoirs" inAtoZ="false"/>
<terms:term id="205" name="Educational institutions" inAtoZ="false"/>
<terms:term id="206" name="Distance learning" inAtoZ="false"/>
<terms:term id="212" name="Language tuition" inAtoZ="false"/>
<terms:term id="219" name="Adult and community education" inAtoZ="false"/>
<terms:term id="2237" name="Teaching" inAtoZ="false"/>
<terms:term id="238" name="Work based learning" inAtoZ="false"/>
<terms:term id="280" name="Youth service" inAtoZ="false"/>
<terms:term id="3008" name="Higher education" inAtoZ="false"/>
<terms:term id="3345" name="Home education" inAtoZ="false"/>
<terms:term id="3346" name="School library service" inAtoZ="false"/>
<terms:term id="3347" name="Schools and colleges" inAtoZ="false"/>
<terms:term id="3359" name="Education welfare services" inAtoZ="false"/>
<terms:term id="3366" name="Youth support" inAtoZ="false"/>
<terms:term id="3440" name="Job training and development" inAtoZ="false"/>
<terms:term id="284" name="Animal welfare" inAtoZ="false"/>
<terms:term id="3374" name="Land and premises" inAtoZ="false"/>
<terms:term id="3379" name="Pests and nuisance" inAtoZ="false"/>
<terms:term id="3391" name="Pollution" inAtoZ="false"/>
<terms:term id="3393" name="Street care and cleaning" inAtoZ="false"/>
<terms:term id="3400" name="Town centre management" inAtoZ="false"/>
<terms:term id="347" name="Food production and quality" inAtoZ="false"/>
<terms:term id="372" name="Planning" inAtoZ="false"/>
<terms:term id="409" name="Energy" inAtoZ="false"/>
<terms:term id="420" name="Rubbish, waste and recycling" inAtoZ="false"/>
<terms:term id="451" name="Weather" inAtoZ="false"/>
<terms:term id="13" name="Information management" inAtoZ="false"/>
<terms:term id="3116" name="Democratic processes and events" inAtoZ="false"/>
<terms:term id="3344" name="Data protection and freedom of information" inAtoZ="false"/>
<terms:term id="454" name="Central government" inAtoZ="false"/>
<terms:term id="459" name="Councils" inAtoZ="false"/>
<terms:term id="524" name="Elections" inAtoZ="false"/>
<terms:term id="552" name="European affairs" inAtoZ="false"/>
<terms:term id="566" name="International affairs" inAtoZ="false"/>
<terms:term id="569" name="Non-governmental organisations" inAtoZ="false"/>
<terms:term id="584" name="Political parties" inAtoZ="false"/>
<terms:term id="592" name="Public services" inAtoZ="false"/>
<terms:term id="593" name="Regional governments" inAtoZ="false"/>
<terms:term id="178" name="Village newsletters" inAtoZ="false"/>
<terms:term id="462" name="Council documents, facts and figures" inAtoZ="false"/>
<terms:term id="514" name="Petitions" inAtoZ="false"/>
<terms:term id="515" name="Surveys" inAtoZ="false"/>
<terms:term id="597" name="Health and medical care" inAtoZ="false"/>
<terms:term id="631" name="Disabilities" inAtoZ="false"/>
<terms:term id="856" name="Social policy" inAtoZ="false"/>
<terms:term id="860" name="Social services" inAtoZ="false"/>
<terms:term id="107" name="Ethnic communities" inAtoZ="false"/>
<terms:term id="1302" name="Community safety" inAtoZ="false"/>
<terms:term id="1527" name="Life events" inAtoZ="false"/>
<terms:term id="182" name="Twinning" inAtoZ="false"/>
<terms:term id="184" name="Voluntary organisations" inAtoZ="false"/>
<terms:term id="201" name="Volunteering" inAtoZ="false"/>
<terms:term id="3013" name="Neighbourhood and village" inAtoZ="false"/>
<terms:term id="3101" name="Interpreters' services" inAtoZ="false"/>
<terms:term id="3118" name="Charities and citizens' interest groups" inAtoZ="false"/>
<terms:term id="3330" name="Community grants" inAtoZ="false"/>
<terms:term id="3332" name="Faiths, beliefs and religions" inAtoZ="false"/>
<terms:term id="95" name="Consumer advice and protection" inAtoZ="false"/>
<terms:term id="1627" name="Supported and sheltered housing" inAtoZ="false"/>
<terms:term id="2639" name="Private housing" inAtoZ="false"/>
<terms:term id="3424" name="Housing associations and co-operatives" inAtoZ="false"/>
<terms:term id="3426" name="Housing finance" inAtoZ="false"/>
<terms:term id="3430" name="Housing improvement and repairs" inAtoZ="false"/>
<terms:term id="3438" name="Multiple occupancy homes" inAtoZ="false"/>
<terms:term id="952" name="Housing advice" inAtoZ="false"/>
<terms:term id="960" name="Council housing" inAtoZ="false"/>
</terms:domain>

View File

@ -0,0 +1,160 @@
<?xml version="1.0" encoding="utf-8"?>
<terms:mapping xmlns:terms="http://xmlns.redhat.com/london/terms/1.0">
<terms:source>
<terms:domain resource="http://www.esd.org.uk/standards/lgcl/1.03/termslist.xml"/>
</terms:source>
<terms:destination>
<terms:domain resource="http://www.aplaws.org.uk/standards/nav/1.03/termslist.xml"/>
</terms:destination>
<terms:orderedPair>
<terms:source><terms:term id="1"/></terms:source>
<terms:destination><terms:term id="1"/></terms:destination>
</terms:orderedPair>
<terms:orderedPair>
<terms:source><terms:term id="1007"/></terms:source>
<terms:destination><terms:term id="1007"/></terms:destination>
</terms:orderedPair>
<terms:orderedPair><terms:source><terms:term id="1021"/></terms:source><terms:destination><terms:term id="1021"/></terms:destination></terms:orderedPair>
<terms:orderedPair><terms:source><terms:term id="1039"/></terms:source><terms:destination><terms:term id="1039"/></terms:destination></terms:orderedPair>
<terms:orderedPair><terms:source><terms:term id="1286"/></terms:source><terms:destination><terms:term id="1286"/></terms:destination></terms:orderedPair>
<terms:orderedPair><terms:source><terms:term id="1325"/></terms:source><terms:destination><terms:term id="1325"/></terms:destination></terms:orderedPair>
<terms:orderedPair><terms:source><terms:term id="1337"/></terms:source><terms:destination><terms:term id="1337"/></terms:destination></terms:orderedPair>
<terms:orderedPair><terms:source><terms:term id="204"/></terms:source><terms:destination><terms:term id="204"/></terms:destination></terms:orderedPair>
<terms:orderedPair><terms:source><terms:term id="281"/></terms:source><terms:destination><terms:term id="281"/></terms:destination></terms:orderedPair>
<terms:orderedPair><terms:source><terms:term id="3088"/></terms:source><terms:destination><terms:term id="3088"/></terms:destination></terms:orderedPair>
<terms:orderedPair><terms:source><terms:term id="3168"/></terms:source><terms:destination><terms:term id="3168"/></terms:destination></terms:orderedPair>
<terms:orderedPair><terms:source><terms:term id="596"/></terms:source><terms:destination><terms:term id="596"/></terms:destination></terms:orderedPair>
<terms:orderedPair><terms:source><terms:term id="93"/></terms:source><terms:destination><terms:term id="93"/></terms:destination></terms:orderedPair>
<terms:orderedPair><terms:source><terms:term id="946"/></terms:source><terms:destination><terms:term id="946"/></terms:destination></terms:orderedPair>
<terms:orderedPair><terms:source><terms:term id="11"/></terms:source><terms:destination><terms:term id="11"/></terms:destination></terms:orderedPair>
<terms:orderedPair><terms:source><terms:term id="15"/></terms:source><terms:destination><terms:term id="15"/></terms:destination></terms:orderedPair>
<terms:orderedPair><terms:source><terms:term id="1523"/></terms:source><terms:destination><terms:term id="1523"/></terms:destination></terms:orderedPair>
<terms:orderedPair><terms:source><terms:term id="21"/></terms:source><terms:destination><terms:term id="21"/></terms:destination></terms:orderedPair>
<terms:orderedPair><terms:source><terms:term id="3100"/></terms:source><terms:destination><terms:term id="3100"/></terms:destination></terms:orderedPair>
<terms:orderedPair><terms:source><terms:term id="3300"/></terms:source><terms:destination><terms:term id="3300"/></terms:destination></terms:orderedPair>
<terms:orderedPair><terms:source><terms:term id="3323"/></terms:source><terms:destination><terms:term id="3323"/></terms:destination></terms:orderedPair>
<terms:orderedPair><terms:source><terms:term id="3329"/></terms:source><terms:destination><terms:term id="3329"/></terms:destination></terms:orderedPair>
<terms:orderedPair><terms:source><terms:term id="5"/></terms:source><terms:destination><terms:term id="5"/></terms:destination></terms:orderedPair>
<terms:orderedPair><terms:source><terms:term id="59"/></terms:source><terms:destination><terms:term id="59"/></terms:destination></terms:orderedPair>
<terms:orderedPair><terms:source><terms:term id="62"/></terms:source><terms:destination><terms:term id="62"/></terms:destination></terms:orderedPair>
<terms:orderedPair><terms:source><terms:term id="66"/></terms:source><terms:destination><terms:term id="66"/></terms:destination></terms:orderedPair>
<terms:orderedPair><terms:source><terms:term id="70"/></terms:source><terms:destination><terms:term id="70"/></terms:destination></terms:orderedPair>
<terms:orderedPair><terms:source><terms:term id="8"/></terms:source><terms:destination><terms:term id="8"/></terms:destination></terms:orderedPair>
<terms:orderedPair><terms:source><terms:term id="1008"/></terms:source><terms:destination><terms:term id="1008"/></terms:destination></terms:orderedPair>
<terms:orderedPair><terms:source><terms:term id="1017"/></terms:source><terms:destination><terms:term id="1017"/></terms:destination></terms:orderedPair>
<terms:orderedPair><terms:source><terms:term id="1026"/></terms:source><terms:destination><terms:term id="1026"/></terms:destination></terms:orderedPair>
<terms:orderedPair><terms:source><terms:term id="1029"/></terms:source><terms:destination><terms:term id="1029"/></terms:destination></terms:orderedPair>
<terms:orderedPair><terms:source><terms:term id="1037"/></terms:source><terms:destination><terms:term id="1037"/></terms:destination></terms:orderedPair>
<terms:orderedPair><terms:source><terms:term id="1308"/></terms:source><terms:destination><terms:term id="1308"/></terms:destination></terms:orderedPair>
<terms:orderedPair><terms:source><terms:term id="1309"/></terms:source><terms:destination><terms:term id="1309"/></terms:destination></terms:orderedPair>
<terms:orderedPair><terms:source><terms:term id="1326"/></terms:source><terms:destination><terms:term id="1326"/></terms:destination></terms:orderedPair>
<terms:orderedPair><terms:source><terms:term id="2083"/></terms:source><terms:destination><terms:term id="2083"/></terms:destination></terms:orderedPair>
<terms:orderedPair><terms:source><terms:term id="3025"/></terms:source><terms:destination><terms:term id="3025"/></terms:destination></terms:orderedPair>
<terms:orderedPair><terms:source><terms:term id="3441"/></terms:source><terms:destination><terms:term id="3441"/></terms:destination></terms:orderedPair>
<terms:orderedPair><terms:source><terms:term id="3442"/></terms:source><terms:destination><terms:term id="3442"/></terms:destination></terms:orderedPair>
<terms:orderedPair><terms:source><terms:term id="1041"/></terms:source><terms:destination><terms:term id="1041"/></terms:destination></terms:orderedPair>
<terms:orderedPair><terms:source><terms:term id="1098"/></terms:source><terms:destination><terms:term id="1098"/></terms:destination></terms:orderedPair>
<terms:orderedPair><terms:source><terms:term id="1102"/></terms:source><terms:destination><terms:term id="1102"/></terms:destination></terms:orderedPair>
<terms:orderedPair><terms:source><terms:term id="1106"/></terms:source><terms:destination><terms:term id="1106"/></terms:destination></terms:orderedPair>
<terms:orderedPair><terms:source><terms:term id="1113"/></terms:source><terms:destination><terms:term id="1113"/></terms:destination></terms:orderedPair>
<terms:orderedPair><terms:source><terms:term id="1132"/></terms:source><terms:destination><terms:term id="1132"/></terms:destination></terms:orderedPair>
<terms:orderedPair><terms:source><terms:term id="1164"/></terms:source><terms:destination><terms:term id="1164"/></terms:destination></terms:orderedPair>
<terms:orderedPair><terms:source><terms:term id="1165"/></terms:source><terms:destination><terms:term id="1165"/></terms:destination></terms:orderedPair>
<terms:orderedPair><terms:source><terms:term id="1248"/></terms:source><terms:destination><terms:term id="1248"/></terms:destination></terms:orderedPair>
<terms:orderedPair><terms:source><terms:term id="1258"/></terms:source><terms:destination><terms:term id="1258"/></terms:destination></terms:orderedPair>
<terms:orderedPair><terms:source><terms:term id="1261"/></terms:source><terms:destination><terms:term id="1261"/></terms:destination></terms:orderedPair>
<terms:orderedPair><terms:source><terms:term id="1482"/></terms:source><terms:destination><terms:term id="1482"/></terms:destination></terms:orderedPair>
<terms:orderedPair><terms:source><terms:term id="1287"/></terms:source><terms:destination><terms:term id="1287"/></terms:destination></terms:orderedPair>
<terms:orderedPair><terms:source><terms:term id="1298"/></terms:source><terms:destination><terms:term id="1298"/></terms:destination></terms:orderedPair>
<terms:orderedPair><terms:source><terms:term id="1299"/></terms:source><terms:destination><terms:term id="1299"/></terms:destination></terms:orderedPair>
<terms:orderedPair><terms:source><terms:term id="1310"/></terms:source><terms:destination><terms:term id="1310"/></terms:destination></terms:orderedPair>
<terms:orderedPair><terms:source><terms:term id="1311"/></terms:source><terms:destination><terms:term id="1311"/></terms:destination></terms:orderedPair>
<terms:orderedPair><terms:source><terms:term id="3454"/></terms:source><terms:destination><terms:term id="3454"/></terms:destination></terms:orderedPair>
<terms:orderedPair><terms:source><terms:term id="1326"/></terms:source><terms:destination><terms:term id="1326"/></terms:destination></terms:orderedPair>
<terms:orderedPair><terms:source><terms:term id="1327"/></terms:source><terms:destination><terms:term id="1327"/></terms:destination></terms:orderedPair>
<terms:orderedPair><terms:source><terms:term id="1328"/></terms:source><terms:destination><terms:term id="1328"/></terms:destination></terms:orderedPair>
<terms:orderedPair><terms:source><terms:term id="1329"/></terms:source><terms:destination><terms:term id="1329"/></terms:destination></terms:orderedPair>
<terms:orderedPair><terms:source><terms:term id="1331"/></terms:source><terms:destination><terms:term id="1331"/></terms:destination></terms:orderedPair>
<terms:orderedPair><terms:source><terms:term id="1332"/></terms:source><terms:destination><terms:term id="1332"/></terms:destination></terms:orderedPair>
<terms:orderedPair><terms:source><terms:term id="1333"/></terms:source><terms:destination><terms:term id="1333"/></terms:destination></terms:orderedPair>
<terms:orderedPair><terms:source><terms:term id="1335"/></terms:source><terms:destination><terms:term id="1335"/></terms:destination></terms:orderedPair>
<terms:orderedPair><terms:source><terms:term id="1336"/></terms:source><terms:destination><terms:term id="1336"/></terms:destination></terms:orderedPair>
<terms:orderedPair><terms:source><terms:term id="697"/></terms:source><terms:destination><terms:term id="697"/></terms:destination></terms:orderedPair>
<terms:orderedPair><terms:source><terms:term id="1352"/></terms:source><terms:destination><terms:term id="1352"/></terms:destination></terms:orderedPair>
<terms:orderedPair><terms:source><terms:term id="1353"/></terms:source><terms:destination><terms:term id="1353"/></terms:destination></terms:orderedPair>
<terms:orderedPair><terms:source><terms:term id="1388"/></terms:source><terms:destination><terms:term id="1388"/></terms:destination></terms:orderedPair>
<terms:orderedPair><terms:source><terms:term id="1402"/></terms:source><terms:destination><terms:term id="1402"/></terms:destination></terms:orderedPair>
<terms:orderedPair><terms:source><terms:term id="1424"/></terms:source><terms:destination><terms:term id="1424"/></terms:destination></terms:orderedPair>
<terms:orderedPair><terms:source><terms:term id="3457"/></terms:source><terms:destination><terms:term id="3457"/></terms:destination></terms:orderedPair>
<terms:orderedPair><terms:source><terms:term id="3459"/></terms:source><terms:destination><terms:term id="3459"/></terms:destination></terms:orderedPair>
<terms:orderedPair><terms:source><terms:term id="3461"/></terms:source><terms:destination><terms:term id="3461"/></terms:destination></terms:orderedPair>
<terms:orderedPair><terms:source><terms:term id="205"/></terms:source><terms:destination><terms:term id="205"/></terms:destination></terms:orderedPair>
<terms:orderedPair><terms:source><terms:term id="206"/></terms:source><terms:destination><terms:term id="206"/></terms:destination></terms:orderedPair>
<terms:orderedPair><terms:source><terms:term id="212"/></terms:source><terms:destination><terms:term id="212"/></terms:destination></terms:orderedPair>
<terms:orderedPair><terms:source><terms:term id="219"/></terms:source><terms:destination><terms:term id="219"/></terms:destination></terms:orderedPair>
<terms:orderedPair><terms:source><terms:term id="2237"/></terms:source><terms:destination><terms:term id="2237"/></terms:destination></terms:orderedPair>
<terms:orderedPair><terms:source><terms:term id="238"/></terms:source><terms:destination><terms:term id="238"/></terms:destination></terms:orderedPair>
<terms:orderedPair><terms:source><terms:term id="280"/></terms:source><terms:destination><terms:term id="280"/></terms:destination></terms:orderedPair>
<terms:orderedPair><terms:source><terms:term id="3008"/></terms:source><terms:destination><terms:term id="3008"/></terms:destination></terms:orderedPair>
<terms:orderedPair><terms:source><terms:term id="3345"/></terms:source><terms:destination><terms:term id="3345"/></terms:destination></terms:orderedPair>
<terms:orderedPair><terms:source><terms:term id="3346"/></terms:source><terms:destination><terms:term id="3346"/></terms:destination></terms:orderedPair>
<terms:orderedPair><terms:source><terms:term id="3347"/></terms:source><terms:destination><terms:term id="3347"/></terms:destination></terms:orderedPair>
<terms:orderedPair><terms:source><terms:term id="3359"/></terms:source><terms:destination><terms:term id="3359"/></terms:destination></terms:orderedPair>
<terms:orderedPair><terms:source><terms:term id="3366"/></terms:source><terms:destination><terms:term id="3366"/></terms:destination></terms:orderedPair>
<terms:orderedPair><terms:source><terms:term id="3440"/></terms:source><terms:destination><terms:term id="3440"/></terms:destination></terms:orderedPair>
<terms:orderedPair><terms:source><terms:term id="284"/></terms:source><terms:destination><terms:term id="284"/></terms:destination></terms:orderedPair>
<terms:orderedPair><terms:source><terms:term id="3374"/></terms:source><terms:destination><terms:term id="3374"/></terms:destination></terms:orderedPair>
<terms:orderedPair><terms:source><terms:term id="3379"/></terms:source><terms:destination><terms:term id="3379"/></terms:destination></terms:orderedPair>
<terms:orderedPair><terms:source><terms:term id="3391"/></terms:source><terms:destination><terms:term id="3391"/></terms:destination></terms:orderedPair>
<terms:orderedPair><terms:source><terms:term id="3393"/></terms:source><terms:destination><terms:term id="3393"/></terms:destination></terms:orderedPair>
<terms:orderedPair><terms:source><terms:term id="3400"/></terms:source><terms:destination><terms:term id="3400"/></terms:destination></terms:orderedPair>
<terms:orderedPair><terms:source><terms:term id="347"/></terms:source><terms:destination><terms:term id="347"/></terms:destination></terms:orderedPair>
<terms:orderedPair><terms:source><terms:term id="372"/></terms:source><terms:destination><terms:term id="372"/></terms:destination></terms:orderedPair>
<terms:orderedPair><terms:source><terms:term id="409"/></terms:source><terms:destination><terms:term id="409"/></terms:destination></terms:orderedPair>
<terms:orderedPair><terms:source><terms:term id="420"/></terms:source><terms:destination><terms:term id="420"/></terms:destination></terms:orderedPair>
<terms:orderedPair><terms:source><terms:term id="451"/></terms:source><terms:destination><terms:term id="451"/></terms:destination></terms:orderedPair>
<terms:orderedPair><terms:source><terms:term id="13"/></terms:source><terms:destination><terms:term id="13"/></terms:destination></terms:orderedPair>
<terms:orderedPair><terms:source><terms:term id="3116"/></terms:source><terms:destination><terms:term id="3116"/></terms:destination></terms:orderedPair>
<terms:orderedPair><terms:source><terms:term id="3344"/></terms:source><terms:destination><terms:term id="3344"/></terms:destination></terms:orderedPair>
<terms:orderedPair><terms:source><terms:term id="454"/></terms:source><terms:destination><terms:term id="454"/></terms:destination></terms:orderedPair>
<terms:orderedPair><terms:source><terms:term id="459"/></terms:source><terms:destination><terms:term id="459"/></terms:destination></terms:orderedPair>
<terms:orderedPair><terms:source><terms:term id="524"/></terms:source><terms:destination><terms:term id="524"/></terms:destination></terms:orderedPair>
<terms:orderedPair><terms:source><terms:term id="552"/></terms:source><terms:destination><terms:term id="552"/></terms:destination></terms:orderedPair>
<terms:orderedPair><terms:source><terms:term id="566"/></terms:source><terms:destination><terms:term id="566"/></terms:destination></terms:orderedPair>
<terms:orderedPair><terms:source><terms:term id="569"/></terms:source><terms:destination><terms:term id="569"/></terms:destination></terms:orderedPair>
<terms:orderedPair><terms:source><terms:term id="584"/></terms:source><terms:destination><terms:term id="584"/></terms:destination></terms:orderedPair>
<terms:orderedPair><terms:source><terms:term id="592"/></terms:source><terms:destination><terms:term id="592"/></terms:destination></terms:orderedPair>
<terms:orderedPair><terms:source><terms:term id="593"/></terms:source><terms:destination><terms:term id="593"/></terms:destination></terms:orderedPair>
<terms:orderedPair><terms:source><terms:term id="178"/></terms:source><terms:destination><terms:term id="178"/></terms:destination></terms:orderedPair>
<terms:orderedPair><terms:source><terms:term id="462"/></terms:source><terms:destination><terms:term id="462"/></terms:destination></terms:orderedPair>
<terms:orderedPair><terms:source><terms:term id="514"/></terms:source><terms:destination><terms:term id="514"/></terms:destination></terms:orderedPair>
<terms:orderedPair><terms:source><terms:term id="515"/></terms:source><terms:destination><terms:term id="515"/></terms:destination></terms:orderedPair>
<terms:orderedPair><terms:source><terms:term id="597"/></terms:source><terms:destination><terms:term id="597"/></terms:destination></terms:orderedPair>
<terms:orderedPair><terms:source><terms:term id="631"/></terms:source><terms:destination><terms:term id="631"/></terms:destination></terms:orderedPair>
<terms:orderedPair><terms:source><terms:term id="856"/></terms:source><terms:destination><terms:term id="856"/></terms:destination></terms:orderedPair>
<terms:orderedPair><terms:source><terms:term id="860"/></terms:source><terms:destination><terms:term id="860"/></terms:destination></terms:orderedPair>
<terms:orderedPair><terms:source><terms:term id="107"/></terms:source><terms:destination><terms:term id="107"/></terms:destination></terms:orderedPair>
<terms:orderedPair><terms:source><terms:term id="1302"/></terms:source><terms:destination><terms:term id="1302"/></terms:destination></terms:orderedPair>
<terms:orderedPair><terms:source><terms:term id="1527"/></terms:source><terms:destination><terms:term id="1527"/></terms:destination></terms:orderedPair>
<terms:orderedPair><terms:source><terms:term id="182"/></terms:source><terms:destination><terms:term id="182"/></terms:destination></terms:orderedPair>
<terms:orderedPair><terms:source><terms:term id="184"/></terms:source><terms:destination><terms:term id="184"/></terms:destination></terms:orderedPair>
<terms:orderedPair><terms:source><terms:term id="201"/></terms:source><terms:destination><terms:term id="201"/></terms:destination></terms:orderedPair>
<terms:orderedPair><terms:source><terms:term id="3013"/></terms:source><terms:destination><terms:term id="3013"/></terms:destination></terms:orderedPair>
<terms:orderedPair><terms:source><terms:term id="3101"/></terms:source><terms:destination><terms:term id="3101"/></terms:destination></terms:orderedPair>
<terms:orderedPair><terms:source><terms:term id="3118"/></terms:source><terms:destination><terms:term id="3118"/></terms:destination></terms:orderedPair>
<terms:orderedPair><terms:source><terms:term id="3330"/></terms:source><terms:destination><terms:term id="3330"/></terms:destination></terms:orderedPair>
<terms:orderedPair><terms:source><terms:term id="3332"/></terms:source><terms:destination><terms:term id="3332"/></terms:destination></terms:orderedPair>
<terms:orderedPair><terms:source><terms:term id="95"/></terms:source><terms:destination><terms:term id="95"/></terms:destination></terms:orderedPair>
<terms:orderedPair><terms:source><terms:term id="1627"/></terms:source><terms:destination><terms:term id="1627"/></terms:destination></terms:orderedPair>
<terms:orderedPair><terms:source><terms:term id="2639"/></terms:source><terms:destination><terms:term id="2639"/></terms:destination></terms:orderedPair>
<terms:orderedPair><terms:source><terms:term id="3424"/></terms:source><terms:destination><terms:term id="3424"/></terms:destination></terms:orderedPair>
<terms:orderedPair><terms:source><terms:term id="3426"/></terms:source><terms:destination><terms:term id="3426"/></terms:destination></terms:orderedPair>
<terms:orderedPair><terms:source><terms:term id="3430"/></terms:source><terms:destination><terms:term id="3430"/></terms:destination></terms:orderedPair>
<terms:orderedPair><terms:source><terms:term id="3438"/></terms:source><terms:destination><terms:term id="3438"/></terms:destination></terms:orderedPair>
<terms:orderedPair><terms:source><terms:term id="952"/></terms:source><terms:destination><terms:term id="952"/></terms:destination></terms:orderedPair>
<terms:orderedPair><terms:source><terms:term id="960"/></terms:source><terms:destination><terms:term id="960"/></terms:destination></terms:orderedPair>
</terms:mapping>

View File

@ -0,0 +1,44 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:terms="http://xmlns.redhat.com/london/terms/1.0">
<xsl:template match="terms:domain">
<terms:mapping xmlns:terms="http://xmlns.redhat.com/london/terms/1.0">
<terms:source>
<terms:domain resource="http://www.esd.org.uk/standards/lgcl/1.03/termslist.xml"/>
</terms:source>
<terms:destination>
<terms:domain resource="http://www.aplaws.org.uk/standards/nav/1.03/termslist.xml"/>
</terms:destination>
<xsl:apply-templates />
</terms:mapping>
</xsl:template>
<xsl:template match="terms:term">
<terms:orderedPair>
<terms:source>
<terms:term>
<xsl:attribute name="id">
<xsl:value-of select="@id" />
</xsl:attribute>
</terms:term>
</terms:source>
<terms:destination>
<terms:term>
<xsl:attribute name="id">
<xsl:value-of select="@id" />
</xsl:attribute>
</terms:term>
</terms:destination>
</terms:orderedPair>
</xsl:template>
</xsl:stylesheet>

View File

@ -0,0 +1,4 @@
Subdirectory <navigation> may optionally contain a local site specific
text files describing additional jsp templates for navigation.
The template jsp files are stored in templates/ccm-navigation/navigation

View File

@ -0,0 +1,9 @@
ScientificCMS Default Items Page,Sci Default Navigation Index Page ordering items in ascending order,/templates/ccm-navigation/navigation/sci-default.jsp
ScientificCMS Recent Items Page,Sci List of items ordered with most recent first,/templates/ccm-navigation/navigation/sci-recent.jsp
ScientificCMS A-Z Items,Sci List of items paginated as A-Z,/templates/ccm-navigation/navigation/sci-atoz.jsp
ScientificCMS Events Page,Sci Events Page ordering events in ??? order,/templates/ccm-navigation/navigation/sci-events.jsp
ScientificCMS Portal Page,Sci Portal Page for embedding a portal page as navigation leaves page,/templates/ccm-navigation/navigation/sci-portal.jsp
ScientificCMS Portal Welcome Page,Sci Portal page meant as site welcome page,/templates/ccm-navigation/navigation/sci-portal-welcome.jsp
ScientificCMS Navigation Welcome Page,Sci site welcome page created by navigation root term,/templates/ccm-navigation/navigation/sci-welcome.jsp
ScientificCMS Specializing Items List,Sci Specialising List item page,/templates/ccm-navigation/navigation/SpecializingList.jsp
ScientificCMS Publications List,Sci publications listing page,/templates/ccm-navigation/navigation/SciPublicationList.jsp

View File

@ -0,0 +1,6 @@
Directory <res> will be available during installation by classloader. All
content has to be placed in a subdirectory, typically bundle. It can be
addressed as /bundle/[fileName|dirName]
EXAMPLE:
com.arsdigita.navigation.templates_file=bundle/navigation/templates.txt

View File

@ -0,0 +1,16 @@
The installation program copies all sub-directories and files in this directory
into the applications webapps subdirectory templates.
Subdirectory <navigation> may optionally contain navigation item templates for
navigation index pages which either overwrite or ammend those templates
which are default for ccm-sci-bundle and stored in
/web/templates/ccm-navigation/navigation
Templates of the same name in this subdirectory just overwrite the
default files. Templates of different names are stored in addition
to the default template files. In the later case a developer must
provide a customised template.txt file replacing the default file
/src/WEB-INF/navigation/templates.txt
This file must be specified in parameter
com.arsdigita.navigation.templates_file
It usually stored in res/bundle/navigation

View File

@ -0,0 +1 @@
Just a dummy file for test purpose during development.

View File

@ -2,7 +2,7 @@ Bundle subdir themes
Purpose:
This subdir may optionally contain theme files which either replace part of the
theme or add files to the theme provided as default for ScientificCMS and this
theme or add files to the theme provided as default for APLAWS+ and this
way adopt the theme for site specific design.
All files and subdirectories all copied asis to the applications ~/themes
@ -10,4 +10,4 @@ directory in its document (context) root.
It is the responsibility of developer / system integrator to ensure all files
are copied to the right location and the theme works with the modification. No
functionality or consistency check is perfordmed!
functionality or consistency check is performed!

View File

@ -1,3 +1,3 @@
Subdirectory <cat> may optionally contain one or more local site specific
Subdirectory <categories> may optionally contain one or more local site specific
import xml files for Terms domain categories.

View File

@ -0,0 +1,4 @@
Subdirectory <navigation> may optionally contain a local site specific
text files describing additional jsp templates for navigation.
The template jsp files are stored in templates/ccm-navigation/navigation

View File

@ -1,3 +1,6 @@
Subdirectory <cat> may optionally contain one or more local site specific
import xml files for Terms domain categories.
Directory <res> will be available during installation by classloader. All
content has to be placed in a subdirectory, typically bundle. It can be
addressed as /bundle/[fileName|dirName]
EXAMPLE:
com.arsdigita.navigation.templates_file=bundle/navigation/templates.txt

View File

@ -1,4 +1,7 @@
Subdirectory <nav> may optionally contain navigation item templates for
The installation program copies all sub-directories and files in this directory
into the applications webapps subdirectory templates.
Subdirectory <navigation> may optionally contain navigation item templates for
navigation index pages which either overwrite or ammend those templates
which are default for ccm-sci-bundle and stored in
/web/templates/ccm-navigation/navigation
@ -7,6 +10,7 @@ Templates of the same name in this subdirectory just overwrite the
default files. Templates of different names are stored in addition
to the default template files. In the later case a developer must
provide a customised template.txt file replacing the default file
/src/WEB-INF/navigation/sci-templates.txt
/src/WEB-INF/navigation/templates.txt
This file must be specified in parameter
com.arsdigita.navigation.templates_file
com.arsdigita.navigation.templates_file
It usually stored in res/bundle/navigation

View File

@ -1,13 +0,0 @@
Bundle subdir themes
Purpose:
This subdir may optionally contain theme files which either replace part of the
theme or add files to the theme provided as default for ScientificCMS and this
way adopt the theme for site specific design.
All files and subdirectories all copied asis to the applications ~/themes
directory in its document (context) root.
It is the responsibility of developer / system integrator to ensure all files
are copied to the right location and the theme works with the modification. No
functionality or consistency check is perfordmed!

View File

@ -1,12 +1,13 @@
Subdirectory <nav> may optionally contain navigation item templates for
navigation index pages which either overwrite or ammend those templates
which are default for ccm-sci-bundle and stored in
/web/templates/ccm-navigation/navigation
Bundle subdir themes
Templates of the same name in this subdirectory just overwrite the
default files. Templates of different names are stored in addition
to the default template files. In the later case a developer must
provide a customised template.txt file replacing the default file
/src/WEB-INF/navigation/sci-templates.txt
This file must be specified in parameter
com.arsdigita.navigation.templates_file
Purpose:
This subdir may optionally contain theme files which either replace part of the
theme or add files to the theme provided as default for APLAWS+ and this
way adopt the theme for site specific design.
All files and subdirectories all copied asis to the applications ~/themes
directory in its document (context) root.
It is the responsibility of developer / system integrator to ensure all files
are copied to the right location and the theme works with the modification. No
functionality or consistency check is performed!

View File

@ -270,7 +270,7 @@ public class Loader extends PackageLoader {
}
/* Determine Domain and Application objects, both MUST exist! */
Domain domain = Domain.retrieve(domainKey);
Domain domain = Domain.retrieve(domainKey); // package com.arsdigita.london.terms
Application app = Application.retrieveApplicationForPath(appURL);
/* Create domain mapping */

View File

@ -42,6 +42,13 @@ public class WebAppPatternGenerator implements PatternGenerator {
Application app = Web.getContext().getApplication();
String ctx = app == null ? null : app.getContextPath();
if (s_log.isDebugEnabled()) {
s_log.debug("Generating Values key: " + key + " [" +
"Web.getContext(): " + Web.getContext() + "," +
"Application: " + Web.getContext().getApplication() + "," +
"ContextPath: " + ctx + "," + "]");
}
if (app == null ||
ctx == null ||
"".equals(ctx)) {

View File

@ -45,7 +45,7 @@ import com.arsdigita.london.terms.ui.TermWidget;
public class ItemCategoryPicker extends ACSObjectCategoryPicker {
private static final Logger s_log = Logger.getLogger(ItemCategoryPicker.class);
// private static final class s_picker = this ;
public ItemCategoryPicker(BigDecimalParameter root,
StringParameter mode) {

View File

@ -42,6 +42,7 @@ public class SimplePage extends com.arsdigita.ui.SimplePage {
}
@Override
public Element generateXMLHelper(PageState state,
Document parent) {
Element page = super.generateXMLHelper(state, parent);