Loading...

Hi, I'mVinay Lal

Web Developer
and Content Creator

Silverstripe 4 features description & demo site

ssdarklogo

A description of SilverStripe 4 and its features both for developers and non-developers. It includes links to a demo site where you can play with some of Silverstripe's features.

Silverstripe Features for CMS users:

Publishing pages:

Out of the box, a regular installation of Silverstripe includes a CMS that is all ready to go in terms of adding or editing content for new pages. Out of the box, you can,

  • - Create new pages,
  • - Save draft versions (ie that aren’t publicly accessible yet while you create them),
  • - Publish when you want with the click of a button,
  • - Add specific titles, labels etc for navigation and SEO purposes,
  • - Add content to a page (images, text, embed youtube videos),
  • - Previewing pages before you publish. There are other ways to do this as well.
  • - Reverting to a previous version of the page if you indeed change your mind about content.

You can also play around with these in my Silverstripe 4 demo site.

Adding files and Images

Silverstripe has both an admin area where you can add these and structure as you see fit but also has nice upload forms which can handle single or multiple uploads including drag and drop style uploads.

Roles and Permissions

Silverstripe can handle the creation of different ‘logins’ for multiple people who might need the CMS to add or edit content but also it supports multiple people doing this at the same time and the ability to give people various ‘roles’. This means that you can restrict users to be able to do a certain action and not others.

Things a developer could easily set up that may help the CMS user a lot:

  • - Aligning content is sometimes an issue so there are a few things Silverstripe can allow you to do that may help for example, adding custom CSS via editor.css file. This will allow a CMS editor to better deal with responsive images for example which are sometimes tricky.
  • - Dealing with Custom Functionality: If you need particular functionality on the page then Silverstripe is particularly suitable for this. For example, sometimes you might want to be able to include a gallery on a page or sometimes not. Check out the demo site to see a custom gallery in action as well as being able to play around with the CMS yourself.
  • - Model Admins for custom objects: Sometimes what you need from your website is to manage a load of data. What data you say? Well, it could be anything really but some examples may be,
    • products you sell on your site (they need images, prices, reviews etc) or
    • itineraries for a tour (they need day by day breakdowns, descriptions of activities, maps with pins in them detailing specific locations, galleries of images, reviews from clients).
  • Silverstripe has an area of the CMS called the Model Admin where you can easily manage these for display anywhere on your site. It's also possible to manage these from a particular page which may or may not make sense based on how you would like to manage your data.

Does Silverstripe 5 have anything new for CMS users?

All of the above will be able to be achieved in Silverstripe 5 as well. Exactly how the CMS will improve for CMS users isn’t known at this time. Silverstripe 5 is due out in mid-2019. 

In saying that we know that it will look to integrate more REACT Javascript into its CMS. Silverstripe CMS in version 4 is styled with a mix of jQuery and REACT (both types of Javascript frameworks). If you aren’t a developer then basically this transition to using more REACT code will mean a more extensible and better user experience when using the CMS in Silverstripe 5.

Demo Site:

Here is a link describing how to use and login to a Silverstripe 4 site and play with the above features. This will give you a way better understanding of what the CMS is like. You can add pages, background images, text, create objects and really get a feel for the Silverstripe CMS.

Silverstripe Features for Developers:

Installation:

Installation can be done in 2 ways. You can download a compressed version of Silverstripe 4 or you can use Composer and your command line on your local setup (laptop) or server to install Silverstripe. I recommend the later as do many devs these days. While downloading the zip files will get you where you want to go and allow you to install it Silverstripe is easily integrated with Composer (and GIT) and given that these things can save you a lot of time then its worth trying to use them.

Also if your a developer wanting to use Silverstripe regularly its a good idea to have this in your arsenal if you don't already. For those that aren’t aware, Composer is a package manager which basically means it makes your life easy by automatically installing various PHP modules that you may need with Silverstripe (and all of the PHP modules that those need, and so on and so on and so on). The alternative is to manually download these components which is time-consuming and error-prone (versioning issues). Composer will get all of those things for you and make sure the correct versions are downloaded as well.

  • - You can download and install Silverstripe either way from this page here.
  • - You can get a rundown on installing Composer on both Mac and Windows here.

Adding plugins with Composer:

