tdraier 2005/11/23 19:29:41 CET
Modified files:
core/src/java/org/jahia/services/importexport
ImportExportBaseService.java
ImportHandler.java
Log:
import/export pagekeys
Revision Changes Path
1.48 +6 -0
jahia/core/src/java/org/jahia/services/importexport/ImportExportBaseService.java
http://jahia.mine.nu:8080/cgi-bin/cvsweb.cgi/jahia/core/src/java/org/jahia/services/importexport/ImportExportBaseService.java.diff?r1=1.47&r2=1.48&f=h
1.50 +36 -0
jahia/core/src/java/org/jahia/services/importexport/ImportHandler.java
http://jahia.mine.nu:8080/cgi-bin/cvsweb.cgi/jahia/core/src/java/org/jahia/services/importexport/ImportHandler.java.diff?r1=1.49&r2=1.50&f=h
Index: ImportExportBaseService.java
===================================================================
RCS file:
/home/cvs/repository/jahia/core/src/java/org/jahia/services/importexport/ImportExportBaseService.java,v
retrieving revision 1.47
retrieving revision 1.48
diff -u -r1.47 -r1.48
--- ImportExportBaseService.java 23 Nov 2005 13:38:21 -0000 1.47
+++ ImportExportBaseService.java 23 Nov 2005 18:29:41 -0000 1.48
@@ -260,6 +260,12 @@
attr.addAttribute(JCR_URI, "uuid", "jcr:uuid",
"CDATA", getUuid(cp));
if (view) {
attr.addAttribute(JAHIA_URI, "template",
"jahia:template", "CDATA",
((ContentPage)object).getPageTemplate(toLoadRequest).getName());
+
+ PageProperty prop =
((ContentPage)object).getPageLocalProperty(PageProperty.PAGE_URL_KEY_PROPNAME);
+ if (prop != null) {
+ attr.addAttribute(JAHIA_URI, "pageKey",
"jahia:pageKey", "CDATA", prop.getValue());
+ }
+
if (title != null) {
attr.addAttribute(JAHIA_URI, "title",
"jahia:title", "CDATA", title);
}
Index: ImportHandler.java
===================================================================
RCS file:
/home/cvs/repository/jahia/core/src/java/org/jahia/services/importexport/ImportHandler.java,v
retrieving revision 1.49
retrieving revision 1.50
diff -u -r1.49 -r1.50
--- ImportHandler.java 23 Nov 2005 15:51:03 -0000 1.49
+++ ImportHandler.java 23 Nov 2005 18:29:41 -0000 1.50
@@ -25,6 +25,7 @@
import org.jahia.services.pages.ContentPage;
import org.jahia.services.pages.JahiaPage;
import org.jahia.services.pages.JahiaPageDefinition;
+import org.jahia.services.pages.PageProperty;
import org.jahia.services.sites.JahiaSite;
import org.jahia.services.usermanager.JahiaGroup;
import org.jahia.services.usermanager.JahiaUser;
@@ -474,6 +475,9 @@
jParams.getUser().getUserKey(),
theField.getAclID(),
jParams); // value should be < 0 if new
field.
+
+ String pageKey =
atts.getValue(ImportExportBaseService.JAHIA_URI, "pageKey");
+ setPageKey(pageKey, jahiaPage.getContentPage());
} else {
throw new JahiaException("Cannot import - incompatible
types "+"{"+namespaceURI+"}"+localName,"Cannot import - incompatible
types"+"{"+namespaceURI+"}"+localName,JahiaException.USER_ERROR,JahiaException.CRITICAL_SEVERITY);
}
@@ -754,6 +758,9 @@
String template =
atts.getValue(ImportExportBaseService.JAHIA_URI, "template");
JahiaPageDefinition jpd =
ServicesRegistry.getInstance().getJahiaPageTemplateService().lookupPageTemplateByName(template,
site.getID());
cp.setPageTemplateID(jpd.getID(), elr);
+
+ String pageKey =
atts.getValue(ImportExportBaseService.JAHIA_URI, "pageKey");
+ setPageKey(pageKey, cp);
}
cp.commitChanges(true,true,user);
pageID = cp.getID();
@@ -777,6 +784,35 @@
}
}
+ protected void setPageKey(String pageKey, ContentPage cp) throws
JahiaException {
+ if (pageKey != null) {
+ String basePageKey = null;
+ for (int i=1;;i++) {
+ List pageProperties =
ServicesRegistry.getInstance().getJahiaPageService().getPagePropertiesByValue(pageKey);
+ if (pageProperties.size() >= 1) {
+ final PageProperty pageProperty = (PageProperty)
pageProperties.get(0);
+ if
(pageProperty.getName().equals(PageProperty.PAGE_URL_KEY_PROPNAME)) {
+ if (basePageKey == null) {
+ try {
+ int index = pageKey.lastIndexOf("_");
+ basePageKey = pageKey.substring(0, index);
+ i = Integer.parseInt(pageKey.substring(index
+1))+1;
+ } catch (Exception e) {
+ basePageKey = pageKey;
+ }
+ }
+
+ pageKey = basePageKey + "_" + i;
+ }
+ } else {
+ break;
+ }
+ }
+
+ cp.setProperty(PageProperty.PAGE_URL_KEY_PROPNAME,pageKey);
+ }
+ }
+
protected void setAcl(ContentObject object, Attributes atts) throws
JahiaException {
String acl = atts.getValue(ImportExportBaseService.JAHIA_URI, "acl");
if (acl != null) {