Silverstripe elemental not appearing in CMS after install

MAMP: 7.2
PHP: 8.2.26
MySql: 5.7.44
Silverstripe Version: 5.3.0
silverstripe-elemental: 5.3

Question:

After installing silverstripe-elemental: composer require dnadesign/silverstripe-elemental, and adding the below into app/_config/elements.yml, I am not able to see the “Select Page Type dropdown” in CMS. I have tried logging off and in again, restart MAMP and nothing works.

Did I miss any steps?

Page:
  extensions:
    - DNADesign\Elemental\Extensions\ElementalPageExtension

Just to clarify the issue here… which dropdown is no longer visible? Where in the CMS would it be… maybe share a screenshot if you can.

In SilverStripe CMS / Add New Page, I am only able to see the WYSIWYG editor for the content.

Base on the doc’s page: https://docs.silverstripe.org/en/5/optional_features/elemental/basic_setup/

There should be a dropdown menu to select the page content type:

Have you done a dev/build?

?flush in the browser as well. silverstripecms.test/admin?flush=1

Yes, I have tried dev/build and flush but the page content type dropdown selector is still not showing up. :frowning:

I’ve just set up a clean installation of Silverstripe 5, along with Elemental and I’m afraid I can’t recreate the issue you’re seeing.

So, we need to understand if the module is actually doing anything.

  • Can you successfully run a composer update without errors?
  • Can you confirm the version of Elemental that is installed? (with composer info dnadesign/silverstripe-elemental)
  • Does the dev/build show any information or errors?
  • Can you post the full contents of your elements.yml file
  • Do you have any other modules installed which could be affecting things?
  • When you ran the initial dev/build were there any Element tables created (or can you check that they’re actually present)?

I just did another fresh install and here are the logs:

> composer create-project silverstripe/installer silverstripe-01
> cd silverstripe-01
> composer require dnadesign/silverstripe-elemental
> vendor/bin/sake dev/build
  • Can you successfully run a composer update without errors?
    Yes, no errors, kindly refer below:
> composer update
Loading composer repositories with package information
Updating dependencies
Nothing to modify in lock file
Installing dependencies from lock file (including require-dev)
Nothing to install, update or remove
Generating autoload files
63 packages you are using are looking for funding.
Use the `composer fund` command to find out more!
No security vulnerability advisories found.
Time: 6 secs
  • Can you confirm the version of Elemental that is installed? (with composer info dnadesign/silverstripe-elemental)
    Kindly refer below:
> composer info dnadesign/silverstripe-elemental
name : dnadesign/silverstripe-elemental
descrip. : Elemental pagetype and collection of Elements
keywords : Content Blocks, element, elemental, silverstripe
versions : * 5.3.9
released : 2025-02-27, 2 weeks ago
type : silverstripe-vendormodule
license : BSD 3-Clause "New" or "Revised" License (BSD-3-Clause) (OSI approved) https://spdx.org/licenses/BSD-3-Clause.html#licenseText
homepage :
source : [git] https://github.com/silverstripe/silverstripe-elemental.git c385dc820a56ba89b835e3b6d00eadfeb6792f23
dist : [zip] https://api.github.com/repos/silverstripe/silverstripe-elemental/zipball/c385dc820a56ba89b835e3b6d00eadfeb6792f23 c385dc820a56ba89b835e3b6d00eadfeb6792f23
path : /Applications/MAMP/htdocs/silverstripecms/silverstripe-01/vendor/dnadesign/silverstripe-elemental
names : dnadesign/silverstripe-elemental

support
issues : https://github.com/silverstripe/silverstripe-elemental/issues
source : https://github.com/silverstripe/silverstripe-elemental/tree/5.3.9
autoload
psr-4
DNADesign\Elemental\ => src/
DNADesign\Elemental\Tests\ => tests/

requires
php ^8.1
silverstripe/admin ^2.0.1
silverstripe/cms ^5
silverstripe/framework ^5.3
silverstripe/graphql ^5
silverstripe/vendor-plugin ^2
silverstripe/versioned ^2
silverstripe/versioned-admin ^2
symbiote/silverstripe-gridfieldextensions ^4

requires (dev)
phpstan/extension-installer ^1.3
silverstripe/documentation-lint ^1
silverstripe/frameworktest ^1
silverstripe/recipe-testing ^3
silverstripe/standards ^1