As mentioned above you can add plugins (not via the CMS as in other CMS software ie WordPress) with Composer as well. Some common ones would be the Blog module but I’ve also used Email Obfuscation ones recently as well as ones that provide very useful Sitemap functionality. I usually find plugins using packagist.org. You can search for SilverStripe Plugins or for a specific one, eg 'silverstripe blog'. SilverStripe Site itself also has a list (comprising over 1500 listings) of Plugins here. Once you have installed Composer you run a simple command inside of the folder you want to install to get it to install that particular plugin. Packagist.org will give you the code to run specifically which you can copy and paste.

Works well with GIT and a local dev environment:

Unlike Wordpress Silverstripe is easily set up on a local machine for development purposes. Most Silverstripe devs will be doing this as it allows them to code and test outside of a live environment before launching to the production server. It also works easily with GIT (version control) as you will commonly find Silverstripe devs working with this as well.


Object Relational Mapping:

Silverstripe has an ORM (Object Relational Mapping) Tool which allows you to more quickly and easily build out the database tables needed to support your site. For example, you very rarely need to create a database table or add or alter any fields on an existing database. You can just define what a table is called and what fields it has (among other things) in PHP.

SilverStripe is fond of URI tools and as such once you have added fields to a PHP file (a Model in the MVC pattern) you can run a ‘dev build’ as it is known. This means you enter your URL in the browser followed by ‘dev/build’ and Silverstripe will look at all the Model PHP files you have created and build out the database tables and fields you have defined on each of them for you. At the end of the day, this will save you time editing your database.

Developing without the CMS (ie purely as a framework):

If you don’t need the CMS then you don’t have to install it. Silverstripe can be used as a framework only as other PHP frameworks like to do (like Laravel). This might be the case if your project doesn't have the need for CMS editors or pages in general. This means you would be purely working with Controllers all the way and taking advantage of Silverstripe's ‘render with’ type functions to render data gathered from a function on a controller with a particular template as well as perhaps some custom routing depending on your particular need.

Silverstripe has its own platform:

Silverstripe is both a private company and the name of a piece of open source software they produce. As such if you want to host your site on their servers then you can. This service is known as the Silverstripe Platform and is suited to more large scale sites with associated budgets. You can learn more about it here. For most websites however, regular hosting providers like HostPapa or GoDaddy will suffice.


Government endorsement for government agencies through CWP (Common Web Platform):

The CWP is basically a server where, if you are a government agency, you can utilise Silverstripe software and its various useful plugins for your website. If you are a Silverstripe developer then at some stage you may come across the CWP. The benefits of using it if you are a government agency are that it has been custom built just for government agencies so you have a lot of the software you might need already on the platform and even better the Software (including Silverstripe core itself) is updated twice yearly. It also meets government accessibility standards and various government agencies can share innovations between them, ie if Christchurch City Council has had some functionality built that you want to use for your own Government Agency then you are able to also utilise it. You can read more about the CWP including developer docs and the financial case for using it here.


Going Headless:

Different from simply developing without the CMS, a recent trend in the world of Silverstripe is to create apps in a 'headless state’ which means that you use Silverstripe as an API and the front end of your site is built with a completely different technology, perhaps a javascript framework.

Why do this? Well, Silverstripe has great backend functionality but you don't always want to render the information therein inside of its own templating functionality. For example, if you had a website that you wanted to turn into an app at a later date utilising the same data then you might want to render it not only a completely different way but with a completely different technology. Going headless means that you have this possibility more easily. In other words, it’s a nice way of being free of a particular front-end methodology.


Silverstripe 5 upcoming features:

As mentioned above a major addition seems to be more integration of more REACT Javascript but also further development of the GraphQL module. It will take time to fully implement them but with further versions of Silverstripe on the horizon, it’s fair to say eventually there won’t be much jQuery left in Silverstripe.

GraphQL is a language, created by Facebook, that is useful as a way to get data from the server (like all the blog posts by a particular author) without having to use the traditional methods or a REST API or writing your own function.

The main benefit I see is that it is quite easy to write and read the GraphQL code to see what it is doing This is useful for a dev who may want to quickly glance at piece of code to understand it. As well as this, it is faster, especially in mobile browsers because you can define exactly what you need and not have to deal with all the other information that is on an object you potentially don’t need.

You can read more on this in a few different sources. This REACT article will help you understand what GraphQL is and how it might be used in an application but if you want a particular Silverstripe example then check out this link.

Automated launch procedure integration:

While not part of Silverstripe per se Silverstripe does easily integrate with automated launch procedure software like deployer.org. This can be useful to automate tasks like launching a new site (creating databases, adding passwords and any other kind of automated process you might want to set up a Silverstripe site like running a dev/build or a particular function. If you have your own server and are launching sites frequently like me or you’re a development house then this is a significant time saver.