Skip to main content

SilverStripe: The Complete Guide to CMS Development



SilverStripe: The Complete Guide to CMS Development

Ingo Schommer, Steven Broschart, Julian Seidenberg (Translated by)

ISBN: 978-0-470-71147-7 March 2010 456 Pages

Download Product Flyer

Download Product Flyer

Download Product Flyer is to download PDF in new tab. This is a dummy description. Download Product Flyer is to download PDF in new tab. This is a dummy description. Download Product Flyer is to download PDF in new tab. This is a dummy description. Download Product Flyer is to download PDF in new tab. This is a dummy description.


This is the Official Guide on the award-winning SilverStripe programming framework, authored by the creators of the open source CMS.

 SilverStripe is a robust and flexible website content management system (CMS) tightly integrated with an application framework.  It is open source and embraces modern system architecture and agile development methodologies. Intermediate developers can implement powerful websites and web-applications quickly and customize them to their individual needs. The award-winning PHP5/MySQL-based system saves not only time and nerves for techies, but also features a straightforward interface which is a joy to use for non-technical content-authors.

 This Guide helps you to:

  • Get started with SilverStripe: Learn the architecture and usability principles that underpin SilverStripe’s modern approach. Then go through the technical requirements, the installation process, and useful tools for your daily work. 
  • Learn the CMS: Practical examples show you how to use the CMS as a content author, and how to manage content, images, documents, and forms without technical knowledge. Administrators learn how to set up permissions and security groups.
  • Develop a custom application: Use MVC and other modern design patterns to create well-structured, object-oriented PHP code and concise template markup. Let the authors walk you through creating an interactive recruitment website as practical example project.
  • Extend through clean code and modules: Understand how SilverStripe is built on modularity and how this empowers you to build plugins and core extensions in an elegant, maintainable fashion.
  • Use SilverStripe professionally: In-depth topics on internationalization, security, unit testing, caching, multi-page forms, and web services APIs ensure that you can build world-class websites.
About the Authors.

About the Translator.

Foreword by Sigurd Magnusson.

Preface by Steven Broschart.

1 Introduction.

1.1 Why SilverStripe?

1.2 History.

1.3 Future.

1.4 Conclusion.

2 Installation.

2.1 System Requirements.

2.2 Preparation.

2.3 Installation.

2.4 Useful Software.

2.5 Database Management.

2.6 Support.

2.7 Conclusion.

3 Architecture.

3.1 Introduction.

3.2 MVC – Model View Controller.

3.3 ORM – Object Relational Mapping.

3.4 Directory Structure.

3.5 Modules and Widgets.

3.6 Themes.

3.7 Configuration.

3.8 Conclusion.

4 First Steps.

4.1 Our Project: Job Portal and User Group.

4.2 Creating the Page Structure.

4.3 Inserting Page Content.

4.4 Managing Files and Images.

4.5 Versioning.


4.7 Simple Contact Form.

4.8 Creating New Users.

4.9 Themes.

4.10 Conclusion.

5 Development: Job Postings.

5.1 Job Categories as a Page Type.

5.2 Job as a DataObject.

5.3 Relations Between DataObjects.

5.4 Creating the Interface.

5.5 Creating Templates.

5.6 Custom Forms.

5.7 Email Notification.

5.8 Integrating the Blog Module.

5.9 Search Engine Optimization.

5.10 Conclusion.

6 CRM.

6.1 Where are we Headed?.

6.2 Datamodel.

6.3 Using ModelAdmin for Data Management.

6.4 Multi-page Registration Form.

6.5 Skills as Tags.

6.6 File Uploads for References.

6.7 Searching DataObjects.

6.8 Generic Views Using CollectionController.

6.9 Defining Access Permissions.

6.10 Web Services Using RESTfulServer.

6.11 RSS Feeds for Jobs.

6.12 Conclusion.

7 Security.

7.1 Cross-site Scripting (XSS).

7.2 Cross-site Request Forgery (CSRF).

7.3 SQL Injection.

7.4 Directory Traversal.

7.5 Sessions.

7.6 Conclusion.

8 Maintenance.

8.1 Environment Types.

8.2 Configuration of Multiple Environments.

8.3 Version Control using Subversion.

8.4 Backup.

8.5 Upgrade.

8.6 Error Handling.

8.7 Performance.

8.8 Conclusion.

9 Testing.

9.1 Test-driven Development.

9.2 Installing PHPUnit.

9.3 Running Tests.

9.4 Unit Tests for the Model.

9.5 Functional Tests for the Controllers.

9.6 Conclusion.

10 Localization.

10.1 Character Sets and Unicode.

10.2 Translating Templates and Code.

10.3 Translatable: Translating Database Content.

10.4 Conclusion.

11 Recipes.

11.1 Prerequisites.

11.2 Customizable Page Banner.

11.3 Branding the CMS Interfaces.

11.4 Full-text Search for Websites.

11.5 Redirecting from Legacy URLs.

11.6 Simple Statistics using TableListField.

11.7 Showing Related Pages.

11.8 CSV Import using CSVBulkLoader.

11.9 A Fully Flash-based Website Driven by SilverStripe.

11.10 Conclusion.

12 Extending.

12.1 Different Ways to Extend SilverStripe.

12.2 Extending Core Functions.

12.3 Creating Custom Modules.

12.4 Creating Custom Widgets.

12.5 Conclusion.

13 Useful Modules.

13.1 E-commerce.

13.2 Forum.

13.3 Gallery.

13.4 Flickr Service.

13.5 Youtube Gallery.

13.6 Spam Protection: Mollom and Recaptcha.

13.7 Auth_External.

13.8 Auth_OpenID.

13.9 Subsites.

13.10 CMS Workflow.

13.11 Site-tree Importer.

13.12 Geospatial Modules.

13.13 Conclusion.


Download free code

4_first_steps/: See Chapter 4, "First Steps".
Standard cms installation with sample data and the "userforms" and "blog" modules.

- 5_development/: See Chapter 5, "Development". Start of the job portal code in mysite/ folder.

- 6_crm/: See Chapter 6, "CRM". Continued codebase of 5_development/, with "multiform" module and ModelAdmin implementations.

- 11_recipes: See Chapter 11, "Recipes".
Contains all recipes apart from Section 11.9.

- 11_recipes_flash/: See Chapter 11, "Recipes", Section 11.9, "A fully Flash-based website"
Contains Flash sourcefiles and PHP XML code generation necessary for flash-based recipe.

- 12_extending/: See Chapter 12, "Extending".
Contains decorators and unit tests, as well as the code from 5_development/ and 6_crm/ packaged up as a module in the jobs/ folder.

See README.txt in subfolders for installation instructions