From 41bd8e8983884a2b2815d1a10c72214ea4c666f1 Mon Sep 17 00:00:00 2001 From: jensp Date: Wed, 16 Mar 2011 12:44:16 +0000 Subject: [PATCH] Korrekturen an der Generierung der Namen (URLs) der importieren ContentItems. git-svn-id: https://svn.libreccm.org/ccm/trunk@787 8810af33-2d31-482b-a856-94f89814c4df --- .../arsdigita/cms/dabin/DaBInImporter.java | 112 +++++++++--------- .../arsdigita/cms/dabin/PublicationData.java | 11 +- .../navigation/templates/SciProjectList.jsp | 2 +- 3 files changed, 67 insertions(+), 58 deletions(-) diff --git a/ccm-cms-dabinimporter/src/com/arsdigita/cms/dabin/DaBInImporter.java b/ccm-cms-dabinimporter/src/com/arsdigita/cms/dabin/DaBInImporter.java index aa68487f0..5014d285b 100644 --- a/ccm-cms-dabinimporter/src/com/arsdigita/cms/dabin/DaBInImporter.java +++ b/ccm-cms-dabinimporter/src/com/arsdigita/cms/dabin/DaBInImporter.java @@ -2086,11 +2086,13 @@ public class DaBInImporter extends Program { System.out.printf("\tde: %s...", departmentData.getNameDe()); departmentDe = new SciDepartment(); departmentDe.setTitle(departmentData.getNameDe()); - departmentDe.setName(departmentData.getNameDe(). - replace(",", ""). - replace("/", ""). - replaceAll("\\s\\s+", " "). - replace(' ', '-').toLowerCase()); + /*departmentDe.setName(departmentData.getNameDe(). + replace(",", ""). + replace("/", ""). + replaceAll("\\s\\s+", " "). + replace(' ', '-').toLowerCase());*/ + departmentDe.setName(DaBInImporter.normalizeString(departmentData. + getNameDe())); departmentDe.setLanguage("de"); departmentDe.setLifecycle(createLifecycle(lifecycle)); departmentDe.setContentSection(section); @@ -2101,11 +2103,13 @@ public class DaBInImporter extends Program { departmentData.getNameEn()); departmentEn = new SciDepartment(); departmentEn.setTitle(departmentData.getNameEn()); - departmentEn.setName(departmentData.getNameEn(). - replace(",", ""). - replace("/", ""). - replaceAll("\\s\\s+", " "). - replace(' ', '-').toLowerCase()); + /*departmentEn.setName(departmentData.getNameEn(). + replace(",", ""). + replace("/", ""). + replaceAll("\\s\\s+", " "). + replace(' ', '-').toLowerCase());*/ + departmentEn.setName(DaBInImporter.normalizeString(departmentData. + getNameDe())); departmentEn.setLanguage("en"); departmentEn.setLifecycle(createLifecycle(lifecycle)); departmentEn.setContentSection(section); @@ -2203,15 +2207,17 @@ public class DaBInImporter extends Program { && (projectData.getNameDe().length() > 0)) { projectDe = new SciProject(); projectDe.setTitle(projectData.getNameDe()); - String projectNameDe = projectData.getNameDe(). - replace(",", ""). - replace("/", ""). - replaceAll("\\s\\s+", " "). - replace(' ', '-').toLowerCase(); - if (projectNameDe.length() > 200) { - projectNameDe = projectNameDe.substring(0, 200); + /*String projectNameDe = projectData.getNameDe(). + replace(",", ""). + replace("/", ""). + replaceAll("\\s\\s+", " "). + replace(' ', '-').toLowerCase();*/ + String projectName = DaBInImporter.normalizeString(projectData. + getNameDe()); + if (projectName.length() > 200) { + projectName = projectName.substring(0, 200); } - projectDe.setName(projectNameDe); + projectDe.setName(projectName); projectDe.setProjectDescription(projectData.getDescDe()); projectDe.setFunding(projectData.getFundingDe()); if (projectData.getBegin() != null) { @@ -2234,15 +2240,12 @@ public class DaBInImporter extends Program { && (projectData.getNameEn().length() > 0)) { projectEn = new SciProject(); projectEn.setTitle(projectData.getNameEn()); - String projectNameEn = projectData.getNameEn(). - replace(",", ""). - replace("/", ""). - replaceAll("\\s\\s+", " "). - replace(' ', '-').toLowerCase(); - if (projectNameEn.length() > 200) { - projectNameEn = projectNameEn.substring(0, 200); + String projectName = DaBInImporter.normalizeString(projectData. + getNameDe()); + if (projectName.length() > 200) { + projectName = projectName.substring(0, 200); } - projectEn.setName(projectNameEn); + projectEn.setName(projectName); projectEn.setProjectDescription(projectData.getDescEn()); projectEn.setFunding(projectData.getFundingEn()); if (projectData.getBegin() != null) { @@ -2903,16 +2906,13 @@ public class DaBInImporter extends Program { workingPaperData.getYear()); workingPaperDe = new WorkingPaper(); workingPaperDe.setTitle(workingPaperData.getTitleDe()); - String workingPaperNameDe = workingPaperData.getTitleDe(). - replace(",", ""). - replace("/", ""). - replaceAll("\\s\\s+", " "). - replace(' ', '-').toLowerCase(); - if (workingPaperNameDe.length() > 200) { - workingPaperNameDe = - workingPaperNameDe.substring(0, 200); + String workingPaperName = DaBInImporter.normalizeString( + workingPaperData.getTitleDe()); + if (workingPaperName.length() > 200) { + workingPaperName = + workingPaperName.substring(0, 200); } - workingPaperDe.setName(workingPaperNameDe); + workingPaperDe.setName(workingPaperName); if (workingPaperData.getDescDe().length() > 8000) { workingPaperDe.setAbstract(workingPaperData.getDescDe(). substring(0, 8000)); @@ -2940,16 +2940,13 @@ public class DaBInImporter extends Program { workingPaperData.getYear()); workingPaperEn = new WorkingPaper(); workingPaperEn.setTitle(workingPaperData.getTitleEn()); - String workingPaperNameEn = workingPaperData.getTitleEn(). - replace(",", ""). - replace("/", ""). - replaceAll("\\s\\s+", " "). - replace(' ', '-').toLowerCase(); - if (workingPaperNameEn.length() > 200) { - workingPaperNameEn = - workingPaperNameEn.substring(0, 200); + String workingPaperName = DaBInImporter.normalizeString( + workingPaperData.getTitleDe()); + if (workingPaperName.length() > 200) { + workingPaperName = + workingPaperName.substring(0, 200); } - workingPaperEn.setName(workingPaperNameEn); + workingPaperEn.setName(workingPaperName); if (workingPaperData.getDescEn().length() > 4096) { System.out.println( "***Warning: Value of DaBIn field abstract too long for abstracts (max: 4096 characters). Truncating."); @@ -2984,10 +2981,10 @@ public class DaBInImporter extends Program { workingPaper.setContentSection(publicationsSection); if (workingPaperDe != null) { - workingPaperDe.setContentSection(publicationsSection); + workingPaperDe.setContentSection(publicationsSection); } if (workingPaperEn != null) { - workingPaperEn.setContentSection(publicationsSection); + workingPaperEn.setContentSection(publicationsSection); } workingPaperMap.put(workingPaperData.getDabinId(), workingPaper); @@ -3219,11 +3216,8 @@ public class DaBInImporter extends Program { getPlace()); publisherDe = new Publisher(); publisherDe.setTitle(publisherData.getName()); - publisherDe.setName(publisherData.getName(). - replace(",", ""). - replace("/", ""). - replaceAll("\\s\\s+", " "). - replace(' ', '-').toLowerCase()); + publisherDe.setName(DaBInImporter.normalizeString(publisherData. + getName())); publisherDe.setPlace(publisherData.getPlace()); publisherDe.setLanguage("de"); publisherDe.setLifecycle(createLifecycle(publicationsLifecycle)); @@ -3235,11 +3229,8 @@ public class DaBInImporter extends Program { getPlace()); publisherEn = new Publisher(); publisherEn.setTitle(publisherData.getName()); - publisherEn.setName(publisherData.getName(). - replace(",", ""). - replace("/", ""). - replaceAll("\\s\\s+", " "). - replace(' ', '-').toLowerCase()); + publisherEn.setName(DaBInImporter.normalizeString(publisherData. + getName())); publisherEn.setPlace(publisherData.getPlace()); publisherEn.setLanguage("en"); publisherEn.setLifecycle(createLifecycle(publicationsLifecycle)); @@ -3654,6 +3645,15 @@ public class DaBInImporter extends Program { return lifecycle; } + public static String normalizeString(final String str) { + return str.replace("ä", "ae").replace("ö", "oe").replace("ü", "ue"). + replace( + "Ä", "Ae").replace("Ü", "Ue").replace("Ö", "Oe").replace("ß", + "ss"). + replace(" ", "-"). + replaceAll("[^a-zA-Z0-9\\-]", "").toLowerCase(); + } + public static void main(String[] args) { new DaBInImporter().run(args); } diff --git a/ccm-cms-dabinimporter/src/com/arsdigita/cms/dabin/PublicationData.java b/ccm-cms-dabinimporter/src/com/arsdigita/cms/dabin/PublicationData.java index a5fa2c455..0e58c9b04 100644 --- a/ccm-cms-dabinimporter/src/com/arsdigita/cms/dabin/PublicationData.java +++ b/ccm-cms-dabinimporter/src/com/arsdigita/cms/dabin/PublicationData.java @@ -85,6 +85,15 @@ public class PublicationData { public String getUrl() { if (name.length() < 200) { + return DaBInImporter.normalizeString(name); + } else { + System.out.println( + "\t***WARNING: Title of publication is too long for URL. Triming to title to a length of 200 characters for URL."); + return DaBInImporter.normalizeString(name.substring( + 0, 200)); + } + + /* if (name.length() < 200) { return name.replace(",", ""). replace("/", ""). replaceAll("\\s\\s+", " "). @@ -97,7 +106,7 @@ public class PublicationData { replace("/", ""). replaceAll("\\s\\s+", " "). replace(' ', '-').toLowerCase(); - } + }*/ } public String getPublicationDaBInId() { diff --git a/ccm-zes-aplaws/web/packages/navigation/templates/SciProjectList.jsp b/ccm-zes-aplaws/web/packages/navigation/templates/SciProjectList.jsp index c7ce42fce..4c4231230 100644 --- a/ccm-zes-aplaws/web/packages/navigation/templates/SciProjectList.jsp +++ b/ccm-zes-aplaws/web/packages/navigation/templates/SciProjectList.jsp @@ -36,7 +36,7 @@ ((com.arsdigita.london.navigation.ui.object.SimpleObjectList) itemList).getDefinition().setObjectType("com.arsdigita.cms.ContentPage"); ((com.arsdigita.london.navigation.ui.object.SimpleObjectList) itemList).getDefinition().setDescendCategories(false); - ((com.arsdigita.london.navigation.ui.object.SimpleObjectList) itemList).getDefinition().addOrder("parent.categories.link.sortKey"); + ((com.arsdigita.london.navigation.ui.object.SimpleObjectList) itemList).getDefinition().addOrder("title"); ((com.arsdigita.london.navigation.ui.object.SimpleObjectList) itemList).getRenderer().setPageSize(20); ((com.arsdigita.london.navigation.ui.object.SimpleObjectList) itemList).getRenderer().setSpecializeObjects(true);