PageTemplateEditor Quick Reference
Visual editor for creating and managing page templates with drag-and-drop components
Key Features
- Drag-and-drop template designer
- Tree-based template structure visualization
- Create reusable page templates
- Component library integration
- Save templates as JSON definitions
- Load and edit existing templates
- Live preview of template structure
Server-Side Usage:
// Get the PageTemplateEditor API
var PageTemplateEditor = js.getObject("/OpenForum/AddOn/PageTemplateEditor","PageTemplateEditor.sjs");
// Load template definition
var template = PageTemplateEditor.loadTemplate("/MyPage", "template.json");
// Save template definition
PageTemplateEditor.saveTemplate("/MyPage", "template.json", templateData);
// Apply template to page
PageTemplateEditor.applyTemplate("/TargetPage", templateData);
// Create template structure
var templateStructure = {
name: "My Template",
components: [
{type: "header", content: "Welcome"},
{type: "content", layout: "two-column"}
]
};
PageTemplateEditor.saveTemplate("/MyPage", "template.json", templateStructure);
Client-Side Usage:
// Load template
JSON.get('/OpenForum/AddOn/PageTemplateEditor/Load', null,
'pageName=/MyPage&fileName=template.json')
.onSuccess(function(template) {
console.log('Template loaded:', template);
}).go();
// Save template
JSON.post('/OpenForum/AddOn/PageTemplateEditor/Save', null,
'pageName=/MyPage&fileName=template.json&data=' JSON.stringify(templateData))
.onSuccess(function(result) {
console.log('Template saved');
}).go();
Template Definition Format
{
"name": "Template Name",
"components": [
{"type": "header", "content": "Header Text"},
{"type": "section", "layout": "grid",
"children": [
{"type": "component", "content": "Component content"}
]
}
]
}