Write a file programatically

(Difference between revisions)
Jump to: navigation, search
(added sample code)
Line 10: Line 10:
  
 
  byte [] content = your data
 
  byte [] content = your data
  List properties = list of CmsProperties
+
 
 +
// OpenCms properties creation example
 +
// by David Sánchez Hernández [http://lists.opencms.org/pipermail/opencms-dev/2007q2/028211.html]
 +
  List properties = new ArrayList();
 +
 
 +
// Setting template_elements property
 +
CmsProperty prop = new CmsProperty();
 +
prop.setName(CmsPropertyDefinition.PROPERTY_TEMPLATE_ELEMENTS);
 +
prop.setValue("/system/modules/xxxxx.jsp",CmsProperty.TYPE_SHARED);
 +
properties.add(prop);
 +
 
 +
// Setting title property
 +
prop = new CmsProperty();
 +
prop.setName(CmsPropertyDefinition.PROPERTY_TITLE);
 +
prop.setValue("Title",CmsProperty.TYPE_SHARED);
 +
properties.add(prop);
  
 
  //get the fixed up filename as shown in CmsNewResourceUpload
 
  //get the fixed up filename as shown in CmsNewResourceUpload
  String newResname = cmsObj.getRequestContext().getFileTranslator().translateResource(path + filename);
+
  String newResname = cmsObj.getRequestContext().getFileTranslator()
 +
                          .translateResource(path + filename);
  
  int resTypeId = OpenCms.getResourceManager().getDefaultTypeForName(newResname).getTypeId();
+
  int resTypeId = OpenCms.getResourceManager()
 +
                    .getDefaultTypeForName(newResname).getTypeId();
  
 
  cmsObj.createResource(newResname, resTypeId, content, properties);
 
  cmsObj.createResource(newResname, resTypeId, content, properties);
 
  cmsObj.unlockResource(newResname);
 
  cmsObj.unlockResource(newResname);
 
  cmsObj.publishResource(newResname);
 
  cmsObj.publishResource(newResname);
 
  
  
  
 
You can also try looking at CmsNewResourceUpload.java from the OpenCms sourcecode.  It's available from opencms.org via an interactive html browser.
 
You can also try looking at CmsNewResourceUpload.java from the OpenCms sourcecode.  It's available from opencms.org via an interactive html browser.

Revision as of 02:44, 21 August 2007

How to write a file programatically

//ensure we're in the offline project.
CmsRequestContext cmsContext = cmsObj.getRequestContext();
CmsProject curProject = cmsContext.currentProject();
if(curProject.isOnlineProject()){
      CmsProject offlineProject = cmsObj.readProject("Offline");
      cmsContext.setCurrentProject(offlineProject);
}
byte [] content = your data
// OpenCms properties creation example
// by David Sánchez Hernández [1]
List properties = new ArrayList();
// Setting template_elements property
CmsProperty prop = new CmsProperty();
prop.setName(CmsPropertyDefinition.PROPERTY_TEMPLATE_ELEMENTS);
prop.setValue("/system/modules/xxxxx.jsp",CmsProperty.TYPE_SHARED);
properties.add(prop);
// Setting title property
prop = new CmsProperty();
prop.setName(CmsPropertyDefinition.PROPERTY_TITLE);
prop.setValue("Title",CmsProperty.TYPE_SHARED);
properties.add(prop);
//get the fixed up filename as shown in CmsNewResourceUpload
String newResname = cmsObj.getRequestContext().getFileTranslator()
                          .translateResource(path + filename);
int resTypeId = OpenCms.getResourceManager()
                   .getDefaultTypeForName(newResname).getTypeId();
cmsObj.createResource(newResname, resTypeId, content, properties);
cmsObj.unlockResource(newResname);
cmsObj.publishResource(newResname);


You can also try looking at CmsNewResourceUpload.java from the OpenCms sourcecode. It's available from opencms.org via an interactive html browser.

Personal tools
Namespaces
Variants
Actions
Navigation
Toolbox