Slugs: Ugly Bugs, Pretty URLs
I've always disliked how slugs and permalinks were created, managed and implemented. I've never thought of slugs as permalinks, and that's how I treat them. To me, a permalink is permanent and slugs are not.
The reason I dislike them is because they are usually implemented by adding a field to the database where the slug is stored. To me, this is duplicate information. I hate duplicate data. A...
Queue Emails Quick
When you're dealing with a large program, you're usually dealing with a large amount of emails. The problem with sending out, say, 200 emails in one action is two fold. The first issue is server load. The second is the user's experience.
Download it here: http://www.42pixels.com/downloads/cakephp-queueemail-plugin
Psst! Emails, it's your Queue!
My goal was to make a plugin that allows you to...
Sanitize Your Data Easily
When you're dealing with a lot of user submitted data, it's important to sanitize it. CakePHP provides a Sanitizer class that provides much of the functionality you need to deal with unclean data, but it can be a pain iterating through your data before saving it.
Enter Sanitizer
The Sanitizer plugin automatically sanitizes your data based on a set of rules you define on the model, similar...
Fulltext Searches with CakeDC Search Plugin
I recently dove into the Search plugin that the CakeDC created. It's one of many plugins that the CakeDC has been releasing lately. Isn't open source lovely? You can grab the Search plugin here.
MATCH (`description`) AGAINST ('totally +awesome -lame')
One of the requirements of my search was to allow boolean fulltext searches. I wanted it to be as dynamic as possible so I can easily perform a...
Quick and DRY Modals with jQuery
Modals can be a nice way to present data with minimal page refreshes and in a way that sits well with your UI. In my case, I've always used them to load data via Ajax using jQuery. Something that's always bothered me with previous methods was that you would have to change something in your view, or worse, controller, depending on whether or not it was loaded using Ajax. The biggest thing that c...

