ccm-bundle hinzugefügt, wird bundle f. LibreCMS und Nicht-SCI Seiten.

git-svn-id: https://svn.libreccm.org/ccm/trunk@1268 8810af33-2d31-482b-a856-94f89814c4df
master
pb 2011-11-19 13:33:24 +00:00
parent acc72a0b5c
commit e54358ed23
215 changed files with 19809 additions and 0 deletions

View File

@ -0,0 +1,45 @@
<?xml version="1.0"?>
<ccm:application xmlns:ccm="http://ccm.redhat.com/ccm-project"
name="ccm-bundle"
prettyName="LibreCMS based on CCM"
version="6.6.0"
release="1"
webapp="ROOT">
<ccm:dependencies>
<ccm:requires name="ccm-core" version="6.6.0" relation="ge"/>
<ccm:requires name="ccm-cms" version="6.6.0" relation="ge"/>
<ccm:requires name="ccm-ldn-subsite" version="6.6.0" relation="ge"/>
<ccm:requires name="ccm-navigation" version="6.6.0" relation="ge"/>
<ccm:requires name="ccm-portalworkspace" version="6.6.1" relation="ge"/>
<ccm:requires name="ccm-ldn-terms" version="6.6.0" relation="ge"/>
<ccm:requires name="ccm-ldn-search" version="6.6.0" relation="ge"/>
</ccm:dependencies>
<ccm:directories>
<!-- pdl is empty and not used, but required because we use sql for
some update scripts. -->
<ccm:directory name="pdl"/>
<ccm:directory name="src"/>
<ccm:directory name="sql"/>
</ccm:directories>
<ccm:contacts>
<ccm:contact uri="http://www.redhat.com/software/rhea" type="website"/>
<ccm:contact uri="mailto:rhea@redhat.com" type="support"/>
</ccm:contacts>
<ccm:description>
Service module which tailors the CCM software to use as a general Content
Management and Collaboration system - LibreCMS.
- setting up a categorization / terms system (cf. load.java)
- integrate custom spezific jsp's
- setting up custom specific configuration parameters (cf. the bundles)
- overwrite default classes by custom specific ones (cf. src/.../bundle)
- provide a default theme, which meets accessibility requirements and
overwrites the default, table based design (cf. web/.../themes)
CCM is a collaboration and content management system which is based upon
the Red Hat Web Application Framework, which is a platform for writing
database-backed web applications in Java.
</ccm:description>
</ccm:application>

View File

View File

@ -0,0 +1,9 @@
* Thu Sep 22 2005 Alan Pevec <apevec@redhat.com>
- Build all APLAWS+ bundles from the common set of templates.
* Mon Feb 21 2005 Alan Pevec <apevec@redhat.com>
- Requires applications.
* Mon Jan 26 2004 Daniel Berrange <berrange@redhat.com>
- Initial build.

View File

View File

View File

@ -0,0 +1,4 @@
BUNDLE_NAME=aplaws-plus-zes-devel
BUNDLE_PRETTY_NAME="APLAWS+ ZeS Devel Bundle"
VERSION=1.1.2devel
RELEASE=1

View File

@ -0,0 +1,143 @@
# Scientific CMS demo bundle integration.properties
#
waf.bebop.base_page=com.arsdigita.aplaws.ui.SimplePage
#
; dhtml editor to use (system wide)
; Xinha is default
; default: Xinha editor & src=/assets/xinha/XinhaLoader.js
#waf.bebop.dhtml_editor=FCKeditor
waf.categorization.show_internal_name=true
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 does not work.
; waf.kernel.primary_user_identifier=screen_name
waf.kernel.supported_languages=de,en
; security.properties:
waf.auto_registration_on=false
; Searches for localized style sheet (among others)
waf.templating.stylesheet_resolver=com.arsdigita.templating.PatternStylesheetResolver
waf.templating.stylesheet_paths=/WEB-INF/resources/scientificCMS-stylesheet-paths.txt
core.ui.pagemap.root_page_url=navigation/
core.ui.pagemap.workspace_url=navigation/
core.ui.pagemap.user_redirect_url=content/content-center-redirect.jsp
; workflow configuration
waf.workflow.simple.alerts_enabled=true
waf.workflow.simple.alerts_sender=root@localhost.localdomain
; Configures the xml processing
waf.xml.xsl_transformer=xalan
waf.xml.activate_full_date_formatter=true
# ccm-cms parameters
com.arsdigita.cms.category_authoring_add_form=com.arsdigita.aplaws.ui.ItemCategoryPicker
com.arsdigita.cms.default_folder_template_path=/default/aplaws-folder.jsp
com.arsdigita.cms.default_item_template_path=/default/aplaws-item.jsp
com.arsdigita.cms.default_template_resolver_class=com.arsdigita.london.subsite.dispatcher.SubsiteItemTemplateResolver
; Configure dhtml editor for use in cms content-center
; Xinha is default and should work out of the box
; com.arsdigita.cms.dhtml_editor_config=XinhaConfig,/assets/xinha/XinhaConfig.js
; as a temporary measure a different configuration file which includes a link selection box for CCM items
; and CCM images should be specified:
com.arsdigita.cms.dhtml_editor_config=XinhaConfig,/assets/xinha/CCMcmsXinhaConfig.js
; to use FCKeditor:
; com.arsdigita.cms.dhtml_editor_config=FCKEditor.Config.StyleDefault?,/assets/fckeditor/config/fckconfigOpenCCM.js
; com.arsdigita.cms.dhtml_editor_config=XinhaConfig,/assets/xinha/XinhaConfig.js
; com.arsdigita.cms.dhtml_editor_hidden_buttons=
; com.arsdigita.cms.dhtml_editor_plugins=TableOperations,CSS
com.arsdigita.cms.dhtml_editor_plugins=
com.arsdigita.cms.disable_item_pfs=true
com.arsdigita.cms.hide_admin_tabs=true
com.arsdigita.cms.hide_folder_index_checkbox=true
com.arsdigita.cms.hide_launch_date=true
com.arsdigita.cms.hide_templates_tab=true
com.arsdigita.cms.hide_timezone=true
com.arsdigita.cms.hide_udct_ui=true
com.arsdigita.cms.use_section_categories=false
com.arsdigita.cms.use_streamlined_creation=true
# ccm-cms-types-event parameters
com.arsdigita.cms.contenttypes.event.hide_cost=true
com.arsdigita.cms.contenttypes.event.hide_date_description=false
com.arsdigita.cms.contenttypes.event.hide_event_type=true
com.arsdigita.cms.contenttypes.event.hide_link_to_map=true
com.arsdigita.cms.contenttypes.event.hide_main_contributor=true
com.arsdigita.cms.contenttypes.event.use_html_date_description=false
com.arsdigita.cms.contenttypes.event.start_year=2000
com.arsdigita.cms.contenttypes.event.end_year_delta=5
# ccm-cms-types-newsitem parameters
com.arsdigita.cms.contenttypes.newsitem.hide_homepage=true
com.arsdigita.cms.contenttypes.newsitem.start_year=2000
com.arsdigita.cms.contenttypes.newsitem.end_year_delta=5
# Forum application
com.arsdigita.forum.show_new_tabs=true
com.arsdigita.forum.use_wysiwyg_editor=true
com.arsdigita.forum.allow_quick_finish=true
com.arsdigita.forum.disable_page_caching=true
# ccm-navigation application
com.arsdigita.navigation.category_menu_show_grand_children=false
com.arsdigita.navigation.default_cat_root_path=/navigation/
com.arsdigita.navigation.default_template=/templates/ccm-navigation/navigation/sci-default.jsp
com.arsdigita.navigation.templates_file=bundle/navigation/sci-templates.txt
# ccm-ldn-search application
com.arsdigita.london.search.show_sponsored_links=true
# ccm-ldn-subsite application
com.arsdigita.london.subsite.root_category_picker=com.arsdigita.london.terms.ui.RootCategoryPicker
# ccm-ldn-themedirector application
themedirector.default_theme_context=
# themedirector.default_theme_manifest=ccm-zes-aplaws.web.mf
themedirector.default_theme_path=themes/static/aplaws-generic
themedirector.file_extensions=bmp css gif jpeg jpg js png xml xsl
# ccm-sci-bundle (Loader only)
#com.arsdigita.bundle.category_files=bundle/categories/sci-nav-domain-1.00.xml,bundle/categories/sci-nav-hierarchy-1.00.xml
# =============================================================================================
# runtime specific configurations
waf.admin.email=webmaster@scientificCMS.org
waf.admin.name.given=SCI
waf.admin.name.family=Administrator
waf.admin.password=sci2000
waf.admin.password.question=12345
waf.admin.password.answer=6
waf.runtime.jdbc_url=jdbc\:postgresql\://localhost/ccm-sci?user\=sci&password\=sci47web&stringtype\=unspecified
waf.runtime.jdbc_pool_size=30
waf.web.server=localhost\:8080
# =============================================================================================
# devel specific configurations
#waf.debug=true
#waf.bebop.fancy_xsl_errors=true

View File

@ -0,0 +1,166 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<!-- project.xml SCI devel - containing only modules used for ScientificCMS -->
<ccm:project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:ccm="http://ccm.redhat.com/ccm-project"
ccmVersion="6.1"
name="ScientificCMS"
prettyName="Scientific CMS"
version="1-1-6"
release="devel"
webxml="web-sci.xml"
webapp="ROOT"
xsi:schemaLocation="http://ccm.redhat.com/ccm-project file:tools-ng/common/xsd/project.xsd">
<ccm:build>
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<!-- Scientific CMS set of CORE packages -->
<!-- NONE can be omitted for technical reasons / internal dependencies -->
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<!-- Main apps -->
<ccm:application name="ccm-core"/>
<ccm:application name="ccm-cms"/>
<!-- Content Assets -->
<ccm:application name="ccm-cms-assets-imagestep"/>
<ccm:application name="ccm-cms-assets-relatedlink"/>
<!-- Content Types -->
<ccm:application name="ccm-cms-types-article"/>
<ccm:application name="ccm-cms-types-filestorageitem"/>
<ccm:application name="ccm-cms-types-formitem"/>
<ccm:application name="ccm-cms-types-formsectionitem"/>
<!-- Applications -->
<ccm:application name="ccm-navigation"/>
<ccm:application name="ccm-portalworkspace"/>
<ccm:application name="ccm-themedirector"/>
<!-- LDN extension -->
<ccm:application name="ccm-ldn-search"/>
<ccm:application name="ccm-ldn-shortcuts"/>
<ccm:application name="ccm-ldn-subsite"/>
<ccm:application name="ccm-ldn-terms"/>
<ccm:application name="ccm-ldn-util"/>
<!-- SCI extension -->
<ccm:application name="ccm-sci-bundle"/>
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<!-- Scientific CMS OPTIONAL packages -->
<!-- Various combinations of these packages make up specific editions -->
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<!-- Content Assets -->
<ccm:application name="ccm-cms-assets-fileattachment"/>
<ccm:application name="ccm-cms-assets-notes"/>
<!-- Content Types -->
<ccm:application name="ccm-cms-types-address"/>
<ccm:application name="ccm-cms-types-bookmark"/>
<ccm:application name="ccm-cms-types-contact"/>
<ccm:application name="ccm-cms-types-event"/>
<ccm:application name="ccm-cms-types-image"/>
<ccm:application name="ccm-cms-types-mparticle"/>
<ccm:application name="ccm-cms-types-newsitem"/>
<ccm:application name="ccm-cms-types-person"/>
<!-- Applications -->
<ccm:application name="ccm-cms-publicpersonalprofile"/>
<ccm:application name="ccm-portalserver"/>
<!-- LDN extension -->
<!-- temporyrily excluded because configuration has to be cleared
<ccm:application name="ccm-ldn-rss"/>
-->
<!-- SCI extension -->
<!--
<ccm:application name="ccm-sci-personalprojects"/>
-->
<ccm:application name="ccm-sci-personalpublications"/>
<ccm:application name="ccm-sci-publications"/>
<ccm:application name="ccm-sci-types-member"/>
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<!-- Scientific CMS potential ADD-ONS packages -->
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<!-- Content Types -->
<!--
<ccm:application name="ccm-cms-types-agenda"/>
<ccm:application name="ccm-cms-types-faqitem"/>
<ccm:application name="ccm-cms-types-glossaryitem"/>
<ccm:application name="ccm-cms-types-htmlform"/>
<ccm:application name="ccm-cms-types-inlinesite"/>
<ccm:application name="ccm-cms-types-job"/>
<ccm:application name="ccm-cms-types-legalnotice"/>
<ccm:application name="ccm-cms-types-minutes"/>
<ccm:application name="ccm-cms-types-organization"/>
<ccm:application name="ccm-cms-types-pressrelease"/>
<ccm:application name="ccm-cms-types-service"/>
<ccm:application name="ccm-cms-types-siteproxy"/>
<ccm:application name="ccm-cms-types-xmlfeed"/>
-->
<!-- Applications -->
<!--
<ccm:application name="ccm-auth-http"/>
<ccm:application name="ccm-bookmarks"/>
<ccm:application name="ccm-docmgr"/>
-->
<ccm:application name="ccm-docrepo"/>
<ccm:application name="ccm-forum"/>
<ccm:application name="ccm-forum-categorised"/>
<!--
<ccm:application name="ccm-weblog"/>
<ccm:application name="ccm-webpage"/>
-->
<!-- LDN extension -->
<!--
<ccm:application name="ccm-ldn-exporter"/>
<ccm:application name="ccm-ldn-freeform"/>
<ccm:application name="ccm-ldn-importer"/>
-->
</ccm:build>
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<!-- Scientific CMS list of OBSOLETE modules -->
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<!-- Content Types -->
<!-- Without known funcionality
<ccm:application name="ccm-cms-types-motditem"/> -->
<!-- Applications -->
<!-- currently doesn't work for unknown reason
<ccm:application name="ccm-simplesurvey"/> -->
<!-- Without known funcionality
<ccm:application name="ccm-formbuilder-pdf"/>
<ccm:application name="ccm-user-preferences"/> -->
<!-- LDN extension -->
<!-- Conflicts with ccm-sci-bundle (this package) -->
<!-- <ccm:application name="ccm-ldn-aplaws"/> -->
<!-- In it's current implementation very ldn / aplaws specific
<ccm:application name="ccm-ldn-atoz"/>
<ccm:application name="ccm-ldn-dublin"/> -->
<!-- tools will be downloaded from trunk, but does not
contain java code to be compiled!
<ccm:application name="tools"/> -->
</ccm:project>

View File

