PHPackages                             xddesigners/silverstripe-lazyforms - 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. xddesigners/silverstripe-lazyforms

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

xddesigners/silverstripe-lazyforms
==================================

Convert your dynamic forms into lazy loading forms. To be used with static published pages.

220PHP

Since Jun 30Pushed 3y ago2 watchersCompare

[ Source](https://github.com/xddesigners/silverstripe-lazyforms)[ Packagist](https://packagist.org/packages/xddesigners/silverstripe-lazyforms)[ RSS](/packages/xddesigners-silverstripe-lazyforms/feed)WikiDiscussions main Synced 1mo ago

READMEChangelogDependenciesVersions (1)Used By (0)

SilverStripe Lazy Forms
=======================

[](#silverstripe-lazy-forms)

Convert normal SilverStripe form into Lazy loading forms and take maximum advantage of the SilverStripe Static Publishing module. In the static publishing module pages with forms are not allowed. The module show the exact same form in disabled state while loading. This form can be used as a skeleton. With CSS you can change it to greyed out, see example below.

The form is fully functional after loading.

### Installation

[](#installation)

```
composer require xddesigners/silverstripe-lazyforms

// optional if not already present
composer require "silverstripe/staticpublishqueue

```

### Usage

[](#usage)

Replace your $Form calls in your .ss templates.

```
// in SS template
// old situation
$Form
// changed: load lazy form
$LazyForm

// in case Form method has different name
// before
$ProductReviewForm
// changed: load lazy form
$LazyForm('ProductReviewForm')
```

### Styling the skeleton form

[](#styling-the-skeleton-form)

The form is loaded without SecurityID in a disabled state in the static published page. You can grey out all the fields with you own css. This is visible while the real form is loading.

```
/* SCSS Example */
.lazyform--loading {
   ul.optionset label,
  .text label,
  .textarea label,
  .text input,
  .textarea textarea,
  select.dropdown,
  .button{
    background-color: #999 !important;
    color: #999 !important;
    opacity: .5 !important;
  }
}
```

###  Health Score

17

—

LowBetter than 6% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity9

Limited adoption so far

Community9

Small or concentrated contributor base

Maturity25

Early-stage or recently created project

 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.

### Community

Maintainers

![](https://www.gravatar.com/avatar/6131c03b7f5ba6b10fef192c90d68d57508e84c007a13321df6960b8298e19d1?d=identicon)[TheBnl](/maintainers/TheBnl)

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

---

Top Contributors

[![RVXD](https://avatars.githubusercontent.com/u/1586761?v=4)](https://github.com/RVXD "RVXD (11 commits)")

### Embed Badge

![Health badge](/badges/xddesigners-silverstripe-lazyforms/health.svg)

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

PHPackages © 2026

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