In response to a PM'd request I've attached a brief guide as to how I did my hack...
Note the above comments that I'd much prefer a solution that doesn't rely so heavily on the vB backend, so I'm certainly not recommending this for wider use. I hope it's of some use to someone... and perhaps any more experienced coders can give their feedback on how it could/should have been done!