@ -0,0 +1,540 @@
<?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>Scientific CMS</display-name>
<description>Content and Collaboration Management for Scientific Institutions</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
NOT USED with ZeS
<filter>
<filter-name>secured</filter-name>
<filter-class>com.arsdigita.web.SecureFilter</filter-class>
</filter>
-->
<!-- Initialize Profiler timers
NOT USED with ZeS 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.london.shortcuts.ShortcutFilter</filter-class>
</filter>
<filter>
<filter-name>subsite</filter-name>
<filter-class>com.arsdigita.london.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>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-section</servlet-name>
<servlet-class>com.arsdigita.cms.ContentSectionServlet</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-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-ldn-rss - servlet declaration BEGIN -->
<servlet>
<servlet-name>rss-files</servlet-name>
<servlet-class>com.arsdigita.web.ApplicationFileServlet</servlet-class>
<init-param>
<param-name>template-path</param-name>
<param-value>/templates/ccm-ldn-rss</param-value>
</init-param>
<init-param>
<param-name>file-resolver</param-name>
<param-value>com.arsdigita.london.rss.RSSFileResolver</param-value>
</init-param>
</servlet>
<!-- module ccm-ldn-rss - servlet declaration END -->
<!-- module ccm-ldn-search - servlet declarations BEGIN -->
<servlet>
<servlet-name>worker</servlet-name>
<servlet-class>com.arsdigita.london.search.SearchWorkerServlet</servlet-class>
<load-on-startup>4</load-on-startup>
</servlet>
<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-ldn-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-ldn-shortcuts</param-value>
</init-param>
</servlet>
<!-- module ccm-ldn-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-ldn-subsite</param-value>
</init-param>
</servlet>
<!-- module ccm-ldn-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-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>/__ccm__/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-ldn-rss - servlet mappings -->
<servlet-mapping>
<servlet-name>rss-files</servlet-name>
<url-pattern>/ccm-ldn-rss/files/*</url-pattern>
</servlet-mapping>
<!-- 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-ldn-shortcuts - servlet mappings -->
<servlet-mapping>
<servlet-name>shortcuts-files</servlet-name>
<url-pattern>/ccm-ldn-shortcuts/files/*</url-pattern>
</servlet-mapping>
<!-- module ccm-ldn-subsite - servlet mappings BEGIN -->
<servlet-mapping>
<servlet-name>subsite-files</servlet-name>
<url-pattern>/ccm-ldn-subsite/files/*</url-pattern>
</servlet-mapping>
<!-- module ccm-ldn-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>/__ccm__/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>/__ccm__/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>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-section</servlet-name>
<url-pattern>/__ccm__/servlet/content-section/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>content-item-xsl</servlet-name>
<url-pattern>/__ccm__/servlet/content-item/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>content-type-xsl</servlet-name>
<url-pattern>/__ccm__/servlet/content-type/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>template-xsl</servlet-name>
<url-pattern>/__ccm__/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

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

View File

@ -0,0 +1,48 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
Document : domain-nav-sci-1.00.xml
Created on : 8. Aug. 2007, 10:00
Author : pb
Description:
Definition of the terms (categories) in the SHP Navigation Menue.
In hierarchy-nav-shp the structure of the tree will be defined.
-->
<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="STD-NAV"
title="Sci Navigation List"
version="1.00" released="2007-08-10">
<terms:term id="1000" name="Institut" inAtoZ="false"/>
<terms:term id="1200" name="Abteilungen" inAtoZ="false"/>
<terms:term id="1220" name="Abteilung 1" inAtoZ="false"/>
<terms:term id="1240" name="Abteilung 2" inAtoZ="false"/>
<terms:term id="1260" name="Abteilung 3" inAtoZ="false"/>
<terms:term id="1280" name="Abteilung 4" inAtoZ="false"/>
<terms:term id="1300" name="Abteilung 5" inAtoZ="false"/>
<terms:term id="1400" name="Mitglieder" inAtoZ="false"/>
<terms:term id="1600" name="Bibliothek" inAtoZ="false"/>
<terms:term id="1800" name="Ankündigungen" inAtoZ="false"/>
<terms:term id="3000" name="Forschung" inAtoZ="false"/>
<terms:term id="3200" name="Projekte" inAtoZ="false"/>
<terms:term id="3400" name="Veröffentlichungen" inAtoZ="false"/>
<terms:term id="3420" name="Publikationen" inAtoZ="false"/>
<terms:term id="3440" name="Arbeitspapiere" inAtoZ="false"/>
<terms:term id="3460" name="Schriftenreihe" inAtoZ="false"/>
<terms:term id="3480" name="Sci Report" inAtoZ="false"/>
<terms:term id="3500" name="Jahresberichte" inAtoZ="false"/>
<terms:term id="3600" name="Kolloquium" inAtoZ="false"/>
<terms:term id="3800" name="Jour Fix" inAtoZ="false"/>
<terms:term id="4000" name="Tagungen" inAtoZ="false"/>
<terms:term id="5000" name="Lehre und Studium" inAtoZ="false"/>
<terms:term id="5200" name="Masterstudiengang Sci" inAtoZ="false"/>
<terms:term id="5400" name="Weitere Lehre" inAtoZ="false"/>
<terms:term id="9002" name="Archiv" inAtoZ="false"/>
<terms:term id="9200" name="Informative Links" inAtoZ="false"/>
</terms:domain>

View File

@ -0,0 +1,229 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
Document : hierarchy-nav-sci-1.00.xml
Created on : 8. Aug. 2007, 10:30
Author : pb
Description:
Purpose of the document follows.
-->
<terms:hierarchy xmlns:terms="http://xmlns.redhat.com/london/terms/1.0">
<terms:domain resource="http://www.aplaws.org.uk/standards/nav/1.03/termslist.xml"/>
<!-- set root terms -->
<terms:term id="1000"/>
<terms:term id="3000"/>
<terms:term id="5000"/>
<terms:orderedPair>
<!-- narrower terms, first level -->
<terms:source>
<terms:term id="1000"/>
</terms:source>
<terms:destination isDefault="true" isPreferred="true">
<terms:term id="1200"/>
</terms:destination>
</terms:orderedPair>
<!-- narrower terms, second level -->
<terms:orderedPair>
<terms:source>
<terms:term id="1200"/>
</terms:source>
<terms:destination isDefault="true" isPreferred="true">
<terms:term id="1220"/>
</terms:destination>
</terms:orderedPair>
<terms:orderedPair>
<terms:source>
<terms:term id="1200"/>
</terms:source>
<terms:destination isDefault="true" isPreferred="true">
<terms:term id="1240"/>
</terms:destination>
</terms:orderedPair>
<terms:orderedPair>
<terms:source>
<terms:term id="1200"/>
</terms:source>
<terms:destination isDefault="true" isPreferred="true">
<terms:term id="1260"/>
</terms:destination>
</terms:orderedPair>
<terms:orderedPair>
<terms:source>
<terms:term id="1200"/>
</terms:source>
<terms:destination isDefault="true" isPreferred="true">
<terms:term id="1280"/>
</terms:destination>
</terms:orderedPair>
<terms:orderedPair>
<terms:source>
<terms:term id="1200"/>
</terms:source>
<terms:destination isDefault="true" isPreferred="true">
<terms:term id="1300"/>
</terms:destination>
</terms:orderedPair>
<!-- narrower terms, second level END -->
<terms:orderedPair>
<terms:source>
<terms:term id="1000"/>
</terms:source>
<terms:destination isDefault="true" isPreferred="true">
<terms:term id="1400"/>
</terms:destination>
</terms:orderedPair>
<terms:orderedPair>
<terms:source>
<terms:term id="1000"/>
</terms:source>
<terms:destination isDefault="true" isPreferred="true">
<terms:term id="1600"/>
</terms:destination>
</terms:orderedPair>
<terms:orderedPair>
<terms:source>
<terms:term id="1000"/>
</terms:source>
<terms:destination isDefault="true" isPreferred="true">
<terms:term id="1800"/>
</terms:destination>
</terms:orderedPair>
<terms:orderedPair>
<terms:source>
<terms:term id="1000"/>
</terms:source>
<terms:destination isDefault="true" isPreferred="true">
<terms:term id="9002"/>
</terms:destination>
</terms:orderedPair>
<terms:orderedPair>
<terms:source>
<terms:term id="1000"/>
</terms:source>
<terms:destination isDefault="true" isPreferred="true">
<terms:term id="9200"/>
</terms:destination>
</terms:orderedPair>
<terms:orderedPair>
<terms:source>
<terms:term id="3000"/>
</terms:source>
<terms:destination isDefault="true" isPreferred="true">
<terms:term id="3200"/>
</terms:destination>
</terms:orderedPair>
<terms:orderedPair>
<terms:source>
<terms:term id="3000"/>
</terms:source>
<terms:destination isDefault="true" isPreferred="true">
<terms:term id="3400"/>
</terms:destination>
</terms:orderedPair>
<!-- narrower terms, second level -->
<terms:orderedPair>
<terms:source>
<terms:term id="3400"/>
</terms:source>
<terms:destination isDefault="true" isPreferred="true">
<terms:term id="3420"/>
</terms:destination>
</terms:orderedPair>
<terms:orderedPair>
<terms:source>
<terms:term id="3400"/>
</terms:source>
<terms:destination isDefault="true" isPreferred="true">
<terms:term id="3440"/>
</terms:destination>
</terms:orderedPair>
<terms:orderedPair>
<terms:source>
<terms:term id="3400"/>
</terms:source>
<terms:destination isDefault="true" isPreferred="true">
<terms:term id="3460"/>
</terms:destination>
</terms:orderedPair>
<terms:orderedPair>
<terms:source>
<terms:term id="3400"/>
</terms:source>
<terms:destination isDefault="true" isPreferred="true">
<terms:term id="3480"/>
</terms:destination>
</terms:orderedPair>
<terms:orderedPair>
<terms:source>
<terms:term id="3400"/>
</terms:source>
<terms:destination isDefault="true" isPreferred="true">
<terms:term id="3500"/>
</terms:destination>
</terms:orderedPair>
<!-- narrower terms, second level END -->
<terms:orderedPair>
<terms:source>
<terms:term id="3000"/>
</terms:source>
<terms:destination isDefault="true" isPreferred="true">
<terms:term id="3600"/>
</terms:destination>
</terms:orderedPair>
<terms:orderedPair>
<terms:source>
<terms:term id="3000"/>
</terms:source>
<terms:destination isDefault="true" isPreferred="true">
<terms:term id="3800"/>
</terms:destination>
</terms:orderedPair>
<terms:orderedPair>
<terms:source>
<terms:term id="3000"/>
</terms:source>
<terms:destination isDefault="true" isPreferred="true">
<terms:term id="4000"/>
</terms:destination>
</terms:orderedPair>
<terms:orderedPair>
<terms:source>
<terms:term id="5000"/>
</terms:source>
<terms:destination isDefault="true" isPreferred="true">
<terms:term id="5200"/>
</terms:destination>
</terms:orderedPair>
<terms:orderedPair>
<terms:source>
<terms:term id="5000"/>
</terms:source>
<terms:destination isDefault="true" isPreferred="true">
<terms:term id="5200"/>
</terms:destination>
</terms:orderedPair>
</terms:hierarchy>

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>

File diff suppressed because it is too large Load Diff

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,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,3 @@
Subdirectory <cat> may optionally contain one or more local site specific
import xml files for Terms domain categories.

View File

@ -0,0 +1,12 @@
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
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

View File

@ -0,0 +1,13 @@
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

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

View File

@ -0,0 +1,12 @@
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
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.london.navigation.templates_file

View File

View File

@ -0,0 +1,9 @@
* Thu Sep 22 2005 Alan Pevec <apevec@redhat.com>
- Build all APLAWS+ bundles from the common set of templates.
* Mon Feb 21 2005 Alan Pevec <apevec@redhat.com>
- Requires applications.
* Mon Jan 26 2004 Daniel Berrange <berrange@redhat.com>
- Initial build.

View File

View File

View File

@ -0,0 +1,4 @@
BUNDLE_NAME=aplaws-plus-zes-devel
BUNDLE_PRETTY_NAME="APLAWS+ ZeS Devel Bundle"
VERSION=1.1.2devel
RELEASE=1

View File

@ -0,0 +1,143 @@
# Scientific CMS devel bundle integration.properties
#
waf.bebop.base_page=com.arsdigita.aplaws.ui.SimplePage
#
; dhtml editor to use (system wide)
; Xinha is default
; default: Xinha editor & src=/assets/xinha/XinhaLoader.js
#waf.bebop.dhtml_editor=FCKeditor
waf.categorization.show_internal_name=true
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 does not work.
; waf.kernel.primary_user_identifier=screen_name
waf.kernel.supported_languages=de,en
; security.properties:
waf.auto_registration_on=false
; Searches for localized style sheet (among others)
waf.templating.stylesheet_resolver=com.arsdigita.templating.PatternStylesheetResolver
waf.templating.stylesheet_paths=/WEB-INF/resources/scientificCMS-stylesheet-paths.txt
core.ui.pagemap.root_page_url=navigation/
core.ui.pagemap.workspace_url=navigation/
core.ui.pagemap.user_redirect_url=content/content-center-redirect.jsp
; workflow configuration
waf.workflow.simple.alerts_enabled=true
waf.workflow.simple.alerts_sender=root@localhost.localdomain
; Configures the xml processing
waf.xml.xsl_transformer=xalan
waf.xml.activate_full_date_formatter=true
# ccm-cms parameters
com.arsdigita.cms.category_authoring_add_form=com.arsdigita.aplaws.ui.ItemCategoryPicker
com.arsdigita.cms.default_folder_template_path=/default/aplaws-folder.jsp
com.arsdigita.cms.default_item_template_path=/default/aplaws-item.jsp
com.arsdigita.cms.default_template_resolver_class=com.arsdigita.london.subsite.dispatcher.SubsiteItemTemplateResolver
; Configure dhtml editor for use in cms content-center
; Xinha is default and should work out of the box
; com.arsdigita.cms.dhtml_editor_config=XinhaConfig,/assets/xinha/XinhaConfig.js
; as a temporary measure a different configuration file which includes a link selection box for CCM items
; and CCM images should be specified:
com.arsdigita.cms.dhtml_editor_config=XinhaConfig,/assets/xinha/CCMcmsXinhaConfig.js
; to use FCKeditor:
; com.arsdigita.cms.dhtml_editor_config=FCKEditor.Config.StyleDefault?,/assets/fckeditor/config/fckconfigOpenCCM.js
; com.arsdigita.cms.dhtml_editor_config=XinhaConfig,/assets/xinha/XinhaConfig.js
; com.arsdigita.cms.dhtml_editor_hidden_buttons=
; com.arsdigita.cms.dhtml_editor_plugins=TableOperations,CSS
com.arsdigita.cms.dhtml_editor_plugins=
com.arsdigita.cms.disable_item_pfs=true
com.arsdigita.cms.hide_admin_tabs=true
com.arsdigita.cms.hide_folder_index_checkbox=true
com.arsdigita.cms.hide_launch_date=true
com.arsdigita.cms.hide_templates_tab=true
com.arsdigita.cms.hide_timezone=true
com.arsdigita.cms.hide_udct_ui=true
com.arsdigita.cms.use_section_categories=false
com.arsdigita.cms.use_streamlined_creation=true
# ccm-cms-types-event parameters
com.arsdigita.cms.contenttypes.event.hide_cost=true
com.arsdigita.cms.contenttypes.event.hide_date_description=false
com.arsdigita.cms.contenttypes.event.hide_event_type=true
com.arsdigita.cms.contenttypes.event.hide_link_to_map=true
com.arsdigita.cms.contenttypes.event.hide_main_contributor=true
com.arsdigita.cms.contenttypes.event.use_html_date_description=false
com.arsdigita.cms.contenttypes.event.start_year=2000
com.arsdigita.cms.contenttypes.event.end_year_delta=5
# ccm-cms-types-newsitem parameters
com.arsdigita.cms.contenttypes.newsitem.hide_homepage=true
com.arsdigita.cms.contenttypes.newsitem.start_year=2000
com.arsdigita.cms.contenttypes.newsitem.end_year_delta=5
# Forum application
com.arsdigita.forum.show_new_tabs=true
com.arsdigita.forum.use_wysiwyg_editor=true
com.arsdigita.forum.allow_quick_finish=true
com.arsdigita.forum.disable_page_caching=true
# ccm-navigation application
com.arsdigita.navigation.category_menu_show_grand_children=false
com.arsdigita.navigation.default_cat_root_path=/navigation/
com.arsdigita.navigation.default_template=/templates/ccm-navigation/navigation/sci-default.jsp
com.arsdigita.navigation.templates_file=bundle/navigation/sci-templates.txt
# ccm-ldn-search application
com.arsdigita.london.search.show_sponsored_links=true
# ccm-ldn-subsite application
com.arsdigita.london.subsite.root_category_picker=com.arsdigita.london.terms.ui.RootCategoryPicker
# ccm-ldn-themedirector application
themedirector.default_theme_context=
# themedirector.default_theme_manifest=ccm-zes-aplaws.web.mf
themedirector.default_theme_path=themes/static/aplaws-generic
themedirector.file_extensions=bmp css gif jpeg jpg js png xml xsl
# ccm-sci-bundle (Loader only)
#com.arsdigita.bundle.category_files=bundle/categories/sci-nav-domain-1.00.xml,bundle/categories/sci-nav-hierarchy-1.00.xml
# =============================================================================================
# runtime specific configurations
waf.admin.email=webmaster@scientificCMS.org
waf.admin.name.given=SCI
waf.admin.name.family=Administrator
waf.admin.password=sci2000
waf.admin.password.question=12345
waf.admin.password.answer=6
waf.runtime.jdbc_url=jdbc\:postgresql\://localhost/ccm-sci?user\=sci&password\=sci47web&stringtype\=unspecified
waf.runtime.jdbc_pool_size=30
waf.web.server=localhost\:8080
# =============================================================================================
# devel specific configurations
waf.debug=true
waf.bebop.fancy_xsl_errors=true

View File

@ -0,0 +1,166 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<!-- project.xml SCI devel - containing only modules used for ScientificCMS -->
<ccm:project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:ccm="http://ccm.redhat.com/ccm-project"
ccmVersion="6.1"
name="ScientificCMS"
prettyName="Scientific CMS"
version="1-1-6"
release="devel"
webxml="web-sci.xml"
webapp="ROOT"
xsi:schemaLocation="http://ccm.redhat.com/ccm-project file:tools-ng/common/xsd/project.xsd">
<ccm:build>
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<!-- Scientific CMS set of CORE packages -->
<!-- NONE can be omitted for technical reasons / internal dependencies -->
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<!-- Main apps -->
<ccm:application name="ccm-core"/>
<ccm:application name="ccm-cms"/>
<!-- Content Assets -->
<ccm:application name="ccm-cms-assets-imagestep"/>
<ccm:application name="ccm-cms-assets-relatedlink"/>
<!-- Content Types -->
<ccm:application name="ccm-cms-types-article"/>
<ccm:application name="ccm-cms-types-filestorageitem"/>
<ccm:application name="ccm-cms-types-formitem"/>
<ccm:application name="ccm-cms-types-formsectionitem"/>
<!-- Applications -->
<ccm:application name="ccm-navigation"/>
<ccm:application name="ccm-portalworkspace"/>
<ccm:application name="ccm-themedirector"/>
<!-- LDN extension -->
<ccm:application name="ccm-ldn-search"/>
<ccm:application name="ccm-ldn-shortcuts"/>
<ccm:application name="ccm-ldn-subsite"/>
<ccm:application name="ccm-ldn-terms"/>
<ccm:application name="ccm-ldn-util"/>
<!-- SCI extension -->
<ccm:application name="ccm-sci-bundle"/>
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<!-- Scientific CMS OPTIONAL packages -->
<!-- Various combinations of these packages make up specific editions -->
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<!-- Content Assets -->
<ccm:application name="ccm-cms-assets-fileattachment"/>
<ccm:application name="ccm-cms-assets-notes"/>
<!-- Content Types -->
<ccm:application name="ccm-cms-types-address"/>
<ccm:application name="ccm-cms-types-bookmark"/>
<ccm:application name="ccm-cms-types-contact"/>
<ccm:application name="ccm-cms-types-event"/>
<ccm:application name="ccm-cms-types-image"/>
<ccm:application name="ccm-cms-types-mparticle"/>
<ccm:application name="ccm-cms-types-newsitem"/>
<ccm:application name="ccm-cms-types-person"/>
<!-- Applications -->
<ccm:application name="ccm-cms-publicpersonalprofile"/>
<ccm:application name="ccm-portalserver"/>
<!-- LDN extension -->
<!-- temporyrily excluded because configuration has to be cleared
<ccm:application name="ccm-ldn-rss"/>
-->
<!-- SCI extension -->
<!--
<ccm:application name="ccm-sci-personalprojects"/>
-->
<ccm:application name="ccm-sci-personalpublications"/>
<ccm:application name="ccm-sci-publications"/>
<ccm:application name="ccm-sci-types-member"/>
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<!-- Scientific CMS potential ADD-ONS packages -->
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<!-- Content Types -->
<!--
<ccm:application name="ccm-cms-types-agenda"/>
<ccm:application name="ccm-cms-types-faqitem"/>
<ccm:application name="ccm-cms-types-glossaryitem"/>
<ccm:application name="ccm-cms-types-htmlform"/>
<ccm:application name="ccm-cms-types-inlinesite"/>
<ccm:application name="ccm-cms-types-job"/>
<ccm:application name="ccm-cms-types-legalnotice"/>
<ccm:application name="ccm-cms-types-minutes"/>
<ccm:application name="ccm-cms-types-organization"/>
<ccm:application name="ccm-cms-types-pressrelease"/>
<ccm:application name="ccm-cms-types-service"/>
<ccm:application name="ccm-cms-types-siteproxy"/>
<ccm:application name="ccm-cms-types-xmlfeed"/>
-->
<!-- Applications -->
<!--
<ccm:application name="ccm-auth-http"/>
<ccm:application name="ccm-bookmarks"/>
<ccm:application name="ccm-docmgr"/>
-->
<ccm:application name="ccm-docrepo"/>
<ccm:application name="ccm-forum"/>
<ccm:application name="ccm-forum-categorised"/>
<!--
<ccm:application name="ccm-weblog"/>
<ccm:application name="ccm-webpage"/>
-->
<!-- LDN extension -->
<!--
<ccm:application name="ccm-ldn-exporter"/>
<ccm:application name="ccm-ldn-freeform"/>
<ccm:application name="ccm-ldn-importer"/>
-->
</ccm:build>
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<!-- Scientific CMS list of OBSOLETE modules -->
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<!-- Content Types -->
<!-- Without known funcionality
<ccm:application name="ccm-cms-types-motditem"/> -->
<!-- Applications -->
<!-- currently doesn't work for unknown reason
<ccm:application name="ccm-simplesurvey"/> -->
<!-- Without known funcionality
<ccm:application name="ccm-formbuilder-pdf"/>
<ccm:application name="ccm-user-preferences"/> -->
<!-- LDN extension -->
<!-- Conflicts with ccm-sci-bundle (this package) -->
<!-- <ccm:application name="ccm-ldn-aplaws"/> -->
<!-- In it's current implementation very ldn / aplaws specific
<ccm:application name="ccm-ldn-atoz"/>
<ccm:application name="ccm-ldn-dublin"/> -->
<!-- tools will be downloaded from trunk, but does not
contain java code to be compiled!
<ccm:application name="tools"/> -->
</ccm:project>

View File

@ -0,0 +1,540 @@
<?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>Scientific CMS</display-name>
<description>Content and Collaboration Management for Scientific Institutions</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
NOT USED with ZeS
<filter>
<filter-name>secured</filter-name>
<filter-class>com.arsdigita.web.SecureFilter</filter-class>
</filter>
-->
<!-- Initialize Profiler timers
NOT USED with ZeS 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.london.shortcuts.ShortcutFilter</filter-class>
</filter>
<filter>
<filter-name>subsite</filter-name>
<filter-class>com.arsdigita.london.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>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-section</servlet-name>
<servlet-class>com.arsdigita.cms.ContentSectionServlet</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-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-ldn-rss - servlet declaration BEGIN -->
<servlet>
<servlet-name>rss-files</servlet-name>
<servlet-class>com.arsdigita.web.ApplicationFileServlet</servlet-class>
<init-param>
<param-name>template-path</param-name>
<param-value>/templates/ccm-ldn-rss</param-value>
</init-param>
<init-param>
<param-name>file-resolver</param-name>
<param-value>com.arsdigita.london.rss.RSSFileResolver</param-value>
</init-param>
</servlet>
<!-- module ccm-ldn-rss - servlet declaration END -->
<!-- module ccm-ldn-search - servlet declarations BEGIN -->
<servlet>
<servlet-name>worker</servlet-name>
<servlet-class>com.arsdigita.london.search.SearchWorkerServlet</servlet-class>
<load-on-startup>4</load-on-startup>
</servlet>
<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-ldn-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-ldn-shortcuts</param-value>
</init-param>
</servlet>
<!-- module ccm-ldn-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-ldn-subsite</param-value>
</init-param>
</servlet>
<!-- module ccm-ldn-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-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>/__ccm__/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-ldn-rss - servlet mappings -->
<servlet-mapping>
<servlet-name>rss-files</servlet-name>
<url-pattern>/ccm-ldn-rss/files/*</url-pattern>
</servlet-mapping>
<!-- 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-ldn-shortcuts - servlet mappings -->
<servlet-mapping>
<servlet-name>shortcuts-files</servlet-name>
<url-pattern>/ccm-ldn-shortcuts/files/*</url-pattern>
</servlet-mapping>
<!-- module ccm-ldn-subsite - servlet mappings BEGIN -->
<servlet-mapping>
<servlet-name>subsite-files</servlet-name>
<url-pattern>/ccm-ldn-subsite/files/*</url-pattern>
</servlet-mapping>
<!-- module ccm-ldn-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>/__ccm__/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>/__ccm__/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>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-section</servlet-name>
<url-pattern>/__ccm__/servlet/content-section/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>content-item-xsl</servlet-name>
<url-pattern>/__ccm__/servlet/content-item/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>content-type-xsl</servlet-name>
<url-pattern>/__ccm__/servlet/content-type/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>template-xsl</servlet-name>
<url-pattern>/__ccm__/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

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

View File

@ -0,0 +1,48 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
Document : domain-nav-sci-1.00.xml
Created on : 8. Aug. 2007, 10:00
Author : pb
Description:
Definition of the terms (categories) in the SHP Navigation Menue.
In hierarchy-nav-shp the structure of the tree will be defined.
-->
<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="STD-NAV"
title="Sci Navigation List"
version="1.00" released="2007-08-10">
<terms:term id="1000" name="Institut" inAtoZ="false"/>
<terms:term id="1200" name="Abteilungen" inAtoZ="false"/>
<terms:term id="1220" name="Abteilung 1" inAtoZ="false"/>
<terms:term id="1240" name="Abteilung 2" inAtoZ="false"/>
<terms:term id="1260" name="Abteilung 3" inAtoZ="false"/>
<terms:term id="1280" name="Abteilung 4" inAtoZ="false"/>
<terms:term id="1300" name="Abteilung 5" inAtoZ="false"/>
<terms:term id="1400" name="Mitglieder" inAtoZ="false"/>
<terms:term id="1600" name="Bibliothek" inAtoZ="false"/>
<terms:term id="1800" name="Ankündigungen" inAtoZ="false"/>
<terms:term id="3000" name="Forschung" inAtoZ="false"/>
<terms:term id="3200" name="Projekte" inAtoZ="false"/>
<terms:term id="3400" name="Veröffentlichungen" inAtoZ="false"/>
<terms:term id="3420" name="Publikationen" inAtoZ="false"/>
<terms:term id="3440" name="Arbeitspapiere" inAtoZ="false"/>
<terms:term id="3460" name="Schriftenreihe" inAtoZ="false"/>
<terms:term id="3480" name="Sci Report" inAtoZ="false"/>
<terms:term id="3500" name="Jahresberichte" inAtoZ="false"/>
<terms:term id="3600" name="Kolloquium" inAtoZ="false"/>
<terms:term id="3800" name="Jour Fix" inAtoZ="false"/>
<terms:term id="4000" name="Tagungen" inAtoZ="false"/>
<terms:term id="5000" name="Lehre und Studium" inAtoZ="false"/>
<terms:term id="5200" name="Masterstudiengang Sci" inAtoZ="false"/>
<terms:term id="5400" name="Weitere Lehre" inAtoZ="false"/>
<terms:term id="9002" name="Archiv" inAtoZ="false"/>
<terms:term id="9200" name="Informative Links" inAtoZ="false"/>
</terms:domain>

View File

@ -0,0 +1,229 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
Document : hierarchy-nav-sci-1.00.xml
Created on : 8. Aug. 2007, 10:30
Author : pb
Description:
Purpose of the document follows.
-->
<terms:hierarchy xmlns:terms="http://xmlns.redhat.com/london/terms/1.0">
<terms:domain resource="http://www.aplaws.org.uk/standards/nav/1.03/termslist.xml"/>
<!-- set root terms -->
<terms:term id="1000"/>
<terms:term id="3000"/>
<terms:term id="5000"/>
<terms:orderedPair>
<!-- narrower terms, first level -->
<terms:source>
<terms:term id="1000"/>
</terms:source>
<terms:destination isDefault="true" isPreferred="true">
<terms:term id="1200"/>
</terms:destination>
</terms:orderedPair>
<!-- narrower terms, second level -->
<terms:orderedPair>
<terms:source>
<terms:term id="1200"/>
</terms:source>
<terms:destination isDefault="true" isPreferred="true">
<terms:term id="1220"/>
</terms:destination>
</terms:orderedPair>
<terms:orderedPair>
<terms:source>
<terms:term id="1200"/>
</terms:source>
<terms:destination isDefault="true" isPreferred="true">
<terms:term id="1240"/>
</terms:destination>
</terms:orderedPair>
<terms:orderedPair>
<terms:source>
<terms:term id="1200"/>
</terms:source>
<terms:destination isDefault="true" isPreferred="true">
<terms:term id="1260"/>
</terms:destination>
</terms:orderedPair>
<terms:orderedPair>
<terms:source>
<terms:term id="1200"/>
</terms:source>
<terms:destination isDefault="true" isPreferred="true">
<terms:term id="1280"/>
</terms:destination>
</terms:orderedPair>
<terms:orderedPair>
<terms:source>
<terms:term id="1200"/>
</terms:source>
<terms:destination isDefault="true" isPreferred="true">
<terms:term id="1300"/>
</terms:destination>
</terms:orderedPair>
<!-- narrower terms, second level END -->
<terms:orderedPair>
<terms:source>
<terms:term id="1000"/>
</terms:source>
<terms:destination isDefault="true" isPreferred="true">
<terms:term id="1400"/>
</terms:destination>
</terms:orderedPair>
<terms:orderedPair>
<terms:source>
<terms:term id="1000"/>
</terms:source>
<terms:destination isDefault="true" isPreferred="true">
<terms:term id="1600"/>
</terms:destination>
</terms:orderedPair>
<terms:orderedPair>
<terms:source>
<terms:term id="1000"/>
</terms:source>
<terms:destination isDefault="true" isPreferred="true">
<terms:term id="1800"/>
</terms:destination>
</terms:orderedPair>
<terms:orderedPair>
<terms:source>
<terms:term id="1000"/>
</terms:source>
<terms:destination isDefault="true" isPreferred="true">
<terms:term id="9002"/>
</terms:destination>
</terms:orderedPair>
<terms:orderedPair>
<terms:source>
<terms:term id="1000"/>
</terms:source>
<terms:destination isDefault="true" isPreferred="true">
<terms:term id="9200"/>
</terms:destination>
</terms:orderedPair>
<terms:orderedPair>
<terms:source>
<terms:term id="3000"/>
</terms:source>
<terms:destination isDefault="true" isPreferred="true">
<terms:term id="3200"/>
</terms:destination>
</terms:orderedPair>
<terms:orderedPair>
<terms:source>
<terms:term id="3000"/>
</terms:source>
<terms:destination isDefault="true" isPreferred="true">
<terms:term id="3400"/>
</terms:destination>
</terms:orderedPair>
<!-- narrower terms, second level -->
<terms:orderedPair>
<terms:source>
<terms:term id="3400"/>
</terms:source>
<terms:destination isDefault="true" isPreferred="true">
<terms:term id="3420"/>
</terms:destination>
</terms:orderedPair>
<terms:orderedPair>
<terms:source>
<terms:term id="3400"/>
</terms:source>
<terms:destination isDefault="true" isPreferred="true">
<terms:term id="3440"/>
</terms:destination>
</terms:orderedPair>
<terms:orderedPair>
<terms:source>
<terms:term id="3400"/>
</terms:source>
<terms:destination isDefault="true" isPreferred="true">
<terms:term id="3460"/>
</terms:destination>
</terms:orderedPair>
<terms:orderedPair>
<terms:source>
<terms:term id="3400"/>
</terms:source>
<terms:destination isDefault="true" isPreferred="true">
<terms:term id="3480"/>
</terms:destination>
</terms:orderedPair>
<terms:orderedPair>
<terms:source>
<terms:term id="3400"/>
</terms:source>
<terms:destination isDefault="true" isPreferred="true">
<terms:term id="3500"/>
</terms:destination>
</terms:orderedPair>
<!-- narrower terms, second level END -->
<terms:orderedPair>
<terms:source>
<terms:term id="3000"/>
</terms:source>
<terms:destination isDefault="true" isPreferred="true">
<terms:term id="3600"/>
</terms:destination>
</terms:orderedPair>
<terms:orderedPair>
<terms:source>
<terms:term id="3000"/>
</terms:source>
<terms:destination isDefault="true" isPreferred="true">
<terms:term id="3800"/>
</terms:destination>
</terms:orderedPair>
<terms:orderedPair>
<terms:source>
<terms:term id="3000"/>
</terms:source>
<terms:destination isDefault="true" isPreferred="true">
<terms:term id="4000"/>
</terms:destination>
</terms:orderedPair>
<terms:orderedPair>
<terms:source>
<terms:term id="5000"/>
</terms:source>
<terms:destination isDefault="true" isPreferred="true">
<terms:term id="5200"/>
</terms:destination>
</terms:orderedPair>
<terms:orderedPair>
<terms:source>
<terms:term id="5000"/>
</terms:source>
<terms:destination isDefault="true" isPreferred="true">
<terms:term id="5200"/>
</terms:destination>
</terms:orderedPair>
</terms:hierarchy>

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>

File diff suppressed because it is too large Load Diff

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,9 @@
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

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

View File

@ -0,0 +1,12 @@
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
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

View File

@ -0,0 +1,13 @@
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

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

View File

@ -0,0 +1,12 @@
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
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.london.navigation.templates_file

View File

@ -0,0 +1,9 @@
* Thu Sep 22 2005 Alan Pevec <apevec@redhat.com>
- Build all APLAWS+ bundles from the common set of templates.
* Mon Feb 21 2005 Alan Pevec <apevec@redhat.com>
- Requires applications.
* Mon Jan 26 2004 Daniel Berrange <berrange@redhat.com>
- Initial build.

View File

View File

@ -0,0 +1,4 @@
BUNDLE_NAME=aplaws-plus-shp
BUNDLE_PRETTY_NAME="APLAWS+ SHP Standard Bundle"
VERSION=1.0.5devel
RELEASE=1

View File

@ -0,0 +1,23 @@
<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>

View File

@ -0,0 +1,10 @@
<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>

View File

@ -0,0 +1,92 @@
--
-- Copyright (C) 2011 Peter Boy 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
--
-- $DateTime: 2011/11/10 23:15:09 $
-- $Id: upd_nav_templates_table pboy $
-- Internal use at Bremen University only!
-- Updates various university sites from als ccm-xxx-aplaws to scm-sci-bundle
-- Update new path
update nav_templates
set url=replace(url,'packages/navigation/templates'
,'templates/ccm-navigation/navigation')
where url like '%packages/navigation/templates%';
-- AAP: update jsp names
update nav_templates
set url=replace(url,'aap-atoz','sci-atoz'),
description=replace(description,'AAP','SCI'),
title=replace(title,'AAP','SCI')
where url like '%aap-atoz%';
update nav_templates
set url=replace(url,'aap-default' ,'sci-default'),
description=replace(description,'AAP','SCI'),
title=replace(title,'AAP','SCI')
where url like '%aap-default%';
update nav_templates
set url=replace(url,'aap-portal' ,'sci-portal'),
description=replace(description,'AAP','SCI'),
title=replace(title,'AAP','SCI')
where url like '%aap-portal%';
update nav_templates
set url=replace(url,'aap-recent' ,'sci-recent'),
description=replace(description,'AAP','SCI'),
title=replace(title,'AAP','SCI')
where url like '%aap-recent%';
update nav_templates
set url=replace(url,'aap-welcome' ,'sci-welcome'),
description=replace(description,'AAP','SCI'),
title=replace(title,'AAP','SCI')
where url like '%aap-welcome%';
-- IAW: update jsp names
update nav_templates
set url=replace(url,'iaw-atoz','sci-atoz'),
description=replace(description,'IAW','SCI'),
title=replace(title,'IAW','SCI')
where url like '%iaw-atoz%';
update nav_templates
set url=replace(url,'iaw-default' ,'sci-default'),
description=replace(description,'IAW','SCI'),
title=replace(title,'IAW','SCI')
where url like '%iaw-default%';
update nav_templates
set url=replace(url,'iaw-portal' ,'sci-portal'),
description=replace(description,'IAW','SCI'),
title=replace(title,'IAW','SCI')
where url like '%iaw-portal%';
update nav_templates
set url=replace(url,'iaw-recent' ,'sci-recent'),
description=replace(description,'IAW','SCI'),
title=replace(title,'IAW','SCI')
where url like '%iaw-recent%';
update nav_templates
set url=replace(url,'iaw-welcome' ,'sci-welcome'),
description=replace(description,'IAW','SCI'),
title=replace(title,'IAW','SCI')
where url like '%iaw-welcome%';

View File

@ -0,0 +1,68 @@
--
-- Copyright (C) 2011 Peter Boy 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
--
-- $Id: upd_system_tables.sql pboy $
-- adjust various system tables to the new name of application (ccm-sci-bundle)
alter table init_requirements drop constraint init_requirements_init_f_cmmdn ;
alter table init_requirements drop constraint init_require_requ_init_f_i6rgg ;
update inits
set class_name=replace(class_name,'arsdigita.aplaws', 'arsdigita.bundle')
where class_name like '%arsdigita.aplaws%' ;
update init_requirements
set init=replace(init,'arsdigita.aplaws', 'arsdigita.bundle')
where init like '%arsdigita.aplaws%' ;
update init_requirements
set required_init=replace(required_init,'arsdigita.aplaws', 'arsdigita.bundle')
where required_init like '%arsdigita.aplaws%' ;
ALTER TABLE ONLY init_requirements
ADD CONSTRAINT init_requirements_init_f_cmmdn FOREIGN KEY (init)
REFERENCES inits (class_name) MATCH SIMPLE
ON UPDATE NO ACTION ON DELETE NO ACTION;
ALTER TABLE init_requirements
ADD CONSTRAINT init_require_requ_init_f_i6rgg FOREIGN KEY (required_init)
REFERENCES inits (class_name) MATCH SIMPLE
ON UPDATE NO ACTION ON DELETE NO ACTION;
-- update application_types
-- set object_type=replace(object_type,'london.portal', 'portalworkspace')
-- where object_type like '%london.portal%' ;
-- table applications doesn't require an update
-- update apm_package_types
-- set package_key=replace(package_key,'workspace', 'portalworkspace')
-- where package_key like 'workspace' ;
-- table apm_packages doesn't require an update either
-- table site_nodes doesn't require an update either
-- update application type in acs_objects
update acs_objects
set (object_type,default_domain_class) =
(replace(object_type,'arsdigita.aplaws', 'arsdigita.bundle') ,
replace(default_domain_class,'arsdigita.aplaws', 'arsdigita.bundle') )
where object_type like '%arsdigita.aplaws%' ;

View File

@ -0,0 +1,26 @@
--
-- Copyright (C) 2011 Peter Boy 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
--
-- $DateTime: 2011/11/10 23:15:09 $
-- $Id: oracle-se-0.0.0-6.6.0 pboy $
-- Internal use at Bremen University only!
-- Updates various university sites from als ccm-xxx-aplaws to scm-sci-bundle
@@ default/0.0.0-6.6.0/upd_system_tables.sql
@@ default/0.0.0-6.6.0/upd_nav_templates_table.sql

View File

@ -0,0 +1,31 @@
--
-- Copyright (C) 2011 Peter Boy 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
--
-- $DateTime: 2011/11/10 23:15:09 $
-- $Id: postgres-0.0.0-6.6.0 pboy $
\echo Red Hat Enterprise ccm-sci-bundle 0.0.0 -> 6.6.0 Upgrade Script (PostgreSQL)
-- Internal use at Bremen University only!
-- Updates various university sites from als ccm-xxx-aplaws to scm-sci-bundle
begin;
\i default/0.0.0-6.6.0/upd_system_tables.sql
\i default/0.0.0-6.6.0/upd_nav_templates_table.sql
commit;

View File

@ -0,0 +1,47 @@
# -*- text -*-
# This file locates stylesheets, if you are using the
# "PatternStylesheetResolver". Please read the Javadoc for that file for
# the full story.
# Output type is for things such as text/javascript
http://::host::/resource/::webapp::/__ccm__/apps/::application::/xsl/::url::-::outputtype::-::locale::.xsl
http://::host::/resource/::webapp::/__ccm__/apps/::application::/xsl/::url::-::outputtype::.xsl
# Grabs custom item xsl for CMS
http://::host::/__ccm__/servlet/content-item/index.xsl?oid=::item_template_oid::&delegated=::item_delegated_url::
# added by Quasimodo
# Theme with single entry point (e.g Mandalay)
http://::host::/resource/::webapp::/themes/::themedir::/::theme::/start.xsl
# Theme, with optional locale & prefix
http://::host::/resource/::webapp::/themes/::themedir::/::theme::/::application::-::url::-::prefix::-::locale::.xsl
http://::host::/resource/::webapp::/themes/::themedir::/::theme::/::application::-::url::-::prefix::.xsl
# Theme, with optional locale
http://::host::/resource/::webapp::/themes/::themedir::/::theme::/::application::-::url::-::locale::.xsl
http://::host::/resource/::webapp::/themes/::themedir::/::theme::/::application::-::url::.xsl
# APLAWS generic default, with locale and prefix
# XXX change ROOT -> ccm-ldn-aplaws
http://::host::/resource/ROOT/themes/static/aplaws-generic/::application::-::url::-::prefix::-::locale::.xsl
http://::host::/resource/ROOT/themes/static/aplaws-generic/::application::-::url::-::prefix::.xsl
http://::host::/resource/ROOT/__ccm__/themes/aplaws-generic/::application::-::url::-::prefix::-::locale::.xsl
http://::host::/resource/ROOT/__ccm__/themes/aplaws-generic/::application::-::url::-::prefix::.xsl
# APLAWS generic default, with locale
# XXX change ROOT -> ccm-ldn-aplaws
http://::host::/resource/ROOT/themes/static/aplaws-generic/::application::-::url::-::locale::.xsl
http://::host::/resource/ROOT/themes/static/aplaws-generic/::application::-::url::.xsl
http://::host::/resource/ROOT/__ccm__/themes/aplaws-generic/::application::-::url::-::locale::.xsl
http://::host::/resource/ROOT/__ccm__/themes/aplaws-generic/::application::-::url::.xsl
# Global default, from application's own web app
http://::host::/resource/::webapp::/__ccm__/apps/::application::/xsl/::url::-::locale::.xsl
http://::host::/resource/::webapp::/__ccm__/apps/::application::/xsl/::url::.xsl
# Global default, from application's own web app - relocated version >= 6.6.1
http://::host::/resource/ROOT/themes/heirloom/apps/::application::/xsl/::url::-::locale::.xsl
http://::host::/resource/ROOT/themes/heirloom/apps/::application::/xsl/::url::.xsl
http://::host::/resource/::webapp::/themes/heirloom/apps/::application::/xsl/::url::-::locale::.xsl
http://::host::/resource/::webapp::/themes/heirloom/apps/::application::/xsl/::url::.xsl

View File

@ -0,0 +1,11 @@
<?xml version="1.0" encoding="utf-8"?>
<registry>
<!-- Config specifies the name of the class which handles configuration
properties and the directory and file name of the config parameters
in registry. -->
<!-- currently nothing to config
<config class="com.arsdigita.bundle.BundleConfig"
storage="ccm-sci-bundle/bundle.properties"/>
-->
</registry>

View File

@ -0,0 +1,22 @@
<load>
<requires>
<table name="inits"/>
<table name="acs_objects"/>
<initializer class="com.arsdigita.core.Initializer"/>
<table name="cms_items"/>
<initializer class="com.arsdigita.cms.Initializer"/>
<initializer class="com.arsdigita.london.terms.Initializer"/>
<initializer class="com.arsdigita.london.subsite.Initializer"/>
<initializer class="com.arsdigita.portalworkspace.Initializer"/>
<initializer class="com.arsdigita.london.search.Initializer"/>
</requires>
<provides>
<!--
<table name=""/>
-->
<initializer class="com.arsdigita.bundle.Initializer"/>
</provides>
<scripts>
<data class="com.arsdigita.bundle.Loader"/>
</scripts>
</load>

View File

@ -0,0 +1,5 @@
<upgrade>
<version from="0.0.0" to="6.6.0">
<script sql="ccm-sci-bundle/upgrade/::database::-0.0.0-6.6.0.sql"/>
</version>
</upgrade>

View File

@ -0,0 +1,38 @@
/*
* Copyright (C) 2002-2005 Runtime Collective Ltd. 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;
import org.apache.log4j.Logger;
public class Aplaws {
public static final String versionId =
"$Id: Aplaws.java 1297 2006-08-25 18:17:50Z apevec $";
private static final Logger LOG = Logger.getLogger(Aplaws.class);
private static AplawsConfig aplawsConfig = new AplawsConfig();
static {
aplawsConfig.load();
}
public static final AplawsConfig getAplawsConfig() {
return aplawsConfig;
}
}

View File

@ -0,0 +1,51 @@
/*
* Copyright (C) 2002-2005 Runtime Collective Ltd. 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;
import com.arsdigita.runtime.AbstractConfig;
import com.arsdigita.util.parameter.Parameter;
import com.arsdigita.util.parameter.BooleanParameter;
import com.arsdigita.util.parameter.StringParameter;
/**
* AplawsConfig
*
* @version $Revision: 1.2 $ $Date: 2005/01/07 19:01:40 $
* @version $Id: AplawsConfig.java 1565 2007-04-18 16:46:14Z apevec $
*/
public class AplawsConfig extends AbstractConfig {
private final Parameter m_ajaxExpandAllBranches = new BooleanParameter(
"com.arsdigita.aplaws.ajax_expand_on_all_branches",
Parameter.OPTIONAL,
Boolean.FALSE);
public AplawsConfig() {
register(m_ajaxExpandAllBranches);
loadInfo();
}
public boolean ajaxExpandAllBranches () {
return ((Boolean)get(m_ajaxExpandAllBranches)).booleanValue();
}
}

