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) {
  

Reply via email to