Mix the olives, onion, tomatoes and cheeses in a large bowl. Set aside.
Blend the garlic, salt, pepper, basil, vinegar and oil into a dressing by placing in a covered jar and shaking. Pour it over the ingredients in the bowl, and toss gently. Set aside.
Prepare each roll by cutting a shallow plug hole 2-inches in diameter out of the top, then pulling out the soft inside. Make sure you leave some bread on the bottom. The pulled-out bread can be saved to make bread crumbs later.
Melt butter, add the fresh basil leaves and allow the basil flavors to infuse into the butter. Brush some of the basil butter into the bottom of each roll. Place about 2/3 cup of the filling into each roll, then replace the plug on the top. Use aluminum foil to wrap each sandwich individually. If not cooking right away, place in the refrigerator and remove about an hour before baking. Bake at 350 degrees F for 20 to 25 minutes.