UPDATE: Screencast demoing the many awesome features of uBrokeIt available here: http://www.screenr.com/22Bs
This is a silly package for Umbraco that I did for the package competition at Codegarden 2011. Somehow (don't ask me how, I'm still in shock about it), it won. Its just a bit of fun, so don't take it too seriously.
The basic gist is that Umbraco is a whole bag of awesome. It makes it insanely quick to churn out high quality websites (I bet some of you have churned out at least one site while you were reading this *cough* Matt *cough*). But what happens when the clients find out about this? Us web developers need time to do all the cool stuff we do. You know, snowboarding, hanging out at fashionable bars, getting tattoos of our favourite CMS logo, that sort of thing. But as soon a clients get wind of the fact that you can build sites in five minutes, they'll be on our cases, exppecting us to code five sites a day or something. then you can kiss all that awesome stuff goodbye. Noooooo.
Enter uBrokeIt! A handy, stealthy package that you can use to introduce non-destructive, amusing bugs into your back office. Just install, configure a few bugs, call the client and say you need an extra week to track them down and fix them, kick back in bar with your snowboard or something, then turn the bugs off when you're done!
The package sets up a config file in the /umbraco/plugins/ubrokeit folder. See how sneakily hidden that is? None of this config folder stuff for us stealthy types. open up the config file in your favourite text editor, and bask in all the sneaky options available to you! You can set the following:
ubrokeit - set enabled to true or false to switch the entire plugin on or off.
killmenus - set enabled to true or false to turn it off, set the probability betwen 1 - 100 to say how likely it is to happen. This setting will remove the right click context menu from tree nodes it affects.
greynodes - set enabled to true or false to turn it off, set the probability betwen 1 - 100 to say how likely it is to happen. This setting will randomly grey out nodes as if they were unpublished (including nodes that can't normally be unpublished).
renamenodes - set enabled to true or false to turn it off, set the probability betwen 1 - 100 to say how likely it is to happen. Set a comma separated list of possible names in the names property. This will rename nodes to one of the names that you specified, in all trees. It comes preloaded with a bunch of CodeGarden themed names.
bandmode - set enabled to true or false. This probably won't make sense unless you were at Codegarden, but basically it sets a marching band loose on your content editing pages. And because marching bands are distracting, the publish button runs away when you try and click it (you can still save though).
In my presentation at Codegarden, I alluded to the ironic fact that thee were bugs in my plugin for making bugs! Never fear, they're fixed now, so you get the three extra bonus modes too!
kittenmode - set to true or false. When enabled, it will hook into the edit media page and replace all your thumbnails with random pictures of kittens, and if you're really lucky, a lovely unicorn.
bossmode - set to true or false. We all want to be like Niels and do stuff like a boss, and this is the setting for you. When enabled, all buttons flagged with the "editorIcon" class in the CMS (save, publish etc) will play a sample from the Like a Boss song when clicked.
redirects - set enabled to true or false to turn it off, set the probability betwen 1 - 100 to say how likely it is to happen. Set a comma separated list of possible redirects in the redirects property. Makes the action of the node a redirect to the specified URL. Comes preloaded with Codegarden themed links.
And that's it. Now you can enjoy making sites quickly AND doing cool web developer stuff, LIKE A BOSS!!!
DISCLAIMER
In case you hadn't spotted it yet, this package is meant as a joke. Its not meant for real world use (although boss mode is pretty sweet). If you use it for real on clients, you'll make the sad panda come to your house and stare at you until you break down and cry like a big girly girl.
None of the bugs introduced by this package are destructive. All they do is rename stuff as its rendered, or change the appearance. None of the underlying data is actually changed.
Joking aside, there's some good examples of working with Umbraco in the source code (project files included in the downloads section). There's an xml based configuration that uses a singleton pattern for efficiency, and also implements a file watcher to update config in realtime. There's also some handy examples of interacting with the trees and on how to manipulated the back office pages to add your own scripts and the like.
Big thanks to Josh Townson for the marching band graphic and jQuery!