View File

@ -0,0 +1,4 @@
com.arsdigita.aplaws.ajax_expand_on_all_branches.title=Use Ajax on all branch expansions
com.arsdigita.aplaws.ajax_expand_on_all_branches.purpose=Use Ajax on all branches, or bring back entire subtree on expansion of top level root
com.arsdigita.aplaws.ajax_expand_on_all_branches.example=true|false
com.arsdigita.aplaws.ajax_expand_on_all_branches.format=[boolean]

View File

@ -0,0 +1,58 @@
/*
* 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.bundle;
import com.arsdigita.categorization.Categorization;
import com.arsdigita.runtime.CompoundInitializer;
import com.arsdigita.runtime.DomainInitEvent;
import com.arsdigita.templating.PatternStylesheetResolver;
import com.arsdigita.london.terms.TermCategoryListener;
import org.apache.log4j.Logger;
/**
* The CCM bundle initializer.
*
* @version $Id: Initializer.java 1232 2006-06-22 12:01:30Z sskracic $
*/
public class Initializer extends CompoundInitializer {
private static Logger s_log = Logger.getLogger
(Initializer.class.getName());
/**
* Package Implementation of {@link Initializer#init(DomainInitEvent)}.
*
* @param evt
*/
@Override
public void init(DomainInitEvent evt) {
super.init(evt);
Categorization.addCategoryListener(new TermCategoryListener());
PatternStylesheetResolver.registerPatternGenerator(
"webapp",
new WebAppPatternGenerator()
);
}
}

View File

