PHPackages                             minimalic/silverstripe-fundamental - 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. minimalic/silverstripe-fundamental

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

minimalic/silverstripe-fundamental
==================================

Provides essential, foundational elements for building modular pages using Silverstripe CMS 5 and the Elemental module.

2.4.0(1y ago)032BSD-3-ClausePHP

Since Apr 21Pushed 1y ago1 watchersCompare

[ Source](https://github.com/minimalic/silverstripe-fundamental)[ Packagist](https://packagist.org/packages/minimalic/silverstripe-fundamental)[ RSS](/packages/minimalic-silverstripe-fundamental/feed)WikiDiscussions main Synced yesterday

READMEChangelog (10)Dependencies (4)Versions (17)Used By (0)

Silverstripe Fundamental - a foundation for modular pages
=========================================================

[](#silverstripe-fundamental---a-foundation-for-modular-pages)

Provides essential, foundational elements for building modular pages using Silverstripe CMS and the [Elemental](https://github.com/silverstripe/silverstripe-elemental) module.

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

[](#requirements)

- Silverstripe CMS 5.2 or higher
- [Silverstripe Elemental](https://github.com/silverstripe/silverstripe-elemental)
- [Silverstripe Grid Field Extensions Module](https://github.com/symbiote/silverstripe-gridfieldextensions)
- [Silverstripe link module](https://github.com/silverstripe/silverstripe-linkfield)

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

[](#installation)

To install Fundamental (with requirements included) use Composer:

```
composer require minimalic/silverstripe-fundamental
```

Refresh your database by navigating to your website's root directory in the shell and running: `vendor/bin/sake dev/build "flush=all"`

Or, use your base URL with: `/dev/build?flush=all`

Recommended Extensions
----------------------

[](#recommended-extensions)

- [GridField Bulk Editing Tools](https://github.com/colymba/GridFieldBulkEditingTools)

The Fundamental extension is optimized for the "Bulk Upload" feature provided by GridField Bulk Editing Tools.

Install using composer (optional):

```
composer require colymba/gridfield-bulk-editing-tools
```

Available Modules
-----------------

[](#available-modules)

- Image Block (`ModuleImage`) - Block with single image banner
- Hero Banner Block (`ModuleHeroBanner`) - Displays a hero banner featuring text overlayed on an image
- Hero Split Block (`ModuleHeroSplit`) - Displays a hero split with image and text side-by-side. Allows switching the order
- Slideshow (`ModuleSlideshow`) - Image slider/carousel (Bootstrap compatible)
- Gallery (`ModuleGallery`) - Image thumbnails as a grid
- Teaser (`ModuleTeaser`) - Block with teaser items (with icon and buttons)

Customization
-------------

[](#customization)

### Custom Theme for ModularPage

[](#custom-theme-for-modularpage)

Create your own `ModularPage.ss` template inside your theme's `template` directory at:

```
minimalic/Fundamental/Pages/Layout/

```

### Custom Themes for Modules

[](#custom-themes-for-modules)

By default the Fundamental extension uses Bootstrap 5 classes for templating.

To override default templates for modules/blocks, create your own template file (e.g., `ModuleImage.ss`) inside your theme's `template` directory at:

```
minimalic/Fundamental/Modules/

```

Alternatively copy the entire `vendor/minimalic/silverstripe-fundamental/templates/` directory to your `templates/` directory and customize all template overrides.

### Options for custom image upload directory

[](#options-for-custom-image-upload-directory)

By default images (modules: "Image Block", "Hero Banner Block"...) will be uploaded to `images/parent-class/parent-title`, where `parent` is the page/object holding the module. To change this behavior add this to your config (e.g. inside `mysite.yml`):

```
minimalic\Fundamental\Modules\ModuleImage:
  image_directory_name: 'images'
  image_directory_sub_struct: 'class/parent'
```

For the `image_directory_name` configuration option you can chose the top directory name for uploaded files. The available options for `image_directory_sub_struct` are:

- `parent` (parent page title)
- `class/parent` (parent page class/title, default)
- `element` (current element title)
- `class/element` (current element class/title)

The "Slideshow" and "Gallery" modules provide one additional `image_directory_sub_struct` option:

- `parent/element` (parent page title/current element title)

```
minimalic\Fundamental\Modules\ModuleGallery:
  image_directory_name: 'images'
  image_directory_sub_struct: 'parent/element'
```

Global configuration
--------------------

[](#global-configuration)

### Set image resize quality (Optional)

[](#set-image-resize-quality-optional)

Set the global image quality inside your config (e.g. `mysite.yml`) and enable forced resampling for not-resized images (optional):

```
SilverStripe\Assets\File:
  force_resample: true

SilverStripe\Assets\Storage\DBFile:
  force_resample: true

SilverStripe\Core\Injector\Injector:
  SilverStripe\Assets\Image_Backend:
    properties:
      Quality: 70
```

### Remap Local Elemental Extensions (Optional)

[](#remap-local-elemental-extensions-optional)

This step is necessary if you are already using an ElementalPageExtension and want to replace it with the page type provided by this module.

To remap existing `App\Pages\ModularPage` or `ElementalPage` (the class name of your custom Elemental page extension, if any), use the following configuration in your `mysite.yml`:

```
SilverStripe\ORM\DatabaseAdmin:
  classname_value_remapping:
    'App\Pages\ModularPage': 'minimalic\Fundamental\Pages\ModularPage'
```

Replace `App\Pages\ModularPage` with your class name. Also, ensure your existing `table_name` is `ModularPage`; if not, you should rename your table.

After rebuilding your database, you can delete these remap lines from your mysite.yml. Your existing Elemental pages should now use this module.

License
-------

[](#license)

See [License](LICENSE)

Copyright (c) 2024, minimalic.com - Sebastian Finke All rights reserved.

###  Health Score

27

—

LowBetter than 47% of packages

Maintenance34

Infrequent updates — may be unmaintained

Popularity7

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity50

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

Every ~12 days

Recently: every ~34 days

Total

16

Last Release

621d ago

Major Versions

1.x-dev → 2.0.02024-06-01

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/18061991?v=4)[minimalic](/maintainers/minimalic)[@minimalic](https://github.com/minimalic)

---

Top Contributors

[![minimalic](https://avatars.githubusercontent.com/u/18061991?v=4)](https://github.com/minimalic "minimalic (100 commits)")

---

Tags

silverstripe-elementalsilverstripe-modulesilverstripefoundationmodularelemental

### Embed Badge

![Health badge](/badges/minimalic-silverstripe-fundamental/health.svg)

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

###  Alternatives

[silverstripe/userforms

UserForms enables CMS users to create dynamic forms via a drag and drop interface and without getting involved in any PHP code

1371.1M85](/packages/silverstripe-userforms)[dnadesign/silverstripe-elemental-decisiontree

Element displaying information in regards to answers given to questions

1117.7k1](/packages/dnadesign-silverstripe-elemental-decisiontree)

PHPackages © 2026

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