SilverStripe 2.4 Module Extension, Themes, and Widgets
Time for action—change the default theme
Time for action—using site title and slogan
Getting "Control" of Your System
Time for action—adding a print style
Time for action—reducing HTTP requests for CSS files
Time for action—add your own head tags
Time for action—adding custom JavaScript in the Controller
Time for action—removing JavaScript in the Controller
Spam protecting e-mail addresses
Storing and Retrieving Information
Time for action—installing DBPlumber
From a database's point of view
Adding custom fields to a page
Time for action—putting content into the database
More data types and their form fields
How database values are fetched
Time for action—linking pages together
Adding Some Spice with Widgets and Short Codes
Time for action—embracing Facebook
Time for action—doing it "right"
Time for action—how to find us
Advancing Further with Inheritance and Modules
Time for action—adding the required modules
Time for action—extending the backend functionality
Time for action—creating a basic contact form
Time for action—extending our form with abstraction
Time for action—adding search functionality to our page
Customizing forms even further
Time for action—extending the member card form
Checking the e-mail address for uniqueness
Time for action—checking the e-mail's uniqueness with Ajax
Time for action—using the session in forms
How to store members in the database
Time for action—configuring the CMS for globalization
Time for action—globalizing the intro page
Time for action—translating the rent form
Time for action—translating the rent form's JavaScript