New Features

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

A new feature for SilverStripe should be ...

You've used all your votes and won't be able to post a new idea, but you can still search and comment on existing ideas.

There are two ways to get more votes:

  • When an admin closes an idea you've voted on, you'll get your votes back from that idea.
  • You can remove your votes from an open idea you support.
  • To see ideas you have already voted on, select the "My feedback" filter and select "My open ideas".
(thinking…)

Enter your idea and we'll search to see if someone has already suggested it.

If a similar idea already exists, you can vote and comment on it.

If it doesn't exist, you can post your idea so others can vote on it.

Enter your idea and we'll search to see if someone has already suggested it.

  • Hot ideas
  • Top ideas
  • New ideas
  1. Filesystem Abstraction

    Allow for different filesystems to be added using a common Filesystem Interface.

    The includes AWS S3 and other cloud storage.

    This should separate the filesystem from the database layer.

    8 votes
    Vote
    Sign in
    Check!
    (thinking…)
    Reset
    or sign in with
    • facebook
    • google
      Password icon
      I agree to the terms of service
      Signed in as (Sign out)
      You have left! (?) (thinking…)
    • 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".

      23 votes
      Vote
      Sign in
      Check!
      (thinking…)
      Reset
      or sign in with
      • facebook
      • google
        Password icon
        I agree to the terms of service
        Signed in as (Sign out)
        You have left! (?) (thinking…)
      • Have SilverStripe classes be in namespaces

        Right now all SilverStripe classes are just in the global namespace. We decided 5.3 would be a reasonable requirement too late in the 3.x cycle to change this.

        However it's holding us back, and we can't really wait for 4.x to fix it.

        We should move all cms & framework classes into appropriate namespaces (ideally PSR-0 compliant, although this wouldn't include making PSR-0 actually work, we'd still need the SilverStripe bootstrap, at least for now).

        We'd need to include a tool that scanned projects for class usages & automatically added the use statements to the top of all files for…

        43 votes
        Vote
        Sign in
        Check!
        (thinking…)
        Reset
        or sign in with
        • facebook
        • google
          Password icon
          I agree to the terms of service
          Signed in as (Sign out)
          You have left! (?) (thinking…)
        • 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

          20 votes
          Vote
          Sign in
          Check!
          (thinking…)
          Reset
          or sign in with
          • facebook
          • google
            Password icon
            I agree to the terms of service
            Signed in as (Sign out)
            You have left! (?) (thinking…)
          • 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".

            9 votes
            Vote
            Sign in
            Check!
            (thinking…)
            Reset
            or sign in with
            • facebook
            • google
              Password icon
              I agree to the terms of service
              Signed in as (Sign out)
              You have left! (?) (thinking…)
            • Themes should be more powerful

              They should be able to inherit from other themes, and define codeless page types

              11 votes
              Vote
              Sign in
              Check!
              (thinking…)
              Reset
              or sign in with
              • facebook
              • google
                Password icon
                I agree to the terms of service
                Signed in as (Sign out)
                You have left! (?) (thinking…)
              • 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.

                7 votes
                Vote
                Sign in
                Check!
                (thinking…)
                Reset
                or sign in with
                • facebook
                • google
                  Password icon
                  I agree to the terms of service
                  Signed in as (Sign out)
                  You have left! (?) (thinking…)
                • 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…

                  30 votes
                  Vote
                  Sign in
                  Check!
                  (thinking…)
                  Reset
                  or sign in with
                  • facebook
                  • google
                    Password icon
                    I agree to the terms of service
                    Signed in as (Sign out)
                    You have left! (?) (thinking…)
                  • 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.

                    5 votes
                    Vote
                    Sign in
                    Check!
                    (thinking…)
                    Reset
                    or sign in with
                    • facebook
                    • google
                      Password icon
                      I agree to the terms of service
                      Signed in as (Sign out)
                      You have left! (?) (thinking…)
                      1 comment  ·  Admin →
                    • Internal search system

                      Advanced internal search system, without plugins or complicated requirements on the server.

                      3 votes
                      Vote
                      Sign in
                      Check!
                      (thinking…)
                      Reset
                      or sign in with
                      • facebook
                      • google
                        Password icon
                        I agree to the terms of service
                        Signed in as (Sign out)
                        You have left! (?) (thinking…)
                        1 comment  ·  Admin →
                      • Make it easier for new developers to work with composer

                        Its safe to say that learning composer is now on the list of things to learn when developing with SilverStripe. Its a great tool, but I'm sure its pushing away new developers who just want to get something up and running out of the box.

                        It appears the drupal community is addressing this issue:
                        https://www.drupal.org/project/composer_manager
                        https://www.acquia.com/blog/using-composer-manager-get-island-now

                        1 vote
                        Vote
                        Sign in
                        Check!
                        (thinking…)
                        Reset
                        or sign in with
                        • facebook
                        • google
                          Password icon
                          I agree to the terms of service
                          Signed in as (Sign out)
                          You have left! (?) (thinking…)
                        • iOS / Android App

                          Would be a great selling point to have an iOS / Android app for using the CMS.

                          It would pretty much be a wrapper to launch the web-based CMS as it would never be able to cater for the endless possibilities, but it would be nice to be able to store multiple websites with logins to make it feel like it was an actual app.

                          Would tie in with the Responsive CMS suggestion here http://silverstripe.uservoice.com/forums/251266-new-features/suggestions/6196153-responsive-cms

                          1 vote
                          Vote
                          Sign in
                          Check!
                          (thinking…)
                          Reset
                          or sign in with
                          • facebook
                          • google
                            Password icon
                            I agree to the terms of service
                            Signed in as (Sign out)
                            You have left! (?) (thinking…)
                          • Files should be stored in DataObject fields

                            Right now Files are DataObjects that have a 1 to 1 correlation to files / directories in the assets folder, and when using them we just hand over a URL to the location in the assets folder.

                            This makes it hard to: use other storage backends that don't necessarily have a folder structure; have Files that are not shared between the whole system; version Files (since filesystems don't support versioning); have Files with restricted access

                            We should instead have "File" as a field type for $db (like String, Int, etc). We wouldn't store these in the database - instead we'd…

                            13 votes
                            Vote
                            Sign in
                            Check!
                            (thinking…)
                            Reset
                            or sign in with
                            • facebook
                            • google
                              Password icon
                              I agree to the terms of service
                              Signed in as (Sign out)
                              You have left! (?) (thinking…)
                            • Rework the "unpublish / delete" CMS controls to be clearer

                              Currently we have "unpublish" and "delete from draft", but these aren't very self explanatory or really do what people want.

                              They should be replaced with "Undo most recent publication", "Discard changes since last publication", "Remove page completely from site", "Remove all public versions of this page", etc

                              10 votes
                              Vote
                              Sign in
                              Check!
                              (thinking…)
                              Reset
                              or sign in with
                              • facebook
                              • google
                                Password icon
                                I agree to the terms of service
                                Signed in as (Sign out)
                                You have left! (?) (thinking…)
                              • Add a Debug Toolbar

                                Look at how we can integrate PHPDebugBar http://phpdebugbar.com/ for better and prettier debugging. Symfony & Laravel has it - I think SilverStripe should too.

                                This can replace the use of URL variables to show debugging information.

                                6 votes
                                Vote
                                Sign in
                                Check!
                                (thinking…)
                                Reset
                                or sign in with
                                • facebook
                                • google
                                  Password icon
                                  I agree to the terms of service
                                  Signed in as (Sign out)
                                  You have left! (?) (thinking…)
                                  1 comment  ·  Admin →
                                • Core Classes should inherit from Object class

                                  I know most classes inherit from the Object class now. But some classes are still stand-alone (Debug, DB, etc.). Inheriting from Object will allow devs to use Object::useCustomClass() for any core SilverStripe class.

                                  6 votes
                                  Vote
                                  Sign in
                                  Check!
                                  (thinking…)
                                  Reset
                                  or sign in with
                                  • facebook
                                  • google
                                    Password icon
                                    I agree to the terms of service
                                    Signed in as (Sign out)
                                    You have left! (?) (thinking…)
                                    1 comment  ·  Admin →
                                  • Allow logging back in without leaving CMS admin on session timeout

                                    Currently if your session times out when working in the CMS (for instance if you've disabled the ping feature for security reasons), you just start getting errors.

                                    If you had a lot of work pre-done, it's easy to loose it while trying to log back in.

                                    Instead you should just get a log back in modal pop up over the CMS.

                                    8 votes
                                    Vote
                                    Sign in
                                    Check!
                                    (thinking…)
                                    Reset
                                    or sign in with
                                    • facebook
                                    • google
                                      Password icon
                                      I agree to the terms of service
                                      Signed in as (Sign out)
                                      You have left! (?) (thinking…)
                                      1 comment  ·  Admin →
                                    • Behat testing should be as easy as unit testing

                                      Right now Behat testing isn't used very much - it's harder to get running than it should be, and is quite slow.

                                      We should try and get Behat testing to be more popular by improving the ease with which tests can be written.

                                      1 vote
                                      Vote
                                      Sign in
                                      Check!
                                      (thinking…)
                                      Reset
                                      or sign in with
                                      • facebook
                                      • google
                                        Password icon
                                        I agree to the terms of service
                                        Signed in as (Sign out)
                                        You have left! (?) (thinking…)
                                      • Core state handling to fix subsites / translatable / etc

                                        Right now we have _lots_ of ad-hoc cross-request state tracking.

                                        State is any inputs that affects the cross-section of data that ends up being visible to DataObject

                                        Versioned, Subsites, Translatable and several others are examples of this.

                                        We already have DataQuery#$queryParams to track some of this state internally, but when it comes to tracking it across requests, every module has it's own solution.

                                        The worst are those modules that store it in the session, since this affects all tabs / windows being used by that user, which can lead to unexpected behaviour.

                                        This API would instead allow reading state encoded…

                                        7 votes
                                        Vote
                                        Sign in
                                        Check!
                                        (thinking…)
                                        Reset
                                        or sign in with
                                        • facebook
                                        • google
                                          Password icon
                                          I agree to the terms of service
                                          Signed in as (Sign out)
                                          You have left! (?) (thinking…)
                                        • Modify CMS Document Metatags area to have multiple Custom Metatags

                                          In CMS (3.1.6) the MetaTags area has a text entry for Description and a single custom tag.

                                          This single custom area concatenates all text into one line.

                                          There needs to be provision to add multiple custom meta tags (individually editable) - not concatenated - each tag as an individual meta tag on a separate line in the page source.

                                          1 vote
                                          Vote
                                          Sign in
                                          Check!
                                          (thinking…)
                                          Reset
                                          or sign in with
                                          • facebook
                                          • google
                                            Password icon
                                            I agree to the terms of service
                                            Signed in as (Sign out)
                                            You have left! (?) (thinking…)
                                          ← Previous 1 3 4
                                          • Don't see your idea?

                                          New Features

                                          Feedback and Knowledge Base