Skip to content

Instantly share code, notes, and snippets.

@owldesign
Created November 6, 2014 02:31
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save owldesign/c1268dac2d86e2fb61b1 to your computer and use it in GitHub Desktop.
Save owldesign/c1268dac2d86e2fb61b1 to your computer and use it in GitHub Desktop.
_edit.html
{% extends "_layouts/cp" %}
{% set selectedTab = "fields" %}
{% import "_includes/forms" as forms %}
{% if field is not defined and fieldId is defined %}
{% set field = craft.fields.getFieldById(fieldId) %}
{% if not field %}
{% exit 404 %}
{% endif %}
{% endif %}
{% set crumbs = [
{ label: "FormBuilder"|t, url: url('formbuilder') },
{ label: "Fields"|t, url: url('formbuilder/fields') },
] %}
{% if fieldId is defined %}
{% set title = field.name %}
{% else %}
{% set title = "Create a new field"|t %}
{% endif %}
{% set fieldTypes = craft.fields.getAllFieldTypes() %}
{% if field is defined %}
{% set fieldType = field.getFieldType() %}
{% set isFieldTypeMissing = not fieldType %}
{% else %}
{% set isFieldTypeMissing = false %}
{% endif %}
{% if fieldType is not defined or isFieldTypeMissing %}
{% set fieldType = craft.fields.getFieldType('PlainText') %}
{% endif %}
{% set content %}
<form method="post" accept-charset="UTF-8" data-saveshortcut>
<input type="hidden" name="action" value="formBuilder/fields/saveField">
<input type="hidden" name="redirect" value="formbuilder/fields">
{% if fieldId is defined %}
<input type="hidden" name="fieldId" value="{{ fieldId }}">
{% endif %}
{{ getCsrfInput() }}
{{ forms.textField({
label: "Name"|t,
instructions: "What this field will be called in the CP."|t,
id: 'name',
name: 'name',
value: (field is defined ? field.name : null),
errors: (field is defined ? field.getErrors('name') : null),
required: true,
translatable: true,
autofocus: true
}) }}
{{ forms.textField({
label: "Handle"|t,
instructions: "How you’ll refer to this field in the templates."|t,
id: 'handle',
class: 'code',
name: 'handle',
maxlength: 64,
value: (field is defined ? field.handle : null),
errors: (field is defined ? field.getErrors('handle') : null),
required: true,
}) }}
{{ forms.textareaField({
label: "Instructions"|t,
instructions: "Helper text to guide the author."|t,
id: 'instructions',
class: 'nicetext',
name: 'instructions',
value: (field is defined ? field.instructions : null),
errors: (field is defined ? field.getErrors('instructions') : null),
translatable: true
}) }}
{% if craft.isLocalized() %}
{{ forms.checkboxField({
label: "This field is translatable"|t,
name: 'translatable',
checked: (field is defined ? field.translatable : false)
}) }}
{% endif %}
<hr>
{{ forms.selectField({
label: "Field Type"|t,
instructions: "What type of field is this?"|t,
warning: (fieldId is defined ? "Changing this may result in data loss."|t),
id: 'type',
name: 'type',
options: fieldTypes,
value: fieldType.getClassHandle(),
errors: (isFieldTypeMissing ? ["The fieldtype class “{class}” could not be found."|t({ class: field.type })] : null),
toggle: true
}) }}
{% for _fieldType in fieldTypes %}
{% set isCurrent = (_fieldType.getClassHandle() == fieldType.getClassHandle()) %}
<div id="{{ _fieldType.getClassHandle() }}"{% if not isCurrent %} class="hidden"{% endif %}>
{% namespace 'types['~_fieldType.getClassHandle()~']' %}
{% if isCurrent %}
{{ fieldType.getSettingsHtml()|raw }}
{% else %}
{{ _fieldType.getSettingsHtml()|raw }}
{% endif %}
{% endnamespace %}
</div>
{% endfor %}
<hr>
<div class="buttons">
<input type="submit" class="btn submit" value="{{ 'Save'|t }}">
</div>
</form>
{% endset %}
{% if field is not defined or not field.handle %}
{% includeJs "new Craft.HandleGenerator('#name', '#handle');" %}
{% endif %}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment