PHPackages                             catdesign/forms-plugin - 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. catdesign/forms-plugin

ActiveOctober-plugin[Utility &amp; Helpers](/categories/utility)

catdesign/forms-plugin
======================

Easy creation and management of forms for October CMS

1.0.8(4y ago)1952(LGPL-2.1-only or GPL-3.0-or-later)PHP

Since Feb 20Pushed 3y ago1 watchersCompare

[ Source](https://github.com/catdesign-group/forms)[ Packagist](https://packagist.org/packages/catdesign/forms-plugin)[ RSS](/packages/catdesign-forms-plugin/feed)WikiDiscussions main Synced 3w ago

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

CatDesign.Forms Plugin for October CMS
--------------------------------------

[](#catdesignforms-plugin-for-october-cms)

**Author:** Semen Kuznetsov (CatDesign Group)

**Author URL:**

In English
----------

[](#in-english)

### About the plugin

[](#about-the-plugin)

Allows you to manage forms on the site. Process forms, sends data in mail templates. Integration with the Send Pulse service.

This plugin is intended for developers. Allows you to simplify the implementation of forms on the site, organize the management of forms for the customer.

The plugin uses an Ajax handler via the standard data-attributes-api. All events are managed in the administrative interface.

The plugin provides basic partials for drawing forms. Standard blanks are quite flexible, but in some cases you will have to write your own based on the example of the basic ones.

Integration of forms with SendPulse is available out of the box. To do this, you need to fill in the SendPulse API settings.

> Additional features. Integration of shopaholic orders with SendPulse. Requires the OrdersForShopaholic plugin.

### Installing witch composer

[](#installing-witch-composer)

`composer require catdesign/forms-plugin`

> Attention! Do not give customers full root access to the system, otherwise they may disrupt the plugin by making incorrect settings. The rights are prepared in the plugin. Create a new user and assign - **Manager permission**.

### Getting forms

[](#getting-forms)

First, create a form and the necessary fields. After the form is created, it will be assigned a code. Throw the Forms component to the desired site pages or layout.

There are 2 ways to get a form in total.

**1. Get By ID**

```
{% set form = Forms.getByID(1) %}

```

I do not recommend this method, since when deleting the form you will have to replace the call in the code.

**2. Get By code**

```
{% set form = Forms.getByCode('code') %}

```

This method is preferable, because you can always assign a code to the form. (Developer rights are required)

### Render of the page (Macros)

[](#render-of-the-page-macros)

**Import the macro into the template**

```
{% import 'catdesign.forms::macros' as Constructor %}

```

**Get form**

```
{% set form = Forms.getByCode('code') %}

```

**Open form**

```
{{ Constructor.open('css_id', form, 'css_classes', {additional_data_one: value, additional_data_two: value}) }}

```

**Render form title**

```
{{ Constructor.title(form, 'css_title_classes', 'css_description_classes') }}

```

**Render all fields**

```
{{ Constructor.fields(form, 'css_wrapper_classes') }}

```

**Or Render individual field**

```
{{ Constructor.hidden(form, 'field_code', 'css_classes', 'css_field_id') }}

{{ Constructor.text(form, 'field_code', 'css_classes', 'css_wrapper_classes', 'css_field_id') }}

{{ Constructor.select(form, 'field_code', 'css_classes', 'css_wrapper_classes', 'css_field_id') }}

{{ Constructor.number(form, 'field_code', 'css_classes', 'css_wrapper_classes', 'css_field_id') }}

{{ Constructor.checkbox(form, 'field_code', 'css_classes', 'css_wrapper_classes', 'css_field_id') }}

{{ Constructor.radio(form, 'field_code', 'css_classes', 'css_wrapper_classes', 'css_field_id') }}

{{ Constructor.textarea(form, 'field_code', 'css_classes', 'css_wrapper_classes', 'css_field_id') }}

```

**Render submit button**

```
{{ Constructor.submit(form, 'css_classes', 'css_wrapper_classes', 'css_field_id') }}

```

**Close form**

```
{{ Constructor.close() }}

```

### Example of drawing a simple feedback form from 2 fields

[](#example-of-drawing-a-simple-feedback-form-from-2-fields)

```
{% import 'catdesign.forms::macros' as Constructor %}
{% set form= Forms.getByCode('feedback') %}

{{ Constructor.open('feedback', form, 'form', {current_url: this.page.url}) }}
    {{ Constructor.title(form, 'form__title', 'form__description') }}
    {{ Constructor.text(form, 'name', 'form-group__field', 'form__group', 'feedback-name') }}
    {{ Constructor.text(form, 'phone', 'form-group__field', 'form__group', null) }}
    {{ Constructor.submit(form, 'button button__green', 'form__button', null) }}
{{ Constructor.close() }}

```

> Note that macro variables are optional. You can pass null if, for example, you don't need css\_classes

###  Health Score

25

—

LowBetter than 36% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity13

Limited adoption so far

Community9

Small or concentrated contributor base

Maturity49

Maturing project, gaining track record

 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

Unknown

Total

1

Last Release

1584d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/79d7042d665ad5348b92eeeccf44996cf3f12c0c7c5c3fb016259a2ae0da6218?d=identicon)[dblacCat](/maintainers/dblacCat)

---

Top Contributors

[![dblackCat](https://avatars.githubusercontent.com/u/43875915?v=4)](https://github.com/dblackCat "dblackCat (17 commits)")

### Embed Badge

![Health badge](/badges/catdesign-forms-plugin/health.svg)

```
[![Health](https://phpackages.com/badges/catdesign-forms-plugin/health.svg)](https://phpackages.com/packages/catdesign-forms-plugin)
```

###  Alternatives

[helsingborg-stad/municipio

A bootstrap theme for creating municipality sites.

4028.3k10](/packages/helsingborg-stad-municipio)[mautic/core

Mautic Open Source Distribution

9.8k2.6k9](/packages/mautic-core)[roots/wp-stage-switcher

WordPress plugin that allows you to switch between different environments from the admin bar

374458.3k3](/packages/roots-wp-stage-switcher)[vinkla/wordplate

The WordPlate boilerplate

2.2k5.3k](/packages/vinkla-wordplate)[mediawiki/maps

Adds various mapping features to MediaWiki

78149.7k3](/packages/mediawiki-maps)[rainlab/blog-plugin

Blog plugin for October CMS

17158.6k](/packages/rainlab-blog-plugin)

PHPackages © 2026

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