New Features

Please add your suggestions for new SilverStripe CMS & Framework features (Note: bugs should be logged over in GitHub).

  1. Attributes for form fields with sub elements

    Existing form fields have the ability to set attributes. This however only works for the top level element (input, textarea, etc). There should be an option to add attributes for fields that contain sub elements: DropdownField, OptionsetField and SelectionGroup.

    Sample DropdownField:

    <div id="Count" class="control-group form-group">
    <label for="Form_Form_Count">Count</label>
    <select name="Count" class="dropdownattributes form-control" id="Form_CountingForm_Count">
    <option value="1" data-bats="batty">One</option>
    <option value="2" data-bats="batty batty">Two</option>
    <option value="3" data-bats="batty batty batty">Three</option>
    </select>
    </div>

    The module https://github.com/marijnkampf/silverstripe-extra-attributes-field does this for DropdownFields and OptionsetFields but I think it should be considered as a part of the SilverStripe core as attributes are possible for single element form fields.

    19 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: Facebook Google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    1 comment  ·  Flag idea as inappropriate…  ·  Admin →
  2. Installation Improvements

    I've installed silverstripe many, many times and I would recommend the following...

    * get a more accurate locale (I'm in england and it always defaults to English US) - setlocale(LC_CTYPE, null) will help
    * when in a subfolder on the localhost, I always use the same name for the subfolder as the DB - not "SS_Mysite" - basename(dirname(__FILE__)) will help

    Lastly on windows, using XAMPP after "Friendly URLs set up successfully; I am now redirecting you to your SilverStripe site..." is output it just spins. I leave it for 5 minutes and then refresh and it has always been fine.…

    2 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: Facebook Google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Flag idea as inappropriate…  ·  Admin →
  3. Scaffold a better has_one field where there are a large number of items

    When you have a DataObjectA has_one DataObjectB, if there are many DataObjectB's then instead of a usable dropdown field, instead a text field that expects an ID of the field is shown.

    I would strongly recommend the field is instead link the gridfield add relation that searches based on a string fragment in this case.

    9 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: Facebook Google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Flag idea as inappropriate…  ·  Admin →
  4. Find and delete orphaned or unused files

    If it would be a nice to add a function which makes it possible to list all unused Files on a website and have to option to delete them (individually or all of them).

    12 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: Facebook Google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    1 comment  ·  Flag idea as inappropriate…  ·  Admin →
  5. Ability to sort DataObjects and Files/Images by default

    I think the ability to sort DataObjects (via Gridfield) and Files or Images (via UploadField) should be avalabkle out-of-thre-box without requiring 3rd party modules.

    It's a fundamental CMS feature for proper management of displayed content.

    65 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: Facebook Google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    1 comment  ·  Flag idea as inappropriate…  ·  Admin →
  6. Ability to perform atomic database migrations

    From: https://github.com/silverstripe/silverstripe-framework/issues/3868

    Currently the SilverStripe framework lacks the ability to easily perform custom migrations at an atomic level. That is, SilverStripe has a very intuitive interface for defining database structure in a declarative format (e.g. "setup these columns with this format and these relations") but currently there is no method that I know of which facilitates a smooth and controlled atomic transition of database schema and the data contained therein. I'm not aware of any techniques by which I can change the way data is handled by DataObjects so I can deploy my code and database changes without leaving behind…

    21 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: Facebook Google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    1 comment  ·  Flag idea as inappropriate…  ·  Admin →
  7. Have a Laravel FW like on-screen detailed error logging view that logs even the lowest level of bug eg. syntax error without adding isDev=1

    It's really hard for beginners spotting errors and bugs with Silverstripe. The error checking system is good but only feels like its meant for pros. SIlverstripe a million times failed to print out error on the browser even when isDev is enabled. We wish it to be more like Laravel's error logging system making the tiniest errors and syntax mistakes easily detectable.

    34 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: Facebook Google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    2 comments  ·  Flag idea as inappropriate…  ·  Admin →
  8. 15 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: Facebook Google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Flag idea as inappropriate…  ·  Admin →
  9. ErrorException instead of user_error

    In the framework user_error() is still used quite regularly and while at certain points this functionality might be wanted.
    I would like it to be changed to use ErrorException (http://php.net/ErrorException) this would allow any developer to actually catch some of these Errors (especially the ones related to database errors like duplicated key etc.) and use them as they wish.
    In my case i would like to catch these for a Restful API and return them as Error arrays in my json response.
    Which in the current implementation is not really possible since all errors go through the Debug::loadErrorHandlers()…

    14 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: Facebook Google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    1 comment  ·  Flag idea as inappropriate…  ·  Admin →
  10. Validate text field length based on record objects allowed length

    "Varchar properties would usually be edited via a TextField which you can set a character limit on - would be great if this was automatically set based on the varchar length. This would prevent a lot of trimming in the CMS. Error message as a back up for other contexts would be good too."

    See https://github.com/silverstripe/silverstripe-framework/issues/3681#issuecomment-64997757

    Pull Request: https://github.com/silverstripe/silverstripe-framework/pull/3694

    16 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: Facebook Google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Flag idea as inappropriate…  ·  Admin →
  11. Make internal core search system more extensible

    Advanced internal search system, without plugins or complicated requirements on the server. FulltextSearchable and SearchForm provide a basics approach to implementing search over MySQL, it would be easy to modify those classes to be more dynamic and allow MySQL based FulltextSearch index on custom columns.

    51 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: Facebook Google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    4 comments  ·  Flag idea as inappropriate…  ·  Admin →
  12. Make the Add Member and Add Group buttons

    In the Security area of the CMS make the Add Member and Add Group buttons available to users other than Administrators.

    6 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: Facebook Google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    1 comment  ·  Flag idea as inappropriate…  ·  Admin →
  13. Column or block content editing

    Right now Content in the core CMS is either "a big lump of HTML" or "a set of carefully defined fields".

    There are lots of modules that try and add content modules / blocks / columns to SilverStripe CMS, but none have really taken off.

    We should add the ability for Content to be managed in a more modular way than just "big lump of text".

    96 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: Facebook Google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    started  ·  10 comments  ·  Flag idea as inappropriate…  ·  Admin →
  14. Make CSV importing more user/developer friendly

    Bulk loading currently requires users to create a spreadsheet that exactly matches the import fields. I have seen systems where you instead just map the headings before doing the actual import.

    http://aws.cachefly.net/1Password3/images/faq/Generic_CSV_Import_Fields.jpg

    Also for developers the following would be useful:
    * Use DataObject default values if values are missing
    * Provide ability to skip incomplete/invalid records

    Semi related issue:
    https://github.com/silverstripe/silverstripe-framework/issues/2542

    23 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: Facebook Google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Flag idea as inappropriate…  ·  Admin →
  15. Simultaneous editing support

    Currently there's no good support for two editors editing the same Page (or other Data Object).

    We should at least allow locking a page, but better would be adding simultaneous editing a-la Google Docs, etc. If we couldn't get totally simultaneous editing working (TinyMCE might be tricky) we could at least allow simultaneous viewing, with a single person being the current "editor".

    33 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: Facebook Google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    7 comments  ·  Flag idea as inappropriate…  ·  Admin →
  16. Ability to put Layout templates into subfolders

    Currently all page templates have to be at the root of the Layout folder. When a site gets really large there can potentially be 30+ templates in that folder. It would be awesome to be able to add subfolders so that there can be clearer groupings of page templates.

    Currently this is possible for Includes.

    30 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: Facebook Google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    1 comment  ·  Flag idea as inappropriate…  ·  Admin →
  17. Add events system

    Currently we have a few ad-hoc events (like preRequestFilter and postRequestFilter), and a few event-like methods that are caught by extensions (onBeforeWrite, etc).

    These are both un-ideal from a performance point of view. Both the event raiser and all event handlers need to be loaded at all times, and the event-like behaviour of extensions is one of the things stopping us from replacing them with traits.

    Important to this working would be the ability to bind event raisers to event handlers in the config system, while still being able to specify some level of filtering (for instance be able to…

    81 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: Facebook Google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    under review  ·  4 comments  ·  Flag idea as inappropriate…  ·  Admin →
  18. Make it optional if a page is added to top or bottom of the site tree

    When using the SiteTree for news and other stuff, it would be usefull to be able to define if a new page should go in to the top of the structure, or if it should be added to the bottom (std).

    Could also be an option when rigtht clicking a page -> Create subpage at top / create subpage before / after or something like that.

    15 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: Facebook Google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    2 comments  ·  Flag idea as inappropriate…  ·  Admin →
  19. Replace extensions with traits

    Extensions are quite slow, and PHP 5.4 introduced traits which does a lot of the same stuff but as a language feature (so is much faster).

    One caveat is the event-like methods in Extensions (onAfterWrite, etc), but they can be replaced with an event system (see http://silverstripe.uservoice.com/forums/251266-new-features/suggestions/6425842-add-events-system)

    Once that's done it'd be easy to replace extensions with traits.

    It will require upgrading the minimum PHP version to 5.4, or doing some dynamic class compilation in the autoloader in 5.3 to maintain compatibility

    35 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: Facebook Google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    10 comments  ·  Flag idea as inappropriate…  ·  Admin →
  20. Improve REST/API support

    There's two existing modules, both of them fall short of designing a modern API: https://github.com/silverstripe/silverstripe-restfulserver
    https://github.com/nyeholt/silverstripe-webservices

    The number of API consumers is rising due to increased usage of frontend libraries like Backbone/Ember/Angular, and SilverStripe can be a powerful tool to drive those frontends if it had better API development support.

    Specifically, add the following:
    - More modularity (RESTfulServer is one monolithic class for all content types)
    - Content negotiation
    - Caching headers
    - More powerful field mapping
    - HAL to describe relationships and references
    - Pluggable authentication (ship with OAuth by default?)

    Alternatively, we might look into creating adapters for…

    73 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: Facebook Google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    8 comments  ·  Flag idea as inappropriate…  ·  Admin →
    under review  ·  Ingo Schommer responded

    We’re doing some GraphQL API work instead of REST support for SilverStripe 4: http://silverstripe.uservoice.com/forums/251266-new-features/suggestions/16924327-graphql-api-support

    GraphQL is an alternative to REST, and well suited for modern frontend architectures. There’s still valid use cases for REST in SilverStripe, but from a core perspective we’re unlikely to build out core support for a REST layer in parallel to GraphQL, so moving this back from “planned” to “under review”.

  • Don't see your idea?

New Features

Feedback and Knowledge Base