@ -0,0 +1,307 @@
/*
* 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.bundle;
import com.arsdigita.london.terms.Domain;
import com.arsdigita.london.terms.importer.Parser;
import com.arsdigita.categorization.Category;
import com.arsdigita.categorization.RootCategoryCollection;
import com.arsdigita.cms.ContentSection;
import com.arsdigita.cms.SecurityManager;
import com.arsdigita.cms.ui.role.RoleFactory;
import com.arsdigita.loader.PackageLoader;
import com.arsdigita.kernel.Role;
import com.arsdigita.kernel.RoleCollection;
import com.arsdigita.kernel.permissions.PrivilegeDescriptor;
import com.arsdigita.persistence.DataQuery;
import com.arsdigita.runtime.ScriptContext;
import com.arsdigita.util.parameter.Parameter;
import com.arsdigita.util.parameter.StringArrayParameter;
import com.arsdigita.web.Application;
import org.apache.log4j.Logger;
import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;
import java.util.StringTokenizer;
/**
* Loader executes nonrecurring at install time and loads (installs and
* initializes) the ScientificCMS integration module persistently into database.
*
* Creates category domains in the terms application according to
* configuration files and adds jsp templates to navigation.
*
* @author Justin Ross &lt;jross@redhat.com&gt;
* @author Peter Boy &lt;pboy@barkhof.uni-bremen.de&gt;
* @version $Id: Loader.java 755 2005-09-02 13:42:47Z sskracic $
*/
public class Loader extends PackageLoader {
/** Logger instance for debugging */
private static final Logger s_log = Logger.getLogger(Loader.class);
/**
* List of comma separated sets of application instance specifications,
* optionally used to create arbitrary custom application instances
* according to local sites requirements.
* It's the developers / administrators responsibility to ensure all
* necessary application types have been created previously.
* Example:
* "FULL_QUALIFIED_CLASS_NAME : URL : TITLE ,
* FULL_QUALIFIED_CLASS_NAME : URL : TITLE ,
* .... ,
* FULL_QUALIFIED_CLASS_NAME : URL : TITLE "
*/
private Parameter m_customApplicationInstances = new StringArrayParameter(
"com.arsdigita.bundle.local_app_instances",
Parameter.OPTIONAL, null
);
/**
* Comma separated list of fully qualified filenames, each file containing
* a set of Terms domain catagories definitions. These form an initial set
* of category tree(s), at minimum for navigation, optionally additional
* domains.
* Files are stored as part of the jar, so classloader can find them.
*/
private Parameter m_categoryFiles = new StringArrayParameter(
"com.arsdigita.bundle.category_files",
Parameter.REQUIRED,new String[]{
"bundle/categories/sci-nav-domain-1.00.xml",
"bundle/categories/sci-nav-hierarchy-1.00.xml" }
);
/**
* List of comma separated sets of domain mappings.
* It's the developers / administrators responsibility to ensure all
* necessary category domains have been imported previously and are spelled
* correctly. The list may contain set for different domain key and/or
* different applications and contexts. If an domain key requires several
* applications, repeat the key and specify a different application and/or
* context
* Example:
* "DOMAIN_KEY_1 : APP_URL_1 [: CONTEXT_1] ,
* DOMAIN_KEY_1 : APP_URL_2 [: CONTEXT_1] ,
* DOMAIN_KEY_2 : APP_URL_1 [: CONTEXT] ,
* .... ,
* DOMAIN_KEY_n : APP_URL_n [: CONTEXT_n] "
*
*/
private Parameter m_domainMappings = new StringArrayParameter(
"com.arsdigita.bundle.domain_mappings",
Parameter.REQUIRED,new String[]{ "STD-NAV:/navigation/",
"STD-NAV:/content/",
"STD-NAV:/portal/" }
);
/**
* Constructor
*/
public Loader() {
// Register defined parameters to the context by adding
// the parameter to a map of parameters
register(m_customApplicationInstances);
register(m_categoryFiles);
register(m_domainMappings);
}
public void run(final ScriptContext ctx) {
/* Create site specific custom applications instances of arbitrary
* type specified by optional configuration parameter.
* Typically used to create additional navigation instances for alternativ
* navigation tree(s) or additional content sections.
*/
String[] customApplicationInstances = (String[]) get(m_customApplicationInstances);
if ( customApplicationInstances != null) {
for (int i = 0 ; i < customApplicationInstances.length ; i++) {
final String aCustomApplicationInstance = customApplicationInstances[i];
StringTokenizer tok = new StringTokenizer( aCustomApplicationInstance, ":" );
String type = null; // full qualified class name
String url = null; // url fragment (last part)
String title = null; // title of new application instance
String parent = null; // parent class name
for ( int j = 0; tok.hasMoreTokens(); j++ ) {
if ( 0 == j ) {
type = tok.nextToken();
} else if ( 1 == j ) {
url = tok.nextToken();
} else if ( 2 == j ) {
title = tok.nextToken();
} else if ( 3 == j ) {
parent = tok.nextToken();
} else {
parent = null;
}
}
Application.createApplication(type, url, title, null);
}
}
/* Import from the categories definition files: Create Terms domains
* and populate them with categories
* (alternatively this could be delegated to terms.Loader because it's
* all Terms)
* Creates one or more Terms domains, but NO domain mapping for navigation.
* Therefore, registerDomains is required for /navigation/ otherwise
* the systems throws NPE for ccm/navigation.
*/
String[] files = (String[]) get(m_categoryFiles);
final Parser parser = new Parser();
// for each filename in the array of files containing categories
for (int i = 0 ; i < files.length ; i++) {
final String file = files[i];
if (s_log.isInfoEnabled()) {
s_log.info("Process " + file);
}
/* Import a Terms category domain. */
parser.parse(Thread.currentThread().getContextClassLoader().
getResourceAsStream(file));
}
/* Creates domain mappings according to configuration file. By default
* at least one domain mapping for standard navigation is created,
* otherwise navigation wouldn't work.
* IOt is the developers / administrators responsibility that KEY is
* existent, i.e. previously importet in the previous step.
*/
String[] domainMappings = (String[]) get(m_domainMappings);
for (int i = 0 ; i < domainMappings.length ; i++) {
final String aDomainMapping = domainMappings[i];
StringTokenizer tok = new StringTokenizer( aDomainMapping, ":" );
String key = null;
String app = null;
String context = null;
for ( int j = 0; tok.hasMoreTokens(); j++ ) {
if ( 0 == j ) {
key = tok.nextToken();
} else if ( 1 == j ) {
app = tok.nextToken();
} else if ( 2 == j ) {
context = tok.nextToken();
} else {
context = null;
}
}
registerDomain(key, app, context);
}
// registerServicesTemplate("/services/"); wird nicht gebraucht
} // end run method
// public void registerServicesTemplate(String appURL) {
// Application app = Application.retrieveApplicationForPath(appURL);
// Assert.exists(app, Application.class);
// Category root = Category.getRootForObject(app);
// Assert.exists(root, Category.class);
//
// Template template = Template.create(
// "APLAWS Services",
// "APLAWS ESD Toolkit Services",
// "/packages/navigation/templates/aplaws-services.jsp");
//
// new TemplateMapping( template,
// root,
// Template.DEFAULT_DISPATCHER_CONTEXT,
// Template.DEFAULT_USE_CONTEXT );
// }
/**
* Determines the Terms domain using domainKey as well as the application
* instance using appURL and then creates a domain mapping using context
* as domain context.
*
* Uses Package com.arsdigita.london.terms.Domain (!)
*
* @param domainKey
* @param appURL
* @param context
*/
public void registerDomain(String domainKey,
String appURL,
String context) {
if (s_log.isDebugEnabled()) {
s_log.debug("Mapping domain " + domainKey + " to app " + appURL
+ " in context " + context);
}
/* Determine Domain and Application objects, both MUST exist! */
Domain domain = Domain.retrieve(domainKey);
Application app = Application.retrieveApplicationForPath(appURL);
/* Create domain mapping */
domain.setAsRootForObject(app, context);
/* Create permissions and roles for content-center applications only */
if (app instanceof ContentSection) {
RoleCollection coll = ((ContentSection) app).getStaffGroup().getOrderedRoles();
Set adminRoles = new HashSet();
Set categorizeRoles = new HashSet();
while (coll.next()) {
Role role = coll.getRole();
final DataQuery privs = RoleFactory.getRolePrivileges(
app.getID(), role.getGroup().getID());
while (privs.next()) {
String priv = (String) privs.get(RoleFactory.PRIVILEGE);
if (priv.equals(SecurityManager.CMS_CATEGORY_ADMIN)) {
adminRoles.add(role);
} else if (priv.equals(SecurityManager.CMS_CATEGORIZE_ITEMS)) {
categorizeRoles.add(role);
}
}
}
RootCategoryCollection catCollection = Category.getRootCategories(((ContentSection) app));
while (catCollection.next()) {
Iterator adminIter = adminRoles.iterator();
while (adminIter.hasNext()) {
((Role) adminIter.next()).grantPermission(catCollection.getCategory(),
PrivilegeDescriptor.ADMIN);
}
Iterator categorizeIter = categorizeRoles.iterator();
while (categorizeIter.hasNext()) {
((Role) categorizeIter.next()).grantPermission(catCollection.getCategory(),
Category.MAP_DESCRIPTOR);
}
}
}
}
}

View File

@ -0,0 +1,374 @@
/*
* 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.bundle;
import com.arsdigita.xml.Element;
import com.arsdigita.persistence.metadata.ObjectType;
import com.arsdigita.persistence.metadata.Property;
import java.util.HashMap;
import java.util.Stack;
import java.math.BigDecimal;
import org.apache.log4j.Logger;
public class ObjectTypeSchemaGenerator extends ObjectTypeTraversal {
private static final Logger logger = Logger.getLogger(ObjectTypeSchemaGenerator.class);
private boolean m_wrapRoot = false;
private boolean m_wrapObjects = false;
private boolean m_wrapAttributes = false;
private Stack m_history = new Stack();
private HashMap m_elements = new HashMap();
// The xs:element
private Element m_element;
// The (optional) xs:complexType
private Element m_type;
// The (optional) xs:sequence
private Element m_sequence;
// The (optional property
private Property m_property;
private Stack m_properties = new Stack();
private Element m_root;
private String m_rootName;
public static final String SCHEMA_PREFIX = "xs:";
public static final String SCHEMA_NS =
"http://www.w3.org/2001/XMLSchema";
private static HashMap s_types = new HashMap();
static {
logger.debug("Static initalizer starting...");
s_types.put(String.class, "xs:string");
s_types.put(Boolean.class, "xs:boolean");
s_types.put(Integer.class, "xs:integer");
s_types.put(BigDecimal.class, "xs:double");
logger.debug("Static initalizer finished.");
}
protected static String lookupType(Class klass) {
if (s_types.containsKey(klass)) {
return (String) s_types.get(klass);
}
return "xs:string";
}
public static void registerType(Class klass, String type) {
s_types.put(klass, type);
}
public ObjectTypeSchemaGenerator(String rootName,
String namespace) {
m_root = new Element(SCHEMA_PREFIX + "schema",
SCHEMA_NS);
m_rootName = rootName;
// Set the namespace for nodes defined by the schema
m_root.addAttribute("targetNamespace", namespace);
// Set the default namespace for unqualified nodes
m_root.addAttribute("xmlns", namespace);
// All nodes in an instance doc conforming to the schema
// must be qualified
m_root.addAttribute("elementFormDefault", "qualified");
}
public Element getRoot() {
return m_root;
}
/**
* Determines XML output for root object.
* If set to true a separate element will
* be output for the root object, if false,
* then the element passed into the constructor
* will be used.
*/
public void setWrapRoot(boolean value) {
m_wrapRoot = value;
}
/**
* Determines XML output used for objects.
* If set to true, then a wrapper XML element
* will be generated for the association,
* and then individual elements generated for
* each object. If false then no wrapper
* XML element will be produced.
*/
public void setWrapObjects(boolean value) {
m_wrapObjects = value;
}
/**
* Determines XML output used for scalar
* attributes. If set to true, then each
* attribute is output as a separate element,
* otherwise, attributes are output as simple
* attributes.
*/
public void setWrapAttributes(boolean value) {
m_wrapAttributes = value;
}
/**
* Method called when the processing of an object
* starts
*/
protected void beginObject(ObjectType obj,
String path) {
// XXX deal with revisited objects - xs:choice possibly
if (m_type != null && m_sequence == null) {
Element sequence = m_type.newChildElement(SCHEMA_PREFIX + "sequence",
SCHEMA_NS);
m_sequence = sequence;
}
Element parent;
String name;
if (m_element == null) {
if (m_wrapRoot) {
Element element = m_root.newChildElement(SCHEMA_PREFIX
+ "element",
SCHEMA_NS);
element.addAttribute("name", m_rootName);
Element type = element.newChildElement(SCHEMA_PREFIX
+ "complexType",
SCHEMA_NS);
Element sequence = type.newChildElement(SCHEMA_PREFIX
+ "sequence",
SCHEMA_NS);
parent = sequence;
name = nameFromPath(path);
} else {
parent = m_root;
name = m_rootName;
}
} else {
parent = m_sequence;
if (m_wrapObjects) {
name = "object";
} else {
name = nameFromPath(path);
}
}
Element element = parent.newChildElement(SCHEMA_PREFIX + "element",
SCHEMA_NS);
element.addAttribute("name", name);
if (m_property != null) {
if (m_property.isNullable()) {
element.addAttribute("minOccurs", "0");
}
if (m_property.isCollection()) {
element.addAttribute("maxOccurs", "unbounded");
}
}
Element type = element.newChildElement(SCHEMA_PREFIX + "complexType",
SCHEMA_NS);
Element oid = type.newChildElement(SCHEMA_PREFIX + "attribute",
SCHEMA_NS);
oid.addAttribute("name", "oid");
oid.addAttribute("type", "xs:string");
// Add to the path -> element map, not that we use this info yet
m_elements.put(path, element);
// Preserve context
m_history.push(new Element[]{m_element, m_type, m_sequence});
m_element = element;
m_type = type;
m_sequence = null;
}
/**
* Method called when the procesing of an object
* completes
*/
protected void endObject(ObjectType obj,
String path) {
Element[] saved = (Element[]) m_history.pop();
m_element = saved[0];
m_type = saved[1];
m_sequence = saved[2];
}
/**
* Method called when an attribute is encountered
*/
protected void handleAttribute(ObjectType obj,
String path,
Property property) {
if (m_wrapAttributes) {
if (m_sequence == null) {
Element sequence = m_type.newChildElement(SCHEMA_PREFIX
+ "sequence",
SCHEMA_NS);
m_sequence = sequence;
}
Element element = new Element(SCHEMA_PREFIX + "element",
SCHEMA_NS);
element.addAttribute("name", property.getName());
// XXX pdl type -> xs type mapping
element.addAttribute("type", lookupType(property.getJavaClass()));
if (property.isNullable()) {
element.addAttribute("minOccurs", "0");
}
// Add to element
m_sequence.addContent(element);
// Add to the path -> element map
m_elements.put(path, element);
} else {
Element element = new Element(SCHEMA_PREFIX + "attribute",
SCHEMA_NS);
element.addAttribute("name", property.getName());
// XXX pdl type -> xs type mapping
element.addAttribute("type", lookupType(property.getJavaClass()));
if (property.isRequired()) {
element.addAttribute("use", "required");
}
// Add to element
m_type.addContent(element);
// Add to the path -> element map
m_elements.put(path, element);
}
}
/**
* Method called when the processing of a role
* starts
*/
protected void beginRole(ObjectType obj,
String path,
Property property) {
if (m_wrapObjects) {
if (m_sequence == null) {
Element sequence = m_type.newChildElement(SCHEMA_PREFIX
+ "sequence",
SCHEMA_NS);
m_sequence = sequence;
}
Element element = m_sequence.newChildElement(SCHEMA_PREFIX
+ "element",
SCHEMA_NS);
element.addAttribute("name", property.getName());
if (property.isNullable()) {
element.addAttribute("minOccurs", "0");
}
Element type = element.newChildElement(SCHEMA_PREFIX + "complexType",
SCHEMA_NS);
Element sequence = type.newChildElement(SCHEMA_PREFIX + "sequence",
SCHEMA_NS);
// Preserve context
m_history.push(new Element[]{m_element, m_type, m_sequence});
m_element = element;
m_type = type;
m_sequence = sequence;
}
m_properties.push(m_property);
m_property = property;
}
/**
* Method called when the procesing of a role
* completes
*/
protected void endRole(ObjectType obj,
String path,
Property property) {
if (m_wrapObjects) {
Element[] saved = (Element[]) m_history.pop();
m_element = saved[0];
m_type = saved[1];
m_sequence = saved[2];
}
m_property = (Property) m_properties.pop();
}
/**
* Method called when the processing of an association
* starts
*/
protected void beginAssociation(ObjectType obj,
String path,
Property property) {
if (m_wrapObjects) {
if (m_sequence == null) {
Element sequence = m_type.newChildElement(SCHEMA_PREFIX
+ "sequence",
SCHEMA_NS);
m_sequence = sequence;
}
Element element = m_sequence.newChildElement(SCHEMA_PREFIX
+ "element",
SCHEMA_NS);
element.addAttribute("name", property.getName());
if (property.isNullable()) {
element.addAttribute("minOccurs", "0");
}
Element type = element.newChildElement(SCHEMA_PREFIX + "complexType",
SCHEMA_NS);
Element sequence = type.newChildElement(SCHEMA_PREFIX + "sequence",
SCHEMA_NS);
// Preserve context
m_history.push(new Element[]{m_element, m_type, m_sequence});
m_element = element;
m_type = type;
m_sequence = sequence;
}
m_properties.push(m_property);
m_property = property;
}
/**
* Method called when the procesing of an association
* completes
*/
protected void endAssociation(ObjectType obj,
String path,
Property property) {
if (m_wrapObjects) {
Element[] saved = (Element[]) m_history.pop();
m_element = saved[0];
m_type = saved[1];
m_sequence = saved[2];
}
m_property = (Property) m_properties.pop();
}
}

View File