suggests
dnadesign/silverstripe-elemental-subsites Adds subsite support to elemental
dnadesign/silverstripe-elemental-userforms Adds userform support to elemental
dnadesign/silverstripe-elemental-virtual Adds support to share blocks between pages
silverstripe/elemental-blocks Adds a set of common SilverStripe content block types
silverstripe/fulltextsearch Adds fulltext search capability for elements using Solr
>
  • Does the dev/build show any information or errors?
    Kindly refer below:
http://silverstripecms.test/dev/build

Environment Builder
http://silverstripecms.test
dev → build
Building database silverstripe_db using SilverStripe\ORM\Connect\MySQL 5.7.44
Creating database tables

File (0 records)
SiteConfig (1 records)
ChangeSet (0 records)
ChangeSetItem (0 records)
Element (0 records)
ElementalArea (0 records)
FileLink (0 records)
SiteTree (6 records)
SiteTreeLink (0 records)
Group (2 records)
LoginAttempt (1 records)
Member (1 records)
MemberPassword (1 records)
Permission (5 records)
PermissionRole (0 records)
PermissionRoleCode (0 records)
RememberLoginHash (0 records)
LoginSession (1 records)
Folder
Image
ElementContent (0 records)
Page
ErrorPage (2 records)
RedirectorPage (0 records)
VirtualPage (0 records)
Creating database records

SilverStripe\Assets\File
SilverStripe\SiteConfig\SiteConfig
SilverStripe\Versioned\ChangeSet
SilverStripe\Versioned\ChangeSetItem
DNADesign\Elemental\Models\BaseElement
DNADesign\Elemental\Models\ElementalArea
SilverStripe\Assets\Shortcodes\FileLink
SilverStripe\CMS\Model\SiteTree
SilverStripe\CMS\Model\SiteTreeLink
SilverStripe\Security\Group
SilverStripe\Security\LoginAttempt
SilverStripe\Security\Member
SilverStripe\Security\MemberPassword
SilverStripe\Security\Permission
SilverStripe\Security\PermissionRole
SilverStripe\Security\PermissionRoleCode
SilverStripe\Security\RememberLoginHash
SilverStripe\SessionManager\Models\LoginSession
SilverStripe\Assets\Folder
SilverStripe\Assets\Image
DNADesign\Elemental\Models\ElementContent
Page
SilverStripe\ErrorPage\ErrorPage
404 error page refreshed
500 error page refreshed
SilverStripe\CMS\Model\RedirectorPage
SilverStripe\CMS\Model\VirtualPage
Database build completed!

[INFO]: --- Building schema "admin" ---
[INFO]: Creating new schema
[INFO]: Migrating new schema
[INFO]: Deleting temp schema
[INFO]: Total types: 72
[INFO]: Types built: 72
[INFO]: *CopyToStageInputType
[INFO]: *VersionedInputType
[INFO]: *FolderInput
[INFO]: *FileUsage
[INFO]: *FileInput
[INFO]: *Folder
[INFO]: *File
[INFO]: *DescendantFileCount
[INFO]: *FileFilterInput
[INFO]: *PublicationNotice
[INFO]: (... and 62 more)
[INFO]: Types deleted: 0
[INFO]: Built schema in 679ms.
[INFO]: --- Building schema "default" ---
[WARNING]: Schema default is empty. Skipping.
[INFO]: Built schema in 7ms.
  • Can you post the full contents of your elements.yml file
    Kindly refer below:
/app/_config/elements.yml
Page:
  extensions:
    - DNADesign\Elemental\Extensions\ElementalPageExtension
  • Do you have any other modules installed which could be affecting things?
    No, I have not installed any other module.
  • When you ran the initial dev/build were there any Element tables created (or can you check that they’re actually present)?
    Yes, the Element table is present, kindly refer below:

I have tried on a different machine and still having the same issue.

ServBay 1.11.0 (MacOS)
PHP: 8.2.26
MySql: 5.7.44
Silverstripe Version: 5.3.0
silverstripe-elemental: 5.3

My install steps as below:

> composer create-project silverstripe/installer silverstripe-01
> cd silverstripe-01
> composer require dnadesign/silverstripe-elemental
> add app/_config/elements.yml
> update /themes/simple/templates/Layout/Page.ss
> vendor/bin/sake dev/build

Result of composer info dnadesign/silverstripe-elemental:

