I'm not sure about the park, but I don't think ribbons work.
Here's what I know:
Trading resets their happiness level.
Two large hearts are when they have above "200" happiness. They apparently need 220, the max, to evolve.
Every 256 steps you take with them in your party ups the amount one point.
A massage ups happiness at most five points, but as the total happiness increases, the amount the massage adds lessens.
Using a Pokemon in a major battle increases happiness. Mostly, Gym leader and Elite Four fights are considered major battles. Regular trainers aren't
Fainting decreases happiness.
Feeding a Pokemon a Poffin it likes increases happiness. It's tastes are in the summary.
Feeding it one it doesn't like decreases happiness.
Items other than the Soothe Bell have no effect on happiness, if they are not certain berries or poffins.
The Soothe Bell doubles the happiness increasings. I don't remember if it affects the rate of losing points, too.
I believe online battles should have no effect, regardless of outcome.