@ -0,0 +1,358 @@
/*
* 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.bundle;
import com.arsdigita.util.Assert;
import com.arsdigita.persistence.metadata.ObjectType;
import com.arsdigita.persistence.metadata.Property;
import com.arsdigita.persistence.metadata.MetadataRoot;
import java.util.Iterator;
import java.util.HashMap;
import org.apache.log4j.Logger;
// XXX this class is pretty similar to DomainObjectTraversal
// and it would be nice to figure out a way to let them share
// some of their logic (provided it didn't cripple / obfuscate
// the API).
// At minimum the process for registering & looking up hierachical
// adapters can be shared. Also the mangling of names / paths.
/**
* <p>This class provides a general purpose framework for iterating
* over a domain object's properties, processing attributes and
* traversing associations as required.</p>
*
* <p>Subclasses should implement the startXXX and endXXX methods to
* provide whatever processing logic they require upon encountering
* attributes, roles, associations and objects.</p>
*
* <p>The {@link com.arsdigita.domain.ObjectTypeTraversalAdapter}
* provides a means to control which properties are processed and,
* most importantly, which associations are traversed. When
* registering an adapter, a 'use context' is supplied allowing
* different adapters to be used according to the requirements of any
* implementing subclass. It is recommended that the use context be
* based on the fully qualified name of the class using
* ObjectTypeTraversal, e.g.,
* com.arsdigita.cms.ui.ObjectTypeRenderer.</p>
*
* <p>The path argument provided to the adapter and the startXXX ad
* endXXX methods indicates which associations are currently being
* traversed. The first element in the path is always '/object'. If it
* then starts to traverse the 'rootCategory' association, the path
* will become '/object/rootCategory'. For self-recursive
* associations, rather than building up a long repeating string, the
* path will be shortened by adding a '+' for each element that is
* repeated. For example, '/object/container+' indicates that the
* container association has been followed two or more times.</p>
*/
public abstract class ObjectTypeTraversal {
private static HashMap s_adapters = new HashMap();
private static final Logger s_log = Logger.getLogger(ObjectTypeTraversal.class);
/**
* Registers a traversal adapter for an object type in a given
* context.
*
* @param type the object type whose items will be traversed
* @param adapter the adapter for controlling object traversal
* @param context the context in which the adapter should be used
*/
public static void registerAdapter(ObjectType type,
ObjectTypeTraversalAdapter adapter,
String context) {
s_adapters.put(new AdapterKey(type, context), adapter);
}
/**
* Unregisteres a traversal adapter for an object type in a
* given context
*
* @param type the object type whose items will be traversed
* @param context the context in which the adapter should be used
*/
public static void unregisterAdapter(ObjectType type,
String context) {
s_adapters.remove(new AdapterKey(type, context));
}
/**
* Registers a traversal adapter for an object type in a given
* context.
*
* @param type the object type whose items will be traversed
* @param adapter the adapter for controlling object traversal
* @param context the context in which the adapter should be used
*/
public static void registerAdapter(String type,
ObjectTypeTraversalAdapter adapter,
String context) {
registerAdapter(MetadataRoot.getMetadataRoot().getObjectType(type),
adapter,
context);
}
/**
* Unregisteres a traversal adapter for an object type in a
* given context
*
* @param type the object type whose items will be traversed
* @param context the context in which the adapter should be used
*/
public static void unregisterAdapter(String type,
String context) {
unregisterAdapter(MetadataRoot.getMetadataRoot().getObjectType(type),
context);
}
/**
* Retrieves the traversal adapter for an object type in a given
* context.
*
* @param type the object type to lookup
* @param context the adapter context
*/
public static ObjectTypeTraversalAdapter lookupAdapter(ObjectType type,
String context) {
return (ObjectTypeTraversalAdapter)s_adapters
.get(new AdapterKey(type, context));
}
/**
* Retrieves the closest matching traversal adapter for an object type
* in a given context. The algorithm looks for an exact match, then
* considers the supertype, and the supertype's supertype. If no match
* could be found at all, returns null
*
* @param type the object type to search for
* @param context the adapter context
*/
public static ObjectTypeTraversalAdapter findAdapter(ObjectType type,
String context) {
ObjectTypeTraversalAdapter adapter = null;
while (adapter == null && type != null) {
adapter = lookupAdapter(type, context);
type = type.getSupertype();
}
return adapter;
}
/**
* Walks over properties of a domain object, invoking
* methods to handle assoications, roles and attributes.
*
* @param obj the domain object to traverse
* @param context the context for the traversal adapter
*/
public void walk(String type,
String context) {
walk(MetadataRoot.getMetadataRoot().getObjectType(type),
context);
}
/**
* Walks over properties of a domain object, invoking
* methods to handle assoications, roles and attributes.
*
* @param obj the domain object to traverse
* @param context the context for the traversal adapter
*/
public void walk(ObjectType type,
String context) {
Assert.exists(type, ObjectType.class);
ObjectTypeTraversalAdapter adapter = findAdapter(type,
context);
Assert.exists(adapter, ObjectTypeTraversalAdapter.class);
walk(adapter, type, "/object");
}
private void walk(ObjectTypeTraversalAdapter adapter,
ObjectType type,
String path) {
beginObject(type, path);
if (s_log.isInfoEnabled()) {
s_log.info("Walking " + path + " type: " + type.getQualifiedName());
}
for (Iterator i = type.getProperties(); i.hasNext(); ) {
Property prop = (Property) i.next();
String propName = prop.getName();
if (!adapter.processProperty(type,
appendToPath(path, prop.getName()),
prop)) {
if (s_log.isDebugEnabled()) {
s_log.debug("Skipping property " + propName);
}
continue;
}
if (s_log.isDebugEnabled()) {
s_log.debug("Process property " + propName + " type " + prop.getType().getQualifiedName());
}
if (prop.isAttribute()) {
handleAttribute(type, path, prop);
} else {
if (!prop.isCollection()) {
beginRole(type, path, prop);
walk(adapter,
(ObjectType)prop.getType(),
appendToPath(path, propName));
endRole(type, path, prop);
} else {
beginAssociation(type, path, prop);
Property roleProp = prop.getAssociatedProperty();
walk(adapter,
(ObjectType)prop.getType(),
appendToPath(path, propName));
endAssociation(type, path, prop);
}
}
}
endObject(type, path);
}
/**
* Method called when the processing of an object
* starts
*/
protected abstract void beginObject(ObjectType obj,
String path);
/**
* Method called when the procesing of an object
* completes
*/
protected abstract void endObject(ObjectType obj,
String path);
/**
* Method called when an attribute is encountered
*/
protected abstract void handleAttribute(ObjectType obj,
String path,
Property property);
/**
* Method called when the processing of a role
* starts
*/
protected abstract void beginRole(ObjectType obj,
String path,
Property property);
/**
* Method called when the procesing of a role
* completes
*/
protected abstract void endRole(ObjectType obj,
String path,
Property property);
/**
* Method called when the processing of an association
* starts
*/
protected abstract void beginAssociation(ObjectType obj,
String path,
Property property);
/**
* Method called when the procesing of an association
* completes
*/
protected abstract void endAssociation(ObjectType obj,
String path,
Property property);
protected String appendToPath(String path,
String name) {
if (path.endsWith("/" + name)) {
path = path + "+";
} else if (!path.endsWith("/" + name + "+")) {
path = path + "/" + name;
}
return path;
}
protected String nameFromPath(String path) {
int index = path.lastIndexOf("/");
Assert.isTrue(index >= 0, "Path starts with /");
if (path.endsWith("+")) {
return path.substring(index + 1, path.length() - 2);
} else {
return path.substring(index + 1);
}
}
protected String parentFromPath(String path) {
int index = path.lastIndexOf("/");
Assert.isTrue(index >= 0, "Path starts with /");
if (index == 0) {
return null;
} else {
return path.substring(0, index - 1);
}
}
private static class AdapterKey {
private ObjectType m_type;
private String m_context;
public AdapterKey(ObjectType type,
String context) {
m_type = type;
m_context = context;
}
public boolean equals(Object o) {
if (o instanceof AdapterKey) {
AdapterKey k = (AdapterKey)o;
return k.m_type.equals(m_type) &&
k.m_context.equals(m_context);
} else {
return false;
}
}
public int hashCode() {
return m_type.hashCode() + m_context.hashCode();
}
}
}

View File

@ -0,0 +1,60 @@
/*
* 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.bundle;
import com.arsdigita.persistence.metadata.Property;
import com.arsdigita.persistence.metadata.ObjectType;
// XXX this class is pretty similar to DomainObjectTraversal
// and it would be nice to figure out a way to let them share
// some of their logic (provided it didn't cripple / obfuscate
// the API).
/**
* <p>This interface is used to control traversal of domain
* objects. Whenever a property is encountered, the {@link
* #processProperty} method will be called to determine whether or not
* to continue processing the object. The most important use for this
* is to prevent the needless (and potentially infinite) traversal of
* associations between objects, but it can also be used to filter out
* certain attributes.</p>
*
* <p>Instances of this class need to be registered using the
* DomainObjectTraversal.registerAdapter method.</p>
*
* @see com.arsdigita.domain.DomainObjectTraversal
* @see com.arsdigita.domain.SimpleDomainObjectTraversalAdapter
* @version $Id: ObjectTypeTraversalAdapter.java 287 2005-02-22 00:29:02Z sskracic $
*/
public interface ObjectTypeTraversalAdapter {
/**
* Invoked to determine whether to process a property.
* Should return true to allow processing to commence,
* false to prevent it.
*
* @param obj the object type currently being processed
* @param path the path to the current domain object from
* the root object being traversed
* @param prop the property about to be processed
* @return true if the property should be processed
*/
public boolean processProperty(ObjectType obj,
String path,
Property prop);
}

View File

@ -0,0 +1,151 @@
/*
* 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.bundle;
import org.apache.log4j.Logger;
import com.arsdigita.persistence.metadata.Property;
import com.arsdigita.persistence.metadata.ObjectType;
import java.util.HashSet;
/**
* This is a general purpose traversal adaptor
* that allows/denies processing of a property
* based on the path to the property, and its
* presence in an inclusion/exclusion set.
*
* Instances of this class can be configured using
* the ObjectTypeTraversalInitializer
*
* <p>See <code>com.arsdigita.cms.installer.ObjectTypeTraversalInitializer</code>.
*/
public class SimpleObjectTypeTraversalAdapter
implements ObjectTypeTraversalAdapter {
private static final Logger s_log =
Logger.getLogger(SimpleObjectTypeTraversalAdapter.class);
/**
* Rule that indicates the set of properties should be treated
* as an inclusion list. ie, don't allow any properties except
* those listed. This is the default for associations
*/
public final static int RULE_INCLUDE = 0;
/**
* Rule that indicates the set of properties should be treated
* as an exclusion list. ie, allow through all properties,
* except those listed. This is the default for attributes.
*/
public final static int RULE_EXCLUDE = 1;
private HashSet m_attr = new HashSet();
private HashSet m_assoc = new HashSet();
private int m_attrRule = RULE_EXCLUDE;
private int m_assocRule = RULE_INCLUDE;
private SimpleObjectTypeTraversalAdapter m_parent;
/**
* Creates a new traversal adapter, with no parent
* delegate. If no explicit rule is present it will
* return false if RULE_INCLUDE is set, or true if
* RULE_EXCLUDE is set.
*/
public SimpleObjectTypeTraversalAdapter() {
this(null);
}
/**
* Creates a new traversal adapter, extending the rules
* defined by a parent. If there is no explicit rule
* for the property questioned, it will delegate the
* query to the parent.
* @param parent the parent adapter to delegate to
*/
public SimpleObjectTypeTraversalAdapter(
SimpleObjectTypeTraversalAdapter parent
) {
m_parent = parent;
}
/**
* Set the rule for processing attributes
*
* @param rule the new processing rule
*/
public void setAttributeRule(int rule) {
m_attrRule = rule;
}
/**
* Set the rule for processing associations
*
* @param rule the new processing rule
*/
public void setAssociationRule(int rule) {
m_assocRule = rule;
}
/**
* Add a property to the attribute property set.
*
* @param path the full path to the property
*/
public void addAttributeProperty(String prop) {
m_attr.add(prop);
}
/**
* Add a property to the association property set.
*
* @param path the full path to the property
*/
public void addAssociationProperty(String prop) {
m_assoc.add(prop);
}
/**
* Determines whether or not to allow processing
* of a property, based on the property set and
* the processing rule
*/
public boolean processProperty(ObjectType obj,
String path,
Property prop) {
if (prop.isAttribute()) {
boolean result = m_attr.contains(path);
s_log.debug("Check attr " + path + " contains " +
result + " " + m_attrRule);
if (!result && m_parent != null) {
s_log.debug("No explicit rule, delegating to parent");
return m_parent.processProperty(obj, path, prop);
}
return m_attrRule == RULE_INCLUDE ? result : !result;
} else {
boolean result = m_assoc.contains(path);
s_log.debug("Check assoc " + path + " contains " +
result + " " + m_attrRule);
if (!result && m_parent != null) {
s_log.debug("No explicit rule, delegating to parent");
return m_parent.processProperty(obj, path, prop);
}
return m_assocRule == RULE_INCLUDE ? result : !result;
}
}
}

View File

@ -0,0 +1,57 @@
/*
* 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.bundle;
import com.arsdigita.web.Application;
import com.arsdigita.web.Web;
import com.arsdigita.templating.PatternGenerator;
import javax.servlet.http.HttpServletRequest;
import org.apache.log4j.Logger;
/**
* Generates a set of patterns corresponding to the current
* web application prefix
*/
public class WebAppPatternGenerator implements PatternGenerator {
private static final Logger s_log =
Logger.getLogger(WebAppPatternGenerator.class);
public String[] generateValues(String key,
HttpServletRequest req) {
Application app = Web.getContext().getApplication();
String ctx = app == null ? null : app.getContextPath();
if (app == null ||
ctx == null ||
"".equals(ctx)) {
return new String[] { Web.ROOT_WEBAPP };
}
if (ctx.startsWith("/")) {
ctx = ctx.substring(1);
}
return new String[] { ctx };
}
}

View File

@ -0,0 +1,46 @@
/**
* Copyright (C) 2005 Runtime Collective Ltd. 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.bundle.ui;
import com.arsdigita.bebop.PageState;
import com.arsdigita.cms.CMS;
import com.arsdigita.cms.ContentBundle;
import com.arsdigita.cms.ContentItem;
import com.arsdigita.cms.ContentPage;
import com.arsdigita.kernel.ACSObject;
import com.arsdigita.london.navigation.Navigation;
import com.arsdigita.london.terms.ui.AbstractAssignedTerms;
import org.apache.log4j.Logger;
public class AssignedIndexItemTerms extends AbstractAssignedTerms {
private static final Logger s_log = Logger.getLogger(AssignedIndexItemTerms.class);
protected ACSObject getObject(PageState state) {
ACSObject obj = Navigation.getConfig().getDefaultModel().getObject();
if (s_log.isDebugEnabled()) {
s_log.debug("Dealing with item " + obj);
}
return obj;
}
}

View File

@ -0,0 +1,36 @@
/*
* 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.bundle.ui;
import com.arsdigita.bebop.PageState;
import com.arsdigita.cms.CMS;
import com.arsdigita.kernel.ACSObject;
import com.arsdigita.london.terms.ui.AbstractAssignedTerms;
/**
*
* Invoked by jsp
* (e.g. packages/content-section/templates/default/aplaws-item.jsp)
*/
public class AssignedItemTerms extends AbstractAssignedTerms {
protected ACSObject getObject(PageState state) {
return CMS.getContext().getContentItem().getParent();
}
}

View File

@ -0,0 +1,57 @@
/*
* 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.bundle.ui;
import com.arsdigita.navigation.Navigation;
import com.arsdigita.navigation.NavigationModel;
import com.arsdigita.persistence.SessionManager;
import com.arsdigita.persistence.DataCollection;
import com.arsdigita.domain.DomainObjectFactory;
import com.arsdigita.categorization.Category;
import com.arsdigita.util.Assert;
import com.arsdigita.bebop.PageState;
import com.arsdigita.portalworkspace.Workspace;
import com.arsdigita.portalworkspace.ui.WorkspaceSelectionModel;
public class CategoryPortalSelectionModel extends WorkspaceSelectionModel {
protected Workspace getDefaultWorkspace(PageState state) {
NavigationModel model = Navigation.getConfig().getDefaultModel();
Category cat = model.getCategory();
Assert.exists(cat);
DataCollection workspaces
= SessionManager.getSession().retrieve(
Workspace.BASE_DATA_OBJECT_TYPE);
workspaces.addEqualsFilter("categories.id", cat.getID());
if (workspaces.next()) {
Workspace wk = (Workspace)DomainObjectFactory
.newInstance(workspaces.getDataObject());
workspaces.close();
return wk;
}
return null;
}
}

View File

@ -0,0 +1,66 @@
/*
* 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.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.london.navigation.Navigation;
import com.arsdigita.categorization.Category;
import com.arsdigita.bebop.PageState;
import com.arsdigita.domain.DomainObjectFactory;
import org.apache.log4j.Logger;
public class CategoryTermDetails extends AbstractTermDetails {
private static final Logger s_log = Logger.getLogger(CategoryTermDetails.class);
protected Term getTerm(PageState state) {
Category cat = Navigation.getConfig().getDefaultModel()
.getCategory();
if (cat == null) {
s_log.debug("No category found, skiping term");
return null;
}
DataCollection terms = SessionManager.getSession()
.retrieve(Term.BASE_DATA_OBJECT_TYPE);
terms.addEqualsFilter(Term.MODEL + "." + Category.ID,
cat.getID());
if (terms.next()) {
Term term = (Term)DomainObjectFactory
.newInstance(terms.getDataObject());
terms.close();
if (s_log.isInfoEnabled()) {
s_log.info("Found term " + term + " for category " + cat);
}
return term;
}
if (s_log.isDebugEnabled()) {
s_log.debug("No term found for category " + cat);
}
return null;
}
}

View File

@ -0,0 +1,88 @@
/*
* Copyright (C) 2001 ArsDigita Corporation. All Rights Reserved.
*
* The contents of this file are subject to the ArsDigita Public
* License (the "License"); you may not use this file except in
* compliance with the License. You may obtain a copy of
* the License at http://www.arsdigita.com/ADPL.txt
*
* Software distributed under the License is distributed on an "AS
* IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
* implied. See the License for the specific language governing
* rights and limitations under the License.
*
*/
package com.arsdigita.aplaws.ui;
import com.arsdigita.bebop.AbstractSingleSelectionModel;
import com.arsdigita.portalworkspace.ui.PortalSelectionModel;
import com.arsdigita.portalworkspace.WorkspacePage;
import com.arsdigita.bebop.PageState;
import com.arsdigita.bebop.parameters.ParameterModel;
import com.arsdigita.domain.DomainObject;
import org.apache.log4j.Logger;
public class HomepagePortalSelectionModel extends AbstractSingleSelectionModel
implements PortalSelectionModel {
/** Private logger instance for debugging */
private static Logger s_log = Logger.getLogger(
HomepagePortalSelectionModel.class);
private HomepageWorkspaceSelectionModel m_workspace;
private int m_column;
public HomepagePortalSelectionModel(HomepageWorkspaceSelectionModel workspace,
int column) {
m_workspace = workspace;
m_column = column;
if (s_log.isDebugEnabled()) {
s_log.debug("Constructor HomepageWorkspaceSelectionModel " + " [" +
"Workspace: " + m_workspace + "," +
"Columns: " + column + "]");
}
}
public void onCustomize(PageState state) {
m_workspace.onCustomize(state, m_column);
}
public void onReset(PageState state) {
m_workspace.onReset(state, m_column);
}
public HomepageWorkspaceSelectionModel getWorkspaceModel() {
return m_workspace;
}
public Object getSelectedKey(PageState state) {
return getSelectedPortal(state).getID();
}
public void setSelectedKey(PageState state,
Object key) {
throw new UnsupportedOperationException("cannot set key");
}
public void setSelectedObject(PageState state,
DomainObject key) {
throw new UnsupportedOperationException("cannot set object");
}
public ParameterModel getStateParameter() {
throw new UnsupportedOperationException("not state param");
}
public DomainObject getSelectedObject(PageState state) {
return getSelectedPortal(state);
}
public WorkspacePage getSelectedPortal(PageState state) {
return m_workspace.getPortal(state, m_column);
}
}

View File

@ -0,0 +1,174 @@
/*
* Copyright (C) 2001 ArsDigita Corporation. All Rights Reserved.
*
* The contents of this file are subject to the ArsDigita Public
* License (the "License"); you may not use this file except in
* compliance with the License. You may obtain a copy of
* the License at http://www.arsdigita.com/ADPL.txt
*
* Software distributed under the License is distributed on an "AS
* IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
* implied. See the License for the specific language governing
* rights and limitations under the License.
*
*/
package com.arsdigita.aplaws.ui;
import com.arsdigita.bebop.SimpleContainer;
import com.arsdigita.bebop.ActionLink;
import com.arsdigita.bebop.Page;
import com.arsdigita.bebop.event.ActionEvent;
import com.arsdigita.bebop.event.ActionListener;
import com.arsdigita.portalworkspace.ui.PersistentPortal;
import com.arsdigita.portalworkspace.Workspace;
import com.arsdigita.bebop.PageState;
import com.arsdigita.xml.Element;
import com.arsdigita.portalworkspace.ui.PortalConstants;
import com.arsdigita.kernel.permissions.PermissionService;
import com.arsdigita.kernel.permissions.PermissionDescriptor;
import com.arsdigita.kernel.permissions.PrivilegeDescriptor;
import com.arsdigita.kernel.Party;
import com.arsdigita.kernel.Kernel;
import org.apache.log4j.Logger;
/**
*
*
*/
public class HomepageWorkspace extends SimpleContainer {
/** Private logger instance for debugging */
private static Logger s_log = Logger.getLogger(
HomepageWorkspace.class);
private HomepagePortalSelectionModel m_model;
private ActionLink m_reset;
private ActionLink m_browse;
private ActionLink m_edit;
private PersistentPortal m_browser;
private PersistentPortal m_editor;
private boolean m_customizable;
private boolean m_readOnly;
private String m_name;
public HomepageWorkspace() {
super("portal:homepageWorkspace", PortalConstants.PORTAL_XML_NS);
m_customizable = false;
if (s_log.isDebugEnabled()) {
s_log.debug("Constructor HomepageWorkspace finished. " );
}
}
public void setModel(HomepagePortalSelectionModel model) {
m_model = model;
if (s_log.isDebugEnabled()) {
s_log.debug("setModel: " + m_model );
}
}
public void setCustomizable(boolean customizable) {
m_customizable = customizable;
}
public void setReadOnly(boolean readOnly) {
m_readOnly = readOnly;
}
public void setName(String name) {
m_name = name;
}
public void addWidgets() {
m_edit = new ActionLink("customize");
m_browse = new ActionLink("browse");
m_reset = new ActionLink("reset");
m_reset.setConfirmation("Are you sure you wish to reset this column? " +
"This will permanently remove all portlets.");
m_browser = new PersistentPortal(m_model,
m_name,
PortalConstants.MODE_DISPLAY);
m_editor = new PersistentPortal(m_model,
m_name,
PortalConstants.MODE_EDITOR);
m_edit.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
PageState state = e.getPageState();
setDisplayMode(state, false);
m_model.onCustomize(state);
}
});
m_browse.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
PageState state = e.getPageState();
setDisplayMode(state, true);
}
});
m_reset.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
PageState state = e.getPageState();
setDisplayMode(state, true);
m_model.onReset(state);
}
});
add(m_edit);
add(m_browse);
add(m_reset);
add(m_editor);
add(m_browser);
}
public void setDisplayMode(PageState state,
boolean browse) {
if (m_readOnly) {
return;
}
m_browse.setVisible(state, !browse);
m_reset.setVisible(state, !browse);
m_edit.setVisible(state, browse);
m_browser.setVisible(state, browse);
m_editor.setVisible(state, !browse);
}
public void register(Page page) {
super.register(page);
page.setVisibleDefault(m_browse, false);
page.setVisibleDefault(m_reset, false);
page.setVisibleDefault(m_edit, !m_readOnly);
page.setVisibleDefault(m_browser, true);
page.setVisibleDefault(m_editor, false);
}
public void generateXML(PageState state,
Element parent) {
Party party = Kernel.getContext().getParty();
Workspace global = m_model.getWorkspaceModel().getGlobalWorkspace(state);
PermissionDescriptor admin =
new PermissionDescriptor(PrivilegeDescriptor.ADMIN,
global,
party);
boolean hasAdmin = PermissionService.checkPermission(admin);
boolean userWorkspaces = Workspace.getConfig().getCreateUserWorkspaces();
if (party == null || m_readOnly ||
(!hasAdmin && !m_customizable) || (!hasAdmin && !userWorkspaces)) {
m_reset.setVisible(state, false);
m_browse.setVisible(state, false);
m_edit.setVisible(state, false);
}
super.generateXML(state, parent);
}
}