>composer info dnadesign/silverstripe-elemental
name     : dnadesign/silverstripe-elemental
descrip. : Elemental pagetype and collection of Elements
keywords : Content Blocks, element, elemental, silverstripe
versions : * 5.3.10
type     : silverstripe-vendormodule
license  : BSD 3-Clause "New" or "Revised" License (BSD-3-Clause) (OSI approved) https://spdx.org/licenses/BSD-3-Clause.html#licenseText
homepage : 
source   : [git] https://github.com/silverstripe/silverstripe-elemental.git 7a847e30af659f29e9f84133a1128236f7e47ba9
dist     : [zip] https://api.github.com/repos/silverstripe/silverstripe-elemental/zipball/7a847e30af659f29e9f84133a1128236f7e47ba9 7a847e30af659f29e9f84133a1128236f7e47ba9
path     : /Applications/ServBay/www/silverstripe/silverstripe-01/vendor/dnadesign/silverstripe-elemental
names    : dnadesign/silverstripe-elemental

support
issues : https://github.com/silverstripe/silverstripe-elemental/issues
source : https://github.com/silverstripe/silverstripe-elemental/tree/5.3.10

autoload
psr-4
DNADesign\Elemental\ => src/
DNADesign\Elemental\Tests\ => tests/

requires
php ^8.1
silverstripe/admin ^2.0.1
silverstripe/cms ^5
silverstripe/framework ^5.3
silverstripe/graphql ^5
silverstripe/vendor-plugin ^2
silverstripe/versioned ^2
silverstripe/versioned-admin ^2
symbiote/silverstripe-gridfieldextensions ^4

requires (dev)
phpstan/extension-installer ^1.3
silverstripe/documentation-lint ^1
silverstripe/frameworktest ^1
silverstripe/recipe-testing ^3
silverstripe/standards ^1

suggests
dnadesign/silverstripe-elemental-subsites Adds subsite support to elemental
dnadesign/silverstripe-elemental-userforms Adds userform support to elemental
dnadesign/silverstripe-elemental-virtual Adds support to share blocks between pages
silverstripe/elemental-blocks Adds a set of common SilverStripe content block types
silverstripe/fulltextsearch Adds fulltext search capability for elements using Solr

If you run sake dev/config or go to /dev/config in your browser, do you see the extension being applied? This lets you check if the configuration is actually applying to the page class or not.

The whole output is too huge to attached but here is one of the sections that contains “DNADesign”, I am not sure if this section is where we can tell if the configuration has been applied, but do let me know if there is a particular keyword to look out for. Thanks.

I’m not asking you to put the output here, but just to look at the output for yourself. This is the configuration that gets applied from all that YAML - so you should be able to find the ElementalPageExtension being applied to the extensions config on Page in the output if it’s being applied.

Thanks for the details, I was only able to find this for page:
Screenshot 2025-03-27 at 3.22.03 PM

For the keyword ElementalPageExtension, I was only able to find this:

That seems to me like your configuration in app/_config/elements.yml hasn’t been applied.

Reasons that might cause that (which I think are all unlikely in this case) include:

  • You haven’t flushed
  • You’re looking at the wrong site or environment (e.g. changing in dev, but looking at a separate test environment, or changing site 1 and looking at site 2)
  • If you’re using virtualisation (very unlikely with MAMP), there’s a desync between the virtual and real file system
  • You’ve misspelled _config for the directory name
  • You’ve put the config inside --- metadata jail

As I said I don’t think any of those are likely the problem in your case, but should be quick for you to rule out.

Some ways that might help you get moving forward (they won’t fix whatever underlying problem is stopping your config from being picked up but should let you continue for now) include:

  1. If you have another configuration file that is working as expected, try putting the extension configuration into that file instead.
  2. You can apply extensions in your Page.php file by setting the private static array $extensions configuration property, instead of YAML.

Hi, I have tested a few PHP & MySQL combinations and found that it is PHP version 8.2.27 that is causing the issue on my machine:
PHP 8.1.31 + MySQL 5.6.51 - Works
PHP 8.1.31 + MySQL 5.7.44 - Works

PHP 8.2.27 + MySQL 5.6.51 - Fail
PHP 8.2.27 + MySQL 5.7.44 - Fail

PHP 8.3.16 + MySQL 5.6.51 - Works
PHP 8.3.16 + MySQL 5.7.44 - Works

Thanks @GuySartorelli & @Tim & @kaftka