You could tap a relay into the door wiring. Find which wires do it, intercept them in the harness inside the cabin and connect both wires to a relay: one to pin 85, the other to pin 86. This way it doesn't matter what way the power works for those lights, you now have a switch that comes on and off with the puddle lights.
The simplest way to handle the lights from there on is to connect a cable from the battery, run that into the cabin and connect it to pin 30, and run another cable out from pin 87 to the lights. This is NOT how I'd do it, because I wouldn't want positive feed direct from the battery running through the firewall.
I would connect pin 30 to an earth behind the dash, and connect pin 87 to a wire that runs out through to the engine bay near the battery and connect this to pin 85 of another relay. Pin 30 and 86 together to the battery via a fuse, and then 87 to the lights.
This is in addition to the relay you should already have powering the lights. If you do NOT have a relay powering the lights already, you need to add a relay like this:
Pin 85 to earth. Pin 86 to the ignition-on source that you connected to. Pin 30 to a fused cable from the battery and pin 87 to the lights.
This way, even if the ignition is on and the puddle lights come on from an open door (example, when you are dropping someone off and they're getting out) you aren't back-feeding power into the car's circuit through the puddle light circuit.