PHPackages                             pstaender/silverstripe-customformpage - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. pstaender/silverstripe-customformpage

ActiveSilverstripe-vendormodule[Utility &amp; Helpers](/categories/utility)

pstaender/silverstripe-customformpage
=====================================

Define custom form fields via text input in your CMS

v0.4.0(2y ago)01511[1 issues](https://github.com/pstaender/silverstripe-customformpage/issues)MITPHPPHP &gt;=8

Since Feb 7Pushed 2y ago1 watchersCompare

[ Source](https://github.com/pstaender/silverstripe-customformpage)[ Packagist](https://packagist.org/packages/pstaender/silverstripe-customformpage)[ Docs](https://github.com/pstaender/silverstripe-customformpage)[ RSS](/packages/pstaender-silverstripe-customformpage/feed)WikiDiscussions master Synced today

READMEChangelog (1)Dependencies (1)Versions (12)Used By (0)

Custom Forms with SilverStripe
==============================

[](#custom-forms-with-silverstripe)

Define you custom form fields in your created `CustomFormPage` with this straight forward syntax:

```
    {{ FieldName | My Field: | Dropdown | { "Option1": "Foo", "Option2": "Bar" } }}
    {{ FieldName * | My Required Field: | Textarea }}
    {{ Captcha |  | Recaptcha }}

```

You can use as many form fields as you like.

Requirements
------------

[](#requirements)

- SilverStripe 4+

Arguments
---------

[](#arguments)

The following arguments are listed separated by `|` in each `{{ }}` form field block (sequence of arguments is *not* arbitrary):

1. Name: String as CamelCase describing the name of your field; e.g.: `Email`, `FirstName` … \* the field is required, if ends with `*`; e.g.: `Email *`
2. Title: String as title, can contain every character except the `|` seperator; e.g. `Your eMail:`
3. Class of Field: Can be every existing field class, without the `Field` appendix; e.g.: `Text`, `Textarea`, `Email`, `Dropdown` …
4. (assoc.) Array as option for the field \* optional \* must be JSON \* required for DropDownField for instance

Usage in Templates
------------------

[](#usage-in-templates)

You can access the form via `$CustomForm`:

```

    $Title
    $CustomForm

```

Comments and HTML tags
----------------------

[](#comments-and-html-tags)

You can use comments `#` and using html tags. HTML tags will be converted to SilverStripe LiteralFields:

```
    # My advanced Poll Form Desctiption
    {{ Email * | Your eMail (required): | Email }}

    Additional Information
    # Description of something
    {{ Age | Your age: | Dropdown | { "Under20": "younger or just 20", "Over20": "older than 20" } }}

```

Exclude Fields in form submission
---------------------------------

[](#exclude-fields-in-form-submission)

You can explicitly prevent fields to be written in the submission. Just define them in your config:

```
CustomFormPageSubmission:
  excludeParameters:
    - Foo
    - Bar
```

Template variables
------------------

[](#template-variables)

You can check `$FormWasSuccessfullySended` and `$FormWasSubmitted` in your template.

License
-------

[](#license)

(C) 2017 by Philipp Staender, MIT Licence

###  Health Score

28

—

LowBetter than 52% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity12

Limited adoption so far

Community8

Small or concentrated contributor base

Maturity60

Established project with proven stability

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~296 days

Recently: every ~512 days

Total

10

Last Release

765d ago

PHP version history (3 changes)v0.1PHP &gt;=5.2.0

v0.3.0PHP &gt;=7.0.0

v0.4.0PHP &gt;=8

### Community

Maintainers

![](https://www.gravatar.com/avatar/bde394e0ccb15aff412f2a35b6e2172cf88c7baea4e5e643e741f71ec19df7cc?d=identicon)[pstaender](/maintainers/pstaender)

---

Top Contributors

[![pstaender](https://avatars.githubusercontent.com/u/140571?v=4)](https://github.com/pstaender "pstaender (3 commits)")

---

Tags

silverstripeformcustomize

### Embed Badge

![Health badge](/badges/pstaender-silverstripe-customformpage/health.svg)

```
[![Health](https://phpackages.com/badges/pstaender-silverstripe-customformpage/health.svg)](https://phpackages.com/packages/pstaender-silverstripe-customformpage)
```

###  Alternatives

[lekoala/silverstripe-cms-actions

Add actions to your models in SilverStripe

39317.0k29](/packages/lekoala-silverstripe-cms-actions)[burnbright/silverstripe-externalurlfield

Provides SilverStripe with a DBField and FormField for handling external URLs.

109.6k1](/packages/burnbright-silverstripe-externalurlfield)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