View File

@ -0,0 +1,287 @@
/*
* Copyright (C) 2001 ArsDigita Corporation. All Rights Reserved.
*
* The contents of this file are subject to the ArsDigita Public
* License (the "License"); you may not use this file except in
* compliance with the License. You may obtain a copy of
* the License at http://www.arsdigita.com/ADPL.txt
*
* Software distributed under the License is distributed on an "AS
* IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
* implied. See the License for the specific language governing
* rights and limitations under the License.
*
*/
package com.arsdigita.aplaws.ui;
import com.arsdigita.bebop.RequestLocal;
import com.arsdigita.bebop.PageState;
import com.arsdigita.kernel.Party;
import com.arsdigita.kernel.User;
import com.arsdigita.kernel.Kernel;
import com.arsdigita.kernel.permissions.PermissionService;
import com.arsdigita.kernel.permissions.PermissionDescriptor;
import com.arsdigita.kernel.permissions.PrivilegeDescriptor;
import com.arsdigita.portalworkspace.Workspace;
import com.arsdigita.portalworkspace.WorkspacePage;
import com.arsdigita.portalworkspace.WorkspacePageCollection;
import com.arsdigita.london.subsite.Subsite;
import com.arsdigita.util.Assert;
import com.arsdigita.util.UncheckedWrapperException;
import com.arsdigita.domain.DataObjectNotFoundException;
import org.apache.log4j.Logger;
public class HomepageWorkspaceSelectionModel {
private RequestLocal m_loaded = new RequestLocal();
private RequestLocal m_global = new RequestLocal();
private RequestLocal m_personal = new RequestLocal();
private RequestLocal m_left = new RequestLocal();
private RequestLocal m_middle = new RequestLocal();
private RequestLocal m_right = new RequestLocal();
private RequestLocal m_custom = new RequestLocal();
private static Logger s_log = Logger.getLogger
(HomepageWorkspaceSelectionModel.class.getName());
public WorkspacePage getPortal(PageState state,
int column) {
if (!Boolean.TRUE.equals(m_loaded.get(state))) {
loadWorkspacePages(state);
}
if (column == 0) { // Always global portal
return (WorkspacePage)m_left.get(state);
} else if (column == 1) { // Always global portal
return (WorkspacePage)m_middle.get(state);
} else if (column == 2) { // Personal portal, fallback on global
Party party = (Party)Kernel.getContext().getParty();
WorkspacePage right = (WorkspacePage)m_right.get(state);
PermissionDescriptor admin =
new PermissionDescriptor(PrivilegeDescriptor.ADMIN,
right,
party);
// Always ensure admin gets global portal
// don't use custom portals if asked not to
if (m_custom.get(state) == null ||
PermissionService.checkPermission(admin) ||
!Workspace.getConfig().getCreateUserWorkspaces()) {
s_log.debug("Returning global portal");
return (WorkspacePage)m_right.get(state);
} else {
s_log.debug("Returning personal portal");
return (WorkspacePage)m_custom.get(state);
}
}
throw new UncheckedWrapperException("column out of range (0..2)");
}
public void onCustomize(PageState state,
int column) {
if (!Boolean.TRUE.equals(m_loaded.get(state))) {
loadWorkspacePages(state);
}
Party party = (Party)Kernel.getContext().getParty();
Assert.exists(party, Party.class);
// When customizing right column, may need to clone
// for a personal portal
// don't use custom portals if asked not to
if (column == 2 &&
Workspace.getConfig().getCreateUserWorkspaces()) {
Workspace global = getTopWorkspace();
WorkspacePage right = (WorkspacePage)m_right.get(state);
PermissionDescriptor admin =
new PermissionDescriptor(PrivilegeDescriptor.ADMIN,
right,
party);
if (PermissionService.checkPermission(admin)) {
s_log.debug("Party has admin on global portal");
return;
}
if (m_custom.get(state) != null) {
s_log.debug("Party has custom portal already");
return;
}
s_log.debug("Looking for custom column 2");
Workspace custom = null;
try {
custom = global.retrieveSubworkspaceForParty(party);
s_log.debug("Found exsting personal workspce");
} catch (DataObjectNotFoundException ex) {
s_log.debug("Created new personal workspace");
custom = Workspace.createWorkspace(
"personal-" + party.getID(),
"Personal Workspace for " + party.getDisplayName(),
global,
(User)party
);
}
s_log.debug("Looking for portal");
m_personal.set(state, custom);
WorkspacePageCollection portals = custom.getPages();
portals.addOrder(WorkspacePage.SORT_KEY);
WorkspacePage portal;
if (portals.next()) {
s_log.debug("Found portal");
portal = portals.getPage();
portals.close();
} else {
s_log.debug("Create portal");
portal = custom.addPage("Custom", "Custom page");
}
m_custom.set(state, portal);
}
}
public void onReset(PageState state,
int column) {
if (!Boolean.TRUE.equals(m_loaded.get(state))) {
loadWorkspacePages(state);
}
Party party = Kernel.getContext().getParty();
Assert.exists(party, Party.class);
WorkspacePage clear = null;
// don't use custom portals if asked not to
if (column == 2 &&
Workspace.getConfig().getCreateUserWorkspaces()) {
// If we find a custom workspace, then delete it,
// otherwise just clear the portlets.
Workspace global = getTopWorkspace();
Workspace custom = null;
try {
custom = global.retrieveSubworkspaceForParty(party);
Assert.isTrue(custom.getParty() != null &&
custom.getParty().equals(party),
"party is not null and not admin");
s_log.debug("Found exsting personal workspce");
custom.delete();
m_custom.set(state, null);
} catch (DataObjectNotFoundException ex) {
clear = (WorkspacePage)m_right.get(state);
}
} else if (column == 1) {
clear = (WorkspacePage)m_middle.get(state);
} else if (column == 0) {
clear = (WorkspacePage)m_left.get(state);
}
if (clear != null) {
clear.clearPortlets();
}
}
public Workspace getGlobalWorkspace(PageState state) {
if (!Boolean.TRUE.equals(m_loaded.get(state))) {
loadWorkspacePages(state);
}
return (Workspace)m_global.get(state);
}
public Workspace getPersonalWorkspace(PageState state) {
if (!Boolean.TRUE.equals(m_loaded.get(state))) {
loadWorkspacePages(state);
}
return (Workspace)m_personal.get(state);
}
private void loadWorkspacePages(PageState state) {
Workspace global = getTopWorkspace();
m_global.set(state, global);
WorkspacePage left = null;
WorkspacePage middle = null;
WorkspacePage right = null;
WorkspacePageCollection portals = global.getPages();
portals.addOrder(WorkspacePage.SORT_KEY);
while (portals.next()) {
WorkspacePage portal = portals.getPage();
if (portal.getSortKey() == 0) {
left = portal;
} else if (portal.getSortKey() == 1) {
middle = portal;
} else if (portal.getSortKey() == 2) {
right = portal;
}
}
if (left == null) {
left = global.addPage("Left", "Left hand page");
}
if (middle == null) {
middle = global.addPage("Middle", "Middle page");
}
if (right == null) {
right = global.addPage("Right", "Right hand page");
}
m_left.set(state, left);
m_middle.set(state, middle);
m_right.set(state, right);
Party party = (Party)Kernel.getContext().getParty();
m_custom.set(state, null);
if (party != null) {
Workspace custom = null;
try {
custom = global.retrieveSubworkspaceForParty(party);
} catch (DataObjectNotFoundException ex) {
// nada
}
if (custom != null) {
portals = custom.getPages();
portals.addOrder(WorkspacePage.SORT_KEY);
if (portals.next()) {
WorkspacePage portal = portals.getPage();
m_custom.set(state, portal);
}
portals.close();
}
s_log.debug("Is there a custom portal ?" + custom +
" - " + m_custom.get(state));
m_personal.set(state, custom);
}
m_loaded.set(state, Boolean.TRUE);
}
protected Workspace getTopWorkspace() {
if (Subsite.getContext().hasSite()) {
if (s_log.isDebugEnabled()) {
s_log.debug("Return a subsite front page");
}
return (Workspace)Subsite.getContext().getSite().getFrontPage();
} else {
if (s_log.isDebugEnabled()) {
s_log.debug("Return the main front page");
}
return (Workspace)Kernel.getContext().getResource();
}
}
}

View File

@ -0,0 +1,80 @@
/*
* 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 org.apache.log4j.Logger;
import com.arsdigita.bebop.PageState;
import com.arsdigita.bebop.parameters.BigDecimalParameter;
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.kernel.ACSObject;
import com.arsdigita.london.terms.ui.ACSObjectCategoryPicker;
import com.arsdigita.london.terms.ui.TermWidget;
/**
* <p> cms specific Concrete implementation of
* <code>com.arsdigita.aplaws.ui.ACSObjectCategoryPicker</code>. </p>
*
*
*
* <p>Activated by pointing the parameter
* <code>com.arsdigita.cms.category_authoring_add_form<</code> to it.</p>
*/
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) {
super(root, mode);
s_log.debug("instantiating ItemCategoryPicker");
}
/*
* @see com.arsdigita.aplaws.ui.ACSObjectCategoryPicker#getForm(
com.arsdigita.bebop.parameters.BigDecimalParameter,
com.arsdigita.bebop.parameters.StringParameter)
*/
protected ACSObjectCategoryForm getForm(BigDecimalParameter root,
StringParameter mode) {
s_log.debug("getForm");
return new ItemCategoryForm(root, mode, new TermWidget(mode, this));
}
/*
* @see com.arsdigita.aplaws.ui.ACSObjectCategoryPicker#getObject()
*/
protected ACSObject getObject(PageState state) {
ContentItem item = CMS.getContext().getContentItem();
return item.getParent();
}
}

View File

@ -0,0 +1,69 @@
/*
* 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.bebop.PageState;
import com.arsdigita.bebop.Label;
import com.arsdigita.dispatcher.DispatcherHelper;
import com.arsdigita.xml.Document;
import com.arsdigita.xml.Element;
import com.arsdigita.web.Web;
/**
* <p>
* Special implementation of <code>com.arsdigita.ui.SimplePage</code> as
* the base page to serve bebop pages.</p>
*
* <p>Activated by pointing the parameter <code>waf.bebop.base_page</code>
* to it.</p>
*/
public class SimplePage extends com.arsdigita.ui.SimplePage {
public SimplePage(String application,
Label title,
String id) {
super(application, title, id);
}
public Element generateXMLHelper(PageState state,
Document parent) {
Element page = super.generateXMLHelper(state, parent);
/*
* TODO: What specific funcionality is added here and what is
* its purpose and why is the bebop standard implementation
* insufficient.
*
* Two xml attributes are added in addition to the bebop standard
* implementation.
*/
if (Web.getContext().getRequestURL() != null) {
page.addAttribute("url", Web.getContext().getRequestURL().toString());
page.addAttribute("textOnly", "/text".equals(
DispatcherHelper
.getDispatcherPrefix(state.getRequest()))
? "1" : "0"
);
}
return page;
}
}

View File

@ -0,0 +1,57 @@
/*
* 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.london.terms.Domain;
import com.arsdigita.london.terms.ui.AbstractTermItemSummary;
import com.arsdigita.bebop.PageState;
import com.arsdigita.bebop.Page;
import com.arsdigita.bebop.parameters.StringParameter;
public class TermItemSummary extends AbstractTermItemSummary {
private StringParameter m_key;
private String m_defaultKey = "LGSL";
public TermItemSummary() {
m_key = new StringParameter("key");
}
public void register(Page p) {
super.register(p);
p.addGlobalStateParam(m_key);
}
public void setDefaultDomain(String key) {
m_defaultKey = key;
}
protected Domain getDomain(PageState state) {
String key = (String)state.getValue(m_key);
if (key == null) {
key = m_defaultKey;
}
return Domain.retrieve(key);
}
}

View File

@ -0,0 +1,137 @@
/*
* FCKeditor - The text editor for internet
* Copyright (C) 2003-2005 Frederico Caldeira Knabben
*
* Licensed under the terms of the GNU Lesser General Public License:
* http://www.opensource.org/licenses/lgpl-license.php
*
* For further information visit:
* http://www.fckeditor.net/
*
* File Name: fckconfigOpenCCM.js
* Editor configuration settings for use in admin interface in APLAWS/OpenCCM.
* This configuration is designed to match the following goals:
* - Easy useage of the editor
* - Clean HTML output, this means for example that no deprected elements are useable from the editor
*
* This file is organized in the same way as the page of the FCKEditor documentation showing all config options.
* The page can be found here: http://docs.fckeditor.net/FCKeditor_2.x/Developers_Guide/Configuration/Configuration_Options
*
* - Semantic HTML output. This means that elements like <em> are prefered against such as <b>
* This config is loaded from the Javascript in the calling page using AFTER the
* default fckconfig.js is loaded.
*
* File Authors:
* Chris Burnett (orginale fckeditordefaultstyle.js for APLAWS)
* Jens Pelzetter
*/
/* **************************************************************************************************************** */
/* Editor Behavior
--------------- */
FCKConfig.AutoDetectPasteFromWord = false ; //Paste Word text directly to the editor (only IE)
FCKConfig.CleanWordKeepsStructure = true ; //Prefer to keep HTML structure, not layout
FCKConfig.DocType = '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">' ;
FCKConfig.ForcePasteAsPlainText = true ; //Text pasted in from another app will appear as plain text
/* Styles
------ */
FCKConfig.StylesXmlPath = FCKConfig.EditorPath + 'config/fckconfigOpenCCM.xml' ; //Some styles
/* HTML Output
----------- */
FCKConfig.FormatOutput = true ; //Format output code
FCKConfig.FormatSource = true ;
/* User interface
-------------- */
FCKConfig.ContextMenu = ['Generic','Link','Anchor','Image','Flash','Select','Textarea','Checkbox','Radio','TextField','HiddenField','ImageButton','Button','BulletedList','NumberedList','TableCell','Table','Form'] ;
FCKConfig.ImageDlgHideLink = true ;
FCKConfig.ImageDlgHideAdvanced = true ;
FCKConfig.ShowDropDialog = true ;
FCKConfig.ToolbarSets["AplawsBasic"] = [
['Style','-','OrderedList','UnorderedList','Subscript', 'Superscript', '-','SpellCheck','Link','Unlink','RemoveFormat','-','ImageButton', '-', 'AdvToolbar', 'About']
] ;
FCKConfig.ToolbarSets["AplawsAdvanced"] = [
['Style','-','OrderedList','UnorderedList','Subscript', 'Superscript'],
['Cut','Copy','Paste','PasteText','PasteWord','Undo','Redo','RemoveFormat'],
['Find','Replace','SelectAll', '-','SpellCheck'],
'/',
['Link','Unlink','Anchor','-','Source'],
['SimpleToolbar']
] ;
// Replace the Advanced toolbar with AplawsAdvanced & setup the Basic toolbar to use the AplawsBasic toolbar
// The two toolbars are used to support the dynamic toolbar switching plugin.
// Set the Default to be the Basic version so that the editor loads the basic toolbar on startup.
FCKConfig.ToolbarSets["Advanced"] = FCKConfig.ToolbarSets["AplawsAdvanced"] ;
FCKConfig.ToolbarSets["Basic"] = FCKConfig.ToolbarSets["AplawsBasic"] ;
FCKConfig.ToolbarSets["Default"] = FCKConfig.ToolbarSets["Basic"] ;
/* Advanced
-------- */
FCKConfig.FirefoxSpellChecker = true ;
FCKConfig.SpellChecker = 'ieSpell' ; // 'ieSpell' | 'SpellerPages'
FCKConfig.IeSpellDownloadUrl = 'http://www.iespell.com/rel/ieSpellSetup211325.exe' ;
/* File Browser and Updoader
------------------------- */
FCKConfig.LinkBrowser = true ;
FCKConfig.LinkBrowserURL = "/ccm/content/admin/search.jsp?useURL=true&widget=getElementById('txtUrl')" ;
FCKConfig.LinkBrowserWindowWidth = FCKConfig.ScreenWidth * 0.7 ; // 70%
FCKConfig.LinkBrowserWindowHeight = FCKConfig.ScreenHeight * 0.7 ; // 70%
/*
FCKConfig.ToolbarSets["AplawsBasic"] = [
['Style','-','Bold','OrderedList','UnorderedList','-','SpellCheck','Link','Unlink','RemoveFormat','-','AdvToolbar']
] ;
FCKConfig.ToolbarSets["AplawsAdvanced"] = [
['Style','-','Bold','OrderedList','UnorderedList'],
['Cut','Copy','Paste','PasteText','PasteWord','Undo','Redo','RemoveFormat'],
['Find','Replace','SelectAll', '-','SpellCheck'],
'/',
['UniversalKey'],
['Link','Unlink','Anchor','-','Source'],
['SimpleToolbar']
] ;
// Replace the Advanced toolbar with AplawsAdvanced & setup the Basic toolbar to use the AplawsBasic toolbar
// The two toolbars are used to support the dynamic toolbar switching plugin.
// Set the Default to be the Basic version so that the editor loads the basic toolbar on startup.
FCKConfig.ToolbarSets["Advanced"] = FCKConfig.ToolbarSets["AplawsAdvanced"] ;
FCKConfig.ToolbarSets["Basic"] = FCKConfig.ToolbarSets["AplawsBasic"] ;
FCKConfig.ToolbarSets["Default"] = FCKConfig.ToolbarSets["Basic"] ;
FCKConfig.StylesXmlPath = FCKConfig.EditorPath + 'config/fckconfigstyledefault.xml' ;
FCKConfig.ContextMenu = ['Generic','Link','Anchor','Image','Flash','Select','Textarea','Checkbox','Radio','TextField','HiddenField','ImageButton','Button','BulletedList','NumberedList','TableCell','Table','Form'] ;
FCKConfig.SpellChecker = 'ieSpell' ; // 'ieSpell' | 'SpellerPages'
FCKConfig.IeSpellDownloadUrl = 'http://www.iespell.com/rel/ieSpellSetup211325.exe' ;
FCKConfig.ImageDlgHideLink = true ;
FCKConfig.ImageDlgHideAdvanced = true ;
FCKConfig.FlashDlgHideAdvanced = true ;
FCKConfig.LinkBrowser = true ;
FCKConfig.LinkBrowserURL = "/ccm/content/admin/search.jsp?useURL=true&widget=getElementById('txtUrl')" ;
FCKConfig.LinkBrowserWindowWidth = FCKConfig.ScreenWidth * 0.7 ; // 70%
FCKConfig.LinkBrowserWindowHeight = FCKConfig.ScreenHeight * 0.7 ; // 70%
*/

View File

@ -0,0 +1,12 @@
<?xml version="1.0" encoding="utf-8" ?>
<Styles>
<Style name="Heading 3" element="h3" />
<Style name="Heading 4" element="h4" />
<Style name="Heading 5" element="h5" />
<Style name="Heading 6" element="h6" />
<Style name="Emphasized" element="em" />
<Style name="Strong emphasized" element="strong" />
<Style name="Body Text" element="p" />
</Styles>

View File

@ -0,0 +1,18 @@
/* This compressed file is part of Xinha. For uncompressed sources, forum, and bug reports, go to xinha.org */
/* This file is part of version 0.95 released Mon, 12 May 2008 17:33:15 +0200 */
/* The URL of the most recent version of this file is http://svn.xinha.webfactional.com/trunk/examples/XinhaConfig.js */
xinha_init=null;
xinha_config=null;
xinha_init=xinha_init?xinha_init:function(){
xinha_editors=xinha_editors?xinha_editors:["myTextArea","anotherOne"];
xinha_plugins=xinha_plugins?xinha_plugins:["CharacterMap","ContextMenu","SmartReplace","Stylist","Linker","SuperClean","TableOperations"];
if(!Xinha.loadPlugins(xinha_plugins,xinha_init)){
return;
}
xinha_config=xinha_config?xinha_config():new Xinha.Config();
xinha_config.pageStyleSheets=[_editor_url+"examples/full_example.css"];
xinha_editors=Xinha.makeEditors(xinha_editors,xinha_config,xinha_plugins);
Xinha.startEditors(xinha_editors);
};
Xinha.addOnloadHandler(xinha_init);

View File

@ -0,0 +1,13 @@
<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">
<jsp:directive.page import="com.arsdigita.web.URL"/>
<jsp:directive.page import="com.arsdigita.web.RedirectSignal"/>
<jsp:scriptlet>
// throw new RedirectSignal(URL.there(request, "/navigation/"), false);
throw new RedirectSignal(URL.there(request, "/portal/"), false);
</jsp:scriptlet>
</jsp:root>

View File

@ -0,0 +1,41 @@
<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">
<jsp:directive.page
import="com.arsdigita.navigation.NavigationModel,
com.arsdigita.navigation.cms.CMSNavigationModel"/>
<jsp:declaration>
NavigationModel model = new CMSNavigationModel();
</jsp:declaration>
<define:page name="itemPage" application="content-section"
title="APLAWS" cache="true">
<define:component name="categoryPath"
classname="com.arsdigita.navigation.ui.category.Path"/>
<jsp:scriptlet>
((com.arsdigita.navigation.ui.category.Path)categoryPath)
.setModel(model);
</jsp:scriptlet>
<define:component name="categoryMenu"
classname="com.arsdigita.navigation.ui.category.Menu"/>
<jsp:scriptlet>
((com.arsdigita.navigation.ui.category.Menu)categoryMenu)
.setModel(model);
</jsp:scriptlet>
<define:component name="itemXML"
classname="com.arsdigita.cms.dispatcher.ContentPanel"/>
<define:component name="relatedItems"
classname="com.arsdigita.navigation.ui.RelatedItems"/>
<define:component name="assignedTerms"
classname="com.arsdigita.bundle.ui.AssignedItemTerms"/>
</define:page>
<show:all/>
</jsp:root>

View File

@ -0,0 +1,13 @@
<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">
<define:page name="autoCategories" pageClass="com.arsdigita.cms.ui.authoring.EmptyPage" title="autoCategories" cache="true">
<define:component name="autoTerms"
classname="com.arsdigita.aplaws.ui.AutoTerms"/>
</define:page>
<show:all/>
</jsp:root>

View File

@ -0,0 +1,23 @@
<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">
<define:page name="childCategories"
pageClass="com.arsdigita.cms.ui.authoring.EmptyPage"
title="childCategories"
cache="true">
<!-- Class had been moved from ccm-ldn-aplaws to ccm-ldn-terms in
order to avoid dependencies between modules, ccm-forum-categorised
and a specific kind of the integration module ccm-???-aplaws.
<define:component name="catSubtree"
classname="com.arsdigita.aplaws.ui.CategorySubtree"/>
-->
<define:component name="catSubtree"
classname="com.arsdigita.london.terms.ui.CategorySubtree"/>
</define:page>
<show:all/>
</jsp:root>

View File

@ -0,0 +1,10 @@
<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">
<jsp:scriptlet>
((Object)null).hashCode();
</jsp:scriptlet>
</jsp:root>

View File

@ -0,0 +1,49 @@
<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">
<jsp:directive.page import="com.arsdigita.dispatcher.DispatcherHelper"/>
<jsp:directive.page import="com.arsdigita.bebop.parameters.BigDecimalParameter"/>
<jsp:directive.page import="com.arsdigita.london.navigation.Navigation"/>
<jsp:directive.page import="com.arsdigita.london.navigation.cms.CMSDataCollectionDefinition"/>
<jsp:directive.page import="com.arsdigita.london.navigation.cms.CMSDataCollectionRenderer"/>
<jsp:scriptlet>
long age = Navigation.getConfig().getIndexPageCacheLifetime();
if (age == 0) {
DispatcherHelper.cacheDisable(response);
} else {
DispatcherHelper.cacheForWorld(response, (int)age);
}
</jsp:scriptlet>
<define:page name="person"
application="content"
title="person4Homepages"
cache="false">
<define:component name="personList"
classname="com.arsdigita.london.navigation.ui.object.ComplexObjectList"/>
<jsp:scriptlet>
((com.arsdigita.london.navigation.ui.object.ComplexObjectList) personList).setDefinition(new CMSDataCollectionDefinition());
((com.arsdigita.london.navigation.ui.object.ComplexObjectList) personList).setRenderer(new CMSDataCollectionRenderer());
((com.arsdigita.london.navigation.ui.object.ComplexObjectList) personList).getDefinition().setObjectType("com.arsdigita.cms.contenttypes.GenericPerson");
((com.arsdigita.london.navigation.ui.object.ComplexObjectList) personList).getRenderer().setSpecializeObjects(true);
((com.arsdigita.london.navigation.ui.object.ComplexObjectList) personList).getDefinition().setDescendCategories(true);
((com.arsdigita.london.navigation.ui.object.ComplexObjectList) personList).getDefinition().setExcludeIndexObjects(false);
((com.arsdigita.london.navigation.ui.object.ComplexObjectList) personList).getDefinition().setFilterCategory(false);
((com.arsdigita.london.navigation.ui.object.ComplexObjectList) personList).getRenderer().setPageSize(99999);
if((request.getParameterMap().get("DaBInId") != null) &amp;&amp; (((String[])request.getParameterMap().get("DaBInId")).length &gt; 0)) {
String[] params = (String[]) request.getParameterMap().get("DaBInId");
String dabinid = params[0];
((com.arsdigita.london.navigation.ui.object.ComplexObjectList) personList).setSQLFilter(String.format("pageDescription LIKE '%%DaBInId={%s}%%'", dabinid));
}
</jsp:scriptlet>
</define:page>
<show:all/>
</jsp:root>

View File

@ -0,0 +1,52 @@
<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">
<jsp:directive.page import="com.arsdigita.dispatcher.DispatcherHelper"/>
<jsp:directive.page import="com.arsdigita.bebop.parameters.BigDecimalParameter"/>
<jsp:directive.page import="com.arsdigita.london.navigation.Navigation"/>
<jsp:directive.page import="com.arsdigita.london.navigation.cms.CMSDataCollectionDefinition"/>
<jsp:directive.page import="com.arsdigita.london.navigation.cms.CMSDataCollectionRenderer"/>
<jsp:scriptlet>
long age = Navigation.getConfig().getIndexPageCacheLifetime();
if (age == 0) {
DispatcherHelper.cacheDisable(response);
} else {
DispatcherHelper.cacheForWorld(response, (int)age);
}
</jsp:scriptlet>
<define:page name="publications"
application="content"
title="Publications4Homepages"
cache="false">
<define:component name="projectList"
classname="com.arsdigita.london.navigation.ui.object.ComplexObjectList"/>
<jsp:scriptlet>
((com.arsdigita.london.navigation.ui.object.ComplexObjectList) projectList).setDefinition(new CMSDataCollectionDefinition());
((com.arsdigita.london.navigation.ui.object.ComplexObjectList) projectList).setRenderer(new CMSDataCollectionRenderer());
((com.arsdigita.london.navigation.ui.object.ComplexObjectList) projectList).getDefinition().setObjectType("com.arsdigita.cms.contenttypes.SciProject");
((com.arsdigita.london.navigation.ui.object.ComplexObjectList) projectList).getRenderer().setSpecializeObjects(true);
((com.arsdigita.london.navigation.ui.object.ComplexObjectList) projectList).getDefinition().setDescendCategories(true);
((com.arsdigita.london.navigation.ui.object.ComplexObjectList) projectList).getDefinition().setExcludeIndexObjects(false);
((com.arsdigita.london.navigation.ui.object.ComplexObjectList) projectList).getDefinition().setFilterCategory(false);
((com.arsdigita.london.navigation.ui.object.ComplexObjectList) projectList).getDefinition().setAddOrder("title");
((com.arsdigita.london.navigation.ui.object.ComplexObjectList) projectList).getRenderer().setSpecializeObjectsContext("sciProjectList");
if((request.getParameterMap().get("DaBInId") != null) &amp;&amp; (((String[])request.getParameterMap().get("DaBInId")).length &gt; 0)) {
String[] params = (String[]) request.getParameterMap().get("DaBInId");
String dabinid = params[0];
((com.arsdigita.london.navigation.ui.object.ComplexObjectList) projectList).setSQLFilter(String.format("persons.pageDescription LIKE '%%DaBInId={%s}%%'", dabinid));
}
((com.arsdigita.london.navigation.ui.object.ComplexObjectList) projectList).getRenderer().setPageSize(99999);
</jsp:scriptlet>
</define:page>
<show:all/>
</jsp:root>

View File

@ -0,0 +1,51 @@
<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">
<jsp:directive.page import="com.arsdigita.dispatcher.DispatcherHelper"/>
<jsp:directive.page import="com.arsdigita.bebop.parameters.BigDecimalParameter"/>
<jsp:directive.page import="com.arsdigita.london.navigation.Navigation"/>
<jsp:directive.page import="com.arsdigita.london.navigation.cms.CMSDataCollectionDefinition"/>
<jsp:directive.page import="com.arsdigita.london.navigation.cms.CMSDataCollectionRenderer"/>
<jsp:scriptlet>
long age = Navigation.getConfig().getIndexPageCacheLifetime();
if (age == 0) {
DispatcherHelper.cacheDisable(response);
} else {
DispatcherHelper.cacheForWorld(response, (int)age);
}
</jsp:scriptlet>
<define:page name="publications"
application="content"
title="Publications4Homepages"
cache="false">
<define:component name="publicationList"
classname="com.arsdigita.london.navigation.ui.object.ComplexObjectList"/>
<jsp:scriptlet>
((com.arsdigita.london.navigation.ui.object.ComplexObjectList) publicationList).setDefinition(new CMSDataCollectionDefinition());
((com.arsdigita.london.navigation.ui.object.ComplexObjectList) publicationList).setRenderer(new CMSDataCollectionRenderer());
((com.arsdigita.london.navigation.ui.object.ComplexObjectList) publicationList).getDefinition().setObjectType("com.arsdigita.cms.contenttypes.Publication");
((com.arsdigita.london.navigation.ui.object.ComplexObjectList) publicationList).getRenderer().setSpecializeObjects(true);
((com.arsdigita.london.navigation.ui.object.ComplexObjectList) publicationList).getDefinition().setDescendCategories(true);
((com.arsdigita.london.navigation.ui.object.ComplexObjectList) publicationList).getDefinition().setExcludeIndexObjects(false);
((com.arsdigita.london.navigation.ui.object.ComplexObjectList) publicationList).getDefinition().setFilterCategory(false);
((com.arsdigita.london.navigation.ui.object.ComplexObjectList) publicationList).getDefinition().addOrder("yearOfPublication desc");
if((request.getParameterMap().get("DaBInId") != null) &amp;&amp; (((String[])request.getParameterMap().get("DaBInId")).length &gt; 0)) {
String[] params = (String[]) request.getParameterMap().get("DaBInId");
String dabinid = params[0];
((com.arsdigita.london.navigation.ui.object.ComplexObjectList) publicationList).setSQLFilter(String.format("authors.pageDescription LIKE '%%DaBInId={%s}%%'", dabinid));
}
((com.arsdigita.london.navigation.ui.object.ComplexObjectList) publicationList).getRenderer().setPageSize(99999);
</jsp:scriptlet>
</define:page>
<show:all/>
</jsp:root>

View File

@ -0,0 +1,27 @@
<jsp:root xmlns:jsp="http://java.sun.com/JSP/Page" version="1.2">
<jsp:directive.page import="com.arsdigita.dispatcher.DispatcherHelper" />
<jsp:scriptlet>
String returnURL = request.getParameter("returnURL");
if ( returnURL == null ) {
returnURL = "/";
}
String mode = request.getParameter("textOnly");
if ("1".equals(mode)) {
if (!returnURL.startsWith("/text")) {
returnURL = "/text" + returnURL;
}
} else {
if (returnURL.startsWith("/text")) {
returnURL = returnURL.substring(5);
}
}
response.sendRedirect(returnURL);
</jsp:scriptlet>
</jsp:root>

View File

@ -0,0 +1,9 @@
Information for administrators and developers:
This directory contains Navigation item pages specifically crafted for
Scientific CMS. The are activated by a customized template.txt file list.
These file may be overwritten or ammended by site specific templates stored
in den bundles subdirectory. In case of additional templates a customised
template.txt must be provided and activated in the integrations.properties
configuration file.

View File

@ -0,0 +1,61 @@
<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">
<jsp:directive.page import="com.arsdigita.dispatcher.DispatcherHelper"/>
<jsp:directive.page import="com.arsdigita.bebop.parameters.BigDecimalParameter"/>
<jsp:directive.page import="com.arsdigita.navigation.Navigation"/>
<jsp:directive.page import="com.arsdigita.navigation.cms.CMSDataCollectionDefinition"/>
<jsp:directive.page import="com.arsdigita.navigation.cms.CMSDataCollectionRenderer"/>
<jsp:directive.page import="com.arsdigita.navigation.ui.object.CustomizableObjectList"/>
<jsp:scriptlet>
long age = Navigation.getConfig().getIndexPageCacheLifetime();
if (age == 0) {
DispatcherHelper.cacheDisable(response);
} else {
DispatcherHelper.cacheForWorld(response, (int)age);
}
</jsp:scriptlet>
<define:page name="defaultItemPage" application="navigation"
title="Navigation" cache="false">
<define:component name="greetingItem"
classname="com.arsdigita.navigation.ui.GreetingItem"/>
<define:component name="categoryPath"
classname="com.arsdigita.navigation.ui.category.Path"/>
<define:component name="categoryMenu"
classname="com.arsdigita.navigation.ui.category.Menu"/>
<define:component name="itemList"
classname="com.arsdigita.navigation.ui.object.CustomizableObjectList"/>
<jsp:scriptlet>
CustomizableObjectList objList = (CustomizableObjectList) itemList;
objList.setDefinition(new CMSDataCollectionDefinition());
objList.setRenderer(new CMSDataCollectionRenderer());
objList.setCustomName("SciPublicationsList");
objList.getDefinition().setObjectType("com.arsdigita.cms.contenttypes.Publication");
objList.getDefinition().setDescendCategories(false);
objList.addTextFilter("title", "title");
objList.addTextFilter("authors.surname", "author");
objList.addSelectFilter("yearOfPublication", "yearOfPublication", true, true, true, true);
objList.addSortField("title", "title asc");
objList.addSortField("yearAsc", "yearOfPublication asc");
objList.addSortField("yearDesc", "yearOfPublication desc");
objList.addSortField("authors", "authors.surname asc, authors.givenname asc");
objList.getDefinition().addOrder(objList.getOrder(request.getParameter("sort")));
objList.getRenderer().setPageSize(20);
objList.getRenderer().setSpecializeObjects(true);
</jsp:scriptlet>
<define:component name="assignedTerms"
classname="com.arsdigita.navigation.ui.CategoryIndexAssignedTerms"/>
</define:page>
<show:all/>
</jsp:root>

View File

@ -0,0 +1,46 @@
<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">
<jsp:directive.page import="com.arsdigita.dispatcher.DispatcherHelper"/>
<jsp:directive.page import="com.arsdigita.bebop.parameters.BigDecimalParameter"/>
<jsp:directive.page import="com.arsdigita.navigation.Navigation"/>
<jsp:directive.page import="com.arsdigita.navigation.cms.CMSDataCollectionDefinition"/>
<jsp:directive.page import="com.arsdigita.navigation.cms.CMSDataCollectionRenderer"/>
<jsp:directive.page import="org.apache.log4j.Logger"/>
<jsp:scriptlet>
long age = Navigation.getConfig().getIndexPageCacheLifetime();
if (age == 0) {
DispatcherHelper.cacheDisable(response);
} else {
DispatcherHelper.cacheForWorld(response, (int)age);
}
</jsp:scriptlet>
<define:page name="defaultItemPage" application="navigation"
title="Navigation" cache="false">
<define:component name="greetingItem"
classname="com.arsdigita.navigation.ui.GreetingItem"/>
<define:component name="categoryPath"
classname="com.arsdigita.navigation.ui.category.Path"/>
<define:component name="categoryMenu"
classname="com.arsdigita.navigation.ui.category.Menu"/>
<define:component name="itemList"
classname="com.arsdigita.navigation.ui.object.ComplexObjectList"/>
<jsp:scriptlet>
((com.arsdigita.navigation.ui.object.ComplexObjectList) itemList).setDefinition(new CMSDataCollectionDefinition());
((com.arsdigita.navigation.ui.object.ComplexObjectList) itemList).setRenderer(new CMSDataCollectionRenderer());
((com.arsdigita.navigation.ui.object.ComplexObjectList) itemList).getDefinition().setObjectType("com.arsdigita.cms.ContentPage");
((com.arsdigita.navigation.ui.object.ComplexObjectList) itemList).getDefinition().addOrder("parent.categories.link.sortKey");
((com.arsdigita.navigation.ui.object.ComplexObjectList) itemList).getRenderer().setPageSize(20);
((com.arsdigita.navigation.ui.object.ComplexObjectList) itemList).getRenderer().setSpecializeObjects(true);
</jsp:scriptlet>
<define:component name="assignedTerms"
classname="com.arsdigita.navigation.ui.CategoryIndexAssignedTerms"/>
</define:page>
<show:all/>
</jsp:root>

View File

@ -0,0 +1,51 @@
<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">
<jsp:directive.page import="com.arsdigita.dispatcher.DispatcherHelper"/>
<jsp:directive.page import="com.arsdigita.bebop.parameters.BigDecimalParameter"/>
<jsp:directive.page import="com.arsdigita.navigation.Navigation"/>
<jsp:directive.page import="com.arsdigita.navigation.cms.CMSDataCollectionDefinition"/>
<jsp:directive.page import="com.arsdigita.navigation.cms.CMSDataCollectionRenderer"/>
<jsp:scriptlet>
long age = Navigation.getConfig().getIndexPageCacheLifetime();
if (age == 0) {
DispatcherHelper.cacheDisable(response);
} else {
DispatcherHelper.cacheForWorld(response, (int)age);
}
</jsp:scriptlet>
<define:page name="atozItemPage" application="navigation"
title="Navigation" cache="true">
<define:component name="greetingItem"
classname="com.arsdigita.navigation.ui.GreetingItem"/>
<define:component name="categoryPath"
classname="com.arsdigita.navigation.ui.category.Path"/>
<define:component name="categoryMenu"
classname="com.arsdigita.navigation.ui.category.Menu"/>
<define:component name="itemList"
classname="com.arsdigita.navigation.ui.object.AtoZObjectList"/>
<jsp:scriptlet>
((com.arsdigita.navigation.ui.object.AtoZObjectList) itemList).setDefinition(new CMSDataCollectionDefinition());
((com.arsdigita.navigation.ui.object.AtoZObjectList) itemList).setRenderer(new CMSDataCollectionRenderer());
((com.arsdigita.navigation.ui.object.AtoZObjectList) itemList).getDefinition().setObjectType("com.arsdigita.cms.ContentPage");
((com.arsdigita.navigation.ui.object.AtoZObjectList) itemList).getDefinition().setDescendCategories(false);
((com.arsdigita.navigation.ui.object.AtoZObjectList) itemList).getDefinition().addOrder("title");
((com.arsdigita.navigation.ui.object.AtoZObjectList) itemList).getRenderer().setPageSize(20);
((com.arsdigita.navigation.ui.object.AtoZObjectList) itemList).getRenderer().addAttribute("objectType");
((com.arsdigita.navigation.ui.object.AtoZObjectList) itemList).getRenderer().addAttribute( "title");
((com.arsdigita.navigation.ui.object.AtoZObjectList) itemList).getRenderer().addAttribute( "definition");
((com.arsdigita.navigation.ui.object.AtoZObjectList) itemList).getRenderer().addAttribute( "summary");
((com.arsdigita.navigation.ui.object.AtoZObjectList) itemList).getRenderer().addAttribute( "lead");
</jsp:scriptlet>
</define:page>
<show:all/>
</jsp:root>

View File

@ -0,0 +1,59 @@
<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">
<jsp:directive.page import="com.arsdigita.dispatcher.DispatcherHelper"/>
<jsp:directive.page import="com.arsdigita.bebop.parameters.BigDecimalParameter"/>
<jsp:directive.page import="com.arsdigita.navigation.Navigation"/>
<jsp:directive.page import="com.arsdigita.navigation.cms.CMSDataCollectionDefinition"/>
<jsp:directive.page import="com.arsdigita.navigation.cms.CMSDataCollectionRenderer"/>
<jsp:scriptlet>
long age = Navigation.getConfig().getIndexPageCacheLifetime();
if (age == 0) {
DispatcherHelper.cacheDisable(response);
} else {
DispatcherHelper.cacheForWorld(response, (int)age);
}
</jsp:scriptlet>
<define:page name="defaultItemPage" application="navigation"
title="Navigation" cache="true">
<define:component name="greetingItem"
classname="com.arsdigita.navigation.ui.GreetingItem"/>
<define:component name="categoryPath"
classname="com.arsdigita.navigation.ui.category.Path"/>
<define:component name="categoryMenu"
classname="com.arsdigita.navigation.ui.category.Menu"/>
<define:component name="itemList"
classname="com.arsdigita.navigation.ui.object.SimpleObjectList"/>
<jsp:scriptlet>
((com.arsdigita.navigation.ui.object.SimpleObjectList) itemList).setDefinition(new CMSDataCollectionDefinition());
((com.arsdigita.navigation.ui.object.SimpleObjectList) itemList).setRenderer(new CMSDataCollectionRenderer());
((com.arsdigita.navigation.ui.object.SimpleObjectList) itemList).getDefinition().setObjectType("com.arsdigita.cms.ContentPage");
((com.arsdigita.navigation.ui.object.SimpleObjectList) itemList).getDefinition().setDescendCategories(false);
((com.arsdigita.navigation.ui.object.SimpleObjectList) itemList).getDefinition().addOrder("parent.categories.link.sortKey");
((com.arsdigita.navigation.ui.object.SimpleObjectList) itemList).getRenderer().setPageSize(30);
((com.arsdigita.navigation.ui.object.SimpleObjectList) itemList).getRenderer().addAttribute("objectType");
((com.arsdigita.navigation.ui.object.SimpleObjectList) itemList).getRenderer().addAttribute("title");
((com.arsdigita.navigation.ui.object.SimpleObjectList) itemList).getRenderer().addAttribute( "definition");
((com.arsdigita.navigation.ui.object.SimpleObjectList) itemList).getRenderer().addAttribute( "summary");
((com.arsdigita.navigation.ui.object.SimpleObjectList) itemList).getRenderer().addAttribute( "lead");
((com.arsdigita.navigation.ui.object.SimpleObjectList) itemList).getRenderer().addAttribute( "description");
((com.arsdigita.navigation.ui.object.SimpleObjectList) itemList).getRenderer().addAttribute( "eventDate");
((com.arsdigita.navigation.ui.object.SimpleObjectList) itemList).getRenderer().addAttribute( "startDate" );
((com.arsdigita.navigation.ui.object.SimpleObjectList) itemList).getRenderer().addAttribute( "endDate");
((com.arsdigita.navigation.ui.object.SimpleObjectList) itemList).getRenderer().addAttribute( "newsDate");
</jsp:scriptlet>
<define:component name="assignedTerms"
classname="com.arsdigita.navigation.ui.CategoryIndexAssignedTerms"/>
</define:page>
<show:all/>
</jsp:root>

