Twój problem dotyczy elementów ogólnie przyjętych w frameworkach PHP - przedstawie je na przykładzie Zenda

Tak jak piszesz jest strona, która ma na przykład:
NAGŁÓWEK
MENU TREŚĆ
STOPKA

Kontroller wywoływany z adresu (dispatch) zajmuje się tylko treścią. Nagłówek, menu i stopka mogą zostać zrobione na kilka sposobów:
1. Jako helpery - czyli dodatkowe metody widoku generujace coś w danym miejscu. Umieszcza się ja (do wyświetlania) w kodzie skryptu widoku pomiędzy html'em. Każdy helper może łączyć się z bazą, mieć własny widok i generować kod do wrzucenia w tam gdzie się go powoła
2. Helpery jednak nie powinny być zbyt mocno wypasione (zbyt duże) zatem można wykorzystać do tego samego celu akcję controllera. W zendzie na przykład masz helpera o nazwie action, który to zwraca w miejsce jego wrzucenia w skypcie widoku wynik działania podanej akcji kontrolera. Kontroler nie jest jednak dispatch'owany

tylko wywołany wewnątrz tego helpera action. Czyli tworzysz akcje w kontrollerze zwracające nagłówek, menu i stopkę i odpowiednio dodajesz je do głównego widoku.
3. Zend - ma coś takiego jak layout a w nim (mogę przekłamać nazwę) placeholdery - to też sposób chyba najlepszy do boksów itp... to taki "większy" widok.
4. W przypadku gdy nie wymagana jest generacja danych i ich pobierania czy przetwarzania z bazy danych = można po prostu wrzucić do jednego widoku drugi... nawet przekazujac jakieś parametry (np poprzez helpery partial czy partialLoop w Zend)
To takie ogólniki ale mam nadzieję że naszkicowałem Ci w myślach choć zarys tego wszystkiego

Poczytaj o tym więcej