I have a rough port for 4.x. I did it for one client, and I'm still awaiting feedback from them so that I can adjust it to their liking. It's generic enough to be used elsewhere. I can send you an apm if you and you can see if it can takes care of what you need.