SilverStripe 3 Gridfield is very flexible and easy to work with compared to the old ComplexTableField and popups of SilverStripe 2.4 (so far). One pitfall however is that when adding a record to a has_many the parent ID / relation ID is not prepopulated - related ticket here.
DNS and Nameservers
DNS is obviously a very important component of the Internet. Many people understand DNS works much like a phone book, where finding a phone number for a person requires looking for their name in an alphabetical list and then using the number adjacent.
Display latest tweets in SilverStripe
How To: Nginx, PHP-FPM, MySQL, phpMyAdmin, Postfix on Ubuntu
I recently moved to a new VPS because my last one was at something like 92% uptime. I wanted to try Nginx because Apache was constantly crashing, possibly something to do with Plesk being installed.
Scheduled Tasks in SilverStripe
Creating a scheduled task in SilverStripe, one that is called by cron, can be a bit fiddly and the documentation seems to have disappeared. Here's the process I followed to create a SilverStripe scheduled task that is run by cron.
Bare bones SilverStripe image gallery module
This is an example image gallery that has no dependencies on other SilverStripe modules - not counting the SilverStripe framework and cms haha. Just an example of a bare bones image gallery, using ComplexTableField instead of the DataObjectManager. If you are looking for a more complete Image Gallery Tutorial please follow that link to a walkthrough, much of the process is the same.
Easy 'Under Construction' pages for SilverStripe sites
For if you've ever been in the situation where you've developed a SilverStripe site for a client and now they want to review it before making it live - but you don't have a staging server set up. What you usually want to do is give the client full access to their website, but prevent the public from viewing the unfinished product. [ad#Half Banner] This simple technique is perfect for those situations. It lets you deliver a static HTML 'Under Construction' page to the general public, but if an admin user is logged in, the 'Under Construction' page disappears and the admin user can browse the site as normal. Additionally the 'Under Construction' page is served up with a 503 - Service Unavailable HTTP response status code.
Posting invalid form data in SilverStripe unit tests
By default posting form data from a SilverStripe unit test seems to restrict your POST data to only valid values. Meaning, if you want to post a value for a select field on the form, the value must be in the options for that select field in order for it to be POST'd. [ad#Half Banner] Usually when submitting form data from a unit test its easiest to use the FunctionalTest->submitForm() function with something like:
Speed up SilverStripe Unit Testing with SQLite
Unit testing can be a useful process to kill those pesky bugs, luckily with SilverStripe its relatively easy to get started unit testing. Running a test can take some time though, a great way of speeding up unit testing (as pointed out to me by Will Rossiter on the IRC channel) is to use the SQLite3 module by Andreas Piening. [ad#Half Banner] Installation is pretty straight forward, so that only your unit tests use the SQLite database you can hack up the config file a bit:
Date range picker for SilverStripe model admin search
After reading this awesome post by Aaron Carlino I decided a date range filter was just what I needed to filter search results in my ModelAdmin class. Then I read the comment by Ingo Schommer and that date range widget looked pretty badass so I incorporated that instead of having two fields like Aaron's solution.