diff options
Diffstat (limited to 'examples/docker/admin/cmd/ponzu/templates/gen-content.tmpl')
-rw-r--r-- | examples/docker/admin/cmd/ponzu/templates/gen-content.tmpl | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/examples/docker/admin/cmd/ponzu/templates/gen-content.tmpl b/examples/docker/admin/cmd/ponzu/templates/gen-content.tmpl new file mode 100644 index 0000000..2d92b88 --- /dev/null +++ b/examples/docker/admin/cmd/ponzu/templates/gen-content.tmpl @@ -0,0 +1,39 @@ +package content + +import ( + "fmt" + + "github.com/ponzu-cms/ponzu/management/editor" + "github.com/ponzu-cms/ponzu/system/item" +) + +type {{ .Name }} struct { + item.Item + + {{ range .Fields }}{{ .Name }} {{ .TypeName }} `json:"{{ .JSONName }}"` + {{ end }} +} + +// MarshalEditor writes a buffer of html to edit a {{ .Name }} within the CMS +// and implements editor.Editable +func ({{ .Initial }} *{{ .Name }}) MarshalEditor() ([]byte, error) { + view, err := editor.Form({{ .Initial }}, + // Take note that the first argument to these Input-like functions + // is the string version of each {{ .Name }} field, and must follow + // this pattern for auto-decoding and auto-encoding reasons: + {{ range .Fields }}editor.Field{ + {{ .View }} + }, + {{ end }} + ) + + if err != nil { + return nil, fmt.Errorf("Failed to render {{ .Name }} editor view: %s", err.Error()) + } + + return view, nil +} + +func init() { + item.Types["{{ .Name }}"] = func() interface{} { return new({{ .Name }}) } +}
\ No newline at end of file |