{"id":21422118,"url":"https://github.com/mplodowski/formbuilder-plugin-public","last_synced_at":"2026-02-05T21:31:02.864Z","repository":{"id":61348107,"uuid":"141051437","full_name":"mplodowski/formbuilder-plugin-public","owner":"mplodowski","description":"https://octobercms.com/plugin/renatio-formbuilder","archived":false,"fork":false,"pushed_at":"2025-12-01T14:17:38.000Z","size":27,"stargazers_count":2,"open_issues_count":1,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-12-04T03:12:47.303Z","etag":null,"topics":["octobercms-plugin"],"latest_commit_sha":null,"homepage":"https://octobercms.com/plugin/renatio-formbuilder","language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mplodowski.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-07-15T19:07:07.000Z","updated_at":"2025-12-01T14:17:42.000Z","dependencies_parsed_at":"2024-11-22T20:45:44.623Z","dependency_job_id":null,"html_url":"https://github.com/mplodowski/formbuilder-plugin-public","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/mplodowski/formbuilder-plugin-public","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mplodowski%2Fformbuilder-plugin-public","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mplodowski%2Fformbuilder-plugin-public/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mplodowski%2Fformbuilder-plugin-public/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mplodowski%2Fformbuilder-plugin-public/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mplodowski","download_url":"https://codeload.github.com/mplodowski/formbuilder-plugin-public/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mplodowski%2Fformbuilder-plugin-public/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29135047,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-05T20:50:26.975Z","status":"ssl_error","status_checked_at":"2026-02-05T20:49:26.082Z","response_time":65,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["octobercms-plugin"],"created_at":"2024-11-22T20:44:57.066Z","updated_at":"2026-02-05T21:31:02.853Z","avatar_url":"https://github.com/mplodowski.png","language":null,"funding_links":["https://www.paypal.me/mplodowski"],"categories":[],"sub_categories":[],"readme":"# Form Builder plugin\n\n**Demo URL:** https://october-demo.renatio.com/backend/backend/auth/signin\n\n**Login:** formbuilder\n\n**Password:** formbuilder\n\nPlugin allows you to build custom front-end forms with ease.\nWithout any technical knowledge create functional forms for all your needs.\n\n![OctoberCMS Form Builder](https://octobercms.com/storage/app/uploads/public/637/dde/9a9/637dde9a9a1d4324788036.png)\n\n## Features\n\n* Build and manage your forms in OctoberCMS backend\n* Use custom HTML markup for fields\n* Create custom fields\n* Reorder fields\n* Example form with all default form controls\n* Simple contact form included\n* Native ajax files upload\n* Basic responsive mail templates\n* Google reCaptcha support\n* RainLab Translate Plugin support with Multisite\n* RainLab Location Plugin support\n* RainLab Pages Plugin support to use form as snippet\n* Duplicate form and field types\n* Reply to functionality and autoresponder with custom mail template\n* Form submissions with export functionality\n* Event for extending default functionality\n* Custom Form Template\n* [Spam Protection Plugin](https://octobercms.com/plugin/renatio-spamprotection) support\n\n## Why is this a paid plugin?\n\nSomething that is free has little or no perceived value. Users do not commit to free products and only use them until\nsomething else looks nice and is free comes along. When I invest my time in the development of a new plugin I commit to\nsupporting and maintaining it. I ask my customers to do the same. I do not make money from this plugin by\nadvertisements, upgrades or additional services like hosting or setup.\n\nDid you know that 30% of your purchase or donation goes to help fund the October Project?\n\nMy plugins take many hours to develop (40-120+) and even more hours to document and maintain. My paid plugins have to\npay for both this time, and the time I am spending on free plugins and less successful paid plugins. This means that it\nwill take even a successful plugin years to become profitable. Please consider buying an extended license if you want me\nto continue to maintain these plugins for the very small fee I ask in return or hire me for adding functionality that\nyou feel is missing but valuable.\n\n## Like this plugin?\n\nIf you like this plugin, give this plugin a Like or Make donation with [PayPal](https://www.paypal.me/mplodowski).\n\n## My other plugins\n\nPlease check my other [plugins](https://octobercms.com/author/Renatio).\n\n## Support\n\nPlease use [GitHub Issues Page](https://github.com/mplodowski/formbuilder-plugin-public/issues) to report any issues\nwith plugin.\n\n\u003e Reviews should not be used for getting support, if you need support please use the Plugin support link.\n\nIcon made by [Darius Dan](https://www.flaticon.com/authors/darius-dan)\nfrom [www.flaticon.com](https://www.flaticon.com/).\n\n# Documentation\n\n## Usage\n\nAfter installation plugin will register backend **Form Builder** menu position. From there you will be able to manage\nyour forms.\n\nThere will be three sub-menus, Forms, Field types and Form logs.\n\nForms list all created forms.\n\nField types list all available field types.\n\nForm logs list all forms submissions.\n\nThere will be two example forms included after installation. Simple contact form and default form, that will demonstrate\nall available fields.\n\nPlugin will register `renderForm` component to use it on CMS page. After adding component to CMS page, you must inspect\nit (by clicking on it) and choose the form.\n\nPlugin uses Ajax Framework to process form. Remember to add following code in layout:\n\n```\n{% framework extras %}\n{% scripts %}\n```\n\nPlease check if you have a following code in your layout `\u003chead\u003e` section.\n\n```\n{% styles %}\n```\n\n### Example of placing form component on CMS page\n\n`/themes/demo/pages/contact.htm`\n\n```\nurl = \"/contact\"\nlayout = \"default\"\n\n[renderForm contactForm]\nformCode = \"contact-form\"\n==\n{% component 'contactForm' %}\n```\n\n### Example of placing form component on CMS partial\n\n`/themes/demo/pages/contact.htm`\n\n```\nurl = \"/contact\"\nlayout = \"default\"\n\n[renderForm contactForm]\nformCode = \"contact-form\"\n==\n{% ajaxPartial \"contact\" %}\n```\n\n`/themes/demo/partials/contact.htm`\n\n```\n{% component 'contactForm' %}\n```\n\n\u003e **Important note:** For form handler to work you must use `{% ajaxPartial %}` instead of normal partial\n\u003e tag `{% partial %}`.\n\n## Forms\n\n### Spam Protection\n\nIf you need Spam protection for your forms I recommend to install following\nplugin: [Spam Protection Plugin](https://octobercms.com/plugin/renatio-spamprotection)\n\nAfter you install this plugin it will automatically protect all your forms. It will work out of the box.\n\n### Custom template\n\nBy default, the plugin will automatically generate the template when the **Custom Template** field is empty. If you want to replace the default markup generated by the plugin, you can write your own template here. You have access to special `form_field()` function which takes one parameter: the name of the field.\n\nExample that will display two fields in one row:\n\n```\n\u003cdiv class=\"row\"\u003e\n    \u003cdiv class=\"col-6\"\u003e{{ form_field('first_name') }}\u003c/div\u003e\n    \u003cdiv class=\"col-6\"\u003e{{ form_field('last_name') }}\u003c/div\u003e\n\u003c/div\u003e\n```\n\n### Floating labels\n\nSimple form labels that float over your input fields. This requires to use Bootstrap 5.\n\n## Fields\n\n### Custom HTML markup for fields\n\nYou can change HTML markup for each field by going to Form Builder -\u003e Field types and updating the field type.\nRecommended approach is to duplicate field type and then modify it as you wish.\n\n### Custom field types\n\nYou can create custom field types by going to Form Builder -\u003e Field types and clicking **New field type** button.\n\nFor example if you want to create **Email** field type just duplicate the markup from **Text** field type and change the\ntype of the input from text to email.\n\nNow after saving this field it will be possible to use it in your form.\n\nIn markup section you can use Twig and following variables:\n\n Property          | Type   | Description\n-------------------|--------|----------------------------------------------------\n label             | String | Label for the field.\n field_id          | String | Unique field ID useful when pairing labels with inputs.\n label_class       | String | Label CSS classes.\n name              | String | HTML name attribute. Also used in mail template.\n default           | String | Default value for the field.\n comment           | String | Help block for the field.\n class             | String | HTML class.\n wrapper_class     | String | HTML wrapper class.\n placeholder       | String | Placeholder for the field.\n options           | Array  | Options for dropdown, radio list, checkbox list.\n custom_attributes | String | Custom HTML attributes. For example id=\"my-field\".\n\n### Available field types\n\n#### Text\n\nRenders a single line text box.\n\n#### E-mail\n\nRenders e-mail address field.\n\n#### Phone number\n\nRenders phone number field.\n\n#### URL\n\nRenders URL field.\n\n#### Numeric\n\nRenders numeric field.\n\n#### Datetime\n\nRenders datetime field.\n\n#### Date\n\nRenders date field.\n\n#### Time\n\nRenders time field.\n\n#### Color Picker\n\nRenders a color picker.\n\n#### Textarea\n\nRenders a multiline text box.\n\n#### Dropdown\n\nRenders a dropdown with specified options.\n\n#### Checkbox\n\nRenders a single checkbox.\n\n#### Checkbox List\n\nRenders a list of checkboxes.\n\n#### Radio List\n\nRenders a list of radio options, where only one item can be selected at a time.\n\n#### reCaptcha\n\nRenders google reCaptcha box for SPAM protection.\n\nPlease visit the [reCaptcha site](https://www.google.com/recaptcha/admin) to obtain credentials.\n\nNext go to Settings -\u003e Form Builder -\u003e Google reCaptcha and fill your site key and secret.\n\n\u003e **Important note:** This field must have **g-recaptcha-response** as field name and **required|recaptcha** in\n\u003e validation section to work properly.\n\n#### Files upload\n\nRenders a file input.\n\n##### Filter files selected by a user\n\nTo filter allowed file extensions or file types you can add custom attribute.\n\nFor example to only allow selecting files with extension .pdf or .doc.\n\n```\naccept=\".pdf,.doc\"\n```\n\nFor example to only allow selecting images:\n\n```\naccept=\"image/*\"\n```\n\n##### Validation\n\nTo make file input required just add `required` in validation section.\n\nTo restrict max file size to 512 kb just add `max:512` in validation section.\n\nTo restrict file mime type to pdfs just add `mimes:pdf` in validation section.\n\nTo restrict file to images just add `image` in validation section.\n\nFor more available validation rules see October documentation.\n\n##### Multiple files\n\nBy default, the file upload field allows uploading only a single file. To enable multiple file uploads in `Upload options` tab\ncheck `Allow multiple files` checkbox.\n\nWhen validating multiple files to work correctly you must check `Nested array based form input` checkbox in validation\nsection. This will apply validation for each uploaded file. Do not check this checkbox when using `required` rule.\n\n##### Send uploaded files as mail attachments\n\nBy default uploaded files are sent with mail as attachments. You can disable this behavior by unchecking the checkbox.\n\n##### Display mode\n\nDisplay mode informs the backend how uploaded files should be displayed within a form submission entry. If you only allow to upload\nimages then select `image` mode.\n\n#### Country select\n\nRenders a dropdown with country options.\n\n\u003e **Important note:** You must install [Location Plugin](https://octobercms.com/plugin/rainlab-location) to use this\n\u003e field.\n\n#### State select\n\nRenders a dropdown with state options. This field depends on country select.\n\n\u003e **Important note:** You must install [Location Plugin](https://octobercms.com/plugin/rainlab-location) to use this\n\u003e field.\n\n#### Section\n\nRenders a section heading and subheading. Useful for grouping fields.\n\n#### Submit\n\nRenders form submit button.\n\n## Using form data in mail templates\n\nWhen sending emails, all submitted form data is available directly in the mail template.\n\nIf your form contains a field named **name**, you can output its processed value simply by using:\n\n```\n{{ name }}\n```\n\nThis value is already transformed by Form Builder.\n\nFor example:\n\n- dropdown fields return the **label** of the selected option,\n- checkbox lists return a readable value,\n- formatting is normalized.\n\nIf you need access to the **raw submitted value** (exactly what the browser sent, before Form Builder processes it), use:\n\n```\n{{ name_raw }}\n```\n\nEvery field automatically exposes a `{{ fieldname_raw }}` variable.\n\n## Form Submissions\n\nForm Builder plugin has built-in functionality for storing submitted form data. Each submission record contains the user's input and any file attachments.\n\n## Events\n\nPlugin will fire **formBuilder.overrideForm** event which allow to change form properties before rendering the form\nmarkup.\n\n```\nEvent::listen('formBuilder.overrideForm', function ($form) {\n    // example code\n    $form-\u003ecss_class = 'form-horizontal';\n});\n```\n\nPlugin will fire **formBuilder.overrideField** event which allow to change field properties before rendering the form\nmarkup.\n\n```\nEvent::listen('formBuilder.overrideField', function ($field, $form) {\n    // example code\n    if ($field-\u003ename === 'currency') {\n        $field-\u003edefault = 'USD';\n    }\n});\n```\n\nPlugin will fire **formBuilder.extendFormData** event which allow to change submitted form data.\n\n```\nEvent::listen('formBuilder.extendFormData', function ($data) {\n    // example code\n    $data['foo'] = 'bar';\n\n    return $data; // this line is required\n});\n```\n\nPlugin will fire **formBuilder.beforeSendMessage** event before sending email. You can use this to extend Form Builder\ndefault functionality.\n\nIn your extension plugin boot method listen for this event:\n\n```\nEvent::listen('formBuilder.beforeSendMessage', function ($form, $data) {\n    // example code\n    $form-\u003efrom_email = 'john.doe@exampl.com';\n    $form-\u003efrom_name = 'John Doe';\n});\n```\n\nYou will have access to form object and array with posted data.\n\nIf you return **false** from this event then this will stop default behavior of sending email message.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmplodowski%2Fformbuilder-plugin-public","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmplodowski%2Fformbuilder-plugin-public","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmplodowski%2Fformbuilder-plugin-public/lists"}