PHPackages                             webtorque7/inpage-modules - 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. webtorque7/inpage-modules

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

webtorque7/inpage-modules
=========================

Adds module blocks to a SilverStripe website.

0.1.2(7y ago)191.3k3[2 issues](https://github.com/webtorque7/inpage-modules/issues)MITPHP

Since Jan 12Pushed 7y ago8 watchersCompare

[ Source](https://github.com/webtorque7/inpage-modules)[ Packagist](https://packagist.org/packages/webtorque7/inpage-modules)[ RSS](/packages/webtorque7-inpage-modules/feed)WikiDiscussions master Synced 1mo ago

READMEChangelogDependencies (1)Versions (7)Used By (0)

In Page Content Modules
=======================

[](#in-page-content-modules)

Alternative method to define content in the CMS, either replacing or amending SilverStripe's core "page type" system. Allows authors to insert "content modules" into a page as separate items, which enables more flexible content structures both for sidebar-style content and flexible main content areas.

Features
--------

[](#features)

- Define your own content modules by subclassing `ContentModule`
- Sort modules via drag'n'drop
- Save module drafts and publish independently of the parent page
- List all used modules in a separate admin interface, and view their history
- Reuse content modules on multiple pages by saving them to a library
- Built-in modules: Text, Image (incl. cropping), related pages

Screenshots
-----------

[](#screenshots)

[![Overview](docs/images/overview.png)](docs/images/overview.png)

[![Admin](docs/images/admin.png)](docs/images/admin.png)

Installation
------------

[](#installation)

Install the module into a `inpage-modules\` folder inside the webroot.

With composer - composer require webtorque7/inpage-modules

Then add the `ContentModule_PageExtension` class to either your base `Page` class or select subclasses.

```
# File: mysite/_config/config.yml
Page:
  extensions:
    - ContentModule_PageExtension
```

In your template (e.g. `themes//templates/Layout/Page.ss`) you can loop through modules, and have them render with their own templates:

```

	$forTemplate

```

Templates
---------

[](#templates)

Create a template with same name as the module e.g. ImageModule.ss. Uses the same template inheritance model as SiteTree objects to get the template. By convention it is a good idea to add module templates to `themes//templates/modules`

Multiple Sections
-----------------

[](#multiple-sections)

Multiple sections for modules can be added to a page creating a new base class e.g. SideBarModule and setting up a many\_many relationship

```
$many_many = array(
    'SideBarModules' => 'SideBarModule'
);

$many_many_extraFields = array(
    'SideBarModules' => array(
        'Sort' => 'Int'
    )
);
```

Make sure to add the Sort field. To simplify getting the sorted modules you can overwrite the many many function

```
public function SideBarModules() {
    return $this->getManyManyComponents('SideBarModules')->sort('Sort');
}
```

Visual Editor
-------------

[](#visual-editor)

A new feature is the visual editor. This adds the ability to edit modules while viewing the page. The editor is presented with a preview and can click on a module to edit. This includes header and footer modules if it has been setup.

[![VisualEditor](docs/images/visual-editor-1.JPG)](docs/images/visual-editor-1.JPG)[![VisualEditor2](docs/images/visual-editor-2.jpg)](docs/images/visual-editor-2.jpg)[![VisualEditor3](docs/images/visual-editor-3.jpg)](docs/images/visual-editor-3.jpg)[![VisualEditor4](docs/images/visual-editor-4.jpg)](docs/images/visual-editor-4.jpg)

Access to this feature needs to be added manually. A simple way of doing this is by adding a button to the page form

```
$fields->addFieldsToTab('Root.Main', array(
    LiteralField::create(
        'VisualEditorLink',
        sprintf(
            'Visual Editor',
            Controller::join_links(singleton('VisualEditor')->Link('edit'), $this->ID)
        )
    )
));
```

To use header and footer modules you must enable it in the config

```
ContentModule:
  enable_global_modules: 1
```

Header modules shoule inherit from HeaderBaseModule, and footer modules should inherit from FooterBaseModule. The default modules can be set in the site config (Settings) in CMS. The default modules can be disabled per page in the Settings tab of the page.

###  Health Score

32

—

LowBetter than 72% of packages

Maintenance18

Infrequent updates — may be unmaintained

Popularity25

Limited adoption so far

Community16

Small or concentrated contributor base

Maturity57

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 50% 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 ~287 days

Total

3

Last Release

2583d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/08ee58ace40393521eae00decc0bc3b74d29291e9630e84b2831b38953aaca33?d=identicon)[webtorque](/maintainers/webtorque)

---

Top Contributors

[![webtorque7](https://avatars.githubusercontent.com/u/2799447?v=4)](https://github.com/webtorque7 "webtorque7 (5 commits)")[![kouky4](https://avatars.githubusercontent.com/u/6980767?v=4)](https://github.com/kouky4 "kouky4 (2 commits)")[![riddler7](https://avatars.githubusercontent.com/u/362836?v=4)](https://github.com/riddler7 "riddler7 (2 commits)")[![chillu](https://avatars.githubusercontent.com/u/111025?v=4)](https://github.com/chillu "chillu (1 commits)")

---

Tags

silverstripemoduleblocks

### Embed Badge

![Health badge](/badges/webtorque7-inpage-modules/health.svg)

```
[![Health](https://phpackages.com/badges/webtorque7-inpage-modules/health.svg)](https://phpackages.com/packages/webtorque7-inpage-modules)
```

###  Alternatives

[silverstripers/seo

SEO for SilverStripe websites

1144.3k](/packages/silverstripers-seo)[bummzack/page-blocks

Modular content-blocks for SilverStripe pages

135.3k](/packages/bummzack-page-blocks)[richardsjoqvist/silverstripe-embedder

Embedder enables embedding media in content fields area similar to how embeds work in WordPress

112.6k](/packages/richardsjoqvist-silverstripe-embedder)

PHPackages © 2026

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