View File

@ -0,0 +1,73 @@
<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">
<jsp:directive.page import="com.arsdigita.dispatcher.DispatcherHelper"/>
<jsp:directive.page import="com.arsdigita.bebop.parameters.BigDecimalParameter"/>
<jsp:directive.page import="com.arsdigita.navigation.Navigation"/>
<jsp:directive.page import="com.arsdigita.navigation.cms.CMSDataCollectionDefinition"/>
<jsp:directive.page import="com.arsdigita.navigation.cms.CMSDataCollectionRenderer"/>
<jsp:scriptlet>
long age = Navigation.getConfig().getIndexPageCacheLifetime();
if (age == 0) {
DispatcherHelper.cacheDisable(response);
} else {
DispatcherHelper.cacheForWorld(response, (int)age);
}
</jsp:scriptlet>
<define:page name="defaultItemPage" application="navigation"
title="Navigation" cache="true">
<define:component name="greetingItem"
classname="com.arsdigita.navigation.ui.GreetingItem"/>
<define:component name="categoryPath"
classname="com.arsdigita.navigation.ui.category.Path"/>
<define:component name="categoryMenu"
classname="com.arsdigita.navigation.ui.category.Menu"/>
<define:component name="eventList"
classname="com.arsdigita.navigation.ui.object.ComplexObjectList"/>
<jsp:scriptlet>
((com.arsdigita.navigation.ui.object.ComplexObjectList) eventList).setDefinition(new CMSDataCollectionDefinition());
((com.arsdigita.navigation.ui.object.ComplexObjectList) eventList).setRenderer(new CMSDataCollectionRenderer());
((com.arsdigita.navigation.ui.object.ComplexObjectList) eventList).getDefinition().setObjectType("com.arsdigita.cms.contenttypes.Event");
((com.arsdigita.navigation.ui.object.ComplexObjectList) eventList).setSQLFilter("(endDate &gt;= :today and (endTime &gt; :time or endTime is null)) or (endDate is null and startDate &gt;= :today)");
// Java ist mal wieder kompliziert. Man braucht ein Calender-Object, damit man Datumsarithmetik betreiben kann. java.util.Calendar ist allerdings // abstract. Deshalb muß man java.util.GregorianCalendar verwenden. Dann kann man mit der add-Methode verschiedene Felder manipulieren. // Aber Achtung - die add-Method liefert void zurück. Daher kann man das nicht alles in einer Zeile machen. Also Variablen anlegen. // Komplizierter geht's wohl nicht mehr.
java.util.GregorianCalendar now = new java.util.GregorianCalendar();
java.util.Date today = (new java.util.GregorianCalendar(now.get(java.util.GregorianCalendar.YEAR),
now.get(java.util.GregorianCalendar.MONTH),
now.get(java.util.GregorianCalendar.DATE))).getTime();
// Im Event-CT ist das Datum als SQL-Type Date eingetragen, die Uhrzeit aber als SQL-Typ timestamptz. Leider wird von ccm im letzten
// das Datum nicht gesetzt, so daß der Timestamp immer eine Uhrzeit am 1.1.1970 angibt. Das ist ziemlich bescheuert und macht hier
// diesen kompliezierten Vergleich notwendig. Sonst könnte man einfach mit dem aktuellen Timestamp vergleichen.
java.util.Date time = (new java.util.GregorianCalendar(70,0,1, // this is 01.01.1970 - start of UNIX timestamp
now.get(java.util.GregorianCalendar.HOUR_OF_DAY),
now.get(java.util.GregorianCalendar.MINUTE),
now.get(java.util.GregorianCalendar.SECOND))).getTime();
((com.arsdigita.navigation.ui.object.ComplexObjectList) eventList).setParameter("today", today);
((com.arsdigita.navigation.ui.object.ComplexObjectList) eventList).setParameter("time", time);
((com.arsdigita.navigation.ui.object.ComplexObjectList) eventList).getDefinition().setDescendCategories(true);
((com.arsdigita.navigation.ui.object.ComplexObjectList) eventList).getDefinition().addOrder("startDate");
((com.arsdigita.navigation.ui.object.ComplexObjectList) eventList).getRenderer().addAttribute("objectType");
((com.arsdigita.navigation.ui.object.ComplexObjectList) eventList).getRenderer().addAttribute("title");
((com.arsdigita.navigation.ui.object.ComplexObjectList) eventList).getRenderer().addAttribute("lead");
((com.arsdigita.navigation.ui.object.ComplexObjectList) eventList).getRenderer().addAttribute("eventDate");
((com.arsdigita.navigation.ui.object.ComplexObjectList) eventList).getRenderer().addAttribute("launchDate");
((com.arsdigita.navigation.ui.object.ComplexObjectList) eventList).getRenderer().addAttribute("startDate");
((com.arsdigita.navigation.ui.object.ComplexObjectList) eventList).getRenderer().addAttribute("endDate");
</jsp:scriptlet>
<define:component name="assignedTerms"
classname="com.arsdigita.navigation.ui.CategoryIndexAssignedTerms"/>
</define:page>
<show:all/>
</jsp:root>

View File

@ -0,0 +1,38 @@
<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">
<%-- JSP template to use a portal page as index page in navigation --%>
<jsp:directive.page import="com.arsdigita.dispatcher.DispatcherHelper"/>
<jsp:directive.page import="com.arsdigita.navigation.Navigation"/>
<jsp:directive.page import="com.arsdigita.bebop.parameters.BigDecimalParameter"/>
<jsp:directive.page import="com.arsdigita.aplaws.ui.CategoryPortalSelectionModel"/>
<jsp:scriptlet>
long age = Navigation.getConfig().getIndexPageCacheLifetime();
if (age == 0) {
DispatcherHelper.cacheDisable(response);
} else {
DispatcherHelper.cacheForWorld(response, (int)age);
}
</jsp:scriptlet>
<define:page name="portalsPage" application="navigation"
title="Navigation" cache="true">
<define:component name="categoryPath"
classname="com.arsdigita.navigation.ui.category.Path"/>
<define:component name="categoryMenu"
classname="com.arsdigita.navigation.ui.category.Menu"/>
<define:component name="portalWorkspace"
classname="com.arsdigita.portalworkspace.ui.WorkspaceViewer"/>
<jsp:scriptlet>
((com.arsdigita.portalworkspace.ui.WorkspaceViewer) portalWorkspace).setWorkspaceModel(new CategoryPortalSelectionModel());
</jsp:scriptlet>
</define:page>
<show:all/>
</jsp:root>

View File

@ -0,0 +1,38 @@
<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">
<!-- JSP template to use a portal page as index page in navigation -->
<jsp:directive.page import="com.arsdigita.dispatcher.DispatcherHelper"/>
<jsp:directive.page import="com.arsdigita.navigation.Navigation"/>
<jsp:directive.page import="com.arsdigita.bebop.parameters.BigDecimalParameter"/>
<jsp:directive.page import="com.arsdigita.aplaws.ui.CategoryPortalSelectionModel"/>
<jsp:scriptlet>
long age = Navigation.getConfig().getIndexPageCacheLifetime();
if (age == 0) {
DispatcherHelper.cacheDisable(response);
} else {
DispatcherHelper.cacheForWorld(response, (int)age);
}
</jsp:scriptlet>
<define:page name="portalsPage" application="navigation"
title="Navigation" cache="true">
<define:component name="categoryPath"
classname="com.arsdigita.navigation.ui.category.Path"/>
<define:component name="categoryMenu"
classname="com.arsdigita.navigation.ui.category.Menu"/>
<define:component name="portalWorkspace"
classname="com.arsdigita.portalworkspace.ui.WorkspaceViewer"/>
<jsp:scriptlet>
((com.arsdigita.portalworkspace.ui.WorkspaceViewer) portalWorkspace).setWorkspaceModel(new CategoryPortalSelectionModel());
</jsp:scriptlet>
</define:page>
<show:all/>
</jsp:root>

View File

@ -0,0 +1,56 @@
<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">
<jsp:directive.page import="com.arsdigita.dispatcher.DispatcherHelper"/>
<jsp:directive.page import="com.arsdigita.bebop.parameters.BigDecimalParameter"/>
<jsp:directive.page import="com.arsdigita.navigation.Navigation"/>
<jsp:directive.page import="com.arsdigita.navigation.cms.CMSDataCollectionDefinition"/>
<jsp:directive.page import="com.arsdigita.navigation.cms.CMSDataCollectionRenderer"/>
<jsp:scriptlet>
long age = Navigation.getConfig().getIndexPageCacheLifetime();
if (age == 0) {
DispatcherHelper.cacheDisable(response);
} else {
DispatcherHelper.cacheForWorld(response, (int)age);
}
</jsp:scriptlet>
<define:page name="recentItemPage" application="navigation"
title="Navigation" cache="true">
<define:component name="greetingItem"
classname="com.arsdigita.navigation.ui.GreetingItem"/>
<define:component name="categoryPath"
classname="com.arsdigita.navigation.ui.category.Path"/>
<define:component name="categoryMenu"
classname="com.arsdigita.navigation.ui.category.Menu"/>
<define:component name="itemList"
classname="com.arsdigita.navigation.ui.object.SimpleObjectList"/>
<jsp:scriptlet>
((com.arsdigita.navigation.ui.object.SimpleObjectList) itemList).setDefinition(new CMSDataCollectionDefinition());
((com.arsdigita.navigation.ui.object.SimpleObjectList) itemList).setRenderer(new CMSDataCollectionRenderer());
((com.arsdigita.navigation.ui.object.SimpleObjectList) itemList).getDefinition().setObjectType("com.arsdigita.cms.ContentPage");
((com.arsdigita.navigation.ui.object.SimpleObjectList) itemList).getDefinition().setDescendCategories(false);
((com.arsdigita.navigation.ui.object.SimpleObjectList) itemList).getDefinition().addOrder("id");
((com.arsdigita.navigation.ui.object.SimpleObjectList) itemList).getRenderer().setPageSize(30);
((com.arsdigita.navigation.ui.object.SimpleObjectList) itemList).getRenderer().addAttribute("objectType");
((com.arsdigita.navigation.ui.object.SimpleObjectList) itemList).getRenderer().addAttribute("title");
((com.arsdigita.navigation.ui.object.SimpleObjectList) itemList).getRenderer().addAttribute( "definition");
((com.arsdigita.navigation.ui.object.SimpleObjectList) itemList).getRenderer().addAttribute( "summary");
((com.arsdigita.navigation.ui.object.SimpleObjectList) itemList).getRenderer().addAttribute( "lead");
((com.arsdigita.navigation.ui.object.SimpleObjectList) itemList).getRenderer().addAttribute( "eventDate");
((com.arsdigita.navigation.ui.object.SimpleObjectList) itemList).getRenderer().addAttribute( "startDate" );
((com.arsdigita.navigation.ui.object.SimpleObjectList) itemList).getRenderer().addAttribute( "endDate");
((com.arsdigita.navigation.ui.object.SimpleObjectList) itemList).getRenderer().addAttribute( "newsDate");
</jsp:scriptlet>
</define:page>
<show:all/>
</jsp:root>

View File

@ -0,0 +1,121 @@
<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">
<!-- JSP template for the ZeS welcome / start page using navigation -->
<jsp:directive.page import="com.arsdigita.dispatcher.DispatcherHelper"/>
<jsp:directive.page import="com.arsdigita.bebop.parameters.BigDecimalParameter"/>
<jsp:directive.page import="com.arsdigita.navigation.Navigation"/>
<jsp:directive.page import="com.arsdigita.navigation.cms.CMSDataCollectionDefinition"/>
<jsp:directive.page import="com.arsdigita.navigation.cms.CMSDataCollectionRenderer"/>
<jsp:scriptlet>
long age = Navigation.getConfig().getIndexPageCacheLifetime();
if (age == 0) {
DispatcherHelper.cacheDisable(response);
} else {
DispatcherHelper.cacheForWorld(response, (int)age);
}
</jsp:scriptlet>
<define:page name="defaultItemPage" application="navigation"
title="Navigation" cache="true">
<define:component name="greetingItem"
classname="com.arsdigita.navigation.ui.GreetingItem"/>
<define:component name="categoryPath"
classname="com.arsdigita.navigation.ui.category.Path"/>
<define:component name="categoryMenu"
classname="com.arsdigita.navigation.ui.category.Menu"/>
<define:component name="itemList"
classname="com.arsdigita.navigation.ui.object.SimpleObjectList"/>
<jsp:scriptlet>
((com.arsdigita.navigation.ui.object.SimpleObjectList) itemList).setDefinition(new CMSDataCollectionDefinition());
((com.arsdigita.navigation.ui.object.SimpleObjectList) itemList).setRenderer(new CMSDataCollectionRenderer());
((com.arsdigita.navigation.ui.object.SimpleObjectList) itemList).getDefinition().setObjectType("com.arsdigita.cms.ContentPage");
((com.arsdigita.navigation.ui.object.SimpleObjectList) itemList).getDefinition().setDescendCategories(false);
((com.arsdigita.navigation.ui.object.SimpleObjectList) itemList).getDefinition().addOrder("parent.categories.link.sortKey");
((com.arsdigita.navigation.ui.object.SimpleObjectList) itemList).getRenderer().setPageSize(30);
((com.arsdigita.navigation.ui.object.SimpleObjectList) itemList).getRenderer().addAttribute("objectType");
((com.arsdigita.navigation.ui.object.SimpleObjectList) itemList).getRenderer().addAttribute("title");
((com.arsdigita.navigation.ui.object.SimpleObjectList) itemList).getRenderer().addAttribute("eventDate");
((com.arsdigita.navigation.ui.object.SimpleObjectList) itemList).getRenderer().addAttribute("launchDate");
((com.arsdigita.navigation.ui.object.SimpleObjectList) itemList).getRenderer().addAttribute("startDate");
((com.arsdigita.navigation.ui.object.SimpleObjectList) itemList).getRenderer().addAttribute("endDate");
((com.arsdigita.navigation.ui.object.SimpleObjectList) itemList).getRenderer().addAttribute("newsDate");
</jsp:scriptlet>
<define:component name="eventList"
classname="com.arsdigita.navigation.ui.object.ComplexObjectList"/>
<jsp:scriptlet>
((com.arsdigita.navigation.ui.object.ComplexObjectList) eventList).setDefinition(new CMSDataCollectionDefinition());
((com.arsdigita.navigation.ui.object.ComplexObjectList) eventList).setRenderer(new CMSDataCollectionRenderer());
((com.arsdigita.navigation.ui.object.ComplexObjectList) eventList).getDefinition().setObjectType("com.arsdigita.cms.contenttypes.Event");
((com.arsdigita.navigation.ui.object.ComplexObjectList) eventList).setSQLFilter("(endDate &gt;= :today and (endTime &gt; :time or endTime is null)) or (endDate is null and startDate &gt;= :today)");
// Java ist mal wieder kompliziert. Man braucht ein Calender-Object, damit man Datumsarithmetik betreiben kann. java.util.Calendar ist allerdings // abstract. Deshalb muß man java.util.GregorianCalendar verwenden. Dann kann man mit der add-Methode verschiedene Felder manipulieren. // Aber Achtung - die add-Method liefert void zurück. Daher kann man das nicht alles in einer Zeile machen. Also Variablen anlegen. // Komplizierter geht's wohl nicht mehr.
java.util.GregorianCalendar now = new java.util.GregorianCalendar();
java.util.Date today = (new java.util.GregorianCalendar(now.get(java.util.GregorianCalendar.YEAR),
now.get(java.util.GregorianCalendar.MONTH),
now.get(java.util.GregorianCalendar.DATE))).getTime();
// Im Event-CT ist das Datum als SQL-Type Date eingetragen, die Uhrzeit aber als SQL-Typ timestamptz. Leider wird von ccm im letzten
// das Datum nicht gesetzt, so daß der Timestamp immer eine Uhrzeit am 1.1.1970 angibt. Das ist ziemlich bescheuert und macht hier
// diesen kompliezierten Vergleich notwendig. Sonst könnte man einfach mit dem aktuellen Timestamp vergleichen.
java.util.Date time = (new java.util.GregorianCalendar(70,0,1, // this is 01.01.1970 - start of UNIX timestamp
now.get(java.util.GregorianCalendar.HOUR_OF_DAY),
now.get(java.util.GregorianCalendar.MINUTE),
now.get(java.util.GregorianCalendar.SECOND))).getTime();
((com.arsdigita.navigation.ui.object.ComplexObjectList) eventList).setParameter("today", today);
((com.arsdigita.navigation.ui.object.ComplexObjectList) eventList).setParameter("time", time);
((com.arsdigita.navigation.ui.object.ComplexObjectList) eventList).getDefinition().setDescendCategories(true);
((com.arsdigita.navigation.ui.object.ComplexObjectList) eventList).getDefinition().addOrder("startDate");
((com.arsdigita.navigation.ui.object.ComplexObjectList) eventList).getRenderer().setPageSize(5);
((com.arsdigita.navigation.ui.object.ComplexObjectList) eventList).getRenderer().addAttribute("objectType");
((com.arsdigita.navigation.ui.object.ComplexObjectList) eventList).getRenderer().addAttribute("title");
((com.arsdigita.navigation.ui.object.ComplexObjectList) eventList).getRenderer().addAttribute("lead");
((com.arsdigita.navigation.ui.object.ComplexObjectList) eventList).getRenderer().addAttribute("eventDate");
((com.arsdigita.navigation.ui.object.ComplexObjectList) eventList).getRenderer().addAttribute("launchDate");
((com.arsdigita.navigation.ui.object.ComplexObjectList) eventList).getRenderer().addAttribute("startDate");
((com.arsdigita.navigation.ui.object.ComplexObjectList) eventList).getRenderer().addAttribute("endDate");
</jsp:scriptlet>
<define:component name="newsList"
classname="com.arsdigita.navigation.ui.object.ComplexObjectList"/>
<jsp:scriptlet>
((com.arsdigita.navigation.ui.object.ComplexObjectList) newsList).setDefinition(new CMSDataCollectionDefinition());
((com.arsdigita.navigation.ui.object.ComplexObjectList) newsList).setRenderer(new CMSDataCollectionRenderer());
((com.arsdigita.navigation.ui.object.ComplexObjectList) newsList).getDefinition().setObjectType("com.arsdigita.cms.contenttypes.NewsItem");
((com.arsdigita.navigation.ui.object.ComplexObjectList) newsList).setSQLFilter("newsDate &gt; :oldNewsDate");
// Java ist mal wieder kompliziert. Man braucht ein Calender-Object, damit man Datumsarithmetik betreiben kann. java.util.Calendar ist allerdings
// abstract. Deshalb muß man java.util.GregorianCalendar verwenden. Dann kann man mit der add-Methode verschiedene Felder manipulieren.
// Aber Achtung - die add-Method liefert void zurück. Daher kann man das nicht alles in einer Zeile machen. Also Variablen anlegen.
// Komplizierter geht's wohl nicht mehr.
java.util.GregorianCalendar oldDate = new java.util.GregorianCalendar();
oldDate.add(java.util.Calendar.MONTH, -2);
((com.arsdigita.navigation.ui.object.ComplexObjectList) newsList).setParameter("oldNewsDate", oldDate.getTime());
((com.arsdigita.navigation.ui.object.ComplexObjectList) newsList).getDefinition().setDescendCategories(true);
((com.arsdigita.navigation.ui.object.ComplexObjectList) newsList).getDefinition().addOrder("newsDate desc");
((com.arsdigita.navigation.ui.object.ComplexObjectList) newsList).getRenderer().setPageSize(5);
((com.arsdigita.navigation.ui.object.ComplexObjectList) newsList).getRenderer().addAttribute("objectType");
((com.arsdigita.navigation.ui.object.ComplexObjectList) newsList).getRenderer().addAttribute("title");
((com.arsdigita.navigation.ui.object.ComplexObjectList) newsList).getRenderer().addAttribute("lead");
((com.arsdigita.navigation.ui.object.ComplexObjectList) newsList).getRenderer().addAttribute("newsDate");
</jsp:scriptlet>
<define:component name="assignedTerms"
classname="com.arsdigita.navigation.ui.CategoryIndexAssignedTerms"/>
</define:page>
<show:all/>
</jsp:root>

Some files were not shown because too many files have changed in this